From ab417d4c41720219eb4381c0ca186aaf1773f7cf Mon Sep 17 00:00:00 2001 From: Oskar Hane Date: Fri, 26 Apr 2024 14:17:38 +0200 Subject: [PATCH] Update README (#20) --- .gitignore | 2 +- README.md | 2 +- docs/build/.buildinfo | 4 - docs/build/.doctrees/README.doctree | Bin 23822 -> 0 bytes docs/build/.doctrees/api.doctree | Bin 87181 -> 0 bytes docs/build/.doctrees/environment.pickle | Bin 336006 -> 0 bytes docs/build/.doctrees/index.doctree | Bin 5081 -> 0 bytes docs/build/.doctrees/neo4j_genai.doctree | Bin 60246 -> 0 bytes docs/build/.doctrees/retrieval.doctree | Bin 62026 -> 0 bytes docs/build/README.html | 311 ------ docs/build/_sources/README.md.txt | 170 ---- docs/build/_sources/api.rst.txt | 43 - docs/build/_sources/index.rst.txt | 21 - docs/build/_static/basic.css | 925 ------------------ docs/build/_static/css/neo4j.css | 642 ------------ docs/build/_static/css/nunito-sans.css | 200 ---- docs/build/_static/css/site.css | 8 - docs/build/_static/doctools.js | 156 --- docs/build/_static/documentation_options.js | 13 - docs/build/_static/file.png | Bin 286 -> 0 bytes .../fonts/nunito-sans-cyrillic-ext.woff2 | Bin 21616 -> 0 bytes .../_static/fonts/nunito-sans-cyrillic.woff2 | Bin 16456 -> 0 bytes .../_static/fonts/nunito-sans-latin-ext.woff2 | Bin 27216 -> 0 bytes .../_static/fonts/nunito-sans-latin.woff2 | Bin 31052 -> 0 bytes .../fonts/nunito-sans-vietnamese.woff2 | Bin 10332 -> 0 bytes docs/build/_static/js/12-fragment-jumper.js | 53 - docs/build/_static/language_data.js | 199 ---- docs/build/_static/menu.svg | 1 - docs/build/_static/minus.png | Bin 90 -> 0 bytes docs/build/_static/plus.png | Bin 90 -> 0 bytes docs/build/_static/pygments.css | 75 -- docs/build/_static/searchtools.js | 574 ----------- docs/build/_static/sphinx_highlight.js | 154 --- docs/build/api.html | 295 ------ docs/build/doctrees/README.doctree | Bin 23822 -> 0 bytes docs/build/doctrees/api.doctree | Bin 87181 -> 0 bytes docs/build/doctrees/environment.pickle | Bin 177334 -> 0 bytes docs/build/doctrees/index.doctree | Bin 5081 -> 0 bytes docs/build/genindex.html | 190 ---- docs/build/html/.buildinfo | 4 - docs/build/html/README.html | 311 ------ docs/build/html/_sources/README.md.txt | 170 ---- docs/build/html/_sources/api.rst.txt | 43 - docs/build/html/_sources/index.rst.txt | 21 - docs/build/html/_static/basic.css | 925 ------------------ docs/build/html/_static/css/neo4j.css | 642 ------------ docs/build/html/_static/css/nunito-sans.css | 200 ---- docs/build/html/_static/css/site.css | 8 - docs/build/html/_static/doctools.js | 156 --- .../html/_static/documentation_options.js | 13 - docs/build/html/_static/file.png | Bin 286 -> 0 bytes .../fonts/nunito-sans-cyrillic-ext.woff2 | Bin 21616 -> 0 bytes .../_static/fonts/nunito-sans-cyrillic.woff2 | Bin 16456 -> 0 bytes .../_static/fonts/nunito-sans-latin-ext.woff2 | Bin 27216 -> 0 bytes .../_static/fonts/nunito-sans-latin.woff2 | Bin 31052 -> 0 bytes .../fonts/nunito-sans-vietnamese.woff2 | Bin 10332 -> 0 bytes .../html/_static/js/12-fragment-jumper.js | 53 - docs/build/html/_static/language_data.js | 199 ---- docs/build/html/_static/menu.svg | 1 - docs/build/html/_static/minus.png | Bin 90 -> 0 bytes docs/build/html/_static/plus.png | Bin 90 -> 0 bytes docs/build/html/_static/pygments.css | 75 -- docs/build/html/_static/searchtools.js | 574 ----------- docs/build/html/_static/sphinx_highlight.js | 154 --- docs/build/html/api.html | 295 ------ docs/build/html/genindex.html | 190 ---- docs/build/html/index.html | 166 ---- docs/build/html/objects.inv | 7 - docs/build/html/search.html | 166 ---- docs/build/html/searchindex.js | 1 - docs/build/index.html | 166 ---- docs/build/objects.inv | 7 - docs/build/search.html | 166 ---- docs/build/searchindex.js | 1 - docs/source/README.md | 168 +--- docs/source/api.rst | 2 +- src/neo4j_genai/queries.py | 56 -- 77 files changed, 9 insertions(+), 8969 deletions(-) delete mode 100644 docs/build/.buildinfo delete mode 100644 docs/build/.doctrees/README.doctree delete mode 100644 docs/build/.doctrees/api.doctree delete mode 100644 docs/build/.doctrees/environment.pickle delete mode 100644 docs/build/.doctrees/index.doctree delete mode 100644 docs/build/.doctrees/neo4j_genai.doctree delete mode 100644 docs/build/.doctrees/retrieval.doctree delete mode 100644 docs/build/README.html delete mode 100644 docs/build/_sources/README.md.txt delete mode 100644 docs/build/_sources/api.rst.txt delete mode 100644 docs/build/_sources/index.rst.txt delete mode 100644 docs/build/_static/basic.css delete mode 100644 docs/build/_static/css/neo4j.css delete mode 100644 docs/build/_static/css/nunito-sans.css delete mode 100644 docs/build/_static/css/site.css delete mode 100644 docs/build/_static/doctools.js delete mode 100644 docs/build/_static/documentation_options.js delete mode 100644 docs/build/_static/file.png delete mode 100644 docs/build/_static/fonts/nunito-sans-cyrillic-ext.woff2 delete mode 100644 docs/build/_static/fonts/nunito-sans-cyrillic.woff2 delete mode 100644 docs/build/_static/fonts/nunito-sans-latin-ext.woff2 delete mode 100644 docs/build/_static/fonts/nunito-sans-latin.woff2 delete mode 100644 docs/build/_static/fonts/nunito-sans-vietnamese.woff2 delete mode 100644 docs/build/_static/js/12-fragment-jumper.js delete mode 100644 docs/build/_static/language_data.js delete mode 100644 docs/build/_static/menu.svg delete mode 100644 docs/build/_static/minus.png delete mode 100644 docs/build/_static/plus.png delete mode 100644 docs/build/_static/pygments.css delete mode 100644 docs/build/_static/searchtools.js delete mode 100644 docs/build/_static/sphinx_highlight.js delete mode 100644 docs/build/api.html delete mode 100644 docs/build/doctrees/README.doctree delete mode 100644 docs/build/doctrees/api.doctree delete mode 100644 docs/build/doctrees/environment.pickle delete mode 100644 docs/build/doctrees/index.doctree delete mode 100644 docs/build/genindex.html delete mode 100644 docs/build/html/.buildinfo delete mode 100644 docs/build/html/README.html delete mode 100644 docs/build/html/_sources/README.md.txt delete mode 100644 docs/build/html/_sources/api.rst.txt delete mode 100644 docs/build/html/_sources/index.rst.txt delete mode 100644 docs/build/html/_static/basic.css delete mode 100644 docs/build/html/_static/css/neo4j.css delete mode 100644 docs/build/html/_static/css/nunito-sans.css delete mode 100644 docs/build/html/_static/css/site.css delete mode 100644 docs/build/html/_static/doctools.js delete mode 100644 docs/build/html/_static/documentation_options.js delete mode 100644 docs/build/html/_static/file.png delete mode 100644 docs/build/html/_static/fonts/nunito-sans-cyrillic-ext.woff2 delete mode 100644 docs/build/html/_static/fonts/nunito-sans-cyrillic.woff2 delete mode 100644 docs/build/html/_static/fonts/nunito-sans-latin-ext.woff2 delete mode 100644 docs/build/html/_static/fonts/nunito-sans-latin.woff2 delete mode 100644 docs/build/html/_static/fonts/nunito-sans-vietnamese.woff2 delete mode 100644 docs/build/html/_static/js/12-fragment-jumper.js delete mode 100644 docs/build/html/_static/language_data.js delete mode 100644 docs/build/html/_static/menu.svg delete mode 100644 docs/build/html/_static/minus.png delete mode 100644 docs/build/html/_static/plus.png delete mode 100644 docs/build/html/_static/pygments.css delete mode 100644 docs/build/html/_static/searchtools.js delete mode 100644 docs/build/html/_static/sphinx_highlight.js delete mode 100644 docs/build/html/api.html delete mode 100644 docs/build/html/genindex.html delete mode 100644 docs/build/html/index.html delete mode 100644 docs/build/html/objects.inv delete mode 100644 docs/build/html/search.html delete mode 100644 docs/build/html/searchindex.js delete mode 100644 docs/build/index.html delete mode 100644 docs/build/objects.inv delete mode 100644 docs/build/search.html delete mode 100644 docs/build/searchindex.js delete mode 100644 src/neo4j_genai/queries.py diff --git a/.gitignore b/.gitignore index c5ed14b25..16c7907ed 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ dist/ htmlcov/ .idea/ .env -docs/build +docs/build/ diff --git a/README.md b/README.md index 8272e13ca..10096a060 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ create_vector_index( ### Populating the Neo4j Vector Index -This library does not write to the database, that is up to you. +This library does not write to the database, that is up to you. See below for how to write using Cypher via the Neo4j driver. Assumption: Neo4j running with a defined vector index diff --git a/docs/build/.buildinfo b/docs/build/.buildinfo deleted file mode 100644 index 7fc617e3a..000000000 --- a/docs/build/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 98edc6100e73e280e52569a33c93b947 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/.doctrees/README.doctree b/docs/build/.doctrees/README.doctree deleted file mode 100644 index facf220e3b49f8867e3a09ee1429a409cad3e013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23822 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 YOYk50&&K#(bB@KKe6<0Kkb%tq2N~Hz0{{R3 diff --git a/docs/build/.doctrees/index.doctree b/docs/build/.doctrees/index.doctree deleted file mode 100644 index 9cd489c072a9e589b1981f62452746c4e966798d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5081 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 DA&jCk&OuV=bj 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 SS8zO?>fj_ojJMqAoBtQv`(gtC diff --git a/docs/build/.doctrees/retrieval.doctree b/docs/build/.doctrees/retrieval.doctree deleted file mode 100644 index e523c5f07063341ceeed51d52eeddf49931f733f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62026 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 diff --git a/docs/build/README.html b/docs/build/README.html deleted file mode 100644 index 870d01cd4..000000000 --- a/docs/build/README.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - - Neo4j GenAI package for Python — neo4j-genai-python documentation - - - - - - - - - - - - - -
- -
- - -
- - -
- -
-
- -
-

Neo4j GenAI package for Python

-

This repository contains the official Neo4j GenAI features for Python.

-

The purpose of this package is to provide a first party package to developers, -where Neo4j can guarantee long term commitment and maintenance as well as being -fast to ship new features and high performing patterns and methods.

-

Docs are coming soon!

-
-
-

Usage

-
-

Installation

-

This package requires Python (>=3.8.1).

-

To install the latest stable version, use:

-
pip install neo4j-genai
-
-
-
-
-

Examples

-

While the library has more retrievers than shown here, the following examples should be able to get you started.

- -
-

Creating a vector index

-

When creating a vector index, make sure you match the number of dimensions in the index with the number of dimensions the embeddings have.

-

Assumption: Neo4j running

-
from neo4j import GraphDatabase
-from neo4j_genai.indexes import create_vector_index
-
-URI = "neo4j://localhost:7687"
-AUTH = ("neo4j", "password")
-
-INDEX_NAME = "chunk-index"
-
-# Connect to Neo4j database
-driver = GraphDatabase.driver(URI, auth=AUTH)
-
-# Creating the index
-create_vector_index(
-    driver,
-    INDEX_NAME,
-    label="Document",
-    property="textProperty",
-    dimensions=1536,
-    similarity_fn="euclidean",
-)
-
-
-
-
-
-

Populating the Neo4j Vector Index

-

This library does not write to the database, that is up to you. -See below for how to write using Cypher via the Neo4j driver.

-

Assumption: Neo4j running with a defined vector index

-
from neo4j import GraphDatabase
-from random import random
-
-URI = "neo4j://localhost:7687"
-AUTH = ("neo4j", "password")
-
-# Connect to Neo4j database
-driver = GraphDatabase.driver(URI, auth=AUTH)
-
-# Upsert the vector
-vector = [random() for _ in range(DIMENSION)]
-insert_query = (
-    "MERGE (n:Document {id: $id})"
-    "WITH n "
-    "CALL db.create.setNodeVectorProperty(n, 'textProperty', $vector)"
-    "RETURN n"
-)
-parameters = {
-    "id": 0,
-    "vector": vector,
-}
-driver.execute_query(insert_query, parameters)
-
-
-
-
-
-
-

Development

-
-

Install dependencies

-
poetry install
-
-
-
-
-

Getting started

-
-

Issues

-

If you have a bug to report or feature to request, first -search to see if an issue already exists. -If a related issue doesn’t exist, please raise a new issue using the relevant -issue form.

-

If you’re a Neo4j Enterprise customer, you can also reach out to Customer Support.

-

If you don’t have a bug to report or feature request, but you need a hand with -the library; community support is available via Neo4j Online Community -and/or Discord.

-
-
-

Make changes

-
    -
  1. Fork the repository.

  2. -
  3. Install Python and Poetry. For more information, see the development guide.

  4. -
  5. Create a working branch from main and start with your changes!

  6. -
-
-
-

Pull request

-

When you’re finished with your changes, create a pull request, also known as a PR.

-
    -
  • Ensure that you have signed the CLA.

  • -
  • Ensure that the base of your PR is set to main.

  • -
  • Don’t forget to link your PR to an issue -if you are solving one.

  • -
  • Enable the checkbox to allow maintainer edits -so that maintainers can make any necessary tweaks and update your branch for merge.

  • -
  • Reviewers may ask for changes to be made before a PR can be merged, either using -suggested changes -or normal pull request comments. You can apply suggested changes directly through -the UI, and any other changes can be made in your fork and committed to the PR branch.

  • -
  • As you update your PR and apply changes, mark each conversation as resolved.

  • -
-
-
-
-

Run tests

-

Open a new virtual environment and then run the tests.

-
poetry shell
-pytest
-
-
-
-
-

Further information

- -
-
- - - -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/_sources/README.md.txt b/docs/build/_sources/README.md.txt deleted file mode 100644 index 10096a060..000000000 --- a/docs/build/_sources/README.md.txt +++ /dev/null @@ -1,170 +0,0 @@ -# Neo4j GenAI package for Python - -This repository contains the official Neo4j GenAI features for Python. - -The purpose of this package is to provide a first party package to developers, -where Neo4j can guarantee long term commitment and maintenance as well as being -fast to ship new features and high performing patterns and methods. - -Docs are coming soon! - -# Usage - -## Installation - -This package requires Python (>=3.8.1). - -To install the latest stable version, use: - -```shell -pip install neo4j-genai -``` - -## Examples - -While the library has more retrievers than shown here, the following examples should be able to get you started. - -### Performing a similarity search - -Assumption: Neo4j running with populated vector index in place. - -```python -from neo4j import GraphDatabase -from neo4j_genai import VectorRetriever - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -INDEX_NAME = "embedding-name" - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Initialize the retriever -retriever = VectorRetriever(driver, INDEX_NAME) - -# Run the similarity search -query_text = "How do I do similarity search in Neo4j?" -response = retriever.search(query_text=query_text, top_k=5) -``` - -### Creating a vector index - -When creating a vector index, make sure you match the number of dimensions in the index with the number of dimensions the embeddings have. - -Assumption: Neo4j running - -```python -from neo4j import GraphDatabase -from neo4j_genai.indexes import create_vector_index - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -INDEX_NAME = "chunk-index" - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Creating the index -create_vector_index( - driver, - INDEX_NAME, - label="Document", - property="textProperty", - dimensions=1536, - similarity_fn="euclidean", -) - -``` - -### Populating the Neo4j Vector Index - -This library does not write to the database, that is up to you. -See below for how to write using Cypher via the Neo4j driver. - -Assumption: Neo4j running with a defined vector index - -```python -from neo4j import GraphDatabase -from random import random - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Upsert the vector -vector = [random() for _ in range(DIMENSION)] -insert_query = ( - "MERGE (n:Document {id: $id})" - "WITH n " - "CALL db.create.setNodeVectorProperty(n, 'textProperty', $vector)" - "RETURN n" -) -parameters = { - "id": 0, - "vector": vector, -} -driver.execute_query(insert_query, parameters) -``` - -# Development - -## Install dependencies - -```bash -poetry install -``` - -## Getting started - -### Issues - -If you have a bug to report or feature to request, first -[search to see if an issue already exists](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments). -If a related issue doesn't exist, please raise a new issue using the relevant -[issue form](https://github.com/neo4j/neo4j-genai-python/issues/new/choose). - -If you're a Neo4j Enterprise customer, you can also reach out to [Customer Support](http://support.neo4j.com/). - -If you don't have a bug to report or feature request, but you need a hand with -the library; community support is available via [Neo4j Online Community](https://community.neo4j.com/) -and/or [Discord](https://discord.gg/neo4j). - -### Make changes - -1. Fork the repository. -2. Install Python and Poetry. For more information, see [the development guide](./docs/contributing/DEVELOPING.md). -3. Create a working branch from `main` and start with your changes! - -### Pull request - -When you're finished with your changes, create a pull request, also known as a PR. - -- Ensure that you have [signed the CLA](https://neo4j.com/developer/contributing-code/#sign-cla). -- Ensure that the base of your PR is set to `main`. -- Don't forget to [link your PR to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) - if you are solving one. -- Enable the checkbox to [allow maintainer edits](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) - so that maintainers can make any necessary tweaks and update your branch for merge. -- Reviewers may ask for changes to be made before a PR can be merged, either using - [suggested changes](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request) - or normal pull request comments. You can apply suggested changes directly through - the UI, and any other changes can be made in your fork and committed to the PR branch. -- As you update your PR and apply changes, mark each conversation as [resolved](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#resolving-conversations). - -## Run tests - -Open a new virtual environment and then run the tests. - -```bash -poetry shell -pytest -``` - -## Further information - -- [The official Neo4j Python driver](https://github.com/neo4j/neo4j-python-driver) -- [Neo4j GenAI integrations](https://neo4j.com/docs/cypher-manual/current/genai-integrations/) diff --git a/docs/build/_sources/api.rst.txt b/docs/build/_sources/api.rst.txt deleted file mode 100644 index 7e46f2f40..000000000 --- a/docs/build/_sources/api.rst.txt +++ /dev/null @@ -1,43 +0,0 @@ -.. _api-documentation: - -API Documentation -################# - -************************************ -Retrieval-Augmented Generation (RAG) -************************************ -RAG is a technique that enhances Large Language Model (LLM) responses by retrieving -source information from external data stores to augment generated responses. - -This package enables Python developers to use perform RAG using Neo4j. - -********** -Retrievers -********** - -VectorRetriever -=============== - -.. autoclass:: neo4j_genai.retrievers.vector.VectorRetriever - :members: - - -VectorCypherRetriever -===================== - -.. autoclass:: neo4j_genai.retrievers.vector.VectorCypherRetriever - :members: - - -HybridRetriever -=============== - -.. autoclass:: neo4j_genai.retrievers.hybrid.HybridRetriever - :members: - - -HybridCypherRetriever -=============== - -.. autoclass:: neo4j_genai.retrievers.hybrid.HybridCypherRetriever - :members: diff --git a/docs/build/_sources/index.rst.txt b/docs/build/_sources/index.rst.txt deleted file mode 100644 index bec1b20ee..000000000 --- a/docs/build/_sources/index.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. neo4j-genai-python documentation master file, created by - sphinx-quickstart on Tue Apr 9 16:36:43 2024. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to neo4j-genai-python's documentation! -============================================== - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - api.rst - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/build/_static/basic.css b/docs/build/_static/basic.css deleted file mode 100644 index 30fee9d0f..000000000 --- a/docs/build/_static/basic.css +++ /dev/null @@ -1,925 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/build/_static/css/neo4j.css b/docs/build/_static/css/neo4j.css deleted file mode 100644 index a940aa372..000000000 --- a/docs/build/_static/css/neo4j.css +++ /dev/null @@ -1,642 +0,0 @@ -@import "site.css"; - -#auth { - padding-left: initial; -} - -.doc h1 { - font-size: 1.75em; -} - -.doc p { - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0; - margin-inline-end: 0; -} - -.sphinx pre { - line-height: 1.3; -} - -.sphinx pre:not(.highlight) { - padding-top: 1rem; - padding-bottom: 1rem; -} - -html.is-clipped--nav #searchbox { - display: none !important; -} - -body.sphinx .navbar-link a { - color: #3182ce; -} - - -body.sphinx a.external::after { - display: inline-block; - content: ""; - padding: 0; - margin: 0; - background-position: 50%; -} - -body.sphinx #searchbox { - padding: 0 1.5rem 0.5rem; -} - -body.sphinx #indexlinkbox { - padding: 0 1.5rem 0.5rem 0; -} - -body.sphinx #indexlinkbox .indexlinkwrapper > ul:first-child { - margin-top: 0; -} - -#indexlinklabel { - padding-left: 1.5rem; -} - -body.sphinx #searchlabel, -body.sphinx #indexlinklabel { - margin: 0.8rem 0 0.5rem; -} - -body.sphinx #searchlabel, -body.sphinx #indexlinklabel { - margin: 0.8rem 0 0.5rem; -} - -body.sphinx #searchbox .search, -body.sphinx .content .search { - display: block; - opacity: 1; - position: relative; - background: initial; -} - -@media screen and (min-width: 1024px) { - - body.sphinx .toolbar { - background: initial; - box-shadow: none; - height: 0; - } - - .navbar-item, .navbar-link { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - body.sphinx .nav-container { - border: none; - } - - body.sphinx .nav, - body.sphinx .nav-panel-menu { - height: auto; - background: initial; - } - - body.sphinx .sphinxsidebar { - background: #f5f7fa; - position: static; - } - - body.sphinx .sphinxsidebarwrapper { - position: sticky; - top: 3.77778rem; - height: calc(100vh - 3.77778rem); - overflow-y: auto; - } - - body.sphinx .nav-panel-menu:not(.is-active)::after { - background: initial; - } - - body.sphinx .navbar-start { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - max-width: 63.11111rem; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - margin-right: 2rem; - } - - body.sphinx .navbar-start .navbar-link { - margin-left: auto; - } -} - -.navbar-item, .navbar-link { - color: #4a5568; - line-height: 1.8; - padding: 0.5rem 1rem; - position: relative; -} - -@media screen and (min-width: 769px) { - .doc>.sect-header>h1.page:first-child { - margin-top: 2.5rem; - } -} - -.doc>section>h1:first-child { - font-size: 2rem; - margin: 1.5rem 0.5rem 1.5rem 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.doc h1, .doc h2, .doc h3, .doc h4, .doc h5, .doc h6 { - color: #4a5568; - font-weight: 400; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; - line-height: 1.3; - margin: 2rem 0 1rem; -} - -.doc a.headerlink { - visibility: hidden; - margin-left: 0.5rem; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -.nav-menu .caption { - padding: 0.5rem 1.5rem; - font-size: 1.5rem; -} - -.nav-menu ul { - padding-left: 0; -} - - - -.nav-menu li.toctree-l1 { - list-style: none; - position: relative; -} - -.nav-menu .toctree-l1>a, -.nav-menu .toctree-l1>span { - padding-left: 1.5rem; -} - -.nav-menu .toctree-l1>a, -.nav-menu .toctree-l1>span { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.nav-menu .toctree-l1 a:hover, -.nav-menu .toctree-l1 span:hover { - background-color: #e6e9ee; -} - -.nav-menu .toctree-l1>a.current { - background-color: #e6f8ff; - color: #0056b3; -} - -.nav-menu .toctree-l1>a.current::before { - content: ""; - width: 4px; - height: 100%; - position: absolute; - left: 0; - top: 0; - background: #0056b3; - border-radius: 4px; -} - -.toctree-l1>a, .toctree-l1>span { - position: relative; - padding-right: 2rem; -} - -.nav-menu li.toctree-l2 { - list-style: none; - position: relative; -} - -.nav-menu .toctree-l2>a, -.nav-menu .toctree-l2>span { - padding-left: 2.5rem; -} - -.nav-menu .toctree-l2>a, -.nav-menu .toctree-l2>span { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.nav-menu .toctree-l2 a:hover, -.nav-menu .toctree-l2 span:hover { - background-color: #e6e9ee; -} - -.nav-menu .toctree-l2>a.current { - background-color: #e6f8ff; - color: #0056b3; -} - -.nav-menu .toctree-l2>a.current::before { - content: ""; - width: 4px; - height: 100%; - position: absolute; - left: 0; - top: 0; - background: #0056b3; - border-radius: 4px; -} - -.toctree-l2>a, .toctree-l2>span { - position: relative; - padding-right: 2rem; -} - -.nav-menu li.toctree-l3 { - list-style: none; - position: relative; -} - -.nav-menu .toctree-l3>a, -.nav-menu .toctree-l3>span { - padding-left: 3.5rem; -} - -.nav-menu .toctree-l3>a, -.nav-menu .toctree-l3>span { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.nav-menu .toctree-l3 a:hover, -.nav-menu .toctree-l3 span:hover { - background-color: #e6e9ee; -} - -.nav-menu .toctree-l3>a.current { - background-color: #e6f8ff; - color: #0056b3; -} - -.nav-menu .toctree-l3>a.current::before { - content: ""; - width: 4px; - height: 100%; - position: absolute; - left: 0; - top: 0; - background: #0056b3; - border-radius: 4px; -} - -.toctree-l3>a, .toctree-l3>span { - position: relative; - padding-right: 2rem; -} - - -.nav-menu li a code { - font-family: inherit -} - -.is-current-page>.nav-link, -.is-current-page>.nav-text { - font-weight: 400; -} - -.nav-menu a, .nav-text { - color: #535b66; - font-weight: 400; - display: block; - padding: 0.25rem 0; -} - -/* lists */ - -body.sphinx .doc ul li{ - margin-bottom: 0; -} - -/* functions */ - -body.sphinx .doc dl.py.function { - padding: 0 1rem; - /* border-top: 2px dotted #eee; */ -} - -/* deprecated */ - -body.sphinx .deprecated::after, -body.sphinx .deprecated > *::after { - content: unset; -} - -body.sphinx .doc dl.deprecated dt:first-of-type span.sig-prename, -body.sphinx .doc dl.deprecated dt:first-of-type span.sig-name { - border-bottom: 1px solid #f6ad55; - /* color: #702459; */ - /* background-color: #fed7e2; */ -} - -body.sphinx .doc dl.deprecated { - margin-bottom: 0; - padding-bottom: 0; -} - -body.sphinx .doc div.deprecated { - padding: 1rem 1rem 0.75rem; - margin: 0.5rem 1.5rem; - /* color: #702459; */ - border-left: 4px solid #f6ad55; - border-radius: .25rem; - background-color: #fffaf0; -} - -.sphinx .doc .deprecated > :first-child { - margin-top: 0; -} - -.sphinx .doc .deprecated > :last-child { - margin-bottom: 0; -} - -b, strong { - font-weight: 800; -} - -dt { - font-weight: initial; -} - -.sphinx .doc .admonition { - margin: 0.5rem 1.5rem; - border-left: 4px solid #2d3748; - border-radius: .25rem; - padding: 1rem 1rem 0.75rem; - font-size: .88889rem -} - -.sphinx .doc .admonition .admonition-title:after { - content: ":"; -} - -.sphinx .doc .admonition .admonition-title, -.sphinx .doc .admonition .admonition-title + p { - display: inline; -} - -.sphinx .doc .admonition > :last-child { - margin-bottom: 0; -} - -.sphinx .doc .admonition > table { - border-collapse: collapse; - table-layout: fixed; - position: relative; - width: 100% -} - -.sphinx .doc .admonition .content { - padding: 1rem 1rem .75rem; - width: 100% -} - -.sphinx .doc .admonition .listingblock .content { - padding: 0 -} - -.sphinx .doc .admonition .icon { - display: none -} - -.sphinx .doc .admonition a.btn { - display: inline-block; - background: #000; - color: #fff !important; - padding: .5rem 2rem; - border-radius: .5rem -} - -.sphinx .doc .admonition a.btn::after { - display: none !important -} - -.sphinx .doc .admonition.warning { - background-color: #fed7d7; - color: #742a2a; - border-left-color: #e53e3e -} - -.sphinx .doc .admonition.warning pre { - background-color: #fff5f5; - color: #c53030 -} - -.sphinx .doc .admonition.warning a.btn { - background-color: #e53e3e -} - -.sphinx .doc .admonition.warning a { - color: #f56565 -} - -.sphinx .doc .admonition.caution { - background-color: #feebc8; - color: #7b341e; - border-left-color: #dd6b20 -} - -.sphinx .doc .admonition.caution a { - color: #ed8936 -} - -.sphinx .doc .admonition.caution a:hover { - color: #f6ad55 -} - -.sphinx .doc .admonition.caution a.btn { - background-color: #dd6b20 -} - -.sphinx .doc .admonition.caution pre { - background-color: #fffaf0; - color: #c05621 -} - -.sphinx .doc .admonition.tip, .sphinx .doc .admonition.note { - background-color: #bee3f8; - color: #2a4365; - border-left-color: #3182ce -} - -.sphinx .doc .admonition.tip a, .sphinx .doc .admonition.note a { - color: #3182ce -} - -.sphinx .doc .admonition.tip a:hover, .sphinx .doc .admonition.note a:hover { - color: #4299e1 -} - -.sphinx .doc .admonition.tip a.btn, .sphinx .doc .admonition.note a.btn { - background-color: #3182ce -} - -.sphinx .doc .admonition.tip pre, .sphinx .doc .admonition.note pre { - background-color: #ebf8ff; - color: #2b6cb0 -} - -.sphinx .doc .admonition.seealso { - background-color: #edf2f7; - color: #1a202c; - border-left-color: #718096 -} - -.sphinx .doc .admonition.seealso a { - color: #718096 -} - -.sphinx .doc .admonition.seealso a:hover { - color: #a0aec0 -} - -.sphinx .doc .admonition.seealso a.btn { - background-color: #718096 -} - -.sphinx .doc .admonition.important { - background-color: #e9d8fd; - color: #44337a; - border-left-color: #805ad5 -} - -.sphinx .doc .admonition.important a { - color: #805ad5 -} - -.sphinx .doc .admonition.important a:hover { - color: #9f7aea -} - -.sphinx .doc .admonition.important a.btn { - background-color: #805ad5 -} - -dd > :first-child { - margin-top: 0; -} - -.field-list p { - margin: 0; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - /*word-break: break-word;*/ - padding-left: 0.5em; - padding-right: 5px; -} - - -dl.field-list > dd { - padding-left: 0.5em; - margin-left: 0; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dl.field-list > dd > ul, -dl.field-list > dd > ol { - padding-left: 1.9em; - margin-left: 0; -} - -.content ol li > p:first-of-type, -.content ul li > p:first-of-type { - margin-top: 0; -} - -.content ol li > p:last-of-type, -.content ul li > p:last-of-type { - margin-bottom: 0; -} - - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border: 0; -} - -table.docutils > tbody > tr:not(:last-child) > td, -table.docutils > tbody > tr:not(:last-child) > td, -table.docutils > thead > tr:not(:last-child) > td, -table.docutils > thead > tr:not(:last-child) > td, -table.docutils > tr:not(:last-child) > td, -table.docutils > tr:not(:last-child) > td { - border-bottom: 1px solid #aaa; -} - -th > :first-child, -td > :first-child { - margin-top: 0; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0; -} - -.sig-name, code.descname { - font-weight: bold; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} \ No newline at end of file diff --git a/docs/build/_static/css/nunito-sans.css b/docs/build/_static/css/nunito-sans.css deleted file mode 100644 index dfd39b79d..000000000 --- a/docs/build/_static/css/nunito-sans.css +++ /dev/null @@ -1,200 +0,0 @@ -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} diff --git a/docs/build/_static/css/site.css b/docs/build/_static/css/site.css deleted file mode 100644 index 8b2488b71..000000000 --- a/docs/build/_static/css/site.css +++ /dev/null @@ -1,8 +0,0 @@ -/* https://neo4j.com/docs/assets/css/site.css */ - -@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;src:local("Roboto Mono"),local("RobotoMono-Regular"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-400.woff2) format("woff2"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-400.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;src:local("Roboto Mono Medium"),local("RobotoMono-Medium"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-500.woff2) format("woff2"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-500.woff) format("woff")}body,html{height:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:1.0625em;-webkit-text-size-adjust:100%}@media screen and (min-width:1024px){html{font-size:1em}}body{background:#fff;color:#4a5568;font-family:Nunito Sans,Helvetica Neue,helvetica,roboto,arial,sans-serif;line-height:1.5;margin:0}a{text-decoration:none}a:active{background-color:none}code,kbd,pre{font-family:Roboto Mono,monospace}b,dt,strong,th{font-weight:600}em em{font-style:normal}strong strong{font-weight:400}button{cursor:pointer;font-family:inherit;font-size:1em;line-height:1.5;margin:0}button::-moz-focus-inner{border:none;padding:0}.body{word-wrap:break-word}@media screen and (min-width:1024px){.body{display:-webkit-box;display:-ms-flexbox;display:flex}}.nav-container{position:fixed;top:3.77778rem;left:0;width:100%;font-size:.94444rem;z-index:1;visibility:hidden}@media screen and (min-width:769px){.nav-container{width:18rem}}@media screen and (min-width:1024px){.nav-container{font-size:.875rem;-webkit-box-flex:0;-ms-flex:none;flex:none;position:static;top:0;visibility:visible;border-right:1px solid #edf2f7}}.nav-container.is-active{visibility:visible}.nav{background:#f5f7fa;position:relative;top:2.5rem;height:calc(100vh - 6.27778rem);font-weight:400}@media screen and (min-width:769px){.nav{-webkit-box-shadow:.5px 0 3px #edf2f7;box-shadow:.5px 0 3px #edf2f7}}@media screen and (min-width:1024px){.nav{top:3.77778rem;-webkit-box-shadow:none;box-shadow:none;position:sticky;height:calc(100vh - 3.77778rem)}}.nav .panels{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:inherit}html.is-clipped--nav{overflow-y:hidden}@media screen and (max-width:1023px){html.is-clipped--nav .toolbar{position:fixed;width:100%}}.nav-panel-menu{overflow-y:scroll;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:calc(100vh - 8.77778rem)}@media screen and (min-width:1024px){.nav-panel-menu{height:calc(100vh - 6.27778rem)}}.nav-panel-menu:not(.is-active) .nav-menu{opacity:.75}.nav-panel-menu:not(.is-active)::after{content:"";background:rgba(0,0,0,.5);display:block;position:absolute;top:0;right:0;bottom:0;left:0}.nav-panel-explore .components,.nav-panel-menu{scrollbar-width:thin;scrollbar-color:#f7fafc transparent}.nav-panel-explore .components::-webkit-scrollbar,.nav-panel-menu::-webkit-scrollbar{width:.25rem}.nav-panel-explore .components::-webkit-scrollbar-thumb,.nav-panel-menu::-webkit-scrollbar-thumb{background-color:#f7fafc}.nav-menu{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-height:0;width:100%;line-height:1.2;position:relative}.nav-menu .component-title{display:block}.nav-menu .title{color:#535b66;font-weight:300;letter-spacing:1.5px;text-transform:uppercase;font-size:.75rem;line-height:1.35;border-bottom:1px solid #e6e9ee;padding:.5rem 1.5rem;margin:0;font-family:Nudista,Helvetica Neue,helvetica,roboto,arial,sans-serif}.nav-menu a,.nav-text{color:#535b66;font-weight:400;display:block;padding:.25rem 0}.nav-list{margin:0;padding:0}.nav-menu>.nav-list{margin-top:.5rem}.nav-item{list-style:none;position:relative}.nav-list:first-child strong{margin-top:0!important}.nav-item-toggle~.nav-list{padding-bottom:.125rem}.nav-item[data-depth="0"]>.nav-list:first-child{display:block;margin:0}.nav-item:not(.is-active)>.nav-list{display:none}.nav-item-toggle{cursor:pointer}.is-current-page>.nav-link,.is-current-page>.nav-text{font-weight:400}.nav-item.is-current-page::before,.nav-item:hover::before,.toc-menu li a::before{opacity:1}.nav-panel-explore{background:#f5f7fa;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;right:0;bottom:0;left:0;max-height:calc(50% + 2.5rem)}.nav-panel-explore,.nav-panel-explore .context{display:-webkit-box;display:-ms-flexbox;display:flex}.nav-panel-explore .context{font-size:.83333rem;-ms-flex-negative:0;flex-shrink:0;color:#cbd5e0;-webkit-box-shadow:0 -1px 0 #edf2f7;box-shadow:0 -1px 0 #edf2f7;padding:0 .25rem 0 .5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;cursor:pointer;line-height:1;height:2.5rem}.nav-panel-explore .context .version{background-image:url(https://neo4j.com/docs/assets/img/chevron.svg);background-repeat:no-repeat;background-position:right .5rem top 50%;background-size:auto .75em;padding:0 1.5rem 0 0}.nav-panel-explore .components{line-height:1.8;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-shadow:inset 0 1px 5px #edf2f7;box-shadow:inset 0 1px 5px #edf2f7;background:#e2e8f0;padding:.5rem .75rem 0;margin:0;overflow-y:scroll;max-height:100%;display:block}.nav-panel-explore:not(.is-active) .components{display:none}.nav-panel-explore .component{display:block}.nav-panel-explore .component+.component{margin-top:.5rem}.nav-panel-explore .component:last-child{margin-bottom:.75rem}.nav-panel-explore .component .title{font-weight:600}.nav-panel-explore .versions{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;list-style:none;padding-left:0;margin-top:-.25rem;line-height:1}.nav-panel-explore .component .version{display:block;margin:.375rem .375rem 0 0}.nav-panel-explore .component .version a{border:1px solid #edf2f7;border-radius:.25rem;color:inherit;opacity:.75;white-space:nowrap;padding:.125em .25em;display:inherit}.nav-panel-explore .component .is-current a{border-color:currentColor;opacity:.9;font-weight:600}.nav .label{font-size:.8rem}.navbar .navbar-item.getting-started-cta .navbar-link{border-radius:.25rem;padding:.5em 1.5em;font-weight:400;text-align:center}@media screen and (min-width:1024px){.navbar .navbar-item.getting-started-cta{padding-right:0}}.nav-item .nav-text strong{font-size:16px;font-weight:700}.nav-link{position:relative}.nav-item a:hover,.nav-item span:hover{background-color:#e6e9ee}.is-current-page.is-active>a{background-color:#e6f8ff;color:#0056b3}.is-current-page.is-active>a::before{content:"";width:4px;height:100%;position:absolute;left:0;top:0;background:#0056b3;border-radius:4px}.nav-menu .nav-item>a,.nav-menu .nav-item>span{padding-top:.5rem;padding-bottom:.5rem}.nav-item>a,.nav-item>span{position:relative;padding-right:2rem}.nav-item[data-depth="0"]>a,.nav-item[data-depth="0"]>span{padding:.5rem 2rem .5rem 1rem}.nav-item[data-depth="1"]>a,.nav-item[data-depth="1"]>span{padding-left:1.5rem}.nav-item[data-depth="2"]>a,.nav-item[data-depth="2"]>span{padding-left:2.5rem}.nav-item[data-depth="3"]>a,.nav-item[data-depth="3"]>span{padding-left:3.5rem}.nav-item[data-depth="4"]>a,.nav-item[data-depth="4"]>span{padding-left:4.5rem}.nav-item[data-depth="5"]>a,.nav-item[data-depth="5"]>span{padding-left:5.5rem}.nav-item[data-depth="1"]>span strong{font-size:1rem;color:var(--neutral-55)}.nav-item>.nav-item-toggle::after{content:"";position:absolute;right:.5rem;top:.5rem;background:url(https://neo4j.com/docs/assets/img/chevron.svg) no-repeat;background-position:50%;background-size:auto .75em;width:1.5rem;height:50%}.nav-item.is-active>.nav-item-toggle:not(a)::after{-webkit-transform:scaleY(-1)}.nav-item.is-active>a.nav-item-toggle::after{background:none}.nav-item a[target=_blank]:hover::after{position:relative;display:inline-block;margin:0 .2rem;content:"→";color:#805ad5;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:all .2s linear;transition:all .2s linear;top:0}.nav-item .nav-section-header{margin-top:1.5rem;margin-bottom:.5rem;padding-top:1.5rem!important;border-top:1px solid var(--colors-netural-25)}.nav-item .nav-section-header:hover{background-color:transparent}.nav-menu .nav-list:first-child .nav-item:first-child .nav-section-header{border:none;padding-top:0!important}.nav-panel-versions{height:2.5rem;padding:.25rem .5rem}.nav-panel-versions .dropdown .dropdown-styles{width:100%}.dropdown-styles{display:grid;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.5rem 28px .5rem .5rem;border-radius:4px;border:1px solid #c4c8cd;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23535B66'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");background-position:right 5px top 50%;background-repeat:no-repeat;text-overflow:ellipsis}.dropdown-styles::after{grid-area:select}.dropdown-styles::-ms-expand{display:none}.dropdown .dropdown-label{display:none;color:#535b66}@media screen and (max-width:1023px){aside.kb-metadata.sidebar,aside.toc.sidebar{display:none}}@media screen and (min-width:1024px){main{-webkit-box-flex:1;-ms-flex:auto;flex:auto;min-width:0}main>.content{display:-webkit-box;display:-ms-flexbox;display:flex}aside.toc.embedded{display:none}aside.toc.sidebar{-webkit-box-flex:0;-ms-flex:0 0 9rem;flex:0 0 9rem}aside.kb-metadata.sidebar{-webkit-box-flex:0;-ms-flex:0 0 12rem;flex:0 0 12rem}}@media screen and (min-width:1216px){aside.toc.sidebar{-ms-flex-preferred-size:12rem;flex-basis:12rem}aside.kb-metadata.sidebar{-ms-flex-preferred-size:13.55556rem;flex-basis:13.55556rem}}.toolbar{color:#4a5568;background-color:#f7fafc;-webkit-box-shadow:0 1px 0 #edf2f7;box-shadow:0 1px 0 #edf2f7;font-size:.83333rem;height:2.5rem;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;position:sticky;top:3.77778rem;z-index:20}.toolbar,.toolbar-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.toolbar-wrapper{width:100%;max-width:69rem}.toolbar a{color:inherit}.nav-toggle{background:url(https://neo4j.com/docs/assets/img/menu.svg) no-repeat 50% 47.5%;background-size:49%;border:none;outline:none;line-height:inherit;height:2.5rem;padding:0;width:2.5rem;margin-right:-.25rem}@media screen and (min-width:1024px){.nav-toggle{display:none}}.nav-toggle.is-active{background-image:url(https://neo4j.com/docs/assets/img/back.svg);background-size:41.5%}.home-link{background:url(https://neo4j.com/docs/assets/img/home-o.svg) no-repeat 50% 45%;background-size:50%;display:block;height:2.5rem;padding:0;width:2.5rem}.home-link.is-current,.home-link:hover{background-image:url(https://neo4j.com/docs/assets/img/home.svg)}.edit-this-page{display:none;padding-right:.5rem}@media screen and (min-width:1350px){.edit-this-page{padding-right:0}}@media screen and (min-width:1024px){.edit-this-page{display:block}}.toolbar .edit-this-page a{color:#a0aec0}.breadcrumbs{display:none;-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;padding:0 .5rem 0 .75rem;line-height:1.2}@media screen and (min-width:1024px){.breadcrumbs{display:block}}a+.breadcrumbs{padding-left:.05rem}.breadcrumbs ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.breadcrumbs li{display:inline;margin:0}.breadcrumbs li::after{content:"/";padding:0 .5rem}.breadcrumbs li:last-of-type::after{content:none}.page-versions{display:none;margin-right:.7rem;position:relative;line-height:1}@media screen and (min-width:1024px){.page-versions{display:block}}.page-versions .version-menu-toggle{color:inherit;background:url(https://neo4j.com/docs/assets/img/chevron.svg) no-repeat;background-position:right .5rem top 50%;background-size:auto .75em;border:none;outline:none;line-height:inherit;padding:.5rem 1.5rem .5rem .5rem;position:relative;z-index:3}.page-versions .version-menu{background-color:#fff;border:1px solid #e2e8f0;border-radius:3px;padding:1.25rem .5rem .5rem;position:absolute;top:0;left:0;width:100%}.page-versions:not(.is-active) .version-menu{display:none}.page-versions .version{display:block;padding-top:.5rem}.page-versions .version.is-current{display:none}.page-versions .version.is-missing{color:#e2e8f0;font-style:italic;text-decoration:none}.toc-menu{color:#4a5568;margin-bottom:2rem}.toc.sidebar{padding-right:1rem;padding-bottom:2rem;position:relative}.toc.sidebar .toc-menu{margin-right:.75rem;position:sticky;top:6.27778rem}.toc .toc-menu h2{color:#4a5568;font-size:.88889rem;font-weight:600;line-height:1.5;margin:1.5rem -.5px 0;padding:.5rem 0 .25rem}.toc.sidebar .toc-menu h3{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:2.5rem;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.toc .toc-menu ul{font-size:.83333rem;line-height:1.4;list-style:none;margin:0;padding:0}.toc.sidebar .toc-menu ul{max-height:calc(100vh - 14.77778rem);overflow-y:auto;scrollbar-width:none}.toc .toc-menu ul::-webkit-scrollbar{width:0}.toc .toc-menu li{margin:0}.toc .toc-menu li a{position:relative}.toc-menu li a::before{top:.25rem;left:0;margin-left:-.4em;opacity:0}.toc .toc-menu li[data-level="1"] a{padding-left:1rem}.toc .toc-menu li[data-level="2"] a{padding-left:2rem}.toc .toc-menu li[data-level="3"] a{padding-left:3rem}.toc .toc-menu a{color:inherit;border-left:1px solid #e2e8f0;display:inline-block;padding:.25rem 0 .25rem .5rem;text-decoration:none}.sidebar.toc .toc-menu a{display:block;outline:none}.toc .toc-menu a:hover{color:#4a5568}.toc .toc-menu a.is-active{color:#2b6cb0}.toc .toc-menu a.is-active::before{background:#3182ce}.toc .toc-menu a.is-active::before,.toc .toc-menu a:hover::before{opacity:1}.sidebar.toc .toc-menu a:focus{background:#f7fafc}.toc .toc-menu .is-hidden-toc{display:none!important}.toc-sidebar .toc-menu{margin-bottom:4rem}aside.toc.embedded{margin-bottom:1.5rem;border-bottom:1px solid #e2e8f0;padding-bottom:.5rem}.toc .toc-ad{border:1px solid #e2e8f0;padding:1rem .5rem;border-radius:.5rem;margin:2rem -.5rem 0}.toc .toc-ad a{padding:0!important;border-left:0!important}.toc .toc-ad a:active{background-color:#fff!important}.toc .toc-ad .toc-ad-overline{font-size:.7rem;color:#718096;text-transform:uppercase;background-color:#fff}.toc .toc-ad .toc-ad-overline a{padding-left:0!important;border-left:0!important;color:#718096}.toc .toc-ad .toc-ad-image{width:80%;margin:.2rem auto}.toc .toc-ad .toc-ad-overline a:hover{color:#2d3748}.toc .toc-ad .toc-ad-title{color:#3182ce;font-size:1rem;margin:.2rem 0!important;padding:0!important}.toc .toc-ad-description{color:#a0aec0;font-size:.8rem;margin-top:0}.toc .toc-ad-underline{color:#3182ce;font-weight:700;font-size:.8rem}.toc .toc-ad-underline-button,.toc .toc-ad .button{border-radius:.25rem;background-color:#3182ce;color:#fff;display:inline-block;font-size:.8rem;font-weight:700;padding:.5rem 1rem}.doc .ad{border:1px solid #e2e8f0;border-radius:.5rem;background:#fff;margin:2rem -1rem 0;padding:1rem;position:relative;z-index:1000}.doc .ad h2{font-size:.8rem!important;text-transform:uppercase;margin-top:0}.doc .ad h2,.doc .ad h2 a{color:#a0aec0}.doc .ad .anchor{display:none}.doc .ad a::after{display:none!important}.doc .ad h3{margin-bottom:.3rem}.doc .ad .paragraph{margin-bottom:.5rem}.doc .ad .paragraph:last-child p{margin-bottom:0}.doc .ad .paragraph a.button{font-size:.8rem;margin:0 1rem .2rem 0;padding:.25rem 1rem}.doc .ad .imageblock.left,.doc .ad .imageblock.right{width:20%!important;max-width:120px;margin:0 1.5rem 1rem 0!important}@media screen and (min-width:580px){.doc .ad.left{float:left;margin-right:1.5rem}.doc .ad.left,.doc .ad.right{max-width:50%;margin-bottom:2rem}.doc .ad.right{float:right;margin-left:1.5rem}.doc .ad.left::after,.doc .ad.right::after{content:"";display:block;clear:both}}.doc{color:#2d3748;font-size:inherit;line-height:1.8;margin:0 auto;max-width:40rem;padding:0 1rem 2rem}body{font-weight:400}@media screen and (min-width:1024px){.doc{-webkit-box-flex:1;-ms-flex:auto;flex:auto;font-size:.94444rem;margin:0 2rem;max-width:54.44444rem;min-width:0;padding-bottom:4rem}}.doc h1,.doc h2,.doc h3,.doc h4,.doc h5,.doc h6{color:#4a5568;font-weight:400;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.3;margin:2rem 0 1rem}.doc h1 code,.doc h2 code,.doc h3 code,.doc h4 code,.doc h5 code,.doc h6 code{padding:.125em .25em;background:#f7fafc}.doc h4,.doc h5{font-weight:600;font-size:1rem}.doc h5{margin-bottom:.5rem;color:#718096}.doc>.sect-header>h1.page:first-child{font-size:2rem;margin:1.5rem .5rem 1.5rem 0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}@media screen and (min-width:769px){.doc>.sect-header>h1.page:first-child{margin-top:2.5rem}}#preamble+.sect1,.doc .sect1+.sect1{margin-top:2rem}.doc h1.sect0{background:#fff;font-size:1.8em;margin:1.5rem -1rem 0;padding:.5rem 1rem}.doc h2:not(.discrete){border-bottom:1px solid #e2e8f0;padding:.4rem 0 .5rem}.doc h3:not(.discrete){font-weight:600}.doc h1 .anchor,.doc h2 .anchor,.doc h3 .anchor,.doc h4 .anchor,.doc h5 .anchor,.doc h6 .anchor{position:absolute;text-decoration:none;width:1.75ex;margin-left:-1.5ex;visibility:hidden;font-size:.8em;font-weight:400;padding-top:.05em}.doc h1 .anchor::before,.doc h2 .anchor::before,.doc h3 .anchor::before,.doc h4 .anchor::before,.doc h5 .anchor::before,.doc h6 .anchor::before{content:"\00a7"}.doc h1:hover .anchor,.doc h2:hover .anchor,.doc h3:hover .anchor,.doc h4:hover .anchor,.doc h5:hover .anchor,.doc h6:hover .anchor{visibility:visible}@media screen and (max-width:620px){.doc>.sect-header>h1.page:first-child{font-size:1.4rem;font-weight:600}.doc h2:not(.discrete){font-size:1.2rem}.doc h3{font-size:1.1rem}}.doc p{margin:0}.doc .tableblock p{font-size:inherit}.doc .tableblock .icon{display:inline-block;margin-right:.5rem}.doc a{font-weight:600;color:#3182ce}.doc a:hover,.doc a:hover code:hover{color:#805ad5}.doc code a{color:inherit}.doc i.fa{font-style:normal}.doc p code,.doc td code,.doc thead code{color:#4a5568;background:#f7fafc;border-radius:.25em;font-size:.95em;padding:.125em .25em}.doc pre{color:#4a5568;font-size:.88889rem;line-height:1.5;margin:0}.doc code::before{opacity:0}.doc blockquote{margin:0}.doc .right{float:right;margin-left:2rem}.doc .image.rounded{padding:12px;-webkit-box-shadow:0 0 5px 1px #bee3f8!important;box-shadow:0 0 5px 1px #bee3f8!important;background:#fff;border-radius:50%;line-height:1;display:inline-block}.doc .image.right{margin-left:1rem}.doc .image.left{margin-right:1rem}.doc .left{float:left}.doc .underline{text-decoration:underline}.doc .line-through{text-decoration:line-through}.doc .colist,.doc .dlist,.doc .exampleblock,.doc .imageblock,.doc .listingblock,.doc .literalblock,.doc .olist,.doc .paragraph,.doc .partintro,.doc .quoteblock,.doc .sidebarblock,.doc .ulist,.doc .verseblock{margin:0 0 1.5rem}.doc table.stretch{width:100%}.doc table.tableblock thead th{border-bottom:2.5px solid #edf2f7;padding:.5rem}.doc table.tableblock>:not(thead) th,.doc table.tableblock td{border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:.5rem}.doc .halign-left{text-align:left}.doc .halign-right{text-align:right}.doc .halign-center{text-align:center}.doc .valign-top{vertical-align:top}.doc .valign-bottom{vertical-align:bottom}.doc .valign-middle{vertical-align:middle}.doc .admonitionblock{margin:0 0 1.5rem;border-left:4px solid #2d3748;border-radius:.25rem}.doc .admonitionblock .content,.doc .admonitionblock p{font-size:.88889rem}.doc .admonitionblock .content>:last-child,.doc .admonitionblock .content>:only-child{margin:0}.doc .admonitionblock pre{font-size:.83333rem}.doc .admonitionblock>table{border-collapse:collapse;table-layout:fixed;position:relative;width:100%}.doc .admonitionblock .content{padding:1rem 1rem .75rem;width:100%}.doc .admonitionblock .listingblock .content{padding:0}.doc .admonitionblock .icon{display:none}.doc .admonitionblock a.btn{display:inline-block;background:#000;color:#fff!important;padding:.5rem 2rem;border-radius:.5rem}.doc .admonitionblock a.btn::after{display:none!important}.doc .admonitionblock.warning{background-color:#fed7d7;color:#742a2a;border-left-color:#e53e3e}.doc .admonitionblock.warning pre{background-color:#fff5f5;color:#c53030}.doc .admonitionblock.warning a.btn{background-color:#e53e3e}.doc .admonitionblock.warning a{color:#f56565}.doc .admonitionblock.caution{background-color:#feebc8;color:#7b341e;border-left-color:#dd6b20}.doc .admonitionblock.caution a{color:#ed8936}.doc .admonitionblock.caution a:hover{color:#f6ad55}.doc .admonitionblock.caution a.btn{background-color:#dd6b20}.doc .admonitionblock.caution pre{background-color:#fffaf0;color:#c05621}.doc .admonitionblock.tip{background-color:#bee3f8;color:#2a4365;border-left-color:#3182ce}.doc .admonitionblock.tip a{color:#3182ce}.doc .admonitionblock.tip a:hover{color:#4299e1}.doc .admonitionblock.tip a.btn{background-color:#3182ce}.doc .admonitionblock.tip pre{background-color:#ebf8ff;color:#2b6cb0}.doc .admonitionblock.note{background-color:#edf2f7;color:#1a202c;border-left-color:#718096}.doc .admonitionblock.note a{color:#718096}.doc .admonitionblock.note a:hover{color:#a0aec0}.doc .admonitionblock.note a.btn{background-color:#718096}.doc .admonitionblock.important{background-color:#e9d8fd;color:#44337a;border-left-color:#805ad5}.doc .admonitionblock.important a{color:#805ad5}.doc .admonitionblock.important a:hover{color:#9f7aea}.doc .admonitionblock.important a.btn{background-color:#805ad5}.doc .imageblock{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.doc .imageblock img{display:block}.doc .image>img,.doc .imageblock img{height:auto;max-width:100%}#preamble .abstract blockquote{padding:.75em 1em}#preamble .abstract .title,#preamble .abstract blockquote{background:#fff;border-left:5px solid #edf2f7;color:#4a5568;font-size:.88889rem}#preamble .abstract .title{margin-bottom:0;font-weight:600;padding:.2em 1em}.doc .quoteblock blockquote{background:#f7fafc;border-left:5px solid #4a5568;color:#4a5568;padding:.25rem 2rem}.doc .quoteblock .attribution{color:#e2e8f0;font-size:.83333rem;margin-top:.75rem}.doc .quoteblock .paragraph{font-style:italic}.doc .quoteblock cite{padding-left:1em}.doc table.tableblock .paragraph{margin:0;padding:0}.doc .olist .admonitionblock,.doc .ulist .admonitionblock,.doc table.tableblock .admonitionblock{padding:0}.doc ol,.doc ul{margin:0;padding:0 0 0 2rem}.doc ol.arabic{list-style-type:decimal}.doc ol.decimal{list-style-type:decimal-leading-zero}.doc ol.loweralpha{list-style-type:lower-alpha}.doc ol.upperalpha{list-style-type:upper-alpha}.doc ol.lowerroman{list-style-type:lower-roman}.doc ol.upperroman{list-style-type:upper-roman}.doc ol.lowergreek{list-style-type:lower-greek}.doc ul.checklist{padding-left:.5rem;list-style:none}.doc ul.checklist p>i.fa-check-square-o:first-child,.doc ul.checklist p>i.fa-square-o:first-child{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:1.25rem}.doc ul.checklist i.fa-check-square-o::before{content:"\2713"}.doc ul.checklist i.fa-square-o::before{content:"\274f"}.doc .dlist .dlist,.doc .dlist .olist,.doc .dlist .ulist,.doc .olist .dlist,.doc .olist .olist,.doc .olist .ulist,.doc .ulist .dlist,.doc .ulist .olist,.doc .ulist .ulist{margin-top:.5rem}.doc .olist li,.doc .ulist li{margin-bottom:.5rem}.doc .admonitionblock .listingblock,.doc .olist .listingblock,.doc .ulist .listingblock{padding:0}.doc div.title{margin-bottom:1rem;font-weight:600}.doc .listingblock .content{position:relative}.doc .exampleblock .title,.doc .imageblock .title,.doc .listingblock .title,.doc .literalblock .title,.doc .openblock .title,.doc .tableblock caption{color:#4a5568;font-size:.88889rem;font-weight:600;font-style:italic;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;letter-spacing:.01em;padding-bottom:.075rem;text-align:left}.hide-table-captions .doc .tableblock caption{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.doc .admonitionblock .title{font-weight:700;font-style:normal;font-size:.8rem}.doc .imageblock .title{margin-top:.5rem;padding-bottom:0}.doc .admonitionblock .title+.paragraph,.doc .exampleblock>.content>:first-child{margin-top:0}.doc .sidebarblock{background:#e2e8f0;border-radius:.75rem;padding:.75rem 0 1.5rem}.doc .sidebarblock>.content>.title{font-size:1.25rem;font-weight:600;line-height:1.3;margin-bottom:-.3em;text-align:center}.doc .sidebarblock>.content>:not(.title):first-child{margin-top:0}.doc .listingblock.hidden{display:none}.doc .listingblock.wrap pre,.doc .tableblock pre{white-space:pre-wrap}.doc pre.highlight code,.doc pre:not(.highlight){background:#f7fafc;display:block;overflow-x:auto;height:100%;padding:1.5rem .5rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.doc .listingblock:not(.has-title) pre.highlight{border-radius:.5rem}.doc pre.highlight{position:relative;overflow-x:auto}.doc .listingblock .code-inset[data-lang]::before{content:attr(data-lang);font-size:.69444rem;font-family:Roboto Mono,monospace;letter-spacing:.05em;line-height:1;text-transform:uppercase;position:absolute;top:.5rem;right:1.5rem;margin-right:.25rem}.doc .listingblock .code-inset{display:none}.doc .listingblock:hover .code-inset{display:block}.doc .listingblock.noheader code.copied::before{display:none}.doc .dlist dt{font-style:italic}.doc .dlist dd{margin:0 0 .3rem 1.5rem}.doc .colist{font-size:.88889rem}.doc .colist>table>tbody>tr>:first-child,.doc .colist>table>tr>:first-child{padding:.25em .5rem 0;vertical-align:top}.doc .colist>table>tbody>tr>:last-child,.doc .colist>table>tr>:last-child{padding:.25rem 0}.doc .conum[data-value]{border:1px solid;border-radius:100%;display:inline-block;font-family:Nunito Sans,Helvetica Neue,helvetica,roboto,arial,sans-serif;font-size:.75rem;font-style:normal;height:1.25em;line-height:1.2;text-align:center;width:1.25em;letter-spacing:-.25ex;text-indent:-.25ex}.doc .conum[data-value]::after{content:attr(data-value)}.doc .conum[data-value]+b{display:none}.doc b.button{white-space:nowrap}.doc b.button::before{padding-right:.25em}.doc b.button::after{padding-left:.25em}.doc kbd{display:inline-block;font-size:.66667rem;line-height:1.45;background:#f7fafc;border:1px solid #cbd5e0;border-radius:.25em;-webkit-box-shadow:0 1px 0 #cbd5e0,0 0 0 .1em #fff inset;box-shadow:0 1px 0 #cbd5e0,inset 0 0 0 .1em #fff;padding:.25em .5em;white-space:nowrap;vertical-align:middle;position:relative;top:-.1em}.doc .keyseq,.doc kbd{line-height:1}.doc .keyseq{font-size:.88889rem}.doc .keyseq kbd{margin:0 .125em}.doc .keyseq kbd:first-child{margin-left:0}.doc .keyseq kbd:last-child{margin-right:0}.doc .menuseq i.caret::before{content:"\203a";font-size:1.1em;font-weight:600;line-height:.90909}.doc .icon i::after,.doc .menuseq,.doc .path,.doc a.bare,.doc b.button,.doc code,.doc kbd{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.doc td.tableblock a,.doc td.tableblock code,.doc th.tableblock{word-break:break-word}.doc table.no-break td.tableblock a,.doc table.no-break td.tableblock code,.doc table.no-break th.tableblock{word-break:normal}.doc mark{background:#fefcbf;padding:.25rem}.doc img,.doc object{max-width:100%}.doc a.button{color:#fff}.doc .button{display:inline-block;background:#718096;color:#fff;padding:.5rem 2rem;border-radius:.25rem;margin-bottom:2rem;-webkit-transition:all .2s;transition:all .2s}.doc .button:hover{background:#a0aec0;color:#fff}.doc .button::after{display:none!important}.doc .paragraph.expertise p{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.doc .paragraph.expertise.Intermediate p{background:#feebc8;color:#c05621}.doc .paragraph.expertise.Advanced p{background:#c6f6d5;color:#2f855a}.doc .paragraph.release p{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.doc .paragraph.release.core p{background:#feebc8;color:#c05621}.doc .paragraph.release.full p{background:#c6f6d5;color:#2f855a}.doc .paragraph.type p{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.doc .paragraph.type.function p{background:#fed7d7;color:#c53030}.doc .paragraph.type.procedure p{background:#bee3f8;color:#2b6cb0}.doc .responsive-embed,.doc .videoblock{position:relative;padding-bottom:56.25%;height:0;margin-bottom:2rem}.doc .videoblock iframe,.doc .videoblock video,.responsive-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%}.doc .more::after{display:inline-block;content:"→";margin-left:4px;margin-top:-4px;-webkit-transition:all .3s;transition:all .3s}.doc .more:hover::after{margin-left:12px}.doc table.tableblock{border-collapse:collapse;font-size:.83333rem;margin:2rem 0;border-radius:.25em;overflow:hidden}.doc table.tableblock.frame-all tr:last-child td,.doc table.tableblock.frame-ends tr:last-child td{border-bottom:3px solid #e2e8f0}.doc .tableblock thead{background:#f7fafc;border-bottom:#edf2f7}.doc table.tableblock,.doc table.tableblock>*>tr>*{border:0 solid #edf2f7}.doc table.grid-all>*>tr>*{border-width:1px}.doc table.grid-cols>*>tr>*{border-width:0 1px}.doc table.grid-rows>*>tr>*{border-width:1px 0}.doc table.grid-all>thead th,.doc table.grid-rows>thead th{border-bottom-width:2.5px}.doc table.frame-all{border-width:1px}.doc table.frame-ends{border-width:1px 0}.doc table.frame-sides{border-width:0 1px}.doc table.frame-none>colgroup+*>:first-child>*,.doc table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}.doc table.frame-none>:last-child>:last-child>*,.doc table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}.doc table.frame-ends>*>tr>:first-child,.doc table.frame-none>*>tr>:first-child{border-left-width:0}.doc table.frame-ends>*>tr>:last-child,.doc table.frame-none>*>tr>:last-child{border-right-width:0}.doc table.stripes-all>tbody>tr,.doc table.stripes-even>tbody>tr:nth-of-type(2n),.doc table.stripes-hover>tbody>tr:hover,.doc table.stripes-odd>tbody>tr:nth-of-type(odd){background:#f7fafc}.doc .emphasis,.doc .lead{font-weight:400}.doc .tabbed{padding:13px 0 0;margin:0 -1rem 1.5rem;background:#f7fafc;border:1px solid #e6f8ff;border-top-left-radius:6px;border-top-right-radius:6px}.doc .tabbed-tabs{margin:0 1rem;padding:0}.doc .tabbed-tabs,.doc .tabbed-tabs .tabbed-tab{display:-webkit-box;display:-ms-flexbox;display:flex}.doc .tabbed-tabs .tabbed-tab{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;list-style-type:none;font-size:.7rem;font-weight:600;padding:.4rem .6rem;margin-right:.5rem;background:#edf2f7;border-top-left-radius:6px;border-top-right-radius:6px;border:1px solid #edf2f7;border-top:3px solid #cbd5e0;border-bottom:none;cursor:pointer}.doc .tabbed-tabs .tabbed-tab--active{margin-bottom:-1px;background:#fff;color:#0056b3;border:1px solid #cbd5e0;border-top:3px solid #0056b3;border-bottom:none}.doc .tabbed-container{padding:1rem;background:#fff;border:1px solid #cbd5e0;border-top-left-radius:6px;border-top-right-radius:6px}.doc .tabbed-target{display:none;margin-bottom:0}.doc .tabbed-target--active{display:block}.page.unresolved{background:#9b2c2c;color:#fff!important}.doc .graph-app{position:relative}.doc .graph-app-logo{position:absolute;top:1rem;right:1rem}.doc a.external{position:relative}.doc a.external::after{position:relative;display:inline-block;margin:0 .2rem;content:"→";color:#805ad5;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:all .2s linear;transition:all .2s linear;top:0}.doc a.external:hover::after{top:-12px;opacity:0}.doc .no-arrows a::after{display:none!important}.doc .no-bullets ul{padding-left:0;list-style-type:none}.exampleblock>.content{margin-top:.75rem;padding:.5rem .75rem;border:1px solid #e2e8f0}.tabbed-container>.exampleblock>.content{border:none}.doc details{margin-bottom:1.5rem}.doc details[open] summary{font-weight:700}.doc details div.content{margin:.5rem 0 0 1.5rem}@media screen and (min-width:1024px){body.cheat-sheet .doc{-webkit-box-flex:1;-ms-flex:auto;flex:auto;font-size:.94444rem;margin:0 2rem;max-width:61.11111rem;min-width:0;padding-bottom:4rem}}body.cheat-sheet{opacity:0}body.cheat-sheet .article>.content{background:#f7fafc;padding-top:0}body.cheat-sheet .navbar,body.cheat-sheet .search .search-container .search-form{background:#fff;border-top-color:#63b3ed}body.cheat-sheet .navbar,body.cheat-sheet .navbar-brand .navbar-item:first-child,body.cheat-sheet .navbar-brand .navbar-item:first-child a{color:#718096}@media screen and (min-width:1024px){body.cheat-sheet .navbar-end .navbar-link,body.cheat-sheet .navbar-end .navbar-link:hover,body.cheat-sheet .navbar-end>.navbar-item,body.cheat-sheet .navbar-end>a.navbar-item:hover{color:#718096}body.cheat-sheet .navbar-end .navbar-link::after{border-color:#718096}body.cheat-sheet .navbar-item.has-dropdown:hover .navbar-link{color:#718096}}body.cheat-sheet .navbar-burger{color:#718096}body.cheat-sheet .navbar-burger span{background:#718096}body.cheat-sheet .doc .button{background:#3182ce;color:#fff}body.cheat-sheet .doc .button:hover{background:#4299e1;color:#fff}body.cheat-sheet .nav-item .nav-item::before,body.cheat-sheet .toc-menu li a::before{background-color:#90cdf4}body.cheat-sheet .tooltip,body.cheat-sheet .tooltip--top::after{border-bottom-color:#63b3ed}body.cheat-sheet .tooltip.tooltip--bottom::after{border-top-color:#63b3ed}body.cheat-sheet #preamble .abstract .title,body.cheat-sheet #preamble .abstract blockquote{border-left-color:#63b3ed;color:#2c5282}body.cheat-sheet .tableblock .icon i{color:#3182ce}body.cheat-sheet .navbar .navbar-item.getting-started-cta .navbar-link{background:#018bff;color:#fff}body.cheat-sheet .navbar .navbar-item.getting-started-cta .navbar-link:hover{background:#0070d9}body.cheat-sheet .navbar .navbar-item.getting-started-cta .navbar-link:active{background:#0056b3}body.cheat-sheet .navbar-brand{width:18rem}body.cheat-sheet .navbar-start{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:63.11111rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:2rem}body.cheat-sheet .navbar-start .navbar-link{margin-left:auto}body.cheat-sheet .navbar-link a{color:#3182ce}body.cheat-sheet .navbar-link a.external::after{display:inline-block;content:"";height:1rem;width:1rem;padding:0;background:url(https://neo4j.com/docs/assets/img/navbar-external.svg) no-repeat;background-position:50%}body.cheat-sheet .selectors{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}body.cheat-sheet .selectors div[data-selector-type=labels]{display:none}body.cheat-sheet .dropdown .dropdown-label{display:inline;padding:.5rem 2rem .5rem .5rem}body.cheat-sheet .nav-panel-versions{height:auto;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}body.cheat-sheet .selectors .dropdown{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}body.cheat-sheet .nav-panel-types .dropdown .dropdown-label,body.cheat-sheet .nav-panel-versions .dropdown .dropdown-label{display:-webkit-box;display:-ms-flexbox;display:flex;white-space:nowrap}body.cheat-sheet .nav-panel-versions .dropdown .dropdown-styles{width:50%;display:inline-block}body.cheat-sheet .selectors>div{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-shadow:none;box-shadow:none;margin:.25rem}body.cheat-sheet .selectors .dropdown .dropdown-styles{display:inline-block;width:100%}body.cheat-sheet .content aside.toc.sidebar{display:none}body.cheat-sheet .nav-container{border-right:none}body.cheat-sheet aside.nav{background:#fff}body.cheat-sheet aside.nav .nav-panel-versions{top:3.77778rem}body.cheat-sheet aside.nav .selectors{position:sticky;top:3.77778rem;z-index:20;background-color:#f7fafc;padding:.5rem;gap:.5rem}body.cheat-sheet aside.nav .selectors .dropdown-label{font-weight:600}body.cheat-sheet .toc-menu-placeholder h2{display:none!important}body.cheat-sheet .toc .toc-menu ul{margin-top:.5rem}body.cheat-sheet .toc .toc-menu li{padding-left:.5rem}body.cheat-sheet .toc .toc-menu li[data-level="2"]{padding-left:2rem}body.cheat-sheet .toc .toc-menu li a{border:none;padding:.5rem 1rem;margin:.5rem 0}body.cheat-sheet .toc .toc-menu li[data-level="1"] a{font-weight:600}body.cheat-sheet .toc .toc-menu li[data-level="2"] a{padding:.25rem 1rem;margin:0}body.cheat-sheet .toc .toc-menu a.is-active{color:#2b6cb0;background-color:#e6f8ff;border-radius:.5rem}body.cheat-sheet .sect-header:first-child{display:none}body.cheat-sheet h2:not(.discrete){display:-webkit-box;display:-ms-flexbox;display:flex;font-size:2rem;font-weight:600;padding:0 .5rem;border:none;height:110px;margin:0;line-height:110px}body.cheat-sheet h3:not(.discrete){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 60%;flex:0 0 60%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding-right:0}body.cheat-sheet h3:not(.discrete) a{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}body.cheat-sheet h3:not(.discrete) span.label{margin-left:auto}body.cheat-sheet div.deprecated h2::after,body.cheat-sheet div.deprecated h3::after{display:none}body.cheat-sheet .sect1,body.cheat-sheet .sect2{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}body.cheat-sheet .sect2{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:#fff;padding:.5rem;margin:3.5rem 0}body.cheat-sheet .sect2:first-child{margin-top:0}body.cheat-sheet h3{-webkit-box-flex:100%;-ms-flex:100%;flex:100%;margin:0;padding:1rem .5rem}body.cheat-sheet .exampleblock{width:100%;margin-bottom:0;border-top:1px solid #e2e8f0}body.cheat-sheet .exampleblock>.content{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:0;padding:0;border:none;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem}body.cheat-sheet .example-block>.content>.listingblock{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 42%;flex:0 0 42%;margin:0;padding:1rem .5rem}body.cheat-sheet .listingblock .content{width:100%;border-radius:.5rem}body.cheat-sheet .paragraph{margin:0 0 .5rem}body.cheat-sheet .exampleblock>.content>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 42%;flex:0 0 42%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:1rem .5rem;margin:0}body.cheat-sheet .exampleblock>.content>div.labels{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;padding-bottom:0;padding-top:0;gap:.25rem}body.cheat-sheet .exampleblock>.content>div.labels span.label{margin-top:1rem}body.cheat-sheet div.labels span.group--products,body.cheat-sheet div.page-labels span.group--products{display:none}body.cheat-sheet .exampleblock>.content>div.extra{-webkit-box-flex:2;-ms-flex-positive:2;flex-grow:2;border-top:none}body.cheat-sheet .exampleblock>.content>div.description ul{list-style:circle;line-height:1.25;margin:0;padding:0 1rem}body.cheat-sheet .page-labels{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.25rem}body.cheat-sheet .sect1>h2{padding-left:1rem}body.cheat-sheet .sect1>.page-labels{padding-right:.5rem}body.cheat-sheet .page-labels:first-of-type{margin:0 0 0 auto}body.cheat-sheet .page-labels p{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;display:-webkit-box;display:-ms-flexbox;display:flex}body.cheat-sheet .label{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:1.8}body.cheat-sheet .notes{-webkit-box-flex:100%;-ms-flex:100%;flex:100%;margin:1rem .5rem}body.cheat-sheet .notes p{margin:0;padding:.5rem}body.cheat-sheet pre.highlight{white-space:pre-wrap}.toc-menu li.hidden,body.cheat-sheet .description.hidden,body.cheat-sheet .exampleblock.hidden,body.cheat-sheet .labels.hidden,body.cheat-sheet .listingblock.hidden,body.cheat-sheet .sect1.hidden,body.cheat-sheet .sect2.hidden,body.cheat-sheet span.label.hidden{display:none}@media screen and (max-width:1023px){body.cheat-sheet .toc-menu-placeholder h2{display:block;margin:0 1.5rem;padding:0}body.cheat-sheet .toc-menu-placeholder ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0 1rem;list-style:none}body.cheat-sheet .toc-menu-placeholder li{margin:.25rem}body.cheat-sheet .toc-menu-placeholder li[data-level="1"]{border-bottom:1px dotted #90cdf4;width:100%;margin-top:.5rem}body.cheat-sheet .toc-menu-placeholder li[data-level="2"]{border:1px solid #e2e8f0;font-size:.75556rem}body.cheat-sheet .toc-menu-placeholder li a{display:block;padding:0 .5rem}body.cheat-sheet .sect2{background:none;padding:0}body.cheat-sheet h3:not(.discrete){background:#edf2f7;margin:0 .5rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border:1px solid #e2e8f0}body.cheat-sheet .sect2>div{-webkit-box-flex:0;-ms-flex:0 0 80%;flex:0 0 80%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:.5rem;margin:0 .5rem;background-color:#edf2f7;border:1px solid #e2e8f0;border-radius:0}body.cheat-sheet .notes p{background:none}body.cheat-sheet .sect2>div.labels,body.cheat-sheet .sect2>div.page-labels{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}body.cheat-sheet .sect2>div.labels p{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}body.cheat-sheet .sect2>div.page-labels{border-left:none;margin-left:-.5rem}body.cheat-sheet .sect2>div.listingblock{margin-top:1rem;border-top:none}body.cheat-sheet .sect2>div.description{border-top:none;padding:.5rem 1rem}}@media print{body.cheat-sheet .feedback,body.cheat-sheet .navbar-burger,body.cheat-sheet .navbar-menu,body.cheat-sheet .navbar-search,body.cheat-sheet aside.toc.embedded,body.cheat-sheet footer{display:none}body.cheat-sheet .sect1{page-break-after:always}body.cheat-sheet .sect2,body.cheat-sheet .sect2>div.description,body.cheat-sheet .sect2>div.listingblock,body.cheat-sheet .sect2>div.notes{page-break-inside:avoid}}nav.pagination{border-top:1px solid #edf2f7;line-height:1;margin:2rem -1rem -1rem;padding:.75rem 1rem 2rem}nav.pagination,nav.pagination span{display:-webkit-box;display:-ms-flexbox;display:flex}nav.pagination span{-webkit-box-flex:50%;-ms-flex:50%;flex:50%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}nav.pagination .prev{padding-right:.5rem}nav.pagination .next{margin-left:auto;padding-left:.5rem;text-align:right}nav.pagination span::before{color:#a0aec0;font-size:.75em;padding-bottom:.1em}nav.pagination .prev::before{content:"Prev"}nav.pagination .next::before{content:"Next"}nav.pagination a{font-weight:600;line-height:1.3;position:relative}nav.pagination a::after,nav.pagination a::before{color:#a0aec0;font-weight:400;font-size:1.5em;line-height:.75;position:absolute;top:0;width:1rem}nav.pagination .prev a::before{content:"\2039";-webkit-transform:translateX(-100%);transform:translateX(-100%)}nav.pagination .next a::after{content:"\203a"}@media (max-width:1024px){nav.pagination{margin:2rem 0 0}}html.is-clipped--navbar{overflow-y:hidden}body{padding-top:3.77778rem}.navbar{background:#2d3748;color:#f7fafc;font-size:.88889rem;height:3.77778rem;position:fixed;top:0;width:100%;word-wrap:break-word;border-top:4px solid #edf2f7;border-bottom:1px solid #e2e8f0;z-index:5000;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar a{text-decoration:none;font-weight:400}.navbar a.page-name-white{color:#fff}.navbar a.no-left-padding{padding-left:0}.navbar-brand svg{margin-right:1rem}.navbar-brand svg:last-child{margin-right:0}@media screen and (max-width:420px){.navbar-brand .navbar-item{padding-left:.5rem;padding-right:.75rem}.navbar-brand .navbar-item:last-child{padding-right:0}}.navbar-logo{height:34px;width:104px}.navbar-theme{margin-left:12px}.navbar-brand .separator{padding:0 .375rem}.navbar .navbar-brand .navbar-end{display:none}@media screen and (min-width:1024px){.navbar-end .navbar-link,.navbar-end>.navbar-item{color:#f7fafc}.navbar-end .navbar-link:hover,.navbar-end>a.navbar-item:hover{background:transparent;color:#f7fafc}.navbar-end .navbar-link::after{border-color:#f7fafc}.navbar-item.has-dropdown:hover .navbar-link{background:transparent;color:#f7fafc}.navbar .navbar-brand .navbar-end{display:-webkit-box;display:-ms-flexbox;display:flex}}.navbar-brand{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.navbar-burger,.navbar-search{color:#f7fafc;background:none;border:none;outline:none;line-height:1;height:3.77778rem;position:relative;width:2.75rem;padding:0}.navbar-search{margin-left:auto}.navbar-brand .navbar-search svg{margin-right:0}.navbar-burger span{background:#f7fafc;display:block;height:1px;left:50%;margin-left:-7px;position:absolute;top:50%;width:15px}.navbar-burger span:first-child{margin-top:-6px}.navbar-burger span:nth-child(2){margin-top:-1px}.navbar-burger span:nth-child(3){margin-top:4px}.navbar-burger.is-active span:first-child{margin-left:-5px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-transform-origin:left top;transform-origin:left top}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){margin-left:-5px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:left bottom;transform-origin:left bottom}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a5568;display:block;line-height:1.8;padding:.5rem 1rem;position:relative}.navbar-item{-webkit-box-flex:0;-ms-flex:none;flex:none}.navbar-item.has-dropdown .navbar-link{padding:0 2.5em 0 0}.navbar-item .icon{width:1.1rem;height:1.1rem;display:block}@media screen and (min-width:1024px){.navbar-dropdown{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.navbar-mobile{display:none;font-weight:400}}@media screen and (max-width:1023px){.navbar-item .navbar-link{font-weight:700;padding-left:0}}.navbar-dropdown .navbar-item{padding-left:0}.navbar-dropdown a{color:#3182ce}.navbar-dropdown a:hover{color:#2c5282}@media screen and (min-width:1024px){.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}}.navbar-divider{background-color:#edf2f7;border:none;height:1px;margin:.25rem 0}@media screen and (max-width:1023px){.navbar-brand .navbar-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar-menu{background:#fff;padding:.5rem 0}.navbar-menu.is-active{display:block;-webkit-box-shadow:0 8px 16px rgba(10,10,10,.1);box-shadow:0 8px 16px rgba(10,10,10,.1);overflow-y:auto;position:fixed;top:3.5rem;left:0;right:0;bottom:0;max-height:none;z-index:500;background:#f7fafc}.navbar-menu .navbar-link:hover,.navbar-menu a.navbar-item:hover{background-color:transparent}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.navbar-burger,.navbar-search{display:none}.navbar-item,.navbar-link{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar-item.has-dropdown{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.navbar-item.docs .navbar-dropdown{width:320px}.navbar-item.labs .navbar-dropdown{min-width:280px}.navbar-item.developer .navbar-dropdown{width:310px}.navbar-item .navbar-dropdown{max-width:320px}.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.has-dropdown::after{border-width:0 0 1px 1px;border-style:solid;content:" ";display:block;height:.5em;pointer-events:none;position:absolute;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);width:.5em;margin-top:-.375em;right:1.125em;top:50%}.navbar-item.has-dropdown::before{position:absolute;content:"";display:block;top:100%;left:50%;margin-top:-.4rem;margin-left:-1.5rem;z-index:1;width:0;height:0;border-left:.4rem solid transparent;border-right:.4rem solid transparent;border-bottom:.4rem solid transparent}.developer.navbar-item.has-dropdown:hover::before{border-bottom-color:#38a169}.docs.navbar-item.has-dropdown:hover::before{border-bottom-color:#63b3ed}.navbar-item.labs.has-dropdown:hover::before{border-bottom-color:#b794f4}.navbar-menu{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.navbar-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border:1px solid #edf2f7;border-top:none;border-radius:0 0 .25rem .25rem;display:none;top:100%;right:0;min-width:100%;position:absolute}.navbar-dropdown .navbar-item{padding:.5rem 1rem;white-space:nowrap}.navbar-dropdown .navbar-item:last-child{border-radius:inherit}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown.is-right{left:auto;right:0}.navbar-dropdown a.navbar-item:hover{background-color:transparent}}.navbar .button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#dd6b20;border:1px solid #2c5282;border-radius:.15rem;height:1.75rem;color:#ebf8ff;padding:0 .75em;white-space:nowrap}.navbar-item.developer .navbar-dropdown,.navbar-item.training .navbar-dropdown{border-top-color:#38a169}.navbar-item.docs .navbar-dropdown{border-top-color:#63b3ed}.navbar-item.labs .navbar-dropdown{border-top-color:#b794f4}.navbar-item.kb .navbar-dropdown{border-top-color:#805ad5}@media screen and (min-width:1024px){.navbar-dropdown{border-top:4px solid;margin-top:0;border-radius:4px;max-width:480px}}.project{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;border-bottom:1px solid #edf2f7}.project .project-name{color:#4a5568;font-weight:600;font-size:.88889rem}.project-description{margin:.2rem 0;font-size:.8rem;color:#718096;white-space:normal}.project-links{margin:0;padding:0;white-space:normal}.project-links li{list-style-type:none;display:inline}.project-links li::after{color:#cbd5e0;content:"|"}.project-links li:last-child::after{content:""}.project-links li:first-child{padding-left:0}.project-links li:last-child{padding-right:0;border-right:0}.project-link{font-size:.8rem;font-weight:600;display:inline-block;margin-right:.2rem}#search-open{padding-left:0}#auth{padding-left:16px}#auth .auth-user{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;border-radius:50%;width:1.9rem;height:1.9rem;font-size:.7rem;background-size:cover;background-position:50%;border:2px solid #38a169}.getting-started-cta .project:hover{background:#eef1f6}.getting-started-cta .project-subtitle{color:#718096;font-size:13px;font-weight:400}.getting-started-cta .aura-ticker{font-size:.8rem;border:1px solid #0070d9;color:#018bff;border-radius:9999px;padding:0 8px;margin-left:4px}.getting-started-cta.navbar-item.has-dropdown::before{margin-left:0}.navbar-item.has-dropdown.getting-started-cta:hover::before{border-bottom-color:#718096}.navbar-item.has-dropdown.getting-started-cta::after{content:none}footer.footer{background-color:#2d3748;color:#a0aec0;font-size:.83333rem;line-height:1.8;padding:2rem 0}.footer .wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;max-width:40rem;margin:auto;-ms-flex-wrap:wrap;flex-wrap:wrap}.footer .column{width:50%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-width:180px;padding:1.5rem}@media screen and (min-width:1024px){.footer .wrapper{-webkit-box-flex:1;-ms-flex:auto;flex:auto;max-width:1280px}.footer .column{width:25%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:1.5rem}}@media screen and (max-width:1023px){.footer .column.links{padding-top:0;padding-bottom:0}.footer .column.links h2{margin-top:0}}.footer p{margin:.5rem 0}.footer a{color:#cbd5e0;font-weight:200}.footer a:hover{color:#edf2f7}footer .logo-footer{margin-bottom:25px;height:34px;background:url(https://dist.neo4j.com/wp-content/uploads/20210422201812/neo4j-logo-2020-white.svg) no-repeat}.footer h2{font-size:.83333rem;font-weight:200;color:#cbd5e0;margin:65px 0 .5rem}.footer ul{margin:.5rem 0;padding:0}.footer ul li{list-style-type:none;margin:0 0 .2rem}.footer ul li i{color:#a0aec0;font-size:1rem;width:.8rem;text-align:center;display:inline-block;margin-right:.5rem}.footer ul li.speaker-program{margin-top:2rem}footer ul li .speaker-program a{font-size:normal} -/*! Adapted from the GitHub style by Vasily Polovnyov */.hljs-comment,.hljs-quote{color:#a0aec0;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#718096;font-weight:500}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:#3182ce}.hljs-doctag,.hljs-string{color:#2f855a}.hljs-section,.hljs-selector-id,.hljs-title{color:#553c9a;font-weight:500}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#3182ce;font-weight:500}.hljs-attribute,.hljs-name,.hljs-tag{color:#805ad5;font-weight:400}.hljs-link,.hljs-regexp{color:#68d391}.hljs-bullet,.hljs-symbol{color:#434190}.hljs-built_in,.hljs-builtin-name{color:#3182ce}.hljs-meta{color:#a0aec0}.language-cypher-shell,.language-shell{color:#718096}.language-cypher-shell>.cypher,.language-shell>.bash{color:initial}.language-cypher-shell>.hljs-meta,.language-shell>.hljs-meta{color:#434190;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.language-shell .bash{color:#2d3748}.hljs-deletion{background:#edf2f7}.hljs-addition{background:#c6f6d5}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:500}@page{margin:.5in}@media print{.hide-for-print{display:none!important}html{font-size:.9375em}a{color:inherit!important;text-decoration:underline}a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none}img,object,svg,tr{page-break-inside:avoid}thead{display:table-header-group}pre{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:pre-wrap}body{padding-top:2rem}.navbar{background:none;color:inherit;position:absolute}.navbar *{color:inherit!important}#topbar-nav,.nav-container,.toolbar{display:none}.doc{color:inherit;margin:auto;max-width:none;padding-bottom:2rem}.doc .listingblock code[data-lang]::before{display:block}footer.footer{background:none;border-top:1px solid #edf2f7;color:#e2e8f0;padding:.5rem}.footer *{color:inherit}}.gram{width:100%;height:576px;background:#f7fafc;border-radius:.5rem}.gram svg{height:100%;width:100%}.label{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.tableblock .label{margin-top:.2rem}.label--apoc-core,.label--core{background:#bee3f8;color:#2b6cb0}.label--apoc-full,.label--full{background:#c6f6d5;color:#2f855a}.label--procedure{background:#c3dafe;color:#4c51bf}.label--function{background:#e9d8fd;color:#6b46c1}.label--current{background:#3182ce;color:#fff}.label--beginner,.label--free{background:#0b297d;color:#fff}.label--not-on-aura{background:#c53030;color:#fff}.label--aura-db-enterprise{background:#3182ce;color:#fff}.label--aura,.label--enterprise,.label--enterprise-edition,.label--enterprise-only,.label--professional{background:#018bff;color:#fff}.label--added,.label--changed,.label--new,.label--renamed,.label--updated,.label--yes{background:#9ae6b4;color:#000}.label--na,.label--no,.label--removed{background:#fc8181;color:#000}.label--deprecated,.label--discontinued{background:#f6ad55;color:#000}.label--danger,.label--warning{background:#ffde63;color:#000}.label--default,.label--recommended{background:#a3bffa;color:#000}.label--linux,.label--mac-os,.label--unix,.label--windows{background:#4fd1c5;color:#000}.label--cypher,.label--functionality,.label--syntax{background:#e6e6e6;color:#000}.label--cluster-member-core{background:#a3bffa;color:#000}.label--cluster-member-read-replica{background:#9ae6b4;color:#000}.label--cluster-member-single{background:#faf089;color:#000}.label--admin-only{background:#2f855a;color:#fff}.glossary{display:none}.glossary-term{display:inline-block;color:#63b3ed;border-bottom:1px dotted #63b3ed}.glossary-term::after{display:inline-block;content:url(https://neo4j.com/docs/assets/img/info.svg);margin-left:6px;margin-top:-4px}code .glossary-term::after{display:none}.tooltip{font-size:.8rem;position:absolute;z-index:5000;background:#fff;border-bottom:3px solid #4a5568;border-radius:.25rem;width:220px;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.tooltip::after{width:0;height:0;position:absolute;content:"";display:block}.tooltip.tooltip--top::after{top:0;margin-top:-.25rem;border-bottom:.5rem solid #4a5568}.tooltip.tooltip--bottom::after,.tooltip.tooltip--top::after{left:50%;margin-left:-.25rem;border-left:.5rem solid transparent;border-right:.5rem solid transparent}.tooltip.tooltip--bottom::after{bottom:0;margin-bottom:-.5rem;border-top:.5rem solid #4a5568}.tooltip .tooltip-header{background:#2d3748;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#fff;padding:.5rem 1rem;font-weight:600}.tooltip .tooltip-body{padding:.5rem 1rem;color:#718096;font-size:.8rem}.tooltip .tooltip-body p:first-child{margin-top:0}.tooltip .tooltip-body p:last-child{margin-bottom:0}.tooltip .tooltip-body a{color:#3182ce;font-weight:600}section.hero{padding:8rem 0 0;background:#2d3748;background:#020024;background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568);text-align:left}body.landing .hero h1,body.landing .hero h2,body.landing .hero p,section.hero h1,section.hero h2,section.hero p{padding:0 1rem;max-width:680px;margin:auto}.landing .hero h1,.landing .hero h2,section.hero h1,section.hero h2{font-size:1.2rem;font-weight:300;display:block;color:#cbd5e0;margin-bottom:1rem}.landing .hero h1::after,.landing .hero h2::after,section.hero h1::after,section.hero h2::after{display:block;background-color:#38a169;height:3px;width:80px;margin-top:1rem;margin-bottom:2rem;content:""}.landing .hero p,section.hero p{font-size:1.8rem;color:#e2e8f0;font-weight:300}.landing .doc{max-width:none;padding:0;margin:0;width:100%;-webkit-box-flex:0!important;-ms-flex:none!important;flex:none!important}.landing .doc .sectionbody,.landing .doc h2{padding-left:1rem;padding-right:1rem;max-width:980px;margin:auto}.landing .doc .sect1{padding:2em 0;margin-top:0}.landing .doc .sect1.hero{padding-bottom:0!important}.landing .doc h1{display:none}.landing .doc .secondary{background:#f7fafc}.landing .doc .secondary.leading{margin-top:0;background:-webkit-gradient(linear,left top,left bottom,from(#e2e8f0),color-stop(35%,#f7fafc),to(#fff));background:linear-gradient(180deg,#e2e8f0,#f7fafc 35%,#fff);padding-top:4rem}.landing .doc h2{border-bottom:0}.landing .doc h2::after{display:block;background-color:#38a169;height:3px;width:80px;margin-top:1rem;margin-bottom:0;content:""}body.landing.labs h1.page{display:none}body.landing .ulist.buttons{line-height:1;margin:-1rem 0 0;text-align:center;font-size:1rem;display:block}body.landing .ulist.buttons>:first-child{padding-top:2rem}body.landing .ulist.buttons>:last-child{padding-bottom:calc(1rem + 40px)}body.landing .ulist.buttons::after,body.landing .ulist.buttons::before{content:" ";display:block;height:40px;-webkit-clip-path:polygon(100% 0,0 calc(100% + 1px),100% calc(100% + 1px));clip-path:polygon(100% 0,0 calc(100% + 1px),100% calc(100% + 1px))}body.landing .ulist.buttons::after{margin-top:-40px}body.landing .ulist.buttons p{font-size:1rem!important;display:inline;padding:0;line-height:1}body.landing .ulist.buttons ul{padding:0}body.landing .ulist.buttons li{list-style-type:none;display:block;margin:0 0 1rem}body.landing .ulist.buttons li a{display:inline-block;margin:0 .25rem;background:#2d3748;color:#fff;font-weight:600;padding:1rem 2rem;border-radius:.25rem;-webkit-transition:all .1s linear;transition:all .1s linear}@media (min-width:760px){body.landing .ulist.buttons li,body.landing .ulist.buttons li a{display:inline-block}}.landing .clearfix{clear:both}.landing .secondary::after{content:"";display:block;clear:both}@media (min-width:760px){.landing .flex-container .sectionbody{display:-webkit-box;display:-ms-flexbox;display:flex}.landing .flex-container .column{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:1rem}.landing .fleflex-containerx .column img{display:block;margin:auto;max-width:100%}.landing .flex-container .column .paragraph{margin-top:0}.landing .flex-container .column h3{margin-bottom:2em}.landing .flex-container .column h3::after{display:block;background-color:#63b3ed;height:2px;width:40px;margin-top:12px;content:""}.landing .flex-container .column:first-child{margin-left:-12px}.landing .flex-container .column:last-child{margin-right:-12px}}.landing .discrete h2,.landing .toc.sidebar{display:none}.developer.landing .use-cases .sect2 .paragraph img{width:128px}.developer.landing .use-cases .sect2 .paragraph:nth-child(3){min-height:82px}.hero{padding:8rem 0 0!important;background:#2d3748;background:#020024;background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568);text-align:left}.hero h1,.hero h2,.hero p,.landing .doc .hero h1,.landing .doc .hero h2,.landing .doc .hero p{padding:0 1rem;max-width:680px;margin:auto}.hero h1,.hero h2,.landing .doc .hero h1,.landing .doc .hero h2{font-size:1.2rem;font-weight:300;display:block;color:#cbd5e0;margin-bottom:1rem}.hero h1::after,.hero h2::after{display:block;background-color:#38a169;height:3px;width:80px;margin-top:1rem;margin-bottom:2rem;content:""}.hero p{font-size:1.8rem;color:#e2e8f0;font-weight:300}.hero .sectionbody,.landing .doc .hero .sectionbody{width:100%;max-width:none;padding:0}.hero .paragraph{padding-bottom:5rem;margin-bottom:0}.hero svg{width:100%;height:40px}.hero svg.bottom{margin-bottom:-1rem}.hero svg.to-white{fill:#fff;margin-bottom:-1em}.hero svg.to-leading{fill:#e2e8f0!important;margin-bottom:-1em}body.docshome{background:#f7fafc}body.docshome .nav-menu>.nav-list{margin-top:0}body.docshome .nav-menu .component-title{display:none}body.docshome .nav-item[data-depth="0"]{margin-top:.5rem}body.docshome .nav-item .nav-section-header{margin-top:0;margin-bottom:0;padding-top:1.5rem!important;border-top:1px solid var(--colors-netural-25)}body.docshome .nav-menu .nav-list:first-child .nav-item:first-child .nav-section-header{border:none;padding-top:1.5rem!important}body.docshome .nav-menu .nav-item>a{padding-top:0;padding-bottom:0;line-height:1.5}body.docshome .nav-menu .nav-item>a>strong{margin-top:1.5rem!important;margin-bottom:.5rem;font-size:1rem;display:block}body.docshome .content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-bottom:2rem}body.docshome .doc{width:100%;max-width:1440px;padding:0}body.docshome .doc h2::after{display:block;background-color:#3182ce;height:3px;width:80px;margin-top:1rem;margin-bottom:0;content:""}body.docshome .doc div:not(.display) h2{display:none}body.docshome .nav-item:not(.is-active)>.nav-list{display:block}body.landing .toc{display:none}body.docshome .doc h2{border-bottom:0}body.docshome .sectionbody{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}body.docshome .sect1 .sectionbody>div.sect2{-webkit-box-flex:0;-ms-flex:0 1 440px;flex:0 1 440px}body.docshome .sect2{overflow:hidden;position:relative;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;min-width:30%;padding:1rem;margin:0 1rem 1rem 0;border-radius:.5rem;border:1px solid #d5d9de}body.docshome:not(.create-applications) .sect2{min-height:200px}body.docshome .sect2 .icon{float:left;position:absolute;top:1rem;left:1rem}body.docshome .sect2 .icon img{width:4.6rem;height:4.6rem;border-radius:50%;padding:12px}body.docshome:not(.create-applications) .sect2 .icon img{background:#e6f8ff}@media (max-width:820px){body.docshome .sect2{min-width:90%}}body.docshome .sect2 h3{font-size:1.1rem;color:#2c5282;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;line-height:1.5;margin:.5rem 2rem 0 6rem}body.docshome .sect2 h3 .anchor::before{display:none}body.docshome .sect2 .paragraph:not(.icon){text-align:left;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3;margin:.5rem 1rem 0 6rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}body.docshome .sect2 .paragraph.link{margin-top:.5rem;width:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;font-weight:600;font-size:1rem}body.docshome .sect2 .paragraph.category{display:none}body.docshome .plain-links a.external::after{all:unset}body.docshome .sect2 .paragraph.link a:not(.external)::after{margin-left:.25rem;content:"→";font-weight:600;color:#3182ce;-webkit-transition:margin .2s linear;transition:margin .2s linear}body.docshome .sect2 .ulist{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}body.docshome .sect2 ul{margin:.2rem 0 0;padding:0;text-align:right;font-size:.8rem}body.docshome .sect2 ul li{display:inline-block;margin-bottom:0}body.docshome .sect2 ul li a{display:inline-block;color:#3182ce;border:1px solid #edf2f7;padding:.1rem .7rem;border-radius:.2rem;font-size:.7rem}@media screen and (min-width:1024px){body.docshome .toolbar{display:none}}@media screen and (max-width:1023px){body.docshome .doc{padding:1rem}body.docshome .toolbar{top:0}body.docshome .nav-container{z-index:30;margin-top:2.5rem}}.feedback{position:fixed;bottom:0;right:2rem;border-top-left-radius:.25rem;border-top-right-radius:.25rem;background:#ebf8ff;color:#2c5282;padding:.5rem 1rem;width:320px;font-size:.8rem;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);z-index:1000}.feedback.negative{background:#fff5f5;color:#9b2c2c}.feedback.negative line{stroke:#9b2c2c}.feedback.negative a{color:#c53030}.feedback.positive{background:#f0fff4;color:#276749}.feedback .header{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:.25rem 0}.feedback .header,.feedback .header p{display:-webkit-box;display:-ms-flexbox;display:flex}.feedback .header p{-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1}.feedback svg{cursor:pointer}.feedback .header svg{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;margin-left:.5rem}.feedback .form div{font-size:.7rem}.feedback h2,.feedback p{font-size:.9rem}.feedback input{margin-right:.5rem}.feedback .feedback-option{float:left}.feedback label{font-size:.8rem}.feedback textarea{border-radius:.25rem;border:1px solid #90cdf4;background:#fff;width:100%;font-family:inherit;font-size:.7rem;color:#2b6cb0;padding:.5rem}.feedback circle,.feedback line,.feedback path{fill:transparent;stroke:#2b6cb0;stroke-width:1}.feedback .primary,.feedback .secondary{padding:.5rem 1rem;background:#ebf8ff;border:1px solid #2b6cb0;color:#2b6cb0;border-radius:.175rem;font-size:.8rem;font-family:inherit;font-weight:600;margin-right:.5rem;margin-bottom:1rem}.feedback .primary:active,.feedback .primary:focus,.feedback .secondary:active,.feedback .secondary:focus{outline:none}.feedback .primary{background:#2b6cb0;color:#fff}.feedback.negative textarea:active,.feedback.negative textarea:focus{outline:none}.feedback.negative .primary{background:#c53030;border-color:#c53030;color:#fff}.feedback.negative .secondary{background:#fff5f5;border-color:#c53030;color:#c53030}.feedback.negative textarea{background:#fff;border-color:#c53030;color:#c53030}.feedback .thank-you-negative,.feedback .thank-you-positive{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.feedback .thank-you-negative p{margin-bottom:.5rem}@media (max-width:1024px){.feedback{position:relative;border-radius:.25rem;max-width:40rem;min-width:0;right:auto;width:auto;-webkit-box-shadow:none;box-shadow:none;margin:1em 0 2rem}.feedback.absolute{top:auto!important;bottom:auto!important}}@media (min-width:1025px){.feedback.absolute{position:absolute;margin:0}}.feedback a{display:inline-block;margin-left:4px}body.docs .navbar,body.docs .search .search-container .search-form{background:#fff;border-top-color:#63b3ed}body.docs .navbar,body.docs .navbar-brand .navbar-item:first-child,body.docs .navbar-brand .navbar-item:first-child a{color:#718096}@media screen and (min-width:1024px){body.docs .navbar-end .navbar-link,body.docs .navbar-end .navbar-link:hover,body.docs .navbar-end>.navbar-item,body.docs .navbar-end>a.navbar-item:hover{color:#718096}body.docs .navbar-end .navbar-link::after{border-color:#718096}body.docs .navbar-item.has-dropdown:hover .navbar-link{color:#718096}}body.docs .navbar-burger{color:#718096}body.docs .navbar-burger span{background:#718096}body.docs .doc .button{background:#3182ce;color:#fff}body.docs .doc .button:hover{background:#4299e1;color:#fff}body.docs .nav-item .nav-item::before,body.docs .toc-menu li a::before{background-color:#90cdf4}body.docs .tooltip{border-bottom-color:#63b3ed}body.docs .tooltip--top::after{border-bottom-color:#4a5568}body.docs .tooltip.tooltip--bottom::after{border-top-color:#63b3ed}body.docs #preamble .abstract .title,body.docs #preamble .abstract blockquote{border-left-color:#63b3ed;color:#2c5282}body.docs .tableblock .icon i{color:#3182ce}body.docs .navbar .navbar-item.getting-started-cta .navbar-link{background:#018bff;color:#fff}body.docs .navbar .navbar-item.getting-started-cta .navbar-link:hover{background:#0070d9}body.docs .navbar .navbar-item.getting-started-cta .navbar-link:active{background:#0056b3}body.labs .navbar,body.labs .search .search-container .search-form{background:#fff;border-top-color:#b794f4}body.labs .navbar,body.labs .navbar-brand .navbar-item:first-child,body.labs .navbar-brand .navbar-item:first-child a{color:#718096}@media screen and (min-width:1024px){body.labs .navbar-end .navbar-link,body.labs .navbar-end .navbar-link:hover,body.labs .navbar-end>.navbar-item,body.labs .navbar-end>a.navbar-item:hover{color:#718096}body.labs .navbar-end .navbar-link::after{border-color:#718096}body.labs .navbar-item.has-dropdown:hover .navbar-link{color:#718096}}body.labs .navbar-burger{color:#718096}body.labs .navbar-burger span{background:#718096}body.labs .doc .button{background:#9f7aea;color:#fff}body.labs .doc .button:hover{background:#b794f4;color:#fff}body.labs .nav-item .nav-item::before,body.labs .toc-menu li a::before{background-color:#90cdf4}body.labs .tooltip,body.labs .tooltip--top::after{border-bottom-color:#b794f4}body.labs .tooltip.tooltip--bottom::after{border-top-color:#b794f4}body.labs #preamble .abstract .title,body.labs #preamble .abstract blockquote{border-left-color:#b794f4;color:#553c9a}body.labs .tableblock .icon i{color:#805ad5}body.labs .navbar .navbar-item.getting-started-cta .navbar-link{background:#b794f4;color:#fff}body.landing.labs .hero{background-color:#805ad5;background-image:url(https://cdn.neo4jlabs.com/images/lab-pipette-big.jpg);background-repeat:no-repeat;background-size:cover}body.landing.labs .hero h2{color:#fff}body.landing.labs h2::after{background-color:#805ad5!important}body.landing.labs .hero p{color:#fff}.landing.labs .hero .buttons::before{background-color:#805ad5}.landing.labs .hero .buttons::after{background-color:#e2e8f0}body.landing.labs .buttons>*{background:#805ad5}body.landing.labs .buttons li a{background:#553c9a;color:#fff}body.landing.labs .buttons li a:hover{background:#6b46c1}body.landing.labs .buttons li a:active{background:#3182ce}body.developer .navbar,body.developer .search .search-container .search-form{border-top-color:#38a169}body.developer .nav-item .nav-item::before,body.developer .toc-menu li a::before{background-color:#a0aec0}.developer .navbar-brand #neo4j-group{fill:#fff}.developer .navbar-brand #developer{fill:#cbd5e0}body.developer .doc .button{background:#2f855a;color:#fff}body.developer .doc .button:hover{background:#38a169;color:#fff}body.developer .doc .button:active{background:#718096;color:#fff}body.developer #preamble .abstract .title,body.developer #preamble .abstract blockquote{border-left-color:#38a169}body.developer .tableblock .icon i{color:#38a169}body.developer .navbar .navbar-item.getting-started-cta .navbar-link{background:#4a5568;color:#fff}body.landing.developer .navbar{border-bottom:0}body.landing.developer .hero{background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568)}@media (min-width:760px){.landing.developer .languages h3{display:none}.landing.developer .languages .flex-container{text-align:center}}.landing.developer .languages ul{padding:0;margin:0}.landing.developer .languages ul li{margin-bottom:0;list-style:none}.landing.developer .languages ul li a{font-weight:400}body.landing.developer .hero .buttons::before{background-color:#718096}body.landing.developer .hero .buttons::after{background-color:#e2e8f0}body.landing.developer .sect1 .buttons>*{background:#718096}body.landing.developer .buttons li a{background:#2d3748;color:#fff}body.landing.developer .buttons li a:hover{background:#4a5568}body.landing.developer .buttons li a:active{background:#38a169}body.kb svg.kb{margin-bottom:10px}body.kb .navbar,body.kb .search .search-container .search-form{border-top-color:#805ad5}.kb .navbar-brand #developer{fill:#cbd5e0}.kb .navbar-brand #neo4j-group{fill:#fff}body.kb .navbar .navbar-item.getting-started-cta .navbar-link{background:#805ad5;color:#fff}body.training .navbar,body.training .search .search-container .search-form{border-top-color:#d53f8c;border-bottom:0}.training .navbar-brand #developer{fill:#cbd5e0}.training .navbar-brand #neo4j-group{fill:#fff}body.graphgists .sect1.hero h2::after{background-color:#805ad5!important}body.graphgists svg.graphgists{margin-bottom:10px}body.graphgists .navbar,body.graphgists .search .search-container .search-form{border-top-color:#805ad5;border-bottom-color:#2d3748}.graphgists .navbar-brand #developer{fill:#cbd5e0}.graphgists .navbar-brand #neo4j-group{fill:#fff}body.graphgists .navbar .navbar-item.getting-started-cta .navbar-link{background:#805ad5;color:#fff}.doc pre.has-header code{border-top-left-radius:0!important;border-top-right-radius:0!important}.doc .listingblock .code-inset,.doc .listingblock .code-title{padding:.5rem}.doc .listingblock .code-title{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.doc .code-header div{padding:.25rem 0;font-weight:600}.doc .listingblock .code-spacer{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.doc .listingblock .code-language,.doc .listingblock .code-title{color:#f7fafc}.doc .listingblock .code-header{background:#4a5568;color:#f7fafc;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.doc .listingblock .code-language{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:.25rem 0}.doc .listingblock .code-inset .btn{padding:.6rem 0}.doc .code-footer .btn,.doc .listingblock .code-inset .btn{border:0;border-radius:.175rem;font-weight:600;line-height:1;text-align:center}.doc .code-footer .btn{background:#4a5568!important;color:#f7fafc!important;margin:.25rem 0 .25rem .5rem;padding:.6rem}.doc .code-footer .btn:focus,.doc .listingblock .code-inset .btn:focus{outline:none}.doc .listingblock .code-inset .btn-copy:hover{cursor:pointer}.doc .listingblock .code-inset .btn.btn-copy{padding:0}.doc .listingblock .code-inset .btn-copy.fa-check{background:#718096;margin:.2rem;padding:.4rem}.doc .listingblock .code-inset .btn-copy.fa-check::before{display:block;background:transparent;color:#fff!important}.doc .listingblock .code-inset{border-top-right-radius:.5rem;color:#718096;font-size:.69444rem;position:absolute;padding:.25rem .5rem;z-index:1;right:0}.doc .code-inset .copy-success.hidden{display:none}.doc .code-inset .copy-success .btn{position:absolute;right:-1rem;background:#48bb78;color:#fff!important;padding:.4rem;margin:0;line-height:1;font-size:.69444rem;width:4rem;z-index:1}.doc .code-inset .copy-success .btn::after{width:0;height:0;position:absolute;content:"";display:block;top:0;left:50%;margin-left:-.25rem;margin-top:-.25rem;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid #48bb78}.doc .code-footer{background:#a0aec0;color:#fff;padding:.3rem 12px .3rem 0;font-size:.8em;display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.doc .spacer{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.doc .show-more{position:absolute;bottom:0;height:2.5rem;width:100%;text-align:center;cursor:pointer}.doc .show-more a{font-weight:500;color:#f7fafc;padding:5px 10px;background:#4a5568;border-radius:30px}.doc .code-footer.has-results{border-bottom-left-radius:0;border-bottom-right-radius:0}.doc .code-footer .loading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 .6rem;color:#edf2f7;font-size:.7rem}.doc .code-results{background:#edf2f7;color:#718096;border:solid #a0aec0;border-width:1px 1px 2px;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;font-size:.75rem;overflow:auto}.doc .code-results .code-result-options{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #cbd5e0;margin:0 12px 4px}.doc .code-results .code-result-options .code-result-header{font-weight:600;text-transform:uppercase;padding:.6rem 0 .2rem}.doc .code-results button{padding:0;font-weight:600;border:0;color:#718096;background:transparent}.doc .code-results button:focus{color:#38a169;outline:none}.doc .code-results .code-result-container{width:100%;max-height:600px;overflow:auto;padding:12px}.doc .code-results .code-result-table{min-width:100%}.doc .code-results .code-result-table th{font-weight:600;text-align:left;font-size:.7rem;padding:0 .25rem 6px;color:#718096;border-bottom:1px solid #cbd5e0}.doc .code-results .code-result-table td{vertical-align:top;padding:.25rem;color:#718096}.doc .code-results .code-result-table tbody td{border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.doc .code-results .code-result-table tbody tr td:last-child{border-right-width:0}.doc .code-results .code-result-table tbody tr:hover{background:#f7fafc}.doc .code-results pre{padding:0;font-size:.6rem;background:transparent}.doc .code-results .error{border-left:4px solid #e53e3e;color:#e53e3e;padding:8px;border-radius:0}.doc .editable code,.doc .editable code:focus{outline:none}.doc .code-result-toggle{padding-right:1.2rem}.doc .code-result-toggle button{line-height:1.5;padding:.5rem 0;margin-left:.4rem;border-bottom:2px solid transparent;color:#a0aec0}.doc .code-result-toggle button.code-result-toggle--current{color:#718096;border-bottom-color:#718096}@media (min-width:760px){.code-walkthrough .doc #preamble .paragraph{font-size:1.1rem}.code-walkthrough .doc{max-width:68rem}.code-walkthrough .doc .sect1{clear:both;position:relative;padding-right:50%}.code-walkthrough .doc .sect1::after{content:"";display:block;position:absolute;top:0;bottom:-2rem;right:0;width:48%;background:#f7fafc;z-index:1}.code-walkthrough .doc .sect1.disconnected::after{display:none}.code-walkthrough .doc .sect1.first::after{top:2.7rem}.code-walkthrough .doc .sect1:first-child::after{top:2.7rem;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.code-walkthrough .doc .sect1.last::after{bottom:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.code-walkthrough .doc .listingblock{position:absolute;top:2.7rem;right:0;width:48%;z-index:10}.code-walkthrough .doc .listingblock code{-webkit-box-shadow:none;box-shadow:none;border:0!important}.code-walkthrough .toc{display:none}}body.kb .navbar{border-bottom:0;border-top-color:#805ad5}body.kb h1::after,body.kb h2::after{background-color:#805ad5!important}body.kb .label{background-color:#e9d8fd!important;color:#553c9a}body.kb .kb-search{max-width:680px;margin:2em auto 4rem;background:#718096;border-radius:.5rem;color:#edf2f7;padding:.5rem 1rem;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:.9rem;cursor:pointer}body.kb .kb-search,body.kb .kb-search .search-placeholder{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}body.kb .kb-search .search-placeholder{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:.75rem 0}body.kb .kb-search .search-shortcut{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;color:#4a5568;background:#a0aec0;padding:.5rem 1rem;border-radius:.25rem;font-size:.8rem;font-weight:400}body.kb .kb-search .kb-search-icon{padding-top:2px}body.kb .kb-search svg{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:1.6rem;height:1.6rem;stroke:#2d3748;margin-left:12px}body.kb .hero{padding-bottom:2em!important}body.kb-article .doc{max-width:none;padding:2em 0;margin:0;width:100%;-webkit-box-flex:0!important;-ms-flex:none!important;flex:none!important}body.kb-article .doc>.sect1>.sectionbody{padding-left:1rem;padding-right:1rem;max-width:980px;margin-left:auto;margin-right:auto}body.kb .doc .flex-container{padding:2em 0 1em}body.kb .doc .sectionbody{-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0}body.landing.kb.kb-home .article.paragraph{padding:0}body.landing.kb.kb-home .sectionbody{padding-left:1rem;padding-right:1rem}body.landing.kb.kb-home .flex-container .sectionbody .column{-webkit-box-flex:1;-ms-flex:1 1 25%;flex:1 1 25%;-ms-flex-wrap:wrap;flex-wrap:wrap;min-width:13rem}@media (min-width:760px){body.landing.kb.kb-home .flex-container .sectionbody .column{padding-left:0;padding-right:2rem}}body.landing.kb .doc .sectionbody .column ul li a{font-weight:200}body.landing.kb .doc .sectionbody .column ul{list-style-type:none;padding:0}.landing .flex-container .category.column:first-child{margin-left:0!important}.landing .flex-container .category.column:last-child{margin-right:0!important}body.landing.kb.kb-home ul.category-tags span.count{float:right;color:#2d3748;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:.75em;height:2em;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:1.25;padding-left:.75em;padding-right:.75em;white-space:nowrap;margin-right:2rem}body.kb .article.paragraph{padding:0 1rem}body.kb-article .doc h1{display:block}body.kb h2{font-weight:200}body.kb h2 span{color:#805ad5;font-weight:600}body.kb-article .heading{padding:2em 0}body.kb-category .breadcrumbs,body.kb-tag .breadcrumbs{padding:0 1rem}body.kb-article .breadcrumbs{padding:0}body.kb-article .breadcrumbs ul,body.kb-category .breadcrumbs ul,body.kb-tag .breadcrumbs ul{padding:0!important;margin-bottom:.2rem;font-size:.8rem}.kb-article .breadcrumbs a,.kb-category .breadcrumbs a,.kb-tag .breadcrumbs a{font-weight:200}.kb .breadcrumbs a::after{display:none}.kb-article h1.page{margin:.5rem 0}.kb .kb-metadata{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:.875rem}.kb .kb-metadata,.kb .kb-metadata-menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:0}.kb .kb-metadata-menu{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.kb .kb-metadata-menu dl{margin:0}.kb .kb-metadata dd,.kb .kb-metadata dt{display:inline-block;padding:0;margin-left:0}.kb-metadata dt::after{content:":"}.kb .kb-metadata dd{margin:0 1rem 0 .2rem}.kb .kb-metadata .edit-this-page{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0}.kb .kb-metadata .edit-this-page a{font-weight:400}.kb .kb-metadata .edit-this-page a::after{display:none}.training-certification .doc,.training-enrollment .doc,.training-home .doc{padding-left:1rem;padding-right:1rem;max-width:75rem;margin:auto}.training .doc h2::after{background-color:#d53f8c}.training.landing .discrete>h3{display:none}.training.landing .featured-courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,auto));margin:0 -1rem}.training.landing .featured-courses>.openblock{padding:1rem;margin-bottom:1rem;display:grid}.training.landing .featured-courses>.openblock>.content{-webkit-box-shadow:0 2px 10px rgba(0,0,0,.17);box-shadow:0 2px 10px rgba(0,0,0,.17);border-radius:5px;display:grid;grid-template-rows:.1fr auto 4rem;background:#fff}.training.landing .featured-courses>.openblock>.content>.imageblock{margin:0}.training.landing .featured-courses>.openblock>.content>.paragraph{padding:.5rem 1rem 0;line-height:1.4}.training.landing .course-label{background:linear-gradient(45deg,#63b3ed,#b794f4);font-size:12px;padding:2px 8px;border-radius:5px;color:#fff;font-weight:700}.training.landing .featured-courses .course-duration::before{display:inline-block;content:" ";background-image:url(https://neo4j.com/docs/assets/img/duration.svg);background-repeat:no-repeat;height:1rem;width:1rem;margin-right:.25rem}.training.landing .featured-courses .course-duration{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:.65rem}.training.landing a.button.course-action{background-color:#d53f8c}.training.landing a.button.course-action:hover{color:#fff;background-color:#ed64a6}.training.landing a.button.course-action:visited{color:#fff}.training-home .doc .find-training{text-align:center;padding-bottom:2em}.training-home .doc .find-training h3{margin:0;padding:0}.training-home .doc .find-training hr{background:url(https://neo4j.com/docs/assets/img/delimiter.svg) no-repeat top;background-size:contain;display:block;height:2rem;border:0;position:relative;margin-bottom:2rem}.training-home .doc .find-training hr::after,.training-home .doc .find-training hr::before{content:"";display:block;position:absolute;background:#edf2f7;height:2px;top:1.25rem}.training-home .doc .find-training hr::before{left:0;right:50%;margin-right:7.75rem}.training-home .doc .find-training hr::after{right:0;left:50%;margin-left:7.75rem}.training-home .doc section.row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-bottom:2em}.training-certification .hero,.training-enrollment .hero,.training-home .hero{color:#fff;padding:8rem 0 2rem!important;background:#2d3748;background:#020024;background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568);text-align:left}.training-certification .hero h1,.training-enrollment .hero h1,.training-home .hero h1{color:#fff}.training-certification .hero h1::after,.training-certification .hero h2::after,.training-enrollment .hero h1::after,.training-enrollment .hero h2::after,.training-home .hero h1::after,.training-home .hero h2::after{background-color:#d53f8c}.row>.training-courses{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-right:2em;padding-top:2rem}.training-promoted{min-width:20rem}.training-courses ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,auto))}.training-courses ul li::after{content:"";-webkit-box-flex:1;-ms-flex:auto;flex:auto}.training-courses ul>li{padding:1rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.training-courses ul>li>a{cursor:pointer}.training-courses ul>li>a:hover{color:#fff;font-weight:800}.training-courses .course-card{-webkit-box-shadow:0 2px 10px rgba(0,0,0,.17);box-shadow:0 2px 10px rgba(0,0,0,.17);border-radius:5px;display:grid;grid-template-rows:250px 1fr;grid-template-columns:minmax(-webkit-min-content,400px);grid-template-columns:minmax(min-content,400px)}.training-courses .course-card .course-illustration{height:100%;background-repeat:no-repeat;background-size:cover;border-top-left-radius:5px;border-top-right-radius:5px}.training-courses .course-card .course-label{background:linear-gradient(45deg,#63b3ed,#b794f4);font-size:12px;padding:2px 8px;border-radius:5px;color:#fff;font-weight:700}.training-courses .course-card>.course-content{padding:.5rem 1rem 1rem;display:grid;grid-template-rows:-webkit-min-content -webkit-min-content 1fr;grid-template-rows:min-content min-content 1fr}.training-courses .course-card .course-content h3{margin:0;padding:0;font-size:1rem}.training-courses .course-content .course-duration{color:#718096;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:.1rem;padding:0}.training-courses .course-content .course-actions{margin-top:auto}.training-courses .course-content .course-duration::before{display:inline-block;content:" ";background-image:url(https://neo4j.com/docs/assets/img/duration.svg);height:1rem;width:1rem;margin-right:.25rem}.course-actions a.button{background-color:#d53f8c}.course-actions a.button:hover{color:#fff;background-color:#ed64a6}.course-actions a.button:visited{color:#fff}.course-actions .course-state.is-hidden{display:none}.training-courses ul>li .course-card .button{margin-top:1rem;margin-bottom:.75rem}.training-courses ul>li a{color:inherit}.training-courses ul>li a:hover{color:#d53f8c}.training-certification .doc .sect1,.training-enrollment .doc .sect1{padding:.25rem 0;margin-top:0}.training-certification .doc h2,.training-enrollment .doc h2{margin:0;border-bottom:0}.training-certification .doc h2::after,.training-enrollment .doc h2::after{display:block;height:3px;width:80px;margin-top:1rem;margin-bottom:0;content:""}.training-certification .doc,.training-enrollment .doc{padding-top:2em}.training-certification .doc section,.training-enrollment .doc section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.training-certification .doc header h3,.training-enrollment .doc header h3{margin:0;padding:.4rem 0 2rem}.training-certification .course-description,.training-enrollment .course-description{-webkit-box-flex:3;-ms-flex:3;flex:3;min-width:450px;padding-left:1rem;padding-right:1rem}.training-certification .course-actions,.training-enrollment .course-actions{display:grid;-webkit-box-flex:2;-ms-flex:2;flex:2;min-width:350px;padding-left:1rem;padding-right:1rem}.training-certification .course-actions>.content,.training-certification .course-actions>.error,.training-certification .course-actions>.spinner,.training-enrollment .course-actions>.content,.training-enrollment .course-actions>.error,.training-enrollment .course-actions>.spinner{grid-column:1/2;grid-row:1/2}.training-certification .course-actions .panel,.training-enrollment .course-actions .panel{display:grid;padding:1rem;background-color:#f7fafc;border-top:5px solid #d53f8c}.training-certification .course-actions a.button-logout,.training-enrollment .course-actions a.button-logout{background:none;color:#718096;text-decoration:underline;text-align:end;display:block;font-size:.8rem;padding:0;margin-bottom:.5rem}.training-certification .course-actions .content,.training-enrollment .course-actions .content{display:grid}.training-certification .course-actions .content>.course-state,.training-enrollment .course-actions .content>.course-state{grid-column:1/2;grid-row:1/2}.training-certification .course-actions form label,.training-enrollment .course-actions form label{color:#2d3748;display:block;font-size:1rem;margin-bottom:.5rem}.training-certification .course-actions form .field:not(:last-child),.training-enrollment .course-actions form .field:not(:last-child){margin-bottom:.75rem}.training-certification .course-actions form .field.action,.training-enrollment .course-actions form .field.action{margin-top:1rem;display:-webkit-box;display:-ms-flexbox;display:flex}.training-certification .course-actions .button-course-continue,.training-certification .course-actions .button-course-enroll,.training-certification .course-actions .button-signin,.training-enrollment .course-actions .button-course-continue,.training-enrollment .course-actions .button-course-enroll,.training-enrollment .course-actions .button-signin{margin:auto}.training-certification .course-actions form .help,.training-enrollment .course-actions form .help{font-size:.85rem;margin-top:0;font-style:italic;margin-bottom:1.25rem;margin-left:.8rem}.training-certification .course-actions form input:hover,.training-certification .course-actions form select:hover,.training-enrollment .course-actions form input:hover,.training-enrollment .course-actions form select:hover{border-color:#a0aec0}.training-certification .course-actions form select,.training-enrollment .course-actions form select{cursor:pointer;display:block;outline:0;border-radius:4px;border:1px solid #cbd5e0}.training-certification .course-actions form input[type=email],.training-certification .course-actions form input[type=text],.training-certification .course-actions form select,.training-enrollment .course-actions form input[type=email],.training-enrollment .course-actions form input[type=text],.training-enrollment .course-actions form select{max-width:100%;background-color:#fff;color:#2d3748;-webkit-appearance:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-shadow:none;box-shadow:none;font-size:1rem;height:2.5em;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;line-height:1.5;padding:calc(.5em - 1px) calc(.75em - 1px);position:relative;vertical-align:top}.training-certification .course-actions form input[type=email],.training-certification .course-actions form input[type=text],.training-enrollment .course-actions form input[type=email],.training-enrollment .course-actions form input[type=text]{width:100%;border-radius:4px;-moz-appearance:none;border:1px solid #e2e8f0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.training-certification .course-actions form input:focus,.training-certification .course-actions form select:focus,.training-enrollment .course-actions form input:focus,.training-enrollment .course-actions form select:focus{outline:0;border-color:#d53f8c;-webkit-box-shadow:0 0 0 .125em rgba(213,63,140,.25);box-shadow:0 0 0 .125em rgba(213,63,140,.25)}.training-certification .mktoForm .mktoFieldWrap,.training-certification .mktoForm .mktoFormCol,.training-enrollment .mktoForm .mktoFieldWrap,.training-enrollment .mktoForm .mktoFormCol{width:100%}.training-certification .mktoField,.training-certification .mktoForm,.training-enrollment .mktoField,.training-enrollment .mktoForm{width:100%!important}.training-certification input.mktoField[type=checkbox],.training-enrollment input.mktoField[type=checkbox]{width:auto!important;margin-top:.5rem}.training-certification .mktoForm .mktoRequiredField .mktoAsterix,.training-enrollment .mktoForm .mktoRequiredField .mktoAsterix{display:block}.training-certification .mktoForm .mktoAsterix,.training-enrollment .mktoForm .mktoAsterix{color:#9b2c2c;display:none}.training-certification .mktoForm .mktoError .mktoErrorMsg,.training-enrollment .mktoForm .mktoError .mktoErrorMsg{display:block;margin-top:7px;border-radius:6px;background-image:none;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;color:#742a2a;padding:.65rem}.training-certification .mktoForm .mktoError .mktoErrorArrow,.training-certification .mktoForm .mktoError .mktoErrorMsg,.training-enrollment .mktoForm .mktoError .mktoErrorArrow,.training-enrollment .mktoForm .mktoError .mktoErrorMsg{border:none;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fed7d7}.training-certification .mktoForm button.mktoButton,.training-enrollment .mktoForm button.mktoButton{color:#fff;cursor:pointer;background-color:#d53f8c;display:inline-block;border-radius:.25rem;margin:auto;-webkit-transition:all .2s;transition:all .2s;font-weight:600}.training-certification button.mktoButton:hover,.training-enrollment button.mktoButton:hover{background-color:#ed64a6}.training-certification .mktoForm div,.training-certification .mktoForm div.mktoButtonRow,.training-certification .mktoForm label,.training-certification .mktoForm p,.training-certification .mktoForm span,.training-enrollment .mktoForm div,.training-enrollment .mktoForm div.mktoButtonRow,.training-enrollment .mktoForm label,.training-enrollment .mktoForm p,.training-enrollment .mktoForm span{display:-webkit-box;display:-ms-flexbox;display:flex}.training-certification .mktoForm span,.training-enrollment .mktoForm span{width:100%}#LblPostalCode{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;white-space:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.training-certification .course-actions[data-status=info] .info{visibility:visible}.training-certification .course-actions[data-status=info] .content,.training-certification .course-actions[data-status=info] .error,.training-certification .course-actions[data-status=info] .spinner{visibility:hidden}.training-certification .course-actions[data-status=loading] .spinner,.training-enrollment .course-actions[data-status=loading] .spinner{visibility:visible}.training-certification .course-actions[data-status=loading] .content,.training-certification .course-actions[data-status=loading] .error,.training-certification .course-actions[data-status=loading] .info,.training-enrollment .course-actions[data-status=loading] .content,.training-enrollment .course-actions[data-status=loading] .error{visibility:hidden}.training-certification .course-actions[data-status=loaded] .content,.training-enrollment .course-actions[data-status=loaded] .content{visibility:visible}.training-certification .course-actions[data-status=loaded] .error,.training-certification .course-actions[data-status=loaded] .info,.training-certification .course-actions[data-status=loaded] .spinner,.training-enrollment .course-actions[data-status=loaded] .error,.training-enrollment .course-actions[data-status=loaded] .spinner{visibility:hidden}.training-certification .course-actions[data-status=error] .error,.training-enrollment .course-actions[data-status=error] .error{visibility:visible}.training-certification .course-actions[data-status=error] .content,.training-certification .course-actions[data-status=error] .info,.training-certification .course-actions[data-status=error] .spinner,.training-enrollment .course-actions[data-status=error] .content,.training-enrollment .course-actions[data-status=error] .spinner{visibility:hidden}.training-certification .course-actions .error,.training-enrollment .course-actions .error{background-color:#fed7d7;color:#742a2a;border-left:4px solid #e53e3e}.training-certification .course-actions .error,.training-certification .course-actions .info,.training-enrollment .course-actions .error{padding:1rem;border-radius:.25rem;display:-webkit-box;display:-ms-flexbox;display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 auto auto}.training-certification .course-actions .info{background-color:#bee3f8;color:#2a4365;border-left:4px solid #3182ce}.training-certification .course-actions .spinner,.training-enrollment .course-actions .spinner{margin:0 auto auto}.training-certification .doc .sect1.heading,.training-enrollment .doc .sect1.heading{padding:2em 0 0}.training-certification .doc .sect1 h2,.training-enrollment .doc .sect1 h2{padding-bottom:1rem}.training-certification #preamble .imageblock,.training-enrollment #preamble .imageblock{max-width:40rem;margin:auto}.training-certification .breadcrumbs,.training-enrollment .breadcrumbs{display:block;padding:0}.training-certification .breadcrumbs ul,.training-enrollment .breadcrumbs ul{padding:0!important;margin-bottom:.2rem;font-size:.8rem}.training-certification .breadcrumbs a,.training-enrollment .breadcrumbs a{font-weight:200}.training-certification .breadcrumbs a::after,.training-enrollment .breadcrumbs a::after{display:none}body.training .nav-item .nav-item.is-completed::before{border-radius:9999px;content:"✓";background-color:#48bb78}body.training .nav-item .nav-item.is-completed::before,body.training .nav-item .nav-item.is-pending::before{position:absolute;left:0;top:0;margin-top:.15rem;display:block;height:1rem;width:1rem;margin-left:-1.3rem;opacity:1;z-index:1000;color:#fff;text-align:center;font-weight:700;-webkit-transition:all .2s linear;transition:all .2s linear}body.training .nav-item .nav-item.is-pending::before{border-radius:9999px;content:"";border:1px solid #a0aec0;background-color:#f7fafc}body.training .nav-item .nav-item.is-completed.is-current-page::before,body.training .nav-item .nav-item.is-completed:hover::before{background-color:#2f855a}body.training .nav-item .nav-item.is-current-page::before,body.training .nav-item .nav-item:hover::before{opacity:1;background-color:#a0aec0;z-index:1000}body.training .button{cursor:pointer}#quiz-result{padding:1rem;border-radius:.25rem}#quiz-result.is-success{background-color:#c6f6d5;color:#22543d;border-left:4px solid #38a169}#quiz-result.is-error{background-color:#fed7d7;color:#742a2a;border-left:4px solid #e53e3e}#quiz-result>p.paragraph{margin:0}.training .download-certificate{position:relative}.training .download-certificate .spinner{position:absolute;margin-top:0}.training .download-certificate .error{position:absolute;background-color:#bee3f8;color:#2a4365;border-left:4px solid #3182ce;padding:1rem;border-radius:.25rem}.training .download-certificate .success{position:absolute;background-color:#c6f6d5;color:#22543d;border-left:4px solid #38a169;padding:1rem;border-radius:.25rem}.training .download-certificate .success a{text-decoration:underline;color:#38a169}.training .download-certificate .success a:hover{color:#48bb78}.training .download-certificate[data-status=ready] .content{visibility:visible}.training .download-certificate[data-status=ready] .error,.training .download-certificate[data-status=ready] .spinner,.training .download-certificate[data-status=ready] .success{visibility:hidden}.training .download-certificate[data-status=loading] .spinner{visibility:visible}.training .download-certificate[data-status=loading] .content,.training .download-certificate[data-status=loading] .error,.training .download-certificate[data-status=loading] .success{visibility:hidden}.training .download-certificate[data-status=success] .success{visibility:visible}.training .download-certificate[data-status=success] .content,.training .download-certificate[data-status=success] .error,.training .download-certificate[data-status=success] .spinner{visibility:hidden}.training .download-certificate[data-status=error] .error{visibility:visible}.training .download-certificate[data-status=error] .content,.training .download-certificate[data-status=error] .spinner,.training .download-certificate[data-status=error] .success{visibility:hidden}.training-help{position:fixed;bottom:0;right:2rem;border-top-left-radius:.25rem;border-top-right-radius:.25rem;background:#ebf8ff;color:#2c5282;padding:.5rem 1rem;width:320px;font-size:.8rem;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);z-index:1000}.training-help p{padding:.25rem 0}#yelp-dataset-agreement{padding:.75em;border:1px solid #e2e8f0;margin-bottom:1em;margin-right:1em}#yelp-dataset-agreement .button{margin-bottom:.25rem;margin-top:.5rem}#yelp-dataset-agreement p{padding:0;margin:0}#yelp-dataset-agreement .paragraph{padding-bottom:0;margin-bottom:0}#yelp-dataset-agreement button{display:block}#yelp-dataset-agreement label[for=yelp-dataset-agreement-check]{font-weight:600}#yelp-dataset-agreement.has-focus{background:#fff;-webkit-animation:highlight 2.5s ease;animation:highlight 2.5s ease}@-webkit-keyframes highlight{0%{background:#f0f8ff}to{background:#fff}}@keyframes highlight{0%{background:#f0f8ff}to{background:#fff}}body.graphgist .hero,body.graphgists .hero{padding-bottom:2em!important}body.graphgists .leading .sectionbody{padding-top:1rem}body.graphgists .leading .sectionbody .imageblock.left{margin-right:2rem}body.graphgists .breadcrumbs{padding:0;font-size:.9rem}body.graphgists .breadcrumbs ul{padding:0}body.graphgists ul.industries,body.graphgists ul.use-cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,auto));margin:0;padding:1em 0 0}body.graphgists ul.industries>li,body.graphgists ul.use-cases>li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:1rem;padding-right:.5rem;padding-bottom:.5rem}body.graphgists ul.industries>li img,body.graphgists ul.use-cases>li img{width:1rem;max-height:1rem;margin-right:.5em}ul.graphgists{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,auto));margin:0;padding:1em 0 0;grid-gap:3em 1.5em}ul.graphgists li::after{content:"";-webkit-box-flex:1;-ms-flex:auto;flex:auto}ul.graphgists>li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}ul.graphgists>li>a{cursor:pointer}.graphgist-card{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);border-radius:5px;display:grid;grid-template-rows:250px 1fr;grid-template-columns:minmax(-webkit-min-content,400px);grid-template-columns:minmax(min-content,400px);background-color:#fff}.graphgist-card .graphgist-illustration{height:100%;background-repeat:no-repeat;background-size:cover;border-top-left-radius:5px;border-top-right-radius:5px;background-position:50%}.graphgist-card>.graphgist-content{display:grid;grid-template-rows:-webkit-min-content -webkit-min-content 1fr;grid-template-rows:min-content min-content 1fr;border-top:1px solid #eaeaea;margin-top:.5rem;padding:1.5rem 1rem 1rem}.graphgist-card .graphgist-content h3{margin:0;padding:0;font-size:1rem;height:4rem;line-height:1.5rem}.graphgist-card dl.graphgist-info>dd{padding:0;margin:0 0 .5rem;color:#718096}.graphgist-card dl.graphgist-info>dt{color:#a0aec0;text-transform:uppercase;font-size:.8rem}.graphgist-card dl.graphgist-info>dt::after{content:": ";margin-right:.3em}.graphgist-card .graphgist-info ul.graphgist-industries,.graphgist-card .graphgist-info ul.graphgist-use-cases{margin:0;padding:0}.graphgist-card .graphgist-info ul.graphgist-industries>li,.graphgist-card .graphgist-info ul.graphgist-use-cases>li{display:inline}.graphgist-card .graphgist-info ul.graphgist-industries>li:not(:last-child)::after,.graphgist-card .graphgist-info ul.graphgist-use-cases>li:not(:last-child)::after{content:", "}ul.graphgists li:first-child{padding-left:0}ul.graphgists li:last-child{padding-right:0}body.graphgist .navbar{border-bottom:none}body.graphgist .doc{max-width:none;padding:2em 0;margin:0;width:100%;-webkit-box-flex:0;-ms-flex:none;flex:none}body.graphgist .doc>.sect1>.sectionbody{padding-left:1rem;padding-right:1rem;max-width:980px;margin-left:auto;margin-right:auto}.graphgist-metadata{background:#f7fafc;float:right;margin-left:1rem;margin-bottom:1rem;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);padding:1rem;border-radius:.5rem;width:320px}.graphgist-metadata dl{margin-top:0}.graphgist-metadata .graphgist-industry,.graphgist-metadata .graphgist-use-case{display:block}.graphgist-metadata dt{color:#a0aec0;text-transform:uppercase;font-size:.8rem}body.graphgist .graphgist-metadata dd,body.graphgist .graphgist-metadata dt{display:block;margin-left:0;padding:0}body.graphgist .graphgist-metadata dt:not(:first-child){padding-top:1em}body.graphgist .graphgist-metadata fieldset{border:none;margin-top:1.25em;padding:.25em 0 0}body.graphgist .graphgist-metadata fieldset>legend{font-weight:600;color:#4a5568}body.graphgist .graphgist-metadata label{color:#4a5568;font-size:.9em}body.graphgist .graphgist-metadata .field.has-addons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}body.graphgist .graphgist-metadata .field.has-addons .control:first-child:not(:only-child) .input{border-bottom-right-radius:0;border-top-right-radius:0}body.graphgist .graphgist-metadata .field.has-addons .control:last-child:not(:only-child) .button{border-bottom-left-radius:0;border-top-left-radius:0}body.graphgist .graphgist-metadata .field.has-addons a.button{border-color:#805ad5;cursor:pointer;padding:calc(.5em - 1px) 1em;border-radius:.375em;-webkit-box-shadow:none;box-shadow:none;font-size:1em;line-height:1.5;height:2.5em}body.graphgist .graphgist-metadata .field.has-addons .control:not(:last-child){margin-right:-1px}body.graphgist .graphgist-metadata .input:active,body.graphgist .graphgist-metadata .input:focus{border-color:#805ad5}body.graphgist .graphgist-metadata .input:focus-visible{outline:none}body.graphgist .graphgist-metadata .input{-webkit-box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);width:100%;color:#4a5568;border-radius:.375em;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #cbd5e0;font-size:1em;line-height:1.5;padding:calc(.5em - 1px) calc(.75em - 1px);height:2.5em}body.graphgist .graphgist-metadata .control{-webkit-box-sizing:border-box;box-sizing:border-box;clear:both;font-size:1em;position:relative;text-align:inherit}body.graphgist .listingblock pre{z-index:-1}.graphgist-metadata-menu{padding-top:1rem;border-top:1px solid #e2e8f0}.graphgist-metadata-menu ul{padding:0;list-style:none}.graphgist-metadata .button{display:block;width:100%;margin:0 0 .5rem;background:#805ad5;border:1px solid #fff;padding:.5rem 1rem;color:#fff!important;font-size:.9rem}.graphgist-metadata .button:hover{background-color:#553c9a!important}.graphgist-metadata .button.secondary{border:1px solid #805ad5!important;background:#fff!important;color:#805ad5!important}.graphgist-metadata .button.secondary:hover{background:#faf5ff!important}#search_open{display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:400;padding-right:0}@media (max-width:1024px){#search_open svg{margin-right:1rem}}.search{position:fixed;top:0;right:0;bottom:0;width:100%;z-index:6000;background:rgba(0,0,0,.2);-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;display:none;opacity:0}body.search--active{overflow:hidden}.search.search--active{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1}.search .search-container{width:100%;max-width:420px;height:100%;background:#fff;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-shadow:-5px 10px 15px -3px rgba(0,0,0,.1),-5px 4px 6px -2px rgba(0,0,0,.05);box-shadow:-5px 10px 15px -3px rgba(0,0,0,.1),-5px 4px 6px -2px rgba(0,0,0,.05)}.search .search-container,.search .search-container .search-form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.search .search-container .search-form{position:relative;z-index:1000;border-top:4px solid #edf2f7;border-bottom:1px solid #e2e8f0;height:3.77778rem;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:0;-ms-flex:0;flex:0;padding-right:1rem}.search .search-container .search-form label{display:none}.search .search-container .search-form input{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:1rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border:0;color:#718096;height:3rem}.search .search-container .search-form input:active,.search .search-container .search-form input:focus{outline:none}.search .search-container .search-form input::-webkit-input-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input::-moz-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input:-ms-input-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input::-ms-input-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input::placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form .search-icon{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding:1rem .5rem;display:block;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.search svg line{stroke-width:1.5;stroke:#718096}.search .search-container .search-results{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:1rem;overflow:auto;font-size:.9rem}.search .search-container .search-results.loading{position:relative}.search .search-container .search-results.loading::before{content:"";display:block;border:.3rem solid #edf2f7;border-top-color:#718096;border-radius:50%;width:3rem;height:3rem;position:absolute;top:50%;left:50%;margin-top:-1.5rem;margin-left:-1.5rem;-webkit-animation:spinner .5s linear infinite;animation:spinner .5s linear infinite}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.search .search-container .search-results p{font-size:.75rem;margin-top:0}.search .search-container .search-filters{border-top:1px solid #e2e8f0}.search .search-container .search-filters.hidden{display:none}.search .search-container .search-filters h2{color:#718096;font-weight:400;font-size:.8rem;margin:0}.search .search-filters-header{background:#ebf8ff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;cursor:pointer;padding:1rem}.search .search-filters .search-filters-content{padding:1rem;display:none}.search .search-filters--active .search-filters-content{display:block}.search .search-filters .search-filters-header .search-filters-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.search .search-filters #hide_filters{display:none}.search .search-filters #show_filters,.search .search-filters--active #hide_filters{display:block}.search .search-filters--active #show_filters{display:none}.search .search-filter-checkbox{margin-bottom:.2rem;font-size:.8rem}.search .search-filter-checkbox input{margin-right:.5rem}.search .search-filter-checkbox label span{float:right;color:#a0aec0}.search-results .search-result-item{margin-bottom:2rem}.search-results .search-result-item h3{font-size:.85rem;font-weight:600;margin-bottom:0}.search-results .search-result-item h3 a{color:#3182ce}.search-results .search-result-item em{background:ivory;color:#c05621;font-style:normal;font-weight:600;padding:.2rem;border-radius:.25rem}.search-results .search-result-item .search-result-url{display:block;font-size:.7rem;font-weight:400;color:#2c5282;margin-bottom:.5rem}.search-results .search-result-item .search-result-body{font-size:.8rem;margin-bottom:.5rem;color:#718096}.search-results .search-result-label{line-height:1;font-size:.7rem;background:#edf2f7;color:#718096;font-style:normal;padding:.2rem .5rem;font-weight:600;border-radius:.25rem}.search-results .label--docs{background:#3182ce;color:#ebf8ff}.search-results .label--developer-guide{background:#2d3748;color:#edf2f7}.search-results .label--knowledge-base{background:#dd6b20;color:#fff}.search-results .search-pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:.75rem;border-top:1px solid #e2e8f0;padding-top:.5rem}.search-results .search-pagination-link{color:#718096;cursor:pointer}.search-results .search-pagination-link:hover{color:#3182ce}.search-results .search-pagination .search-pagination--next{margin-left:auto}.comments{margin:1.5rem -1rem;border:1px solid #edf2f7;border-top:2px solid #edf2f7;border-radius:.5rem}.comments-header{background:#edf2f7;padding:1rem}.comments-header h2{color:#718096;font-size:.8rem;font-weight:600;line-height:1;margin:0;padding:0!important;border-bottom:0!important}.comments-container{padding:1rem}@media (max-width:720px){.comments{display:none}}#cookiebanner{background:#f7fafc;-webkit-box-shadow:0 -5px 5px 1px rgba(0,0,0,.08)!important;box-shadow:0 -5px 5px 1px rgba(0,0,0,.08)!important;padding:1rem;font-size:.8rem;color:#4a5568}#cookiebanner .row{max-width:32.5rem;margin:auto}#cookiebanner .c-header{font-size:.9rem;font-weight:600;color:#2d3748}#c-left a{color:#3182ce;font-weight:700}#c-right a{display:inline-block;padding:.25rem .75rem;font-weight:600;border:1px solid #2b6cb0;border-radius:.25rem;margin-right:.5rem}#NeoCybotCookiebotDialogBodyButtonAccept{background:#2b6cb0;color:#ebf8ff}#NeoCybotCookiebotDialogBodyButtonDecline{background:var(--white);color:#2b6cb0}.medium-zoom-overlay,img.medium-zoom-image{z-index:1000}.spinner{width:3rem;height:3rem;position:relative;margin:1rem auto}.double-bounce1,.double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#e2e8f0;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:sk-bounce 2s ease-in-out infinite;animation:sk-bounce 2s ease-in-out infinite}.double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}} -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.eot?v=4.7.0);src:url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.woff2?v=4.7.0) format("woff2"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.woff?v=4.7.0) format("woff"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.ttf?v=4.7.0) format("truetype"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal;font-display:swap}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass::before{content:"\f000"}.fa-music::before{content:"\f001"}.fa-search::before{content:"\f002"}.fa-envelope-o::before{content:"\f003"}.fa-heart::before{content:"\f004"}.fa-star::before{content:"\f005"}.fa-star-o::before{content:"\f006"}.fa-user::before{content:"\f007"}.fa-film::before{content:"\f008"}.fa-th-large::before{content:"\f009"}.fa-th::before{content:"\f00a"}.fa-th-list::before{content:"\f00b"}.fa-check::before{content:"\f00c"}.fa-close::before,.fa-remove::before,.fa-times::before{content:"\f00d"}.fa-search-plus::before{content:"\f00e"}.fa-search-minus::before{content:"\f010"}.fa-power-off::before{content:"\f011"}.fa-signal::before{content:"\f012"}.fa-cog::before,.fa-gear::before{content:"\f013"}.fa-trash-o::before{content:"\f014"}.fa-home::before{content:"\f015"}.fa-file-o::before{content:"\f016"}.fa-clock-o::before{content:"\f017"}.fa-road::before{content:"\f018"}.fa-download::before{content:"\f019"}.fa-arrow-circle-o-down::before{content:"\f01a"}.fa-arrow-circle-o-up::before{content:"\f01b"}.fa-inbox::before{content:"\f01c"}.fa-play-circle-o::before{content:"\f01d"}.fa-repeat::before,.fa-rotate-right::before{content:"\f01e"}.fa-refresh::before{content:"\f021"}.fa-list-alt::before{content:"\f022"}.fa-lock::before{content:"\f023"}.fa-flag::before{content:"\f024"}.fa-headphones::before{content:"\f025"}.fa-volume-off::before{content:"\f026"}.fa-volume-down::before{content:"\f027"}.fa-volume-up::before{content:"\f028"}.fa-qrcode::before{content:"\f029"}.fa-barcode::before{content:"\f02a"}.fa-tag::before{content:"\f02b"}.fa-tags::before{content:"\f02c"}.fa-book::before{content:"\f02d"}.fa-bookmark::before{content:"\f02e"}.fa-print::before{content:"\f02f"}.fa-camera::before{content:"\f030"}.fa-font::before{content:"\f031"}.fa-bold::before{content:"\f032"}.fa-italic::before{content:"\f033"}.fa-text-height::before{content:"\f034"}.fa-text-width::before{content:"\f035"}.fa-align-left::before{content:"\f036"}.fa-align-center::before{content:"\f037"}.fa-align-right::before{content:"\f038"}.fa-align-justify::before{content:"\f039"}.fa-list::before{content:"\f03a"}.fa-dedent::before,.fa-outdent::before{content:"\f03b"}.fa-indent::before{content:"\f03c"}.fa-video-camera::before{content:"\f03d"}.fa-image::before,.fa-photo::before,.fa-picture-o::before{content:"\f03e"}.fa-pencil::before{content:"\f040"}.fa-map-marker::before{content:"\f041"}.fa-adjust::before{content:"\f042"}.fa-tint::before{content:"\f043"}.fa-edit::before,.fa-pencil-square-o::before{content:"\f044"}.fa-share-square-o::before{content:"\f045"}.fa-check-square-o::before{content:"\f046"}.fa-arrows::before{content:"\f047"}.fa-step-backward::before{content:"\f048"}.fa-fast-backward::before{content:"\f049"}.fa-backward::before{content:"\f04a"}.fa-play::before{content:"\f04b"}.fa-pause::before{content:"\f04c"}.fa-stop::before{content:"\f04d"}.fa-forward::before{content:"\f04e"}.fa-fast-forward::before{content:"\f050"}.fa-step-forward::before{content:"\f051"}.fa-eject::before{content:"\f052"}.fa-chevron-left::before{content:"\f053"}.fa-chevron-right::before{content:"\f054"}.fa-plus-circle::before{content:"\f055"}.fa-minus-circle::before{content:"\f056"}.fa-times-circle::before{content:"\f057"}.fa-check-circle::before{content:"\f058"}.fa-question-circle::before{content:"\f059"}.fa-info-circle::before{content:"\f05a"}.fa-crosshairs::before{content:"\f05b"}.fa-times-circle-o::before{content:"\f05c"}.fa-check-circle-o::before{content:"\f05d"}.fa-ban::before{content:"\f05e"}.fa-arrow-left::before{content:"\f060"}.fa-arrow-right::before{content:"\f061"}.fa-arrow-up::before{content:"\f062"}.fa-arrow-down::before{content:"\f063"}.fa-mail-forward::before,.fa-share::before{content:"\f064"}.fa-expand::before{content:"\f065"}.fa-compress::before{content:"\f066"}.fa-plus::before{content:"\f067"}.fa-minus::before{content:"\f068"}.fa-asterisk::before{content:"\f069"}.fa-exclamation-circle::before{content:"\f06a"}.fa-gift::before{content:"\f06b"}.fa-leaf::before{content:"\f06c"}.fa-fire::before{content:"\f06d"}.fa-eye::before{content:"\f06e"}.fa-eye-slash::before{content:"\f070"}.fa-exclamation-triangle::before,.fa-warning::before{content:"\f071"}.fa-plane::before{content:"\f072"}.fa-calendar::before{content:"\f073"}.fa-random::before{content:"\f074"}.fa-comment::before{content:"\f075"}.fa-magnet::before{content:"\f076"}.fa-chevron-up::before{content:"\f077"}.fa-chevron-down::before{content:"\f078"}.fa-retweet::before{content:"\f079"}.fa-shopping-cart::before{content:"\f07a"}.fa-folder::before{content:"\f07b"}.fa-folder-open::before{content:"\f07c"}.fa-arrows-v::before{content:"\f07d"}.fa-arrows-h::before{content:"\f07e"}.fa-bar-chart-o::before,.fa-bar-chart::before{content:"\f080"}.fa-twitter-square::before{content:"\f081"}.fa-facebook-square::before{content:"\f082"}.fa-camera-retro::before{content:"\f083"}.fa-key::before{content:"\f084"}.fa-cogs::before,.fa-gears::before{content:"\f085"}.fa-comments::before{content:"\f086"}.fa-thumbs-o-up::before{content:"\f087"}.fa-thumbs-o-down::before{content:"\f088"}.fa-star-half::before{content:"\f089"}.fa-heart-o::before{content:"\f08a"}.fa-sign-out::before{content:"\f08b"}.fa-linkedin-square::before{content:"\f08c"}.fa-thumb-tack::before{content:"\f08d"}.fa-external-link::before{content:"\f08e"}.fa-sign-in::before{content:"\f090"}.fa-trophy::before{content:"\f091"}.fa-github-square::before{content:"\f092"}.fa-upload::before{content:"\f093"}.fa-lemon-o::before{content:"\f094"}.fa-phone::before{content:"\f095"}.fa-square-o::before{content:"\f096"}.fa-bookmark-o::before{content:"\f097"}.fa-phone-square::before{content:"\f098"}.fa-twitter::before{content:"\f099"}.fa-facebook-f::before,.fa-facebook::before{content:"\f09a"}.fa-github::before{content:"\f09b"}.fa-unlock::before{content:"\f09c"}.fa-credit-card::before{content:"\f09d"}.fa-feed::before,.fa-rss::before{content:"\f09e"}.fa-hdd-o::before{content:"\f0a0"}.fa-bullhorn::before{content:"\f0a1"}.fa-bell::before{content:"\f0f3"}.fa-certificate::before{content:"\f0a3"}.fa-hand-o-right::before{content:"\f0a4"}.fa-hand-o-left::before{content:"\f0a5"}.fa-hand-o-up::before{content:"\f0a6"}.fa-hand-o-down::before{content:"\f0a7"}.fa-arrow-circle-left::before{content:"\f0a8"}.fa-arrow-circle-right::before{content:"\f0a9"}.fa-arrow-circle-up::before{content:"\f0aa"}.fa-arrow-circle-down::before{content:"\f0ab"}.fa-globe::before{content:"\f0ac"}.fa-wrench::before{content:"\f0ad"}.fa-tasks::before{content:"\f0ae"}.fa-filter::before{content:"\f0b0"}.fa-briefcase::before{content:"\f0b1"}.fa-arrows-alt::before{content:"\f0b2"}.fa-group::before,.fa-users::before{content:"\f0c0"}.fa-chain::before,.fa-link::before{content:"\f0c1"}.fa-cloud::before{content:"\f0c2"}.fa-flask::before{content:"\f0c3"}.fa-cut::before,.fa-scissors::before{content:"\f0c4"}.fa-copy::before,.fa-files-o::before{content:"\f0c5"}.fa-paperclip::before{content:"\f0c6"}.fa-floppy-o::before,.fa-save::before{content:"\f0c7"}.fa-square::before{content:"\f0c8"}.fa-bars::before,.fa-navicon::before,.fa-reorder::before{content:"\f0c9"}.fa-list-ul::before{content:"\f0ca"}.fa-list-ol::before{content:"\f0cb"}.fa-strikethrough::before{content:"\f0cc"}.fa-underline::before{content:"\f0cd"}.fa-table::before{content:"\f0ce"}.fa-magic::before{content:"\f0d0"}.fa-truck::before{content:"\f0d1"}.fa-pinterest::before{content:"\f0d2"}.fa-pinterest-square::before{content:"\f0d3"}.fa-google-plus-square::before{content:"\f0d4"}.fa-google-plus::before{content:"\f0d5"}.fa-money::before{content:"\f0d6"}.fa-caret-down::before{content:"\f0d7"}.fa-caret-up::before{content:"\f0d8"}.fa-caret-left::before{content:"\f0d9"}.fa-caret-right::before{content:"\f0da"}.fa-columns::before{content:"\f0db"}.fa-sort::before,.fa-unsorted::before{content:"\f0dc"}.fa-sort-desc::before,.fa-sort-down::before{content:"\f0dd"}.fa-sort-asc::before,.fa-sort-up::before{content:"\f0de"}.fa-envelope::before{content:"\f0e0"}.fa-linkedin::before{content:"\f0e1"}.fa-rotate-left::before,.fa-undo::before{content:"\f0e2"}.fa-gavel::before,.fa-legal::before{content:"\f0e3"}.fa-dashboard::before,.fa-tachometer::before{content:"\f0e4"}.fa-comment-o::before{content:"\f0e5"}.fa-comments-o::before{content:"\f0e6"}.fa-bolt::before,.fa-flash::before{content:"\f0e7"}.fa-sitemap::before{content:"\f0e8"}.fa-umbrella::before{content:"\f0e9"}.fa-clipboard::before,.fa-paste::before{content:"\f0ea"}.fa-lightbulb-o::before{content:"\f0eb"}.fa-exchange::before{content:"\f0ec"}.fa-cloud-download::before{content:"\f0ed"}.fa-cloud-upload::before{content:"\f0ee"}.fa-user-md::before{content:"\f0f0"}.fa-stethoscope::before{content:"\f0f1"}.fa-suitcase::before{content:"\f0f2"}.fa-bell-o::before{content:"\f0a2"}.fa-coffee::before{content:"\f0f4"}.fa-cutlery::before{content:"\f0f5"}.fa-file-text-o::before{content:"\f0f6"}.fa-building-o::before{content:"\f0f7"}.fa-hospital-o::before{content:"\f0f8"}.fa-ambulance::before{content:"\f0f9"}.fa-medkit::before{content:"\f0fa"}.fa-fighter-jet::before{content:"\f0fb"}.fa-beer::before{content:"\f0fc"}.fa-h-square::before{content:"\f0fd"}.fa-plus-square::before{content:"\f0fe"}.fa-angle-double-left::before{content:"\f100"}.fa-angle-double-right::before{content:"\f101"}.fa-angle-double-up::before{content:"\f102"}.fa-angle-double-down::before{content:"\f103"}.fa-angle-left::before{content:"\f104"}.fa-angle-right::before{content:"\f105"}.fa-angle-up::before{content:"\f106"}.fa-angle-down::before{content:"\f107"}.fa-desktop::before{content:"\f108"}.fa-laptop::before{content:"\f109"}.fa-tablet::before{content:"\f10a"}.fa-mobile-phone::before,.fa-mobile::before{content:"\f10b"}.fa-circle-o::before{content:"\f10c"}.fa-quote-left::before{content:"\f10d"}.fa-quote-right::before{content:"\f10e"}.fa-spinner::before{content:"\f110"}.fa-circle::before{content:"\f111"}.fa-mail-reply::before,.fa-reply::before{content:"\f112"}.fa-github-alt::before{content:"\f113"}.fa-folder-o::before{content:"\f114"}.fa-folder-open-o::before{content:"\f115"}.fa-smile-o::before{content:"\f118"}.fa-frown-o::before{content:"\f119"}.fa-meh-o::before{content:"\f11a"}.fa-gamepad::before{content:"\f11b"}.fa-keyboard-o::before{content:"\f11c"}.fa-flag-o::before{content:"\f11d"}.fa-flag-checkered::before{content:"\f11e"}.fa-terminal::before{content:"\f120"}.fa-code::before{content:"\f121"}.fa-mail-reply-all::before,.fa-reply-all::before{content:"\f122"}.fa-star-half-empty::before,.fa-star-half-full::before,.fa-star-half-o::before{content:"\f123"}.fa-location-arrow::before{content:"\f124"}.fa-crop::before{content:"\f125"}.fa-code-fork::before{content:"\f126"}.fa-chain-broken::before,.fa-unlink::before{content:"\f127"}.fa-question::before{content:"\f128"}.fa-info::before{content:"\f129"}.fa-exclamation::before{content:"\f12a"}.fa-superscript::before{content:"\f12b"}.fa-subscript::before{content:"\f12c"}.fa-eraser::before{content:"\f12d"}.fa-puzzle-piece::before{content:"\f12e"}.fa-microphone::before{content:"\f130"}.fa-microphone-slash::before{content:"\f131"}.fa-shield::before{content:"\f132"}.fa-calendar-o::before{content:"\f133"}.fa-fire-extinguisher::before{content:"\f134"}.fa-rocket::before{content:"\f135"}.fa-maxcdn::before{content:"\f136"}.fa-chevron-circle-left::before{content:"\f137"}.fa-chevron-circle-right::before{content:"\f138"}.fa-chevron-circle-up::before{content:"\f139"}.fa-chevron-circle-down::before{content:"\f13a"}.fa-html5::before{content:"\f13b"}.fa-css3::before{content:"\f13c"}.fa-anchor::before{content:"\f13d"}.fa-unlock-alt::before{content:"\f13e"}.fa-bullseye::before{content:"\f140"}.fa-ellipsis-h::before{content:"\f141"}.fa-ellipsis-v::before{content:"\f142"}.fa-rss-square::before{content:"\f143"}.fa-play-circle::before{content:"\f144"}.fa-ticket::before{content:"\f145"}.fa-minus-square::before{content:"\f146"}.fa-minus-square-o::before{content:"\f147"}.fa-level-up::before{content:"\f148"}.fa-level-down::before{content:"\f149"}.fa-check-square::before{content:"\f14a"}.fa-pencil-square::before{content:"\f14b"}.fa-external-link-square::before{content:"\f14c"}.fa-share-square::before{content:"\f14d"}.fa-compass::before{content:"\f14e"}.fa-caret-square-o-down::before,.fa-toggle-down::before{content:"\f150"}.fa-caret-square-o-up::before,.fa-toggle-up::before{content:"\f151"}.fa-caret-square-o-right::before,.fa-toggle-right::before{content:"\f152"}.fa-eur::before,.fa-euro::before{content:"\f153"}.fa-gbp::before{content:"\f154"}.fa-dollar::before,.fa-usd::before{content:"\f155"}.fa-inr::before,.fa-rupee::before{content:"\f156"}.fa-cny::before,.fa-jpy::before,.fa-rmb::before,.fa-yen::before{content:"\f157"}.fa-rouble::before,.fa-rub::before,.fa-ruble::before{content:"\f158"}.fa-krw::before,.fa-won::before{content:"\f159"}.fa-bitcoin::before,.fa-btc::before{content:"\f15a"}.fa-file::before{content:"\f15b"}.fa-file-text::before{content:"\f15c"}.fa-sort-alpha-asc::before{content:"\f15d"}.fa-sort-alpha-desc::before{content:"\f15e"}.fa-sort-amount-asc::before{content:"\f160"}.fa-sort-amount-desc::before{content:"\f161"}.fa-sort-numeric-asc::before{content:"\f162"}.fa-sort-numeric-desc::before{content:"\f163"}.fa-thumbs-up::before{content:"\f164"}.fa-thumbs-down::before{content:"\f165"}.fa-youtube-square::before{content:"\f166"}.fa-youtube::before{content:"\f167"}.fa-xing::before{content:"\f168"}.fa-xing-square::before{content:"\f169"}.fa-youtube-play::before{content:"\f16a"}.fa-dropbox::before{content:"\f16b"}.fa-stack-overflow::before{content:"\f16c"}.fa-instagram::before{content:"\f16d"}.fa-flickr::before{content:"\f16e"}.fa-adn::before{content:"\f170"}.fa-bitbucket::before{content:"\f171"}.fa-bitbucket-square::before{content:"\f172"}.fa-tumblr::before{content:"\f173"}.fa-tumblr-square::before{content:"\f174"}.fa-long-arrow-down::before{content:"\f175"}.fa-long-arrow-up::before{content:"\f176"}.fa-long-arrow-left::before{content:"\f177"}.fa-long-arrow-right::before{content:"\f178"}.fa-apple::before{content:"\f179"}.fa-windows::before{content:"\f17a"}.fa-android::before{content:"\f17b"}.fa-linux::before{content:"\f17c"}.fa-dribbble::before{content:"\f17d"}.fa-skype::before{content:"\f17e"}.fa-foursquare::before{content:"\f180"}.fa-trello::before{content:"\f181"}.fa-female::before{content:"\f182"}.fa-male::before{content:"\f183"}.fa-gittip::before,.fa-gratipay::before{content:"\f184"}.fa-sun-o::before{content:"\f185"}.fa-moon-o::before{content:"\f186"}.fa-archive::before{content:"\f187"}.fa-bug::before{content:"\f188"}.fa-vk::before{content:"\f189"}.fa-weibo::before{content:"\f18a"}.fa-renren::before{content:"\f18b"}.fa-pagelines::before{content:"\f18c"}.fa-stack-exchange::before{content:"\f18d"}.fa-arrow-circle-o-right::before{content:"\f18e"}.fa-arrow-circle-o-left::before{content:"\f190"}.fa-caret-square-o-left::before,.fa-toggle-left::before{content:"\f191"}.fa-dot-circle-o::before{content:"\f192"}.fa-wheelchair::before{content:"\f193"}.fa-vimeo-square::before{content:"\f194"}.fa-try::before,.fa-turkish-lira::before{content:"\f195"}.fa-plus-square-o::before{content:"\f196"}.fa-space-shuttle::before{content:"\f197"}.fa-slack::before{content:"\f198"}.fa-envelope-square::before{content:"\f199"}.fa-wordpress::before{content:"\f19a"}.fa-openid::before{content:"\f19b"}.fa-bank::before,.fa-institution::before,.fa-university::before{content:"\f19c"}.fa-graduation-cap::before,.fa-mortar-board::before{content:"\f19d"}.fa-yahoo::before{content:"\f19e"}.fa-google::before{content:"\f1a0"}.fa-reddit::before{content:"\f1a1"}.fa-reddit-square::before{content:"\f1a2"}.fa-stumbleupon-circle::before{content:"\f1a3"}.fa-stumbleupon::before{content:"\f1a4"}.fa-delicious::before{content:"\f1a5"}.fa-digg::before{content:"\f1a6"}.fa-pied-piper-pp::before{content:"\f1a7"}.fa-pied-piper-alt::before{content:"\f1a8"}.fa-drupal::before{content:"\f1a9"}.fa-joomla::before{content:"\f1aa"}.fa-language::before{content:"\f1ab"}.fa-fax::before{content:"\f1ac"}.fa-building::before{content:"\f1ad"}.fa-child::before{content:"\f1ae"}.fa-paw::before{content:"\f1b0"}.fa-spoon::before{content:"\f1b1"}.fa-cube::before{content:"\f1b2"}.fa-cubes::before{content:"\f1b3"}.fa-behance::before{content:"\f1b4"}.fa-behance-square::before{content:"\f1b5"}.fa-steam::before{content:"\f1b6"}.fa-steam-square::before{content:"\f1b7"}.fa-recycle::before{content:"\f1b8"}.fa-automobile::before,.fa-car::before{content:"\f1b9"}.fa-cab::before,.fa-taxi::before{content:"\f1ba"}.fa-tree::before{content:"\f1bb"}.fa-spotify::before{content:"\f1bc"}.fa-deviantart::before{content:"\f1bd"}.fa-soundcloud::before{content:"\f1be"}.fa-database::before{content:"\f1c0"}.fa-file-pdf-o::before{content:"\f1c1"}.fa-file-word-o::before{content:"\f1c2"}.fa-file-excel-o::before{content:"\f1c3"}.fa-file-powerpoint-o::before{content:"\f1c4"}.fa-file-image-o::before,.fa-file-photo-o::before,.fa-file-picture-o::before{content:"\f1c5"}.fa-file-archive-o::before,.fa-file-zip-o::before{content:"\f1c6"}.fa-file-audio-o::before,.fa-file-sound-o::before{content:"\f1c7"}.fa-file-movie-o::before,.fa-file-video-o::before{content:"\f1c8"}.fa-file-code-o::before{content:"\f1c9"}.fa-vine::before{content:"\f1ca"}.fa-codepen::before{content:"\f1cb"}.fa-jsfiddle::before{content:"\f1cc"}.fa-life-bouy::before,.fa-life-buoy::before,.fa-life-ring::before,.fa-life-saver::before,.fa-support::before{content:"\f1cd"}.fa-circle-o-notch::before{content:"\f1ce"}.fa-ra::before,.fa-rebel::before,.fa-resistance::before{content:"\f1d0"}.fa-empire::before,.fa-ge::before{content:"\f1d1"}.fa-git-square::before{content:"\f1d2"}.fa-git::before{content:"\f1d3"}.fa-hacker-news::before,.fa-y-combinator-square::before,.fa-yc-square::before{content:"\f1d4"}.fa-tencent-weibo::before{content:"\f1d5"}.fa-qq::before{content:"\f1d6"}.fa-wechat::before,.fa-weixin::before{content:"\f1d7"}.fa-paper-plane::before,.fa-send::before{content:"\f1d8"}.fa-paper-plane-o::before,.fa-send-o::before{content:"\f1d9"}.fa-history::before{content:"\f1da"}.fa-circle-thin::before{content:"\f1db"}.fa-header::before{content:"\f1dc"}.fa-paragraph::before{content:"\f1dd"}.fa-sliders::before{content:"\f1de"}.fa-share-alt::before{content:"\f1e0"}.fa-share-alt-square::before{content:"\f1e1"}.fa-bomb::before{content:"\f1e2"}.fa-futbol-o::before,.fa-soccer-ball-o::before{content:"\f1e3"}.fa-tty::before{content:"\f1e4"}.fa-binoculars::before{content:"\f1e5"}.fa-plug::before{content:"\f1e6"}.fa-slideshare::before{content:"\f1e7"}.fa-twitch::before{content:"\f1e8"}.fa-yelp::before{content:"\f1e9"}.fa-newspaper-o::before{content:"\f1ea"}.fa-wifi::before{content:"\f1eb"}.fa-calculator::before{content:"\f1ec"}.fa-paypal::before{content:"\f1ed"}.fa-google-wallet::before{content:"\f1ee"}.fa-cc-visa::before{content:"\f1f0"}.fa-cc-mastercard::before{content:"\f1f1"}.fa-cc-discover::before{content:"\f1f2"}.fa-cc-amex::before{content:"\f1f3"}.fa-cc-paypal::before{content:"\f1f4"}.fa-cc-stripe::before{content:"\f1f5"}.fa-bell-slash::before{content:"\f1f6"}.fa-bell-slash-o::before{content:"\f1f7"}.fa-trash::before{content:"\f1f8"}.fa-copyright::before{content:"\f1f9"}.fa-at::before{content:"\f1fa"}.fa-eyedropper::before{content:"\f1fb"}.fa-paint-brush::before{content:"\f1fc"}.fa-birthday-cake::before{content:"\f1fd"}.fa-area-chart::before{content:"\f1fe"}.fa-pie-chart::before{content:"\f200"}.fa-line-chart::before{content:"\f201"}.fa-lastfm::before{content:"\f202"}.fa-lastfm-square::before{content:"\f203"}.fa-toggle-off::before{content:"\f204"}.fa-toggle-on::before{content:"\f205"}.fa-bicycle::before{content:"\f206"}.fa-bus::before{content:"\f207"}.fa-ioxhost::before{content:"\f208"}.fa-angellist::before{content:"\f209"}.fa-cc::before{content:"\f20a"}.fa-ils::before,.fa-shekel::before,.fa-sheqel::before{content:"\f20b"}.fa-meanpath::before{content:"\f20c"}.fa-buysellads::before{content:"\f20d"}.fa-connectdevelop::before{content:"\f20e"}.fa-dashcube::before{content:"\f210"}.fa-forumbee::before{content:"\f211"}.fa-leanpub::before{content:"\f212"}.fa-sellsy::before{content:"\f213"}.fa-shirtsinbulk::before{content:"\f214"}.fa-simplybuilt::before{content:"\f215"}.fa-skyatlas::before{content:"\f216"}.fa-cart-plus::before{content:"\f217"}.fa-cart-arrow-down::before{content:"\f218"}.fa-diamond::before{content:"\f219"}.fa-ship::before{content:"\f21a"}.fa-user-secret::before{content:"\f21b"}.fa-motorcycle::before{content:"\f21c"}.fa-street-view::before{content:"\f21d"}.fa-heartbeat::before{content:"\f21e"}.fa-venus::before{content:"\f221"}.fa-mars::before{content:"\f222"}.fa-mercury::before{content:"\f223"}.fa-intersex::before,.fa-transgender::before{content:"\f224"}.fa-transgender-alt::before{content:"\f225"}.fa-venus-double::before{content:"\f226"}.fa-mars-double::before{content:"\f227"}.fa-venus-mars::before{content:"\f228"}.fa-mars-stroke::before{content:"\f229"}.fa-mars-stroke-v::before{content:"\f22a"}.fa-mars-stroke-h::before{content:"\f22b"}.fa-neuter::before{content:"\f22c"}.fa-genderless::before{content:"\f22d"}.fa-facebook-official::before{content:"\f230"}.fa-pinterest-p::before{content:"\f231"}.fa-whatsapp::before{content:"\f232"}.fa-server::before{content:"\f233"}.fa-user-plus::before{content:"\f234"}.fa-user-times::before{content:"\f235"}.fa-bed::before,.fa-hotel::before{content:"\f236"}.fa-viacoin::before{content:"\f237"}.fa-train::before{content:"\f238"}.fa-subway::before{content:"\f239"}.fa-medium::before{content:"\f23a"}.fa-y-combinator::before,.fa-yc::before{content:"\f23b"}.fa-optin-monster::before{content:"\f23c"}.fa-opencart::before{content:"\f23d"}.fa-expeditedssl::before{content:"\f23e"}.fa-battery-4::before,.fa-battery-full::before,.fa-battery::before{content:"\f240"}.fa-battery-3::before,.fa-battery-three-quarters::before{content:"\f241"}.fa-battery-2::before,.fa-battery-half::before{content:"\f242"}.fa-battery-1::before,.fa-battery-quarter::before{content:"\f243"}.fa-battery-0::before,.fa-battery-empty::before{content:"\f244"}.fa-mouse-pointer::before{content:"\f245"}.fa-i-cursor::before{content:"\f246"}.fa-object-group::before{content:"\f247"}.fa-object-ungroup::before{content:"\f248"}.fa-sticky-note::before{content:"\f249"}.fa-sticky-note-o::before{content:"\f24a"}.fa-cc-jcb::before{content:"\f24b"}.fa-cc-diners-club::before{content:"\f24c"}.fa-clone::before{content:"\f24d"}.fa-balance-scale::before{content:"\f24e"}.fa-hourglass-o::before{content:"\f250"}.fa-hourglass-1::before,.fa-hourglass-start::before{content:"\f251"}.fa-hourglass-2::before,.fa-hourglass-half::before{content:"\f252"}.fa-hourglass-3::before,.fa-hourglass-end::before{content:"\f253"}.fa-hourglass::before{content:"\f254"}.fa-hand-grab-o::before,.fa-hand-rock-o::before{content:"\f255"}.fa-hand-paper-o::before,.fa-hand-stop-o::before{content:"\f256"}.fa-hand-scissors-o::before{content:"\f257"}.fa-hand-lizard-o::before{content:"\f258"}.fa-hand-spock-o::before{content:"\f259"}.fa-hand-pointer-o::before{content:"\f25a"}.fa-hand-peace-o::before{content:"\f25b"}.fa-trademark::before{content:"\f25c"}.fa-registered::before{content:"\f25d"}.fa-creative-commons::before{content:"\f25e"}.fa-gg::before{content:"\f260"}.fa-gg-circle::before{content:"\f261"}.fa-tripadvisor::before{content:"\f262"}.fa-odnoklassniki::before{content:"\f263"}.fa-odnoklassniki-square::before{content:"\f264"}.fa-get-pocket::before{content:"\f265"}.fa-wikipedia-w::before{content:"\f266"}.fa-safari::before{content:"\f267"}.fa-chrome::before{content:"\f268"}.fa-firefox::before{content:"\f269"}.fa-opera::before{content:"\f26a"}.fa-internet-explorer::before{content:"\f26b"}.fa-television::before,.fa-tv::before{content:"\f26c"}.fa-contao::before{content:"\f26d"}.fa-500px::before{content:"\f26e"}.fa-amazon::before{content:"\f270"}.fa-calendar-plus-o::before{content:"\f271"}.fa-calendar-minus-o::before{content:"\f272"}.fa-calendar-times-o::before{content:"\f273"}.fa-calendar-check-o::before{content:"\f274"}.fa-industry::before{content:"\f275"}.fa-map-pin::before{content:"\f276"}.fa-map-signs::before{content:"\f277"}.fa-map-o::before{content:"\f278"}.fa-map::before{content:"\f279"}.fa-commenting::before{content:"\f27a"}.fa-commenting-o::before{content:"\f27b"}.fa-houzz::before{content:"\f27c"}.fa-vimeo::before{content:"\f27d"}.fa-black-tie::before{content:"\f27e"}.fa-fonticons::before{content:"\f280"}.fa-reddit-alien::before{content:"\f281"}.fa-edge::before{content:"\f282"}.fa-credit-card-alt::before{content:"\f283"}.fa-codiepie::before{content:"\f284"}.fa-modx::before{content:"\f285"}.fa-fort-awesome::before{content:"\f286"}.fa-usb::before{content:"\f287"}.fa-product-hunt::before{content:"\f288"}.fa-mixcloud::before{content:"\f289"}.fa-scribd::before{content:"\f28a"}.fa-pause-circle::before{content:"\f28b"}.fa-pause-circle-o::before{content:"\f28c"}.fa-stop-circle::before{content:"\f28d"}.fa-stop-circle-o::before{content:"\f28e"}.fa-shopping-bag::before{content:"\f290"}.fa-shopping-basket::before{content:"\f291"}.fa-hashtag::before{content:"\f292"}.fa-bluetooth::before{content:"\f293"}.fa-bluetooth-b::before{content:"\f294"}.fa-percent::before{content:"\f295"}.fa-gitlab::before{content:"\f296"}.fa-wpbeginner::before{content:"\f297"}.fa-wpforms::before{content:"\f298"}.fa-envira::before{content:"\f299"}.fa-universal-access::before{content:"\f29a"}.fa-wheelchair-alt::before{content:"\f29b"}.fa-question-circle-o::before{content:"\f29c"}.fa-blind::before{content:"\f29d"}.fa-audio-description::before{content:"\f29e"}.fa-volume-control-phone::before{content:"\f2a0"}.fa-braille::before{content:"\f2a1"}.fa-assistive-listening-systems::before{content:"\f2a2"}.fa-american-sign-language-interpreting::before,.fa-asl-interpreting::before{content:"\f2a3"}.fa-deaf::before,.fa-deafness::before,.fa-hard-of-hearing::before{content:"\f2a4"}.fa-glide::before{content:"\f2a5"}.fa-glide-g::before{content:"\f2a6"}.fa-sign-language::before,.fa-signing::before{content:"\f2a7"}.fa-low-vision::before{content:"\f2a8"}.fa-viadeo::before{content:"\f2a9"}.fa-viadeo-square::before{content:"\f2aa"}.fa-snapchat::before{content:"\f2ab"}.fa-snapchat-ghost::before{content:"\f2ac"}.fa-snapchat-square::before{content:"\f2ad"}.fa-pied-piper::before{content:"\f2ae"}.fa-first-order::before{content:"\f2b0"}.fa-yoast::before{content:"\f2b1"}.fa-themeisle::before{content:"\f2b2"}.fa-google-plus-circle::before,.fa-google-plus-official::before{content:"\f2b3"}.fa-fa::before,.fa-font-awesome::before{content:"\f2b4"}.fa-handshake-o::before{content:"\f2b5"}.fa-envelope-open::before{content:"\f2b6"}.fa-envelope-open-o::before{content:"\f2b7"}.fa-linode::before{content:"\f2b8"}.fa-address-book::before{content:"\f2b9"}.fa-address-book-o::before{content:"\f2ba"}.fa-address-card::before,.fa-vcard::before{content:"\f2bb"}.fa-address-card-o::before,.fa-vcard-o::before{content:"\f2bc"}.fa-user-circle::before{content:"\f2bd"}.fa-user-circle-o::before{content:"\f2be"}.fa-user-o::before{content:"\f2c0"}.fa-id-badge::before{content:"\f2c1"}.fa-drivers-license::before,.fa-id-card::before{content:"\f2c2"}.fa-drivers-license-o::before,.fa-id-card-o::before{content:"\f2c3"}.fa-quora::before{content:"\f2c4"}.fa-free-code-camp::before{content:"\f2c5"}.fa-telegram::before{content:"\f2c6"}.fa-thermometer-4::before,.fa-thermometer-full::before,.fa-thermometer::before{content:"\f2c7"}.fa-thermometer-3::before,.fa-thermometer-three-quarters::before{content:"\f2c8"}.fa-thermometer-2::before,.fa-thermometer-half::before{content:"\f2c9"}.fa-thermometer-1::before,.fa-thermometer-quarter::before{content:"\f2ca"}.fa-thermometer-0::before,.fa-thermometer-empty::before{content:"\f2cb"}.fa-shower::before{content:"\f2cc"}.fa-bath::before,.fa-bathtub::before,.fa-s15::before{content:"\f2cd"}.fa-podcast::before{content:"\f2ce"}.fa-window-maximize::before{content:"\f2d0"}.fa-window-minimize::before{content:"\f2d1"}.fa-window-restore::before{content:"\f2d2"}.fa-times-rectangle::before,.fa-window-close::before{content:"\f2d3"}.fa-times-rectangle-o::before,.fa-window-close-o::before{content:"\f2d4"}.fa-bandcamp::before{content:"\f2d5"}.fa-grav::before{content:"\f2d6"}.fa-etsy::before{content:"\f2d7"}.fa-imdb::before{content:"\f2d8"}.fa-ravelry::before{content:"\f2d9"}.fa-eercast::before{content:"\f2da"}.fa-microchip::before{content:"\f2db"}.fa-snowflake-o::before{content:"\f2dc"}.fa-superpowers::before{content:"\f2dd"}.fa-wpexplorer::before{content:"\f2de"}.fa-meetup::before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.doc .paragraph .title{font-weight:600}.doc .listingblock.dot{height:400px;overflow:scroll;border:2px solid #805ad5}.docs.image-border article img,.docs article .border img{border:1px solid #63b3ed;border-radius:4px;padding:1rem}.docs.image-shadow article img,.docs article .shadow img{-webkit-box-shadow:2px 2px 4px 0 #a0aec0,0 4px 4px 2px #e2e8f0,0 4px 6px 4px #edf2f7,4px 4px 4px 4px #f7fafc;box-shadow:2px 2px 4px 0 #a0aec0,0 4px 4px 2px #e2e8f0,0 4px 6px 4px #edf2f7,4px 4px 4px 4px #f7fafc}.docs article .no-border img{border:none;padding:0}.docs article .no-shadow img{-webkit-box-shadow:none;box-shadow:none}section.deprecated .title::after{bottom:4px;margin-left:10px}div.roles,div.roles>span.role{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:8px;font-size:2rem;line-height:1.3}@media screen and (max-width:1023px){div.roles,div.roles>span.role::after{margin-left:0}div.roles,div.roles>span.role{margin-bottom:0}}.deprecated>.title::after,.sect1.alpha h2::after,.sect1.beta h2::after,.sect2.alpha h3::after,.sect2.beta h3::after,body.deprecated article dt::after,body.deprecated article h2::after,body.deprecated article h3::after,body.deprecated article h4::after,body.fabric article h2::after,body.fabric article h3::after,body.fabric article h4::after,div.aura-db-enterprise h2::after,div.aura-db-enterprise h3::after,div.aura-db-enterprise h4::after,div.deprecated h2::after,div.deprecated h3::after,div.deprecated h4::after,div.enterprise-edition h2::after,div.enterprise-edition h3::after,div.enterprise-edition h4::after,div.fabric h2::after,div.fabric h3::after,div.fabric h4::after,div.not-on-aura h2::after,div.not-on-aura h3::after,div.not-on-aura h4::after,p.aura-db-enterprise::before,p.deprecated::before,p.enterprise-edition::before,p.fabric::before,p.not-on-aura::before,section.aura-db-enterprise.title::after,section.deprecated .title::after,section.enterprise-edition .title::after,section.fabric .title::after,section.not-on-aura .title::after,span.alpha::after,span.aura-db-enterprise::after,span.beta::after,span.deprecated::after,span.enterprise-edition::after,span.fabric::after,span.not-on-aura::after{text-align:center;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;font-size:1rem;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px 8px;border-style:solid;border-width:1px;border-radius:6px;bottom:2px;margin-left:8px}.sect1.show-roles h2::after,.sect2.show-roles h3::after,.sect3.show-roles h4::after{display:none}.sect1.show-roles h2,.sect2.show-roles h3,.sect2.show-roles h4{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.sect2.show-roles div.roles,.sect2.show-roles div.roles>span.role{font-size:1rem;margin-bottom:0}.sect-header{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;margin-bottom:1rem}.sect1:not(.display)>.sect-header{border-bottom:1px solid #e2e8f0;margin-bottom:1rem;padding-bottom:.5rem}.sect1 div.roles>span.role,div.roles>span.role::after{margin:0}.doc .sect-header h2{border-bottom:none;margin-bottom:0}.deprecated>.title::after,.deprecated dt::after,body.deprecated article h2::after,body.deprecated article h3::after,body.deprecated article h4::after,div.deprecated h2::after,div.deprecated h3::after,div.deprecated h4::after,p.deprecated::before,section.deprecated .title::after,span.deprecated::after{content:"deprecated";color:#d53f8c;border-color:#d53f8c;margin-left:8px}div.not-on-aura h2::after,div.not-on-aura h3::after,div.not-on-aura h4::after,p.not-on-aura::before,section.not-on-aura .title::after,span.not-on-aura::after{content:"Not available on Aura";color:#c53030;border-color:#c53030}div.aura-db-enterprise h2::after,div.aura-db-enterprise h3::after,div.aura-db-enterprise h4::after,p.aura-db-enterprise::before,section.aura-db-enterprise.title::after,span.aura-db-enterprise::after{content:"AuraDB Enterprise";color:#3182ce;border-color:#3182ce}div.enterprise-edition h2::after,div.enterprise-edition h3::after,div.enterprise-edition h4::after,p.enterprise-edition::before,section.enterprise-edition .title::after,span.enterprise-edition::after{content:"Enterprise Edition";color:#38a169;border-color:#38a169}div.fabric h2::after,div.fabric h3::after,div.fabric h4::after,p.fabric::before,section.fabric .title::after,span.fabric::after{content:"Fabric";color:#4299e1;border-color:#4299e1}.admonitionblock td.icon .icon-::before{content:"\f088";color:#f58220}.doc .admonitionblock.deprecated .icon{background-color:#d53f8c;color:#fff}.doc .admonitionblock.deprecated .icon i::after{content:"DEPRECATED"}.doc .admonitionblock.deprecated{background-color:#fed7e2;color:#702459;border-left-color:#d53f8c}.doc .admonitionblock.deprecated pre{background-color:#fff5f5;color:#c53030}.doc .admonitionblock.deprecated a{color:#e53e3e}.doc pre{font-size:.77778rem}.doc .paragraph.erroronlyqueryresult,.doc .paragraph.statsonlyqueryresult{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.77778rem;background-color:#edf2f7;margin:-1.5rem 30% 1.5rem 2rem;padding-top:.25rem;padding-bottom:.25rem;padding-left:1.5rem}.sect1.alpha h2::after,.sect1.beta h2::after,.sect2.alpha h3::after,.sect2.beta h3::after,span.alpha::after,span.beta::after{color:#ed8936}.sect1.alpha h2::after,.sect2.alpha h3::after,span.alpha::after{content:"alpha"}.sect1.beta h2::after,.sect2.beta h3::after,span.beta::after{content:"beta"}div.tier-note p{padding:10px}div.tier-note p::before{border-right:thin solid #cbd5e0;padding:0 10px;margin-right:10px;font-family:fantasy;font-size:2rem;color:#ed8936;text-shadow:1px 1px 2px rgba(0,0,0,.5)}div.alpha-symbol p::before{content:"\03b1"}div.beta-symbol p::before{content:"\03b2"}.function-reference::after{content:"\2A0D";margin-left:.5em;padding:0 .5em;background-color:#e9d8fd;color:#6b46c1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;border-radius:25%}.graph-variants>.title{color:#4a5568!important;font-style:normal!important;font-size:1.11111rem!important}.graph-variants>.content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}@media screen and (max-width:1244px){.graph-variants>.content>.paragraph{-webkit-box-flex:0;-ms-flex:0 0 30%;flex:0 0 30%}}@media screen and (max-width:582px){.graph-variants>.content>.paragraph{-webkit-box-flex:1;-ms-flex:1 1 20%;flex:1 1 20%}}@media screen and (min-width:1245px){.graph-variants>.content>.paragraph{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}}.graph-variants>.content>.paragraph{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;white-space:nowrap;padding:.2rem .3rem;margin:.5em 1em 0 0;line-height:1em;border-radius:.2rem}.graph-variants>.content>.supported::before{content:"\2714";margin-right:.5em;color:#00ba88}.graph-variants>.content>.supported{background-color:#e1faef}.graph-variants>.content>.allowed::before{content:"(\2714)";margin-right:.5em;color:#808a87}.graph-variants>.content>.allowed{background-color:#e4e9e8}.graph-variants>.content>.not-supported{background-color:#ffe6e9}.graph-variants>.content>.not-supported::before{content:"\2716";margin-right:.5em;color:#ed1252}.newsletter{background:#bee3f8;border-radius:.5rem;color:#2b6cb0;font-size:.77778rem;padding:1rem}.newsletter h2{font-size:.88889rem;font-weight:600;line-height:1.5;margin:0;color:#2c5282}.newsletter p{margin:.25rem 0}.newsletter label{color:#2b6cb0}.newsletter .mktoForm .mktoRequiredField .mktoAsterix,.newsletter .mktoGutter,.newsletter .mktoOffset{display:none!important}.newsletter .mktoForm input{outline:none;margin:0!important;border:1px solid #90cdf4!important;border-radius:.25rem!important;background:#ebf8ff!important;color:#2c5282!important}.newsletter .mktoLogicalField{padding:0!important}.newsletter .mktoLogicalField label{width:100%!important}.newsletter .mktoForm div.mktoButtonRow{width:100%}.newsletter .mktoForm .mktoButtonWrap.mktoSimple .mktoButton{background:#2c5282!important;color:#ebf8ff!important;width:100%!important;border-radius:.25rem!important;border:0}.toc .newsletter{position:absolute;bottom:6rem}.arrange-options ul{margin:1rem 0!important;padding:0!important;min-height:1.5rem}.arrange-options .arrange-message{font-size:.75rem;color:#718096;border-bottom:1px solid #e2e8f0;margin:0 0 .25rem;padding-bottom:.25rem}.arrange-options li,.arrange pre code span{display:inline-block;background:#f7fafc;border:1px solid #edf2f7;border-radius:.25rem;padding:.25rem .5rem;margin:0 .5rem 0 0;font-family:Roboto Mono,monospace;cursor:pointer}.arrange pre code span{background:#fff} diff --git a/docs/build/_static/doctools.js b/docs/build/_static/doctools.js deleted file mode 100644 index d06a71d75..000000000 --- a/docs/build/_static/doctools.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), - LOCALE: "unknown", - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/docs/build/_static/documentation_options.js b/docs/build/_static/documentation_options.js deleted file mode 100644 index 7e4c114f2..000000000 --- a/docs/build/_static/documentation_options.js +++ /dev/null @@ -1,13 +0,0 @@ -const DOCUMENTATION_OPTIONS = { - VERSION: '', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/docs/build/_static/file.png b/docs/build/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/docs/build/_static/fonts/nunito-sans-cyrillic-ext.woff2 b/docs/build/_static/fonts/nunito-sans-cyrillic-ext.woff2 deleted file mode 100644 index 381d41fb6b7dd8cf9c5042c955f4438b2b20c031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21616 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 diff --git a/docs/build/_static/fonts/nunito-sans-cyrillic.woff2 b/docs/build/_static/fonts/nunito-sans-cyrillic.woff2 deleted file mode 100644 index a45f47783328f10222d283f10de1083458f21385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16456 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 X{}??RAD=hbV)9aNe{{UG`~?62Os$7% diff --git a/docs/build/_static/fonts/nunito-sans-latin.woff2 b/docs/build/_static/fonts/nunito-sans-latin.woff2 deleted file mode 100644 index b0e2c35fc4b5f09304b46ba99277339597349053..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31052 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 Xd~LniMd=9KJ4*H;{As=aw6+5PSuU)m diff --git a/docs/build/_static/fonts/nunito-sans-vietnamese.woff2 b/docs/build/_static/fonts/nunito-sans-vietnamese.woff2 deleted file mode 100644 index 8f9ec7cc6e5e994ec6a2e829279b6c0e3d5a7f94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10332 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 diff --git a/docs/build/_static/js/12-fragment-jumper.js b/docs/build/_static/js/12-fragment-jumper.js deleted file mode 100644 index b2021ca8f..000000000 --- a/docs/build/_static/js/12-fragment-jumper.js +++ /dev/null @@ -1,53 +0,0 @@ -;(function () { - 'use strict' - - var article = document.querySelector('article.doc') - var cheatSheet = document.querySelector('body.cheat-sheet') - var toolbar = document.querySelector('.toolbar') - var headerNavigationBar = document.querySelector('header > .navbar') - - function decodeFragment (hash) { - return hash && (~hash.indexOf('%') ? decodeURIComponent(hash) : hash).slice(1) - } - - function computePosition (el, sum) { - if (article.contains(el)) { - return computePosition(el.offsetParent, el.offsetTop + sum) - } else { - return sum - } - } - - function jumpToAnchor (e) { - if (e) { - window.location.hash = '#' + this.id - e.preventDefault() - } - var topOffset = toolbar ? toolbar.getBoundingClientRect().bottom : headerNavigationBar.getBoundingClientRect().bottom - - if (cheatSheet) { - var scrollTarget = this.closest('div') - var selectorsTop = document.querySelector('.nav-container .selectors').querySelector('div').getBoundingClientRect().top - if (this.tagName === 'H3') topOffset = selectorsTop - window.scrollTo(0, computePosition(scrollTarget, 0) - topOffset) - } else { - window.scrollTo(0, computePosition(this, 0) - topOffset) - } - } - - window.addEventListener('load', function jumpOnLoad (e) { - var fragment, target - if ((fragment = decodeFragment(window.location.hash)) && (target = document.getElementById(fragment))) { - jumpToAnchor.bind(target)() - setTimeout(jumpToAnchor.bind(target), 0) - } - window.removeEventListener('load', jumpOnLoad) - }) - - Array.prototype.slice.call(document.querySelectorAll('a[href^="#"]')).forEach(function (el) { - var fragment, target - if ((fragment = decodeFragment(el.hash)) && (target = document.getElementById(fragment))) { - el.addEventListener('click', jumpToAnchor.bind(target)) - } - }) -})() diff --git a/docs/build/_static/language_data.js b/docs/build/_static/language_data.js deleted file mode 100644 index 250f5665f..000000000 --- a/docs/build/_static/language_data.js +++ /dev/null @@ -1,199 +0,0 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, is available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - diff --git a/docs/build/_static/menu.svg b/docs/build/_static/menu.svg deleted file mode 100644 index 1cc79e63c..000000000 --- a/docs/build/_static/menu.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/build/_static/minus.png b/docs/build/_static/minus.png deleted file mode 100644 index d96755fdaf8bb2214971e0db9c1fd3077d7c419d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK diff --git a/docs/build/_static/plus.png b/docs/build/_static/plus.png deleted file mode 100644 index 7107cec93a979b9a5f64843235a16651d563ce2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz diff --git a/docs/build/_static/pygments.css b/docs/build/_static/pygments.css deleted file mode 100644 index 0d49244ed..000000000 --- a/docs/build/_static/pygments.css +++ /dev/null @@ -1,75 +0,0 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #eeffcc; } -.highlight .c { color: #408090; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #333333 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #208050 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #208050 } /* Literal.Number.Bin */ -.highlight .mf { color: #208050 } /* Literal.Number.Float */ -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ -.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #06287e } /* Name.Function.Magic */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/build/_static/searchtools.js b/docs/build/_static/searchtools.js deleted file mode 100644 index 7918c3fab..000000000 --- a/docs/build/_static/searchtools.js +++ /dev/null @@ -1,574 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename] = result - return score - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: { - 0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5, // used to be unimportantResults - }, - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms, highlightTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const contentRoot = document.documentElement.dataset.content_root; - - const [docName, title, anchor, descr, score, _filename] = item; - - let listItem = document.createElement("li"); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = contentRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = contentRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) { - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) - ); - // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms, - highlightTerms, -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms, highlightTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; - console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - // array of [docname, title, anchor, descr, score, filename] - let results = []; - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // lookup as object - objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - results = results.reverse(); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms, highlightTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - const arr = [ - { files: terms[word], score: Scorer.term }, - { files: titleTerms[word], score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, {}); - scoreMap.get(file)[word] = record.score; - }); - }); - - // create the mapping - files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/docs/build/_static/sphinx_highlight.js b/docs/build/_static/sphinx_highlight.js deleted file mode 100644 index 8a96c69a1..000000000 --- a/docs/build/_static/sphinx_highlight.js +++ /dev/null @@ -1,154 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - const rest = document.createTextNode(val.substr(pos + text.length)); - parent.insertBefore( - span, - parent.insertBefore( - rest, - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - /* There may be more occurrences of search term in this node. So call this - * function recursively on the remaining fragment. - */ - _highlight(rest, addItems, text, className); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(() => { - /* Do not call highlightSearchWords() when we are on the search page. - * It will highlight words from the *previous* search query. - */ - if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); - SphinxHighlight.initEscapeListener(); -}); diff --git a/docs/build/api.html b/docs/build/api.html deleted file mode 100644 index de7c3c3e9..000000000 --- a/docs/build/api.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - - API Documentation — neo4j-genai-python documentation - - - - - - - - - - - - - - -
- -
- - -
- - -
- -
-
- -
-

API Documentation

-
-

Retrieval-Augmented Generation (RAG)

-

RAG is a technique that enhances Large Language Model (LLM) responses by retrieving -source information from external data stores to augment generated responses.

-

This package enables Python developers to use perform RAG using Neo4j.

-
-
-

Retrievers

-
-

VectorRetriever

-
-
-class neo4j_genai.retrievers.vector.VectorRetriever(driver: Driver, index_name: str, embedder: Embedder | None = None, return_properties: list[str] | None = None)
-

Provides retrieval method using vector search over embeddings. -If an embedder is provided, it needs to have the required Embedder type.

-
-
-search(query_vector: list[float] | None = None, query_text: str | None = None, top_k: int = 5) list[VectorSearchRecord]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -See the following documentation for more details:

- -
-
Args:

query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -query_text (Optional[str], optional): The text to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[VectorSearchRecord]: The top_k neighbors found in vector search with their nodes and scores.

-
-
-
- -
- -
-
-

VectorCypherRetriever

-
-
-class neo4j_genai.retrievers.vector.VectorCypherRetriever(driver: Driver, index_name: str, retrieval_query: str, embedder: Embedder | None = None)
-

Provides retrieval method using vector similarity and custom Cypher query. -If an embedder is provided, it needs to have the required Embedder type.

-
-
-search(query_vector: list[float] | None = None, query_text: str | None = None, top_k: int = 5, query_params: dict[str, Any] | None = None) list[Record]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -See the following documentation for more details:

- -
-
Args:

query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -query_text (Optional[str], optional): The text to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5. -query_params (Optional[dict[str, Any]], optional): Parameters for the Cypher query. Defaults to None.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[Record]: The results of the search query

-
-
-
- -
- -
-
-

HybridRetriever

-
-
-class neo4j_genai.retrievers.hybrid.HybridRetriever(driver: Driver, vector_index_name: str, fulltext_index_name: str, embedder: Embedder | None = None, return_properties: list[str] | None = None)
-
-
-search(query_text: str, query_vector: list[float] | None = None, top_k: int = 5) list[Record]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -Both query_vector and query_text can be provided. -If query_vector is provided, then it will be preferred over the embedded query_text -for the vector search.

-

See the following documentation for more details:

- -
-
Args:

query_text (str): The text to get the closest neighbors of. -query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[Record]: The results of the search query

-
-
-
- -
- -
-
-

HybridCypherRetriever

-
-
-class neo4j_genai.retrievers.hybrid.HybridCypherRetriever(driver: Driver, vector_index_name: str, fulltext_index_name: str, retrieval_query: str, embedder: Embedder | None = None)
-
-
-search(query_text: str, query_vector: list[float] | None = None, top_k: int = 5, query_params: dict[str, Any] | None = None) list[Record]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -Both query_vector and query_text can be provided. -If query_vector is provided, then it will be preferred over the embedded query_text -for the vector search.

-

See the following documentation for more details:

- -
-
Args:

query_text (str): The text to get the closest neighbors of. -query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5. -query_params (Optional[dict[str, Any]], optional): Parameters for the Cypher query. Defaults to None.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[Record]: The results of the search query

-
-
-
- -
- -
-
-
- - - -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/doctrees/README.doctree b/docs/build/doctrees/README.doctree deleted file mode 100644 index facf220e3b49f8867e3a09ee1429a409cad3e013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23822 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 diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree deleted file mode 100644 index 9cd489c072a9e589b1981f62452746c4e966798d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5081 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 D - - - - - - Index — neo4j-genai-python documentation - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo deleted file mode 100644 index 7fc617e3a..000000000 --- a/docs/build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 98edc6100e73e280e52569a33c93b947 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/README.html b/docs/build/html/README.html deleted file mode 100644 index 870d01cd4..000000000 --- a/docs/build/html/README.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - - - - Neo4j GenAI package for Python — neo4j-genai-python documentation - - - - - - - - - - - - - -
- -
- - -
- - -
- -
-
- -
-

Neo4j GenAI package for Python

-

This repository contains the official Neo4j GenAI features for Python.

-

The purpose of this package is to provide a first party package to developers, -where Neo4j can guarantee long term commitment and maintenance as well as being -fast to ship new features and high performing patterns and methods.

-

Docs are coming soon!

-
-
-

Usage

-
-

Installation

-

This package requires Python (>=3.8.1).

-

To install the latest stable version, use:

-
pip install neo4j-genai
-
-
-
-
-

Examples

-

While the library has more retrievers than shown here, the following examples should be able to get you started.

- -
-

Creating a vector index

-

When creating a vector index, make sure you match the number of dimensions in the index with the number of dimensions the embeddings have.

-

Assumption: Neo4j running

-
from neo4j import GraphDatabase
-from neo4j_genai.indexes import create_vector_index
-
-URI = "neo4j://localhost:7687"
-AUTH = ("neo4j", "password")
-
-INDEX_NAME = "chunk-index"
-
-# Connect to Neo4j database
-driver = GraphDatabase.driver(URI, auth=AUTH)
-
-# Creating the index
-create_vector_index(
-    driver,
-    INDEX_NAME,
-    label="Document",
-    property="textProperty",
-    dimensions=1536,
-    similarity_fn="euclidean",
-)
-
-
-
-
-
-

Populating the Neo4j Vector Index

-

This library does not write to the database, that is up to you. -See below for how to write using Cypher via the Neo4j driver.

-

Assumption: Neo4j running with a defined vector index

-
from neo4j import GraphDatabase
-from random import random
-
-URI = "neo4j://localhost:7687"
-AUTH = ("neo4j", "password")
-
-# Connect to Neo4j database
-driver = GraphDatabase.driver(URI, auth=AUTH)
-
-# Upsert the vector
-vector = [random() for _ in range(DIMENSION)]
-insert_query = (
-    "MERGE (n:Document {id: $id})"
-    "WITH n "
-    "CALL db.create.setNodeVectorProperty(n, 'textProperty', $vector)"
-    "RETURN n"
-)
-parameters = {
-    "id": 0,
-    "vector": vector,
-}
-driver.execute_query(insert_query, parameters)
-
-
-
-
-
-
-

Development

-
-

Install dependencies

-
poetry install
-
-
-
-
-

Getting started

-
-

Issues

-

If you have a bug to report or feature to request, first -search to see if an issue already exists. -If a related issue doesn’t exist, please raise a new issue using the relevant -issue form.

-

If you’re a Neo4j Enterprise customer, you can also reach out to Customer Support.

-

If you don’t have a bug to report or feature request, but you need a hand with -the library; community support is available via Neo4j Online Community -and/or Discord.

-
-
-

Make changes

-
    -
  1. Fork the repository.

  2. -
  3. Install Python and Poetry. For more information, see the development guide.

  4. -
  5. Create a working branch from main and start with your changes!

  6. -
-
-
-

Pull request

-

When you’re finished with your changes, create a pull request, also known as a PR.

-
    -
  • Ensure that you have signed the CLA.

  • -
  • Ensure that the base of your PR is set to main.

  • -
  • Don’t forget to link your PR to an issue -if you are solving one.

  • -
  • Enable the checkbox to allow maintainer edits -so that maintainers can make any necessary tweaks and update your branch for merge.

  • -
  • Reviewers may ask for changes to be made before a PR can be merged, either using -suggested changes -or normal pull request comments. You can apply suggested changes directly through -the UI, and any other changes can be made in your fork and committed to the PR branch.

  • -
  • As you update your PR and apply changes, mark each conversation as resolved.

  • -
-
-
-
-

Run tests

-

Open a new virtual environment and then run the tests.

-
poetry shell
-pytest
-
-
-
-
-

Further information

- -
-
- - - -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/html/_sources/README.md.txt b/docs/build/html/_sources/README.md.txt deleted file mode 100644 index 10096a060..000000000 --- a/docs/build/html/_sources/README.md.txt +++ /dev/null @@ -1,170 +0,0 @@ -# Neo4j GenAI package for Python - -This repository contains the official Neo4j GenAI features for Python. - -The purpose of this package is to provide a first party package to developers, -where Neo4j can guarantee long term commitment and maintenance as well as being -fast to ship new features and high performing patterns and methods. - -Docs are coming soon! - -# Usage - -## Installation - -This package requires Python (>=3.8.1). - -To install the latest stable version, use: - -```shell -pip install neo4j-genai -``` - -## Examples - -While the library has more retrievers than shown here, the following examples should be able to get you started. - -### Performing a similarity search - -Assumption: Neo4j running with populated vector index in place. - -```python -from neo4j import GraphDatabase -from neo4j_genai import VectorRetriever - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -INDEX_NAME = "embedding-name" - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Initialize the retriever -retriever = VectorRetriever(driver, INDEX_NAME) - -# Run the similarity search -query_text = "How do I do similarity search in Neo4j?" -response = retriever.search(query_text=query_text, top_k=5) -``` - -### Creating a vector index - -When creating a vector index, make sure you match the number of dimensions in the index with the number of dimensions the embeddings have. - -Assumption: Neo4j running - -```python -from neo4j import GraphDatabase -from neo4j_genai.indexes import create_vector_index - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -INDEX_NAME = "chunk-index" - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Creating the index -create_vector_index( - driver, - INDEX_NAME, - label="Document", - property="textProperty", - dimensions=1536, - similarity_fn="euclidean", -) - -``` - -### Populating the Neo4j Vector Index - -This library does not write to the database, that is up to you. -See below for how to write using Cypher via the Neo4j driver. - -Assumption: Neo4j running with a defined vector index - -```python -from neo4j import GraphDatabase -from random import random - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Upsert the vector -vector = [random() for _ in range(DIMENSION)] -insert_query = ( - "MERGE (n:Document {id: $id})" - "WITH n " - "CALL db.create.setNodeVectorProperty(n, 'textProperty', $vector)" - "RETURN n" -) -parameters = { - "id": 0, - "vector": vector, -} -driver.execute_query(insert_query, parameters) -``` - -# Development - -## Install dependencies - -```bash -poetry install -``` - -## Getting started - -### Issues - -If you have a bug to report or feature to request, first -[search to see if an issue already exists](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments). -If a related issue doesn't exist, please raise a new issue using the relevant -[issue form](https://github.com/neo4j/neo4j-genai-python/issues/new/choose). - -If you're a Neo4j Enterprise customer, you can also reach out to [Customer Support](http://support.neo4j.com/). - -If you don't have a bug to report or feature request, but you need a hand with -the library; community support is available via [Neo4j Online Community](https://community.neo4j.com/) -and/or [Discord](https://discord.gg/neo4j). - -### Make changes - -1. Fork the repository. -2. Install Python and Poetry. For more information, see [the development guide](./docs/contributing/DEVELOPING.md). -3. Create a working branch from `main` and start with your changes! - -### Pull request - -When you're finished with your changes, create a pull request, also known as a PR. - -- Ensure that you have [signed the CLA](https://neo4j.com/developer/contributing-code/#sign-cla). -- Ensure that the base of your PR is set to `main`. -- Don't forget to [link your PR to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) - if you are solving one. -- Enable the checkbox to [allow maintainer edits](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) - so that maintainers can make any necessary tweaks and update your branch for merge. -- Reviewers may ask for changes to be made before a PR can be merged, either using - [suggested changes](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request) - or normal pull request comments. You can apply suggested changes directly through - the UI, and any other changes can be made in your fork and committed to the PR branch. -- As you update your PR and apply changes, mark each conversation as [resolved](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#resolving-conversations). - -## Run tests - -Open a new virtual environment and then run the tests. - -```bash -poetry shell -pytest -``` - -## Further information - -- [The official Neo4j Python driver](https://github.com/neo4j/neo4j-python-driver) -- [Neo4j GenAI integrations](https://neo4j.com/docs/cypher-manual/current/genai-integrations/) diff --git a/docs/build/html/_sources/api.rst.txt b/docs/build/html/_sources/api.rst.txt deleted file mode 100644 index 7e46f2f40..000000000 --- a/docs/build/html/_sources/api.rst.txt +++ /dev/null @@ -1,43 +0,0 @@ -.. _api-documentation: - -API Documentation -################# - -************************************ -Retrieval-Augmented Generation (RAG) -************************************ -RAG is a technique that enhances Large Language Model (LLM) responses by retrieving -source information from external data stores to augment generated responses. - -This package enables Python developers to use perform RAG using Neo4j. - -********** -Retrievers -********** - -VectorRetriever -=============== - -.. autoclass:: neo4j_genai.retrievers.vector.VectorRetriever - :members: - - -VectorCypherRetriever -===================== - -.. autoclass:: neo4j_genai.retrievers.vector.VectorCypherRetriever - :members: - - -HybridRetriever -=============== - -.. autoclass:: neo4j_genai.retrievers.hybrid.HybridRetriever - :members: - - -HybridCypherRetriever -=============== - -.. autoclass:: neo4j_genai.retrievers.hybrid.HybridCypherRetriever - :members: diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt deleted file mode 100644 index bec1b20ee..000000000 --- a/docs/build/html/_sources/index.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. neo4j-genai-python documentation master file, created by - sphinx-quickstart on Tue Apr 9 16:36:43 2024. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to neo4j-genai-python's documentation! -============================================== - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - api.rst - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css deleted file mode 100644 index 30fee9d0f..000000000 --- a/docs/build/html/_static/basic.css +++ /dev/null @@ -1,925 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/build/html/_static/css/neo4j.css b/docs/build/html/_static/css/neo4j.css deleted file mode 100644 index a940aa372..000000000 --- a/docs/build/html/_static/css/neo4j.css +++ /dev/null @@ -1,642 +0,0 @@ -@import "site.css"; - -#auth { - padding-left: initial; -} - -.doc h1 { - font-size: 1.75em; -} - -.doc p { - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0; - margin-inline-end: 0; -} - -.sphinx pre { - line-height: 1.3; -} - -.sphinx pre:not(.highlight) { - padding-top: 1rem; - padding-bottom: 1rem; -} - -html.is-clipped--nav #searchbox { - display: none !important; -} - -body.sphinx .navbar-link a { - color: #3182ce; -} - - -body.sphinx a.external::after { - display: inline-block; - content: ""; - padding: 0; - margin: 0; - background-position: 50%; -} - -body.sphinx #searchbox { - padding: 0 1.5rem 0.5rem; -} - -body.sphinx #indexlinkbox { - padding: 0 1.5rem 0.5rem 0; -} - -body.sphinx #indexlinkbox .indexlinkwrapper > ul:first-child { - margin-top: 0; -} - -#indexlinklabel { - padding-left: 1.5rem; -} - -body.sphinx #searchlabel, -body.sphinx #indexlinklabel { - margin: 0.8rem 0 0.5rem; -} - -body.sphinx #searchlabel, -body.sphinx #indexlinklabel { - margin: 0.8rem 0 0.5rem; -} - -body.sphinx #searchbox .search, -body.sphinx .content .search { - display: block; - opacity: 1; - position: relative; - background: initial; -} - -@media screen and (min-width: 1024px) { - - body.sphinx .toolbar { - background: initial; - box-shadow: none; - height: 0; - } - - .navbar-item, .navbar-link { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - body.sphinx .nav-container { - border: none; - } - - body.sphinx .nav, - body.sphinx .nav-panel-menu { - height: auto; - background: initial; - } - - body.sphinx .sphinxsidebar { - background: #f5f7fa; - position: static; - } - - body.sphinx .sphinxsidebarwrapper { - position: sticky; - top: 3.77778rem; - height: calc(100vh - 3.77778rem); - overflow-y: auto; - } - - body.sphinx .nav-panel-menu:not(.is-active)::after { - background: initial; - } - - body.sphinx .navbar-start { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - max-width: 63.11111rem; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - margin-right: 2rem; - } - - body.sphinx .navbar-start .navbar-link { - margin-left: auto; - } -} - -.navbar-item, .navbar-link { - color: #4a5568; - line-height: 1.8; - padding: 0.5rem 1rem; - position: relative; -} - -@media screen and (min-width: 769px) { - .doc>.sect-header>h1.page:first-child { - margin-top: 2.5rem; - } -} - -.doc>section>h1:first-child { - font-size: 2rem; - margin: 1.5rem 0.5rem 1.5rem 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.doc h1, .doc h2, .doc h3, .doc h4, .doc h5, .doc h6 { - color: #4a5568; - font-weight: 400; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; - line-height: 1.3; - margin: 2rem 0 1rem; -} - -.doc a.headerlink { - visibility: hidden; - margin-left: 0.5rem; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -.nav-menu .caption { - padding: 0.5rem 1.5rem; - font-size: 1.5rem; -} - -.nav-menu ul { - padding-left: 0; -} - - - -.nav-menu li.toctree-l1 { - list-style: none; - position: relative; -} - -.nav-menu .toctree-l1>a, -.nav-menu .toctree-l1>span { - padding-left: 1.5rem; -} - -.nav-menu .toctree-l1>a, -.nav-menu .toctree-l1>span { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.nav-menu .toctree-l1 a:hover, -.nav-menu .toctree-l1 span:hover { - background-color: #e6e9ee; -} - -.nav-menu .toctree-l1>a.current { - background-color: #e6f8ff; - color: #0056b3; -} - -.nav-menu .toctree-l1>a.current::before { - content: ""; - width: 4px; - height: 100%; - position: absolute; - left: 0; - top: 0; - background: #0056b3; - border-radius: 4px; -} - -.toctree-l1>a, .toctree-l1>span { - position: relative; - padding-right: 2rem; -} - -.nav-menu li.toctree-l2 { - list-style: none; - position: relative; -} - -.nav-menu .toctree-l2>a, -.nav-menu .toctree-l2>span { - padding-left: 2.5rem; -} - -.nav-menu .toctree-l2>a, -.nav-menu .toctree-l2>span { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.nav-menu .toctree-l2 a:hover, -.nav-menu .toctree-l2 span:hover { - background-color: #e6e9ee; -} - -.nav-menu .toctree-l2>a.current { - background-color: #e6f8ff; - color: #0056b3; -} - -.nav-menu .toctree-l2>a.current::before { - content: ""; - width: 4px; - height: 100%; - position: absolute; - left: 0; - top: 0; - background: #0056b3; - border-radius: 4px; -} - -.toctree-l2>a, .toctree-l2>span { - position: relative; - padding-right: 2rem; -} - -.nav-menu li.toctree-l3 { - list-style: none; - position: relative; -} - -.nav-menu .toctree-l3>a, -.nav-menu .toctree-l3>span { - padding-left: 3.5rem; -} - -.nav-menu .toctree-l3>a, -.nav-menu .toctree-l3>span { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.nav-menu .toctree-l3 a:hover, -.nav-menu .toctree-l3 span:hover { - background-color: #e6e9ee; -} - -.nav-menu .toctree-l3>a.current { - background-color: #e6f8ff; - color: #0056b3; -} - -.nav-menu .toctree-l3>a.current::before { - content: ""; - width: 4px; - height: 100%; - position: absolute; - left: 0; - top: 0; - background: #0056b3; - border-radius: 4px; -} - -.toctree-l3>a, .toctree-l3>span { - position: relative; - padding-right: 2rem; -} - - -.nav-menu li a code { - font-family: inherit -} - -.is-current-page>.nav-link, -.is-current-page>.nav-text { - font-weight: 400; -} - -.nav-menu a, .nav-text { - color: #535b66; - font-weight: 400; - display: block; - padding: 0.25rem 0; -} - -/* lists */ - -body.sphinx .doc ul li{ - margin-bottom: 0; -} - -/* functions */ - -body.sphinx .doc dl.py.function { - padding: 0 1rem; - /* border-top: 2px dotted #eee; */ -} - -/* deprecated */ - -body.sphinx .deprecated::after, -body.sphinx .deprecated > *::after { - content: unset; -} - -body.sphinx .doc dl.deprecated dt:first-of-type span.sig-prename, -body.sphinx .doc dl.deprecated dt:first-of-type span.sig-name { - border-bottom: 1px solid #f6ad55; - /* color: #702459; */ - /* background-color: #fed7e2; */ -} - -body.sphinx .doc dl.deprecated { - margin-bottom: 0; - padding-bottom: 0; -} - -body.sphinx .doc div.deprecated { - padding: 1rem 1rem 0.75rem; - margin: 0.5rem 1.5rem; - /* color: #702459; */ - border-left: 4px solid #f6ad55; - border-radius: .25rem; - background-color: #fffaf0; -} - -.sphinx .doc .deprecated > :first-child { - margin-top: 0; -} - -.sphinx .doc .deprecated > :last-child { - margin-bottom: 0; -} - -b, strong { - font-weight: 800; -} - -dt { - font-weight: initial; -} - -.sphinx .doc .admonition { - margin: 0.5rem 1.5rem; - border-left: 4px solid #2d3748; - border-radius: .25rem; - padding: 1rem 1rem 0.75rem; - font-size: .88889rem -} - -.sphinx .doc .admonition .admonition-title:after { - content: ":"; -} - -.sphinx .doc .admonition .admonition-title, -.sphinx .doc .admonition .admonition-title + p { - display: inline; -} - -.sphinx .doc .admonition > :last-child { - margin-bottom: 0; -} - -.sphinx .doc .admonition > table { - border-collapse: collapse; - table-layout: fixed; - position: relative; - width: 100% -} - -.sphinx .doc .admonition .content { - padding: 1rem 1rem .75rem; - width: 100% -} - -.sphinx .doc .admonition .listingblock .content { - padding: 0 -} - -.sphinx .doc .admonition .icon { - display: none -} - -.sphinx .doc .admonition a.btn { - display: inline-block; - background: #000; - color: #fff !important; - padding: .5rem 2rem; - border-radius: .5rem -} - -.sphinx .doc .admonition a.btn::after { - display: none !important -} - -.sphinx .doc .admonition.warning { - background-color: #fed7d7; - color: #742a2a; - border-left-color: #e53e3e -} - -.sphinx .doc .admonition.warning pre { - background-color: #fff5f5; - color: #c53030 -} - -.sphinx .doc .admonition.warning a.btn { - background-color: #e53e3e -} - -.sphinx .doc .admonition.warning a { - color: #f56565 -} - -.sphinx .doc .admonition.caution { - background-color: #feebc8; - color: #7b341e; - border-left-color: #dd6b20 -} - -.sphinx .doc .admonition.caution a { - color: #ed8936 -} - -.sphinx .doc .admonition.caution a:hover { - color: #f6ad55 -} - -.sphinx .doc .admonition.caution a.btn { - background-color: #dd6b20 -} - -.sphinx .doc .admonition.caution pre { - background-color: #fffaf0; - color: #c05621 -} - -.sphinx .doc .admonition.tip, .sphinx .doc .admonition.note { - background-color: #bee3f8; - color: #2a4365; - border-left-color: #3182ce -} - -.sphinx .doc .admonition.tip a, .sphinx .doc .admonition.note a { - color: #3182ce -} - -.sphinx .doc .admonition.tip a:hover, .sphinx .doc .admonition.note a:hover { - color: #4299e1 -} - -.sphinx .doc .admonition.tip a.btn, .sphinx .doc .admonition.note a.btn { - background-color: #3182ce -} - -.sphinx .doc .admonition.tip pre, .sphinx .doc .admonition.note pre { - background-color: #ebf8ff; - color: #2b6cb0 -} - -.sphinx .doc .admonition.seealso { - background-color: #edf2f7; - color: #1a202c; - border-left-color: #718096 -} - -.sphinx .doc .admonition.seealso a { - color: #718096 -} - -.sphinx .doc .admonition.seealso a:hover { - color: #a0aec0 -} - -.sphinx .doc .admonition.seealso a.btn { - background-color: #718096 -} - -.sphinx .doc .admonition.important { - background-color: #e9d8fd; - color: #44337a; - border-left-color: #805ad5 -} - -.sphinx .doc .admonition.important a { - color: #805ad5 -} - -.sphinx .doc .admonition.important a:hover { - color: #9f7aea -} - -.sphinx .doc .admonition.important a.btn { - background-color: #805ad5 -} - -dd > :first-child { - margin-top: 0; -} - -.field-list p { - margin: 0; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - /*word-break: break-word;*/ - padding-left: 0.5em; - padding-right: 5px; -} - - -dl.field-list > dd { - padding-left: 0.5em; - margin-left: 0; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dl.field-list > dd > ul, -dl.field-list > dd > ol { - padding-left: 1.9em; - margin-left: 0; -} - -.content ol li > p:first-of-type, -.content ul li > p:first-of-type { - margin-top: 0; -} - -.content ol li > p:last-of-type, -.content ul li > p:last-of-type { - margin-bottom: 0; -} - - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border: 0; -} - -table.docutils > tbody > tr:not(:last-child) > td, -table.docutils > tbody > tr:not(:last-child) > td, -table.docutils > thead > tr:not(:last-child) > td, -table.docutils > thead > tr:not(:last-child) > td, -table.docutils > tr:not(:last-child) > td, -table.docutils > tr:not(:last-child) > td { - border-bottom: 1px solid #aaa; -} - -th > :first-child, -td > :first-child { - margin-top: 0; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0; -} - -.sig-name, code.descname { - font-weight: bold; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} \ No newline at end of file diff --git a/docs/build/html/_static/css/nunito-sans.css b/docs/build/html/_static/css/nunito-sans.css deleted file mode 100644 index dfd39b79d..000000000 --- a/docs/build/html/_static/css/nunito-sans.css +++ /dev/null @@ -1,200 +0,0 @@ -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 300; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 400; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 600; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic-ext.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; -} -/* cyrillic */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-cyrillic.woff2) format('woff2'); - unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* vietnamese */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-vietnamese.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; -} -/* latin-ext */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin-ext.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Nunito Sans'; - font-style: normal; - font-weight: 700; - font-stretch: 100%; - font-display: swap; - src: url(../fonts/nunito-sans-latin.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} diff --git a/docs/build/html/_static/css/site.css b/docs/build/html/_static/css/site.css deleted file mode 100644 index 8b2488b71..000000000 --- a/docs/build/html/_static/css/site.css +++ /dev/null @@ -1,8 +0,0 @@ -/* https://neo4j.com/docs/assets/css/site.css */ - -@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;src:local("Roboto Mono"),local("RobotoMono-Regular"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-400.woff2) format("woff2"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-400.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;src:local("Roboto Mono Medium"),local("RobotoMono-Medium"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-500.woff2) format("woff2"),url(https://neo4j.com/docs/assets/font/roboto-mono-latin-500.woff) format("woff")}body,html{height:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:1.0625em;-webkit-text-size-adjust:100%}@media screen and (min-width:1024px){html{font-size:1em}}body{background:#fff;color:#4a5568;font-family:Nunito Sans,Helvetica Neue,helvetica,roboto,arial,sans-serif;line-height:1.5;margin:0}a{text-decoration:none}a:active{background-color:none}code,kbd,pre{font-family:Roboto Mono,monospace}b,dt,strong,th{font-weight:600}em em{font-style:normal}strong strong{font-weight:400}button{cursor:pointer;font-family:inherit;font-size:1em;line-height:1.5;margin:0}button::-moz-focus-inner{border:none;padding:0}.body{word-wrap:break-word}@media screen and (min-width:1024px){.body{display:-webkit-box;display:-ms-flexbox;display:flex}}.nav-container{position:fixed;top:3.77778rem;left:0;width:100%;font-size:.94444rem;z-index:1;visibility:hidden}@media screen and (min-width:769px){.nav-container{width:18rem}}@media screen and (min-width:1024px){.nav-container{font-size:.875rem;-webkit-box-flex:0;-ms-flex:none;flex:none;position:static;top:0;visibility:visible;border-right:1px solid #edf2f7}}.nav-container.is-active{visibility:visible}.nav{background:#f5f7fa;position:relative;top:2.5rem;height:calc(100vh - 6.27778rem);font-weight:400}@media screen and (min-width:769px){.nav{-webkit-box-shadow:.5px 0 3px #edf2f7;box-shadow:.5px 0 3px #edf2f7}}@media screen and (min-width:1024px){.nav{top:3.77778rem;-webkit-box-shadow:none;box-shadow:none;position:sticky;height:calc(100vh - 3.77778rem)}}.nav .panels{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:inherit}html.is-clipped--nav{overflow-y:hidden}@media screen and (max-width:1023px){html.is-clipped--nav .toolbar{position:fixed;width:100%}}.nav-panel-menu{overflow-y:scroll;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:calc(100vh - 8.77778rem)}@media screen and (min-width:1024px){.nav-panel-menu{height:calc(100vh - 6.27778rem)}}.nav-panel-menu:not(.is-active) .nav-menu{opacity:.75}.nav-panel-menu:not(.is-active)::after{content:"";background:rgba(0,0,0,.5);display:block;position:absolute;top:0;right:0;bottom:0;left:0}.nav-panel-explore .components,.nav-panel-menu{scrollbar-width:thin;scrollbar-color:#f7fafc transparent}.nav-panel-explore .components::-webkit-scrollbar,.nav-panel-menu::-webkit-scrollbar{width:.25rem}.nav-panel-explore .components::-webkit-scrollbar-thumb,.nav-panel-menu::-webkit-scrollbar-thumb{background-color:#f7fafc}.nav-menu{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-height:0;width:100%;line-height:1.2;position:relative}.nav-menu .component-title{display:block}.nav-menu .title{color:#535b66;font-weight:300;letter-spacing:1.5px;text-transform:uppercase;font-size:.75rem;line-height:1.35;border-bottom:1px solid #e6e9ee;padding:.5rem 1.5rem;margin:0;font-family:Nudista,Helvetica Neue,helvetica,roboto,arial,sans-serif}.nav-menu a,.nav-text{color:#535b66;font-weight:400;display:block;padding:.25rem 0}.nav-list{margin:0;padding:0}.nav-menu>.nav-list{margin-top:.5rem}.nav-item{list-style:none;position:relative}.nav-list:first-child strong{margin-top:0!important}.nav-item-toggle~.nav-list{padding-bottom:.125rem}.nav-item[data-depth="0"]>.nav-list:first-child{display:block;margin:0}.nav-item:not(.is-active)>.nav-list{display:none}.nav-item-toggle{cursor:pointer}.is-current-page>.nav-link,.is-current-page>.nav-text{font-weight:400}.nav-item.is-current-page::before,.nav-item:hover::before,.toc-menu li a::before{opacity:1}.nav-panel-explore{background:#f5f7fa;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;right:0;bottom:0;left:0;max-height:calc(50% + 2.5rem)}.nav-panel-explore,.nav-panel-explore .context{display:-webkit-box;display:-ms-flexbox;display:flex}.nav-panel-explore .context{font-size:.83333rem;-ms-flex-negative:0;flex-shrink:0;color:#cbd5e0;-webkit-box-shadow:0 -1px 0 #edf2f7;box-shadow:0 -1px 0 #edf2f7;padding:0 .25rem 0 .5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;cursor:pointer;line-height:1;height:2.5rem}.nav-panel-explore .context .version{background-image:url(https://neo4j.com/docs/assets/img/chevron.svg);background-repeat:no-repeat;background-position:right .5rem top 50%;background-size:auto .75em;padding:0 1.5rem 0 0}.nav-panel-explore .components{line-height:1.8;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-shadow:inset 0 1px 5px #edf2f7;box-shadow:inset 0 1px 5px #edf2f7;background:#e2e8f0;padding:.5rem .75rem 0;margin:0;overflow-y:scroll;max-height:100%;display:block}.nav-panel-explore:not(.is-active) .components{display:none}.nav-panel-explore .component{display:block}.nav-panel-explore .component+.component{margin-top:.5rem}.nav-panel-explore .component:last-child{margin-bottom:.75rem}.nav-panel-explore .component .title{font-weight:600}.nav-panel-explore .versions{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;list-style:none;padding-left:0;margin-top:-.25rem;line-height:1}.nav-panel-explore .component .version{display:block;margin:.375rem .375rem 0 0}.nav-panel-explore .component .version a{border:1px solid #edf2f7;border-radius:.25rem;color:inherit;opacity:.75;white-space:nowrap;padding:.125em .25em;display:inherit}.nav-panel-explore .component .is-current a{border-color:currentColor;opacity:.9;font-weight:600}.nav .label{font-size:.8rem}.navbar .navbar-item.getting-started-cta .navbar-link{border-radius:.25rem;padding:.5em 1.5em;font-weight:400;text-align:center}@media screen and (min-width:1024px){.navbar .navbar-item.getting-started-cta{padding-right:0}}.nav-item .nav-text strong{font-size:16px;font-weight:700}.nav-link{position:relative}.nav-item a:hover,.nav-item span:hover{background-color:#e6e9ee}.is-current-page.is-active>a{background-color:#e6f8ff;color:#0056b3}.is-current-page.is-active>a::before{content:"";width:4px;height:100%;position:absolute;left:0;top:0;background:#0056b3;border-radius:4px}.nav-menu .nav-item>a,.nav-menu .nav-item>span{padding-top:.5rem;padding-bottom:.5rem}.nav-item>a,.nav-item>span{position:relative;padding-right:2rem}.nav-item[data-depth="0"]>a,.nav-item[data-depth="0"]>span{padding:.5rem 2rem .5rem 1rem}.nav-item[data-depth="1"]>a,.nav-item[data-depth="1"]>span{padding-left:1.5rem}.nav-item[data-depth="2"]>a,.nav-item[data-depth="2"]>span{padding-left:2.5rem}.nav-item[data-depth="3"]>a,.nav-item[data-depth="3"]>span{padding-left:3.5rem}.nav-item[data-depth="4"]>a,.nav-item[data-depth="4"]>span{padding-left:4.5rem}.nav-item[data-depth="5"]>a,.nav-item[data-depth="5"]>span{padding-left:5.5rem}.nav-item[data-depth="1"]>span strong{font-size:1rem;color:var(--neutral-55)}.nav-item>.nav-item-toggle::after{content:"";position:absolute;right:.5rem;top:.5rem;background:url(https://neo4j.com/docs/assets/img/chevron.svg) no-repeat;background-position:50%;background-size:auto .75em;width:1.5rem;height:50%}.nav-item.is-active>.nav-item-toggle:not(a)::after{-webkit-transform:scaleY(-1)}.nav-item.is-active>a.nav-item-toggle::after{background:none}.nav-item a[target=_blank]:hover::after{position:relative;display:inline-block;margin:0 .2rem;content:"→";color:#805ad5;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:all .2s linear;transition:all .2s linear;top:0}.nav-item .nav-section-header{margin-top:1.5rem;margin-bottom:.5rem;padding-top:1.5rem!important;border-top:1px solid var(--colors-netural-25)}.nav-item .nav-section-header:hover{background-color:transparent}.nav-menu .nav-list:first-child .nav-item:first-child .nav-section-header{border:none;padding-top:0!important}.nav-panel-versions{height:2.5rem;padding:.25rem .5rem}.nav-panel-versions .dropdown .dropdown-styles{width:100%}.dropdown-styles{display:grid;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.5rem 28px .5rem .5rem;border-radius:4px;border:1px solid #c4c8cd;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23535B66'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");background-position:right 5px top 50%;background-repeat:no-repeat;text-overflow:ellipsis}.dropdown-styles::after{grid-area:select}.dropdown-styles::-ms-expand{display:none}.dropdown .dropdown-label{display:none;color:#535b66}@media screen and (max-width:1023px){aside.kb-metadata.sidebar,aside.toc.sidebar{display:none}}@media screen and (min-width:1024px){main{-webkit-box-flex:1;-ms-flex:auto;flex:auto;min-width:0}main>.content{display:-webkit-box;display:-ms-flexbox;display:flex}aside.toc.embedded{display:none}aside.toc.sidebar{-webkit-box-flex:0;-ms-flex:0 0 9rem;flex:0 0 9rem}aside.kb-metadata.sidebar{-webkit-box-flex:0;-ms-flex:0 0 12rem;flex:0 0 12rem}}@media screen and (min-width:1216px){aside.toc.sidebar{-ms-flex-preferred-size:12rem;flex-basis:12rem}aside.kb-metadata.sidebar{-ms-flex-preferred-size:13.55556rem;flex-basis:13.55556rem}}.toolbar{color:#4a5568;background-color:#f7fafc;-webkit-box-shadow:0 1px 0 #edf2f7;box-shadow:0 1px 0 #edf2f7;font-size:.83333rem;height:2.5rem;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;position:sticky;top:3.77778rem;z-index:20}.toolbar,.toolbar-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.toolbar-wrapper{width:100%;max-width:69rem}.toolbar a{color:inherit}.nav-toggle{background:url(https://neo4j.com/docs/assets/img/menu.svg) no-repeat 50% 47.5%;background-size:49%;border:none;outline:none;line-height:inherit;height:2.5rem;padding:0;width:2.5rem;margin-right:-.25rem}@media screen and (min-width:1024px){.nav-toggle{display:none}}.nav-toggle.is-active{background-image:url(https://neo4j.com/docs/assets/img/back.svg);background-size:41.5%}.home-link{background:url(https://neo4j.com/docs/assets/img/home-o.svg) no-repeat 50% 45%;background-size:50%;display:block;height:2.5rem;padding:0;width:2.5rem}.home-link.is-current,.home-link:hover{background-image:url(https://neo4j.com/docs/assets/img/home.svg)}.edit-this-page{display:none;padding-right:.5rem}@media screen and (min-width:1350px){.edit-this-page{padding-right:0}}@media screen and (min-width:1024px){.edit-this-page{display:block}}.toolbar .edit-this-page a{color:#a0aec0}.breadcrumbs{display:none;-webkit-box-flex:1;-ms-flex:1 1;flex:1 1;padding:0 .5rem 0 .75rem;line-height:1.2}@media screen and (min-width:1024px){.breadcrumbs{display:block}}a+.breadcrumbs{padding-left:.05rem}.breadcrumbs ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.breadcrumbs li{display:inline;margin:0}.breadcrumbs li::after{content:"/";padding:0 .5rem}.breadcrumbs li:last-of-type::after{content:none}.page-versions{display:none;margin-right:.7rem;position:relative;line-height:1}@media screen and (min-width:1024px){.page-versions{display:block}}.page-versions .version-menu-toggle{color:inherit;background:url(https://neo4j.com/docs/assets/img/chevron.svg) no-repeat;background-position:right .5rem top 50%;background-size:auto .75em;border:none;outline:none;line-height:inherit;padding:.5rem 1.5rem .5rem .5rem;position:relative;z-index:3}.page-versions .version-menu{background-color:#fff;border:1px solid #e2e8f0;border-radius:3px;padding:1.25rem .5rem .5rem;position:absolute;top:0;left:0;width:100%}.page-versions:not(.is-active) .version-menu{display:none}.page-versions .version{display:block;padding-top:.5rem}.page-versions .version.is-current{display:none}.page-versions .version.is-missing{color:#e2e8f0;font-style:italic;text-decoration:none}.toc-menu{color:#4a5568;margin-bottom:2rem}.toc.sidebar{padding-right:1rem;padding-bottom:2rem;position:relative}.toc.sidebar .toc-menu{margin-right:.75rem;position:sticky;top:6.27778rem}.toc .toc-menu h2{color:#4a5568;font-size:.88889rem;font-weight:600;line-height:1.5;margin:1.5rem -.5px 0;padding:.5rem 0 .25rem}.toc.sidebar .toc-menu h3{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:2.5rem;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.toc .toc-menu ul{font-size:.83333rem;line-height:1.4;list-style:none;margin:0;padding:0}.toc.sidebar .toc-menu ul{max-height:calc(100vh - 14.77778rem);overflow-y:auto;scrollbar-width:none}.toc .toc-menu ul::-webkit-scrollbar{width:0}.toc .toc-menu li{margin:0}.toc .toc-menu li a{position:relative}.toc-menu li a::before{top:.25rem;left:0;margin-left:-.4em;opacity:0}.toc .toc-menu li[data-level="1"] a{padding-left:1rem}.toc .toc-menu li[data-level="2"] a{padding-left:2rem}.toc .toc-menu li[data-level="3"] a{padding-left:3rem}.toc .toc-menu a{color:inherit;border-left:1px solid #e2e8f0;display:inline-block;padding:.25rem 0 .25rem .5rem;text-decoration:none}.sidebar.toc .toc-menu a{display:block;outline:none}.toc .toc-menu a:hover{color:#4a5568}.toc .toc-menu a.is-active{color:#2b6cb0}.toc .toc-menu a.is-active::before{background:#3182ce}.toc .toc-menu a.is-active::before,.toc .toc-menu a:hover::before{opacity:1}.sidebar.toc .toc-menu a:focus{background:#f7fafc}.toc .toc-menu .is-hidden-toc{display:none!important}.toc-sidebar .toc-menu{margin-bottom:4rem}aside.toc.embedded{margin-bottom:1.5rem;border-bottom:1px solid #e2e8f0;padding-bottom:.5rem}.toc .toc-ad{border:1px solid #e2e8f0;padding:1rem .5rem;border-radius:.5rem;margin:2rem -.5rem 0}.toc .toc-ad a{padding:0!important;border-left:0!important}.toc .toc-ad a:active{background-color:#fff!important}.toc .toc-ad .toc-ad-overline{font-size:.7rem;color:#718096;text-transform:uppercase;background-color:#fff}.toc .toc-ad .toc-ad-overline a{padding-left:0!important;border-left:0!important;color:#718096}.toc .toc-ad .toc-ad-image{width:80%;margin:.2rem auto}.toc .toc-ad .toc-ad-overline a:hover{color:#2d3748}.toc .toc-ad .toc-ad-title{color:#3182ce;font-size:1rem;margin:.2rem 0!important;padding:0!important}.toc .toc-ad-description{color:#a0aec0;font-size:.8rem;margin-top:0}.toc .toc-ad-underline{color:#3182ce;font-weight:700;font-size:.8rem}.toc .toc-ad-underline-button,.toc .toc-ad .button{border-radius:.25rem;background-color:#3182ce;color:#fff;display:inline-block;font-size:.8rem;font-weight:700;padding:.5rem 1rem}.doc .ad{border:1px solid #e2e8f0;border-radius:.5rem;background:#fff;margin:2rem -1rem 0;padding:1rem;position:relative;z-index:1000}.doc .ad h2{font-size:.8rem!important;text-transform:uppercase;margin-top:0}.doc .ad h2,.doc .ad h2 a{color:#a0aec0}.doc .ad .anchor{display:none}.doc .ad a::after{display:none!important}.doc .ad h3{margin-bottom:.3rem}.doc .ad .paragraph{margin-bottom:.5rem}.doc .ad .paragraph:last-child p{margin-bottom:0}.doc .ad .paragraph a.button{font-size:.8rem;margin:0 1rem .2rem 0;padding:.25rem 1rem}.doc .ad .imageblock.left,.doc .ad .imageblock.right{width:20%!important;max-width:120px;margin:0 1.5rem 1rem 0!important}@media screen and (min-width:580px){.doc .ad.left{float:left;margin-right:1.5rem}.doc .ad.left,.doc .ad.right{max-width:50%;margin-bottom:2rem}.doc .ad.right{float:right;margin-left:1.5rem}.doc .ad.left::after,.doc .ad.right::after{content:"";display:block;clear:both}}.doc{color:#2d3748;font-size:inherit;line-height:1.8;margin:0 auto;max-width:40rem;padding:0 1rem 2rem}body{font-weight:400}@media screen and (min-width:1024px){.doc{-webkit-box-flex:1;-ms-flex:auto;flex:auto;font-size:.94444rem;margin:0 2rem;max-width:54.44444rem;min-width:0;padding-bottom:4rem}}.doc h1,.doc h2,.doc h3,.doc h4,.doc h5,.doc h6{color:#4a5568;font-weight:400;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.3;margin:2rem 0 1rem}.doc h1 code,.doc h2 code,.doc h3 code,.doc h4 code,.doc h5 code,.doc h6 code{padding:.125em .25em;background:#f7fafc}.doc h4,.doc h5{font-weight:600;font-size:1rem}.doc h5{margin-bottom:.5rem;color:#718096}.doc>.sect-header>h1.page:first-child{font-size:2rem;margin:1.5rem .5rem 1.5rem 0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}@media screen and (min-width:769px){.doc>.sect-header>h1.page:first-child{margin-top:2.5rem}}#preamble+.sect1,.doc .sect1+.sect1{margin-top:2rem}.doc h1.sect0{background:#fff;font-size:1.8em;margin:1.5rem -1rem 0;padding:.5rem 1rem}.doc h2:not(.discrete){border-bottom:1px solid #e2e8f0;padding:.4rem 0 .5rem}.doc h3:not(.discrete){font-weight:600}.doc h1 .anchor,.doc h2 .anchor,.doc h3 .anchor,.doc h4 .anchor,.doc h5 .anchor,.doc h6 .anchor{position:absolute;text-decoration:none;width:1.75ex;margin-left:-1.5ex;visibility:hidden;font-size:.8em;font-weight:400;padding-top:.05em}.doc h1 .anchor::before,.doc h2 .anchor::before,.doc h3 .anchor::before,.doc h4 .anchor::before,.doc h5 .anchor::before,.doc h6 .anchor::before{content:"\00a7"}.doc h1:hover .anchor,.doc h2:hover .anchor,.doc h3:hover .anchor,.doc h4:hover .anchor,.doc h5:hover .anchor,.doc h6:hover .anchor{visibility:visible}@media screen and (max-width:620px){.doc>.sect-header>h1.page:first-child{font-size:1.4rem;font-weight:600}.doc h2:not(.discrete){font-size:1.2rem}.doc h3{font-size:1.1rem}}.doc p{margin:0}.doc .tableblock p{font-size:inherit}.doc .tableblock .icon{display:inline-block;margin-right:.5rem}.doc a{font-weight:600;color:#3182ce}.doc a:hover,.doc a:hover code:hover{color:#805ad5}.doc code a{color:inherit}.doc i.fa{font-style:normal}.doc p code,.doc td code,.doc thead code{color:#4a5568;background:#f7fafc;border-radius:.25em;font-size:.95em;padding:.125em .25em}.doc pre{color:#4a5568;font-size:.88889rem;line-height:1.5;margin:0}.doc code::before{opacity:0}.doc blockquote{margin:0}.doc .right{float:right;margin-left:2rem}.doc .image.rounded{padding:12px;-webkit-box-shadow:0 0 5px 1px #bee3f8!important;box-shadow:0 0 5px 1px #bee3f8!important;background:#fff;border-radius:50%;line-height:1;display:inline-block}.doc .image.right{margin-left:1rem}.doc .image.left{margin-right:1rem}.doc .left{float:left}.doc .underline{text-decoration:underline}.doc .line-through{text-decoration:line-through}.doc .colist,.doc .dlist,.doc .exampleblock,.doc .imageblock,.doc .listingblock,.doc .literalblock,.doc .olist,.doc .paragraph,.doc .partintro,.doc .quoteblock,.doc .sidebarblock,.doc .ulist,.doc .verseblock{margin:0 0 1.5rem}.doc table.stretch{width:100%}.doc table.tableblock thead th{border-bottom:2.5px solid #edf2f7;padding:.5rem}.doc table.tableblock>:not(thead) th,.doc table.tableblock td{border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:.5rem}.doc .halign-left{text-align:left}.doc .halign-right{text-align:right}.doc .halign-center{text-align:center}.doc .valign-top{vertical-align:top}.doc .valign-bottom{vertical-align:bottom}.doc .valign-middle{vertical-align:middle}.doc .admonitionblock{margin:0 0 1.5rem;border-left:4px solid #2d3748;border-radius:.25rem}.doc .admonitionblock .content,.doc .admonitionblock p{font-size:.88889rem}.doc .admonitionblock .content>:last-child,.doc .admonitionblock .content>:only-child{margin:0}.doc .admonitionblock pre{font-size:.83333rem}.doc .admonitionblock>table{border-collapse:collapse;table-layout:fixed;position:relative;width:100%}.doc .admonitionblock .content{padding:1rem 1rem .75rem;width:100%}.doc .admonitionblock .listingblock .content{padding:0}.doc .admonitionblock .icon{display:none}.doc .admonitionblock a.btn{display:inline-block;background:#000;color:#fff!important;padding:.5rem 2rem;border-radius:.5rem}.doc .admonitionblock a.btn::after{display:none!important}.doc .admonitionblock.warning{background-color:#fed7d7;color:#742a2a;border-left-color:#e53e3e}.doc .admonitionblock.warning pre{background-color:#fff5f5;color:#c53030}.doc .admonitionblock.warning a.btn{background-color:#e53e3e}.doc .admonitionblock.warning a{color:#f56565}.doc .admonitionblock.caution{background-color:#feebc8;color:#7b341e;border-left-color:#dd6b20}.doc .admonitionblock.caution a{color:#ed8936}.doc .admonitionblock.caution a:hover{color:#f6ad55}.doc .admonitionblock.caution a.btn{background-color:#dd6b20}.doc .admonitionblock.caution pre{background-color:#fffaf0;color:#c05621}.doc .admonitionblock.tip{background-color:#bee3f8;color:#2a4365;border-left-color:#3182ce}.doc .admonitionblock.tip a{color:#3182ce}.doc .admonitionblock.tip a:hover{color:#4299e1}.doc .admonitionblock.tip a.btn{background-color:#3182ce}.doc .admonitionblock.tip pre{background-color:#ebf8ff;color:#2b6cb0}.doc .admonitionblock.note{background-color:#edf2f7;color:#1a202c;border-left-color:#718096}.doc .admonitionblock.note a{color:#718096}.doc .admonitionblock.note a:hover{color:#a0aec0}.doc .admonitionblock.note a.btn{background-color:#718096}.doc .admonitionblock.important{background-color:#e9d8fd;color:#44337a;border-left-color:#805ad5}.doc .admonitionblock.important a{color:#805ad5}.doc .admonitionblock.important a:hover{color:#9f7aea}.doc .admonitionblock.important a.btn{background-color:#805ad5}.doc .imageblock{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.doc .imageblock img{display:block}.doc .image>img,.doc .imageblock img{height:auto;max-width:100%}#preamble .abstract blockquote{padding:.75em 1em}#preamble .abstract .title,#preamble .abstract blockquote{background:#fff;border-left:5px solid #edf2f7;color:#4a5568;font-size:.88889rem}#preamble .abstract .title{margin-bottom:0;font-weight:600;padding:.2em 1em}.doc .quoteblock blockquote{background:#f7fafc;border-left:5px solid #4a5568;color:#4a5568;padding:.25rem 2rem}.doc .quoteblock .attribution{color:#e2e8f0;font-size:.83333rem;margin-top:.75rem}.doc .quoteblock .paragraph{font-style:italic}.doc .quoteblock cite{padding-left:1em}.doc table.tableblock .paragraph{margin:0;padding:0}.doc .olist .admonitionblock,.doc .ulist .admonitionblock,.doc table.tableblock .admonitionblock{padding:0}.doc ol,.doc ul{margin:0;padding:0 0 0 2rem}.doc ol.arabic{list-style-type:decimal}.doc ol.decimal{list-style-type:decimal-leading-zero}.doc ol.loweralpha{list-style-type:lower-alpha}.doc ol.upperalpha{list-style-type:upper-alpha}.doc ol.lowerroman{list-style-type:lower-roman}.doc ol.upperroman{list-style-type:upper-roman}.doc ol.lowergreek{list-style-type:lower-greek}.doc ul.checklist{padding-left:.5rem;list-style:none}.doc ul.checklist p>i.fa-check-square-o:first-child,.doc ul.checklist p>i.fa-square-o:first-child{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:1.25rem}.doc ul.checklist i.fa-check-square-o::before{content:"\2713"}.doc ul.checklist i.fa-square-o::before{content:"\274f"}.doc .dlist .dlist,.doc .dlist .olist,.doc .dlist .ulist,.doc .olist .dlist,.doc .olist .olist,.doc .olist .ulist,.doc .ulist .dlist,.doc .ulist .olist,.doc .ulist .ulist{margin-top:.5rem}.doc .olist li,.doc .ulist li{margin-bottom:.5rem}.doc .admonitionblock .listingblock,.doc .olist .listingblock,.doc .ulist .listingblock{padding:0}.doc div.title{margin-bottom:1rem;font-weight:600}.doc .listingblock .content{position:relative}.doc .exampleblock .title,.doc .imageblock .title,.doc .listingblock .title,.doc .literalblock .title,.doc .openblock .title,.doc .tableblock caption{color:#4a5568;font-size:.88889rem;font-weight:600;font-style:italic;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;letter-spacing:.01em;padding-bottom:.075rem;text-align:left}.hide-table-captions .doc .tableblock caption{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.doc .admonitionblock .title{font-weight:700;font-style:normal;font-size:.8rem}.doc .imageblock .title{margin-top:.5rem;padding-bottom:0}.doc .admonitionblock .title+.paragraph,.doc .exampleblock>.content>:first-child{margin-top:0}.doc .sidebarblock{background:#e2e8f0;border-radius:.75rem;padding:.75rem 0 1.5rem}.doc .sidebarblock>.content>.title{font-size:1.25rem;font-weight:600;line-height:1.3;margin-bottom:-.3em;text-align:center}.doc .sidebarblock>.content>:not(.title):first-child{margin-top:0}.doc .listingblock.hidden{display:none}.doc .listingblock.wrap pre,.doc .tableblock pre{white-space:pre-wrap}.doc pre.highlight code,.doc pre:not(.highlight){background:#f7fafc;display:block;overflow-x:auto;height:100%;padding:1.5rem .5rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.doc .listingblock:not(.has-title) pre.highlight{border-radius:.5rem}.doc pre.highlight{position:relative;overflow-x:auto}.doc .listingblock .code-inset[data-lang]::before{content:attr(data-lang);font-size:.69444rem;font-family:Roboto Mono,monospace;letter-spacing:.05em;line-height:1;text-transform:uppercase;position:absolute;top:.5rem;right:1.5rem;margin-right:.25rem}.doc .listingblock .code-inset{display:none}.doc .listingblock:hover .code-inset{display:block}.doc .listingblock.noheader code.copied::before{display:none}.doc .dlist dt{font-style:italic}.doc .dlist dd{margin:0 0 .3rem 1.5rem}.doc .colist{font-size:.88889rem}.doc .colist>table>tbody>tr>:first-child,.doc .colist>table>tr>:first-child{padding:.25em .5rem 0;vertical-align:top}.doc .colist>table>tbody>tr>:last-child,.doc .colist>table>tr>:last-child{padding:.25rem 0}.doc .conum[data-value]{border:1px solid;border-radius:100%;display:inline-block;font-family:Nunito Sans,Helvetica Neue,helvetica,roboto,arial,sans-serif;font-size:.75rem;font-style:normal;height:1.25em;line-height:1.2;text-align:center;width:1.25em;letter-spacing:-.25ex;text-indent:-.25ex}.doc .conum[data-value]::after{content:attr(data-value)}.doc .conum[data-value]+b{display:none}.doc b.button{white-space:nowrap}.doc b.button::before{padding-right:.25em}.doc b.button::after{padding-left:.25em}.doc kbd{display:inline-block;font-size:.66667rem;line-height:1.45;background:#f7fafc;border:1px solid #cbd5e0;border-radius:.25em;-webkit-box-shadow:0 1px 0 #cbd5e0,0 0 0 .1em #fff inset;box-shadow:0 1px 0 #cbd5e0,inset 0 0 0 .1em #fff;padding:.25em .5em;white-space:nowrap;vertical-align:middle;position:relative;top:-.1em}.doc .keyseq,.doc kbd{line-height:1}.doc .keyseq{font-size:.88889rem}.doc .keyseq kbd{margin:0 .125em}.doc .keyseq kbd:first-child{margin-left:0}.doc .keyseq kbd:last-child{margin-right:0}.doc .menuseq i.caret::before{content:"\203a";font-size:1.1em;font-weight:600;line-height:.90909}.doc .icon i::after,.doc .menuseq,.doc .path,.doc a.bare,.doc b.button,.doc code,.doc kbd{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.doc td.tableblock a,.doc td.tableblock code,.doc th.tableblock{word-break:break-word}.doc table.no-break td.tableblock a,.doc table.no-break td.tableblock code,.doc table.no-break th.tableblock{word-break:normal}.doc mark{background:#fefcbf;padding:.25rem}.doc img,.doc object{max-width:100%}.doc a.button{color:#fff}.doc .button{display:inline-block;background:#718096;color:#fff;padding:.5rem 2rem;border-radius:.25rem;margin-bottom:2rem;-webkit-transition:all .2s;transition:all .2s}.doc .button:hover{background:#a0aec0;color:#fff}.doc .button::after{display:none!important}.doc .paragraph.expertise p{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.doc .paragraph.expertise.Intermediate p{background:#feebc8;color:#c05621}.doc .paragraph.expertise.Advanced p{background:#c6f6d5;color:#2f855a}.doc .paragraph.release p{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.doc .paragraph.release.core p{background:#feebc8;color:#c05621}.doc .paragraph.release.full p{background:#c6f6d5;color:#2f855a}.doc .paragraph.type p{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.doc .paragraph.type.function p{background:#fed7d7;color:#c53030}.doc .paragraph.type.procedure p{background:#bee3f8;color:#2b6cb0}.doc .responsive-embed,.doc .videoblock{position:relative;padding-bottom:56.25%;height:0;margin-bottom:2rem}.doc .videoblock iframe,.doc .videoblock video,.responsive-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%}.doc .more::after{display:inline-block;content:"→";margin-left:4px;margin-top:-4px;-webkit-transition:all .3s;transition:all .3s}.doc .more:hover::after{margin-left:12px}.doc table.tableblock{border-collapse:collapse;font-size:.83333rem;margin:2rem 0;border-radius:.25em;overflow:hidden}.doc table.tableblock.frame-all tr:last-child td,.doc table.tableblock.frame-ends tr:last-child td{border-bottom:3px solid #e2e8f0}.doc .tableblock thead{background:#f7fafc;border-bottom:#edf2f7}.doc table.tableblock,.doc table.tableblock>*>tr>*{border:0 solid #edf2f7}.doc table.grid-all>*>tr>*{border-width:1px}.doc table.grid-cols>*>tr>*{border-width:0 1px}.doc table.grid-rows>*>tr>*{border-width:1px 0}.doc table.grid-all>thead th,.doc table.grid-rows>thead th{border-bottom-width:2.5px}.doc table.frame-all{border-width:1px}.doc table.frame-ends{border-width:1px 0}.doc table.frame-sides{border-width:0 1px}.doc table.frame-none>colgroup+*>:first-child>*,.doc table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}.doc table.frame-none>:last-child>:last-child>*,.doc table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}.doc table.frame-ends>*>tr>:first-child,.doc table.frame-none>*>tr>:first-child{border-left-width:0}.doc table.frame-ends>*>tr>:last-child,.doc table.frame-none>*>tr>:last-child{border-right-width:0}.doc table.stripes-all>tbody>tr,.doc table.stripes-even>tbody>tr:nth-of-type(2n),.doc table.stripes-hover>tbody>tr:hover,.doc table.stripes-odd>tbody>tr:nth-of-type(odd){background:#f7fafc}.doc .emphasis,.doc .lead{font-weight:400}.doc .tabbed{padding:13px 0 0;margin:0 -1rem 1.5rem;background:#f7fafc;border:1px solid #e6f8ff;border-top-left-radius:6px;border-top-right-radius:6px}.doc .tabbed-tabs{margin:0 1rem;padding:0}.doc .tabbed-tabs,.doc .tabbed-tabs .tabbed-tab{display:-webkit-box;display:-ms-flexbox;display:flex}.doc .tabbed-tabs .tabbed-tab{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;list-style-type:none;font-size:.7rem;font-weight:600;padding:.4rem .6rem;margin-right:.5rem;background:#edf2f7;border-top-left-radius:6px;border-top-right-radius:6px;border:1px solid #edf2f7;border-top:3px solid #cbd5e0;border-bottom:none;cursor:pointer}.doc .tabbed-tabs .tabbed-tab--active{margin-bottom:-1px;background:#fff;color:#0056b3;border:1px solid #cbd5e0;border-top:3px solid #0056b3;border-bottom:none}.doc .tabbed-container{padding:1rem;background:#fff;border:1px solid #cbd5e0;border-top-left-radius:6px;border-top-right-radius:6px}.doc .tabbed-target{display:none;margin-bottom:0}.doc .tabbed-target--active{display:block}.page.unresolved{background:#9b2c2c;color:#fff!important}.doc .graph-app{position:relative}.doc .graph-app-logo{position:absolute;top:1rem;right:1rem}.doc a.external{position:relative}.doc a.external::after{position:relative;display:inline-block;margin:0 .2rem;content:"→";color:#805ad5;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:all .2s linear;transition:all .2s linear;top:0}.doc a.external:hover::after{top:-12px;opacity:0}.doc .no-arrows a::after{display:none!important}.doc .no-bullets ul{padding-left:0;list-style-type:none}.exampleblock>.content{margin-top:.75rem;padding:.5rem .75rem;border:1px solid #e2e8f0}.tabbed-container>.exampleblock>.content{border:none}.doc details{margin-bottom:1.5rem}.doc details[open] summary{font-weight:700}.doc details div.content{margin:.5rem 0 0 1.5rem}@media screen and (min-width:1024px){body.cheat-sheet .doc{-webkit-box-flex:1;-ms-flex:auto;flex:auto;font-size:.94444rem;margin:0 2rem;max-width:61.11111rem;min-width:0;padding-bottom:4rem}}body.cheat-sheet{opacity:0}body.cheat-sheet .article>.content{background:#f7fafc;padding-top:0}body.cheat-sheet .navbar,body.cheat-sheet .search .search-container .search-form{background:#fff;border-top-color:#63b3ed}body.cheat-sheet .navbar,body.cheat-sheet .navbar-brand .navbar-item:first-child,body.cheat-sheet .navbar-brand .navbar-item:first-child a{color:#718096}@media screen and (min-width:1024px){body.cheat-sheet .navbar-end .navbar-link,body.cheat-sheet .navbar-end .navbar-link:hover,body.cheat-sheet .navbar-end>.navbar-item,body.cheat-sheet .navbar-end>a.navbar-item:hover{color:#718096}body.cheat-sheet .navbar-end .navbar-link::after{border-color:#718096}body.cheat-sheet .navbar-item.has-dropdown:hover .navbar-link{color:#718096}}body.cheat-sheet .navbar-burger{color:#718096}body.cheat-sheet .navbar-burger span{background:#718096}body.cheat-sheet .doc .button{background:#3182ce;color:#fff}body.cheat-sheet .doc .button:hover{background:#4299e1;color:#fff}body.cheat-sheet .nav-item .nav-item::before,body.cheat-sheet .toc-menu li a::before{background-color:#90cdf4}body.cheat-sheet .tooltip,body.cheat-sheet .tooltip--top::after{border-bottom-color:#63b3ed}body.cheat-sheet .tooltip.tooltip--bottom::after{border-top-color:#63b3ed}body.cheat-sheet #preamble .abstract .title,body.cheat-sheet #preamble .abstract blockquote{border-left-color:#63b3ed;color:#2c5282}body.cheat-sheet .tableblock .icon i{color:#3182ce}body.cheat-sheet .navbar .navbar-item.getting-started-cta .navbar-link{background:#018bff;color:#fff}body.cheat-sheet .navbar .navbar-item.getting-started-cta .navbar-link:hover{background:#0070d9}body.cheat-sheet .navbar .navbar-item.getting-started-cta .navbar-link:active{background:#0056b3}body.cheat-sheet .navbar-brand{width:18rem}body.cheat-sheet .navbar-start{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:63.11111rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:2rem}body.cheat-sheet .navbar-start .navbar-link{margin-left:auto}body.cheat-sheet .navbar-link a{color:#3182ce}body.cheat-sheet .navbar-link a.external::after{display:inline-block;content:"";height:1rem;width:1rem;padding:0;background:url(https://neo4j.com/docs/assets/img/navbar-external.svg) no-repeat;background-position:50%}body.cheat-sheet .selectors{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}body.cheat-sheet .selectors div[data-selector-type=labels]{display:none}body.cheat-sheet .dropdown .dropdown-label{display:inline;padding:.5rem 2rem .5rem .5rem}body.cheat-sheet .nav-panel-versions{height:auto;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}body.cheat-sheet .selectors .dropdown{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}body.cheat-sheet .nav-panel-types .dropdown .dropdown-label,body.cheat-sheet .nav-panel-versions .dropdown .dropdown-label{display:-webkit-box;display:-ms-flexbox;display:flex;white-space:nowrap}body.cheat-sheet .nav-panel-versions .dropdown .dropdown-styles{width:50%;display:inline-block}body.cheat-sheet .selectors>div{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-shadow:none;box-shadow:none;margin:.25rem}body.cheat-sheet .selectors .dropdown .dropdown-styles{display:inline-block;width:100%}body.cheat-sheet .content aside.toc.sidebar{display:none}body.cheat-sheet .nav-container{border-right:none}body.cheat-sheet aside.nav{background:#fff}body.cheat-sheet aside.nav .nav-panel-versions{top:3.77778rem}body.cheat-sheet aside.nav .selectors{position:sticky;top:3.77778rem;z-index:20;background-color:#f7fafc;padding:.5rem;gap:.5rem}body.cheat-sheet aside.nav .selectors .dropdown-label{font-weight:600}body.cheat-sheet .toc-menu-placeholder h2{display:none!important}body.cheat-sheet .toc .toc-menu ul{margin-top:.5rem}body.cheat-sheet .toc .toc-menu li{padding-left:.5rem}body.cheat-sheet .toc .toc-menu li[data-level="2"]{padding-left:2rem}body.cheat-sheet .toc .toc-menu li a{border:none;padding:.5rem 1rem;margin:.5rem 0}body.cheat-sheet .toc .toc-menu li[data-level="1"] a{font-weight:600}body.cheat-sheet .toc .toc-menu li[data-level="2"] a{padding:.25rem 1rem;margin:0}body.cheat-sheet .toc .toc-menu a.is-active{color:#2b6cb0;background-color:#e6f8ff;border-radius:.5rem}body.cheat-sheet .sect-header:first-child{display:none}body.cheat-sheet h2:not(.discrete){display:-webkit-box;display:-ms-flexbox;display:flex;font-size:2rem;font-weight:600;padding:0 .5rem;border:none;height:110px;margin:0;line-height:110px}body.cheat-sheet h3:not(.discrete){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 60%;flex:0 0 60%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding-right:0}body.cheat-sheet h3:not(.discrete) a{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}body.cheat-sheet h3:not(.discrete) span.label{margin-left:auto}body.cheat-sheet div.deprecated h2::after,body.cheat-sheet div.deprecated h3::after{display:none}body.cheat-sheet .sect1,body.cheat-sheet .sect2{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}body.cheat-sheet .sect2{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:#fff;padding:.5rem;margin:3.5rem 0}body.cheat-sheet .sect2:first-child{margin-top:0}body.cheat-sheet h3{-webkit-box-flex:100%;-ms-flex:100%;flex:100%;margin:0;padding:1rem .5rem}body.cheat-sheet .exampleblock{width:100%;margin-bottom:0;border-top:1px solid #e2e8f0}body.cheat-sheet .exampleblock>.content{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:0;padding:0;border:none;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem}body.cheat-sheet .example-block>.content>.listingblock{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 42%;flex:0 0 42%;margin:0;padding:1rem .5rem}body.cheat-sheet .listingblock .content{width:100%;border-radius:.5rem}body.cheat-sheet .paragraph{margin:0 0 .5rem}body.cheat-sheet .exampleblock>.content>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 42%;flex:0 0 42%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:1rem .5rem;margin:0}body.cheat-sheet .exampleblock>.content>div.labels{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;padding-bottom:0;padding-top:0;gap:.25rem}body.cheat-sheet .exampleblock>.content>div.labels span.label{margin-top:1rem}body.cheat-sheet div.labels span.group--products,body.cheat-sheet div.page-labels span.group--products{display:none}body.cheat-sheet .exampleblock>.content>div.extra{-webkit-box-flex:2;-ms-flex-positive:2;flex-grow:2;border-top:none}body.cheat-sheet .exampleblock>.content>div.description ul{list-style:circle;line-height:1.25;margin:0;padding:0 1rem}body.cheat-sheet .page-labels{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.25rem}body.cheat-sheet .sect1>h2{padding-left:1rem}body.cheat-sheet .sect1>.page-labels{padding-right:.5rem}body.cheat-sheet .page-labels:first-of-type{margin:0 0 0 auto}body.cheat-sheet .page-labels p{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;display:-webkit-box;display:-ms-flexbox;display:flex}body.cheat-sheet .label{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:1.8}body.cheat-sheet .notes{-webkit-box-flex:100%;-ms-flex:100%;flex:100%;margin:1rem .5rem}body.cheat-sheet .notes p{margin:0;padding:.5rem}body.cheat-sheet pre.highlight{white-space:pre-wrap}.toc-menu li.hidden,body.cheat-sheet .description.hidden,body.cheat-sheet .exampleblock.hidden,body.cheat-sheet .labels.hidden,body.cheat-sheet .listingblock.hidden,body.cheat-sheet .sect1.hidden,body.cheat-sheet .sect2.hidden,body.cheat-sheet span.label.hidden{display:none}@media screen and (max-width:1023px){body.cheat-sheet .toc-menu-placeholder h2{display:block;margin:0 1.5rem;padding:0}body.cheat-sheet .toc-menu-placeholder ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0 1rem;list-style:none}body.cheat-sheet .toc-menu-placeholder li{margin:.25rem}body.cheat-sheet .toc-menu-placeholder li[data-level="1"]{border-bottom:1px dotted #90cdf4;width:100%;margin-top:.5rem}body.cheat-sheet .toc-menu-placeholder li[data-level="2"]{border:1px solid #e2e8f0;font-size:.75556rem}body.cheat-sheet .toc-menu-placeholder li a{display:block;padding:0 .5rem}body.cheat-sheet .sect2{background:none;padding:0}body.cheat-sheet h3:not(.discrete){background:#edf2f7;margin:0 .5rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border:1px solid #e2e8f0}body.cheat-sheet .sect2>div{-webkit-box-flex:0;-ms-flex:0 0 80%;flex:0 0 80%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:.5rem;margin:0 .5rem;background-color:#edf2f7;border:1px solid #e2e8f0;border-radius:0}body.cheat-sheet .notes p{background:none}body.cheat-sheet .sect2>div.labels,body.cheat-sheet .sect2>div.page-labels{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}body.cheat-sheet .sect2>div.labels p{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}body.cheat-sheet .sect2>div.page-labels{border-left:none;margin-left:-.5rem}body.cheat-sheet .sect2>div.listingblock{margin-top:1rem;border-top:none}body.cheat-sheet .sect2>div.description{border-top:none;padding:.5rem 1rem}}@media print{body.cheat-sheet .feedback,body.cheat-sheet .navbar-burger,body.cheat-sheet .navbar-menu,body.cheat-sheet .navbar-search,body.cheat-sheet aside.toc.embedded,body.cheat-sheet footer{display:none}body.cheat-sheet .sect1{page-break-after:always}body.cheat-sheet .sect2,body.cheat-sheet .sect2>div.description,body.cheat-sheet .sect2>div.listingblock,body.cheat-sheet .sect2>div.notes{page-break-inside:avoid}}nav.pagination{border-top:1px solid #edf2f7;line-height:1;margin:2rem -1rem -1rem;padding:.75rem 1rem 2rem}nav.pagination,nav.pagination span{display:-webkit-box;display:-ms-flexbox;display:flex}nav.pagination span{-webkit-box-flex:50%;-ms-flex:50%;flex:50%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}nav.pagination .prev{padding-right:.5rem}nav.pagination .next{margin-left:auto;padding-left:.5rem;text-align:right}nav.pagination span::before{color:#a0aec0;font-size:.75em;padding-bottom:.1em}nav.pagination .prev::before{content:"Prev"}nav.pagination .next::before{content:"Next"}nav.pagination a{font-weight:600;line-height:1.3;position:relative}nav.pagination a::after,nav.pagination a::before{color:#a0aec0;font-weight:400;font-size:1.5em;line-height:.75;position:absolute;top:0;width:1rem}nav.pagination .prev a::before{content:"\2039";-webkit-transform:translateX(-100%);transform:translateX(-100%)}nav.pagination .next a::after{content:"\203a"}@media (max-width:1024px){nav.pagination{margin:2rem 0 0}}html.is-clipped--navbar{overflow-y:hidden}body{padding-top:3.77778rem}.navbar{background:#2d3748;color:#f7fafc;font-size:.88889rem;height:3.77778rem;position:fixed;top:0;width:100%;word-wrap:break-word;border-top:4px solid #edf2f7;border-bottom:1px solid #e2e8f0;z-index:5000;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar a{text-decoration:none;font-weight:400}.navbar a.page-name-white{color:#fff}.navbar a.no-left-padding{padding-left:0}.navbar-brand svg{margin-right:1rem}.navbar-brand svg:last-child{margin-right:0}@media screen and (max-width:420px){.navbar-brand .navbar-item{padding-left:.5rem;padding-right:.75rem}.navbar-brand .navbar-item:last-child{padding-right:0}}.navbar-logo{height:34px;width:104px}.navbar-theme{margin-left:12px}.navbar-brand .separator{padding:0 .375rem}.navbar .navbar-brand .navbar-end{display:none}@media screen and (min-width:1024px){.navbar-end .navbar-link,.navbar-end>.navbar-item{color:#f7fafc}.navbar-end .navbar-link:hover,.navbar-end>a.navbar-item:hover{background:transparent;color:#f7fafc}.navbar-end .navbar-link::after{border-color:#f7fafc}.navbar-item.has-dropdown:hover .navbar-link{background:transparent;color:#f7fafc}.navbar .navbar-brand .navbar-end{display:-webkit-box;display:-ms-flexbox;display:flex}}.navbar-brand{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.navbar-burger,.navbar-search{color:#f7fafc;background:none;border:none;outline:none;line-height:1;height:3.77778rem;position:relative;width:2.75rem;padding:0}.navbar-search{margin-left:auto}.navbar-brand .navbar-search svg{margin-right:0}.navbar-burger span{background:#f7fafc;display:block;height:1px;left:50%;margin-left:-7px;position:absolute;top:50%;width:15px}.navbar-burger span:first-child{margin-top:-6px}.navbar-burger span:nth-child(2){margin-top:-1px}.navbar-burger span:nth-child(3){margin-top:4px}.navbar-burger.is-active span:first-child{margin-left:-5px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-transform-origin:left top;transform-origin:left top}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){margin-left:-5px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:left bottom;transform-origin:left bottom}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a5568;display:block;line-height:1.8;padding:.5rem 1rem;position:relative}.navbar-item{-webkit-box-flex:0;-ms-flex:none;flex:none}.navbar-item.has-dropdown .navbar-link{padding:0 2.5em 0 0}.navbar-item .icon{width:1.1rem;height:1.1rem;display:block}@media screen and (min-width:1024px){.navbar-dropdown{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.navbar-mobile{display:none;font-weight:400}}@media screen and (max-width:1023px){.navbar-item .navbar-link{font-weight:700;padding-left:0}}.navbar-dropdown .navbar-item{padding-left:0}.navbar-dropdown a{color:#3182ce}.navbar-dropdown a:hover{color:#2c5282}@media screen and (min-width:1024px){.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}}.navbar-divider{background-color:#edf2f7;border:none;height:1px;margin:.25rem 0}@media screen and (max-width:1023px){.navbar-brand .navbar-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar-menu{background:#fff;padding:.5rem 0}.navbar-menu.is-active{display:block;-webkit-box-shadow:0 8px 16px rgba(10,10,10,.1);box-shadow:0 8px 16px rgba(10,10,10,.1);overflow-y:auto;position:fixed;top:3.5rem;left:0;right:0;bottom:0;max-height:none;z-index:500;background:#f7fafc}.navbar-menu .navbar-link:hover,.navbar-menu a.navbar-item:hover{background-color:transparent}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.navbar-burger,.navbar-search{display:none}.navbar-item,.navbar-link{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.navbar-item.has-dropdown{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.navbar-item.docs .navbar-dropdown{width:320px}.navbar-item.labs .navbar-dropdown{min-width:280px}.navbar-item.developer .navbar-dropdown{width:310px}.navbar-item .navbar-dropdown{max-width:320px}.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.has-dropdown::after{border-width:0 0 1px 1px;border-style:solid;content:" ";display:block;height:.5em;pointer-events:none;position:absolute;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);width:.5em;margin-top:-.375em;right:1.125em;top:50%}.navbar-item.has-dropdown::before{position:absolute;content:"";display:block;top:100%;left:50%;margin-top:-.4rem;margin-left:-1.5rem;z-index:1;width:0;height:0;border-left:.4rem solid transparent;border-right:.4rem solid transparent;border-bottom:.4rem solid transparent}.developer.navbar-item.has-dropdown:hover::before{border-bottom-color:#38a169}.docs.navbar-item.has-dropdown:hover::before{border-bottom-color:#63b3ed}.navbar-item.labs.has-dropdown:hover::before{border-bottom-color:#b794f4}.navbar-menu{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.navbar-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border:1px solid #edf2f7;border-top:none;border-radius:0 0 .25rem .25rem;display:none;top:100%;right:0;min-width:100%;position:absolute}.navbar-dropdown .navbar-item{padding:.5rem 1rem;white-space:nowrap}.navbar-dropdown .navbar-item:last-child{border-radius:inherit}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown.is-right{left:auto;right:0}.navbar-dropdown a.navbar-item:hover{background-color:transparent}}.navbar .button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#dd6b20;border:1px solid #2c5282;border-radius:.15rem;height:1.75rem;color:#ebf8ff;padding:0 .75em;white-space:nowrap}.navbar-item.developer .navbar-dropdown,.navbar-item.training .navbar-dropdown{border-top-color:#38a169}.navbar-item.docs .navbar-dropdown{border-top-color:#63b3ed}.navbar-item.labs .navbar-dropdown{border-top-color:#b794f4}.navbar-item.kb .navbar-dropdown{border-top-color:#805ad5}@media screen and (min-width:1024px){.navbar-dropdown{border-top:4px solid;margin-top:0;border-radius:4px;max-width:480px}}.project{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;border-bottom:1px solid #edf2f7}.project .project-name{color:#4a5568;font-weight:600;font-size:.88889rem}.project-description{margin:.2rem 0;font-size:.8rem;color:#718096;white-space:normal}.project-links{margin:0;padding:0;white-space:normal}.project-links li{list-style-type:none;display:inline}.project-links li::after{color:#cbd5e0;content:"|"}.project-links li:last-child::after{content:""}.project-links li:first-child{padding-left:0}.project-links li:last-child{padding-right:0;border-right:0}.project-link{font-size:.8rem;font-weight:600;display:inline-block;margin-right:.2rem}#search-open{padding-left:0}#auth{padding-left:16px}#auth .auth-user{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;border-radius:50%;width:1.9rem;height:1.9rem;font-size:.7rem;background-size:cover;background-position:50%;border:2px solid #38a169}.getting-started-cta .project:hover{background:#eef1f6}.getting-started-cta .project-subtitle{color:#718096;font-size:13px;font-weight:400}.getting-started-cta .aura-ticker{font-size:.8rem;border:1px solid #0070d9;color:#018bff;border-radius:9999px;padding:0 8px;margin-left:4px}.getting-started-cta.navbar-item.has-dropdown::before{margin-left:0}.navbar-item.has-dropdown.getting-started-cta:hover::before{border-bottom-color:#718096}.navbar-item.has-dropdown.getting-started-cta::after{content:none}footer.footer{background-color:#2d3748;color:#a0aec0;font-size:.83333rem;line-height:1.8;padding:2rem 0}.footer .wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;max-width:40rem;margin:auto;-ms-flex-wrap:wrap;flex-wrap:wrap}.footer .column{width:50%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-width:180px;padding:1.5rem}@media screen and (min-width:1024px){.footer .wrapper{-webkit-box-flex:1;-ms-flex:auto;flex:auto;max-width:1280px}.footer .column{width:25%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:1.5rem}}@media screen and (max-width:1023px){.footer .column.links{padding-top:0;padding-bottom:0}.footer .column.links h2{margin-top:0}}.footer p{margin:.5rem 0}.footer a{color:#cbd5e0;font-weight:200}.footer a:hover{color:#edf2f7}footer .logo-footer{margin-bottom:25px;height:34px;background:url(https://dist.neo4j.com/wp-content/uploads/20210422201812/neo4j-logo-2020-white.svg) no-repeat}.footer h2{font-size:.83333rem;font-weight:200;color:#cbd5e0;margin:65px 0 .5rem}.footer ul{margin:.5rem 0;padding:0}.footer ul li{list-style-type:none;margin:0 0 .2rem}.footer ul li i{color:#a0aec0;font-size:1rem;width:.8rem;text-align:center;display:inline-block;margin-right:.5rem}.footer ul li.speaker-program{margin-top:2rem}footer ul li .speaker-program a{font-size:normal} -/*! Adapted from the GitHub style by Vasily Polovnyov */.hljs-comment,.hljs-quote{color:#a0aec0;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#718096;font-weight:500}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:#3182ce}.hljs-doctag,.hljs-string{color:#2f855a}.hljs-section,.hljs-selector-id,.hljs-title{color:#553c9a;font-weight:500}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#3182ce;font-weight:500}.hljs-attribute,.hljs-name,.hljs-tag{color:#805ad5;font-weight:400}.hljs-link,.hljs-regexp{color:#68d391}.hljs-bullet,.hljs-symbol{color:#434190}.hljs-built_in,.hljs-builtin-name{color:#3182ce}.hljs-meta{color:#a0aec0}.language-cypher-shell,.language-shell{color:#718096}.language-cypher-shell>.cypher,.language-shell>.bash{color:initial}.language-cypher-shell>.hljs-meta,.language-shell>.hljs-meta{color:#434190;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.language-shell .bash{color:#2d3748}.hljs-deletion{background:#edf2f7}.hljs-addition{background:#c6f6d5}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:500}@page{margin:.5in}@media print{.hide-for-print{display:none!important}html{font-size:.9375em}a{color:inherit!important;text-decoration:underline}a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none}img,object,svg,tr{page-break-inside:avoid}thead{display:table-header-group}pre{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:pre-wrap}body{padding-top:2rem}.navbar{background:none;color:inherit;position:absolute}.navbar *{color:inherit!important}#topbar-nav,.nav-container,.toolbar{display:none}.doc{color:inherit;margin:auto;max-width:none;padding-bottom:2rem}.doc .listingblock code[data-lang]::before{display:block}footer.footer{background:none;border-top:1px solid #edf2f7;color:#e2e8f0;padding:.5rem}.footer *{color:inherit}}.gram{width:100%;height:576px;background:#f7fafc;border-radius:.5rem}.gram svg{height:100%;width:100%}.label{display:inline-block;padding:.2rem .8rem;border-radius:.25rem;background:#bee3f8;color:#2b6cb0;font-weight:600;font-size:.7rem}.tableblock .label{margin-top:.2rem}.label--apoc-core,.label--core{background:#bee3f8;color:#2b6cb0}.label--apoc-full,.label--full{background:#c6f6d5;color:#2f855a}.label--procedure{background:#c3dafe;color:#4c51bf}.label--function{background:#e9d8fd;color:#6b46c1}.label--current{background:#3182ce;color:#fff}.label--beginner,.label--free{background:#0b297d;color:#fff}.label--not-on-aura{background:#c53030;color:#fff}.label--aura-db-enterprise{background:#3182ce;color:#fff}.label--aura,.label--enterprise,.label--enterprise-edition,.label--enterprise-only,.label--professional{background:#018bff;color:#fff}.label--added,.label--changed,.label--new,.label--renamed,.label--updated,.label--yes{background:#9ae6b4;color:#000}.label--na,.label--no,.label--removed{background:#fc8181;color:#000}.label--deprecated,.label--discontinued{background:#f6ad55;color:#000}.label--danger,.label--warning{background:#ffde63;color:#000}.label--default,.label--recommended{background:#a3bffa;color:#000}.label--linux,.label--mac-os,.label--unix,.label--windows{background:#4fd1c5;color:#000}.label--cypher,.label--functionality,.label--syntax{background:#e6e6e6;color:#000}.label--cluster-member-core{background:#a3bffa;color:#000}.label--cluster-member-read-replica{background:#9ae6b4;color:#000}.label--cluster-member-single{background:#faf089;color:#000}.label--admin-only{background:#2f855a;color:#fff}.glossary{display:none}.glossary-term{display:inline-block;color:#63b3ed;border-bottom:1px dotted #63b3ed}.glossary-term::after{display:inline-block;content:url(https://neo4j.com/docs/assets/img/info.svg);margin-left:6px;margin-top:-4px}code .glossary-term::after{display:none}.tooltip{font-size:.8rem;position:absolute;z-index:5000;background:#fff;border-bottom:3px solid #4a5568;border-radius:.25rem;width:220px;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.tooltip::after{width:0;height:0;position:absolute;content:"";display:block}.tooltip.tooltip--top::after{top:0;margin-top:-.25rem;border-bottom:.5rem solid #4a5568}.tooltip.tooltip--bottom::after,.tooltip.tooltip--top::after{left:50%;margin-left:-.25rem;border-left:.5rem solid transparent;border-right:.5rem solid transparent}.tooltip.tooltip--bottom::after{bottom:0;margin-bottom:-.5rem;border-top:.5rem solid #4a5568}.tooltip .tooltip-header{background:#2d3748;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#fff;padding:.5rem 1rem;font-weight:600}.tooltip .tooltip-body{padding:.5rem 1rem;color:#718096;font-size:.8rem}.tooltip .tooltip-body p:first-child{margin-top:0}.tooltip .tooltip-body p:last-child{margin-bottom:0}.tooltip .tooltip-body a{color:#3182ce;font-weight:600}section.hero{padding:8rem 0 0;background:#2d3748;background:#020024;background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568);text-align:left}body.landing .hero h1,body.landing .hero h2,body.landing .hero p,section.hero h1,section.hero h2,section.hero p{padding:0 1rem;max-width:680px;margin:auto}.landing .hero h1,.landing .hero h2,section.hero h1,section.hero h2{font-size:1.2rem;font-weight:300;display:block;color:#cbd5e0;margin-bottom:1rem}.landing .hero h1::after,.landing .hero h2::after,section.hero h1::after,section.hero h2::after{display:block;background-color:#38a169;height:3px;width:80px;margin-top:1rem;margin-bottom:2rem;content:""}.landing .hero p,section.hero p{font-size:1.8rem;color:#e2e8f0;font-weight:300}.landing .doc{max-width:none;padding:0;margin:0;width:100%;-webkit-box-flex:0!important;-ms-flex:none!important;flex:none!important}.landing .doc .sectionbody,.landing .doc h2{padding-left:1rem;padding-right:1rem;max-width:980px;margin:auto}.landing .doc .sect1{padding:2em 0;margin-top:0}.landing .doc .sect1.hero{padding-bottom:0!important}.landing .doc h1{display:none}.landing .doc .secondary{background:#f7fafc}.landing .doc .secondary.leading{margin-top:0;background:-webkit-gradient(linear,left top,left bottom,from(#e2e8f0),color-stop(35%,#f7fafc),to(#fff));background:linear-gradient(180deg,#e2e8f0,#f7fafc 35%,#fff);padding-top:4rem}.landing .doc h2{border-bottom:0}.landing .doc h2::after{display:block;background-color:#38a169;height:3px;width:80px;margin-top:1rem;margin-bottom:0;content:""}body.landing.labs h1.page{display:none}body.landing .ulist.buttons{line-height:1;margin:-1rem 0 0;text-align:center;font-size:1rem;display:block}body.landing .ulist.buttons>:first-child{padding-top:2rem}body.landing .ulist.buttons>:last-child{padding-bottom:calc(1rem + 40px)}body.landing .ulist.buttons::after,body.landing .ulist.buttons::before{content:" ";display:block;height:40px;-webkit-clip-path:polygon(100% 0,0 calc(100% + 1px),100% calc(100% + 1px));clip-path:polygon(100% 0,0 calc(100% + 1px),100% calc(100% + 1px))}body.landing .ulist.buttons::after{margin-top:-40px}body.landing .ulist.buttons p{font-size:1rem!important;display:inline;padding:0;line-height:1}body.landing .ulist.buttons ul{padding:0}body.landing .ulist.buttons li{list-style-type:none;display:block;margin:0 0 1rem}body.landing .ulist.buttons li a{display:inline-block;margin:0 .25rem;background:#2d3748;color:#fff;font-weight:600;padding:1rem 2rem;border-radius:.25rem;-webkit-transition:all .1s linear;transition:all .1s linear}@media (min-width:760px){body.landing .ulist.buttons li,body.landing .ulist.buttons li a{display:inline-block}}.landing .clearfix{clear:both}.landing .secondary::after{content:"";display:block;clear:both}@media (min-width:760px){.landing .flex-container .sectionbody{display:-webkit-box;display:-ms-flexbox;display:flex}.landing .flex-container .column{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:1rem}.landing .fleflex-containerx .column img{display:block;margin:auto;max-width:100%}.landing .flex-container .column .paragraph{margin-top:0}.landing .flex-container .column h3{margin-bottom:2em}.landing .flex-container .column h3::after{display:block;background-color:#63b3ed;height:2px;width:40px;margin-top:12px;content:""}.landing .flex-container .column:first-child{margin-left:-12px}.landing .flex-container .column:last-child{margin-right:-12px}}.landing .discrete h2,.landing .toc.sidebar{display:none}.developer.landing .use-cases .sect2 .paragraph img{width:128px}.developer.landing .use-cases .sect2 .paragraph:nth-child(3){min-height:82px}.hero{padding:8rem 0 0!important;background:#2d3748;background:#020024;background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568);text-align:left}.hero h1,.hero h2,.hero p,.landing .doc .hero h1,.landing .doc .hero h2,.landing .doc .hero p{padding:0 1rem;max-width:680px;margin:auto}.hero h1,.hero h2,.landing .doc .hero h1,.landing .doc .hero h2{font-size:1.2rem;font-weight:300;display:block;color:#cbd5e0;margin-bottom:1rem}.hero h1::after,.hero h2::after{display:block;background-color:#38a169;height:3px;width:80px;margin-top:1rem;margin-bottom:2rem;content:""}.hero p{font-size:1.8rem;color:#e2e8f0;font-weight:300}.hero .sectionbody,.landing .doc .hero .sectionbody{width:100%;max-width:none;padding:0}.hero .paragraph{padding-bottom:5rem;margin-bottom:0}.hero svg{width:100%;height:40px}.hero svg.bottom{margin-bottom:-1rem}.hero svg.to-white{fill:#fff;margin-bottom:-1em}.hero svg.to-leading{fill:#e2e8f0!important;margin-bottom:-1em}body.docshome{background:#f7fafc}body.docshome .nav-menu>.nav-list{margin-top:0}body.docshome .nav-menu .component-title{display:none}body.docshome .nav-item[data-depth="0"]{margin-top:.5rem}body.docshome .nav-item .nav-section-header{margin-top:0;margin-bottom:0;padding-top:1.5rem!important;border-top:1px solid var(--colors-netural-25)}body.docshome .nav-menu .nav-list:first-child .nav-item:first-child .nav-section-header{border:none;padding-top:1.5rem!important}body.docshome .nav-menu .nav-item>a{padding-top:0;padding-bottom:0;line-height:1.5}body.docshome .nav-menu .nav-item>a>strong{margin-top:1.5rem!important;margin-bottom:.5rem;font-size:1rem;display:block}body.docshome .content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-bottom:2rem}body.docshome .doc{width:100%;max-width:1440px;padding:0}body.docshome .doc h2::after{display:block;background-color:#3182ce;height:3px;width:80px;margin-top:1rem;margin-bottom:0;content:""}body.docshome .doc div:not(.display) h2{display:none}body.docshome .nav-item:not(.is-active)>.nav-list{display:block}body.landing .toc{display:none}body.docshome .doc h2{border-bottom:0}body.docshome .sectionbody{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}body.docshome .sect1 .sectionbody>div.sect2{-webkit-box-flex:0;-ms-flex:0 1 440px;flex:0 1 440px}body.docshome .sect2{overflow:hidden;position:relative;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;min-width:30%;padding:1rem;margin:0 1rem 1rem 0;border-radius:.5rem;border:1px solid #d5d9de}body.docshome:not(.create-applications) .sect2{min-height:200px}body.docshome .sect2 .icon{float:left;position:absolute;top:1rem;left:1rem}body.docshome .sect2 .icon img{width:4.6rem;height:4.6rem;border-radius:50%;padding:12px}body.docshome:not(.create-applications) .sect2 .icon img{background:#e6f8ff}@media (max-width:820px){body.docshome .sect2{min-width:90%}}body.docshome .sect2 h3{font-size:1.1rem;color:#2c5282;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;line-height:1.5;margin:.5rem 2rem 0 6rem}body.docshome .sect2 h3 .anchor::before{display:none}body.docshome .sect2 .paragraph:not(.icon){text-align:left;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3;margin:.5rem 1rem 0 6rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}body.docshome .sect2 .paragraph.link{margin-top:.5rem;width:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;font-weight:600;font-size:1rem}body.docshome .sect2 .paragraph.category{display:none}body.docshome .plain-links a.external::after{all:unset}body.docshome .sect2 .paragraph.link a:not(.external)::after{margin-left:.25rem;content:"→";font-weight:600;color:#3182ce;-webkit-transition:margin .2s linear;transition:margin .2s linear}body.docshome .sect2 .ulist{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}body.docshome .sect2 ul{margin:.2rem 0 0;padding:0;text-align:right;font-size:.8rem}body.docshome .sect2 ul li{display:inline-block;margin-bottom:0}body.docshome .sect2 ul li a{display:inline-block;color:#3182ce;border:1px solid #edf2f7;padding:.1rem .7rem;border-radius:.2rem;font-size:.7rem}@media screen and (min-width:1024px){body.docshome .toolbar{display:none}}@media screen and (max-width:1023px){body.docshome .doc{padding:1rem}body.docshome .toolbar{top:0}body.docshome .nav-container{z-index:30;margin-top:2.5rem}}.feedback{position:fixed;bottom:0;right:2rem;border-top-left-radius:.25rem;border-top-right-radius:.25rem;background:#ebf8ff;color:#2c5282;padding:.5rem 1rem;width:320px;font-size:.8rem;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);z-index:1000}.feedback.negative{background:#fff5f5;color:#9b2c2c}.feedback.negative line{stroke:#9b2c2c}.feedback.negative a{color:#c53030}.feedback.positive{background:#f0fff4;color:#276749}.feedback .header{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:.25rem 0}.feedback .header,.feedback .header p{display:-webkit-box;display:-ms-flexbox;display:flex}.feedback .header p{-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1}.feedback svg{cursor:pointer}.feedback .header svg{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;margin-left:.5rem}.feedback .form div{font-size:.7rem}.feedback h2,.feedback p{font-size:.9rem}.feedback input{margin-right:.5rem}.feedback .feedback-option{float:left}.feedback label{font-size:.8rem}.feedback textarea{border-radius:.25rem;border:1px solid #90cdf4;background:#fff;width:100%;font-family:inherit;font-size:.7rem;color:#2b6cb0;padding:.5rem}.feedback circle,.feedback line,.feedback path{fill:transparent;stroke:#2b6cb0;stroke-width:1}.feedback .primary,.feedback .secondary{padding:.5rem 1rem;background:#ebf8ff;border:1px solid #2b6cb0;color:#2b6cb0;border-radius:.175rem;font-size:.8rem;font-family:inherit;font-weight:600;margin-right:.5rem;margin-bottom:1rem}.feedback .primary:active,.feedback .primary:focus,.feedback .secondary:active,.feedback .secondary:focus{outline:none}.feedback .primary{background:#2b6cb0;color:#fff}.feedback.negative textarea:active,.feedback.negative textarea:focus{outline:none}.feedback.negative .primary{background:#c53030;border-color:#c53030;color:#fff}.feedback.negative .secondary{background:#fff5f5;border-color:#c53030;color:#c53030}.feedback.negative textarea{background:#fff;border-color:#c53030;color:#c53030}.feedback .thank-you-negative,.feedback .thank-you-positive{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.feedback .thank-you-negative p{margin-bottom:.5rem}@media (max-width:1024px){.feedback{position:relative;border-radius:.25rem;max-width:40rem;min-width:0;right:auto;width:auto;-webkit-box-shadow:none;box-shadow:none;margin:1em 0 2rem}.feedback.absolute{top:auto!important;bottom:auto!important}}@media (min-width:1025px){.feedback.absolute{position:absolute;margin:0}}.feedback a{display:inline-block;margin-left:4px}body.docs .navbar,body.docs .search .search-container .search-form{background:#fff;border-top-color:#63b3ed}body.docs .navbar,body.docs .navbar-brand .navbar-item:first-child,body.docs .navbar-brand .navbar-item:first-child a{color:#718096}@media screen and (min-width:1024px){body.docs .navbar-end .navbar-link,body.docs .navbar-end .navbar-link:hover,body.docs .navbar-end>.navbar-item,body.docs .navbar-end>a.navbar-item:hover{color:#718096}body.docs .navbar-end .navbar-link::after{border-color:#718096}body.docs .navbar-item.has-dropdown:hover .navbar-link{color:#718096}}body.docs .navbar-burger{color:#718096}body.docs .navbar-burger span{background:#718096}body.docs .doc .button{background:#3182ce;color:#fff}body.docs .doc .button:hover{background:#4299e1;color:#fff}body.docs .nav-item .nav-item::before,body.docs .toc-menu li a::before{background-color:#90cdf4}body.docs .tooltip{border-bottom-color:#63b3ed}body.docs .tooltip--top::after{border-bottom-color:#4a5568}body.docs .tooltip.tooltip--bottom::after{border-top-color:#63b3ed}body.docs #preamble .abstract .title,body.docs #preamble .abstract blockquote{border-left-color:#63b3ed;color:#2c5282}body.docs .tableblock .icon i{color:#3182ce}body.docs .navbar .navbar-item.getting-started-cta .navbar-link{background:#018bff;color:#fff}body.docs .navbar .navbar-item.getting-started-cta .navbar-link:hover{background:#0070d9}body.docs .navbar .navbar-item.getting-started-cta .navbar-link:active{background:#0056b3}body.labs .navbar,body.labs .search .search-container .search-form{background:#fff;border-top-color:#b794f4}body.labs .navbar,body.labs .navbar-brand .navbar-item:first-child,body.labs .navbar-brand .navbar-item:first-child a{color:#718096}@media screen and (min-width:1024px){body.labs .navbar-end .navbar-link,body.labs .navbar-end .navbar-link:hover,body.labs .navbar-end>.navbar-item,body.labs .navbar-end>a.navbar-item:hover{color:#718096}body.labs .navbar-end .navbar-link::after{border-color:#718096}body.labs .navbar-item.has-dropdown:hover .navbar-link{color:#718096}}body.labs .navbar-burger{color:#718096}body.labs .navbar-burger span{background:#718096}body.labs .doc .button{background:#9f7aea;color:#fff}body.labs .doc .button:hover{background:#b794f4;color:#fff}body.labs .nav-item .nav-item::before,body.labs .toc-menu li a::before{background-color:#90cdf4}body.labs .tooltip,body.labs .tooltip--top::after{border-bottom-color:#b794f4}body.labs .tooltip.tooltip--bottom::after{border-top-color:#b794f4}body.labs #preamble .abstract .title,body.labs #preamble .abstract blockquote{border-left-color:#b794f4;color:#553c9a}body.labs .tableblock .icon i{color:#805ad5}body.labs .navbar .navbar-item.getting-started-cta .navbar-link{background:#b794f4;color:#fff}body.landing.labs .hero{background-color:#805ad5;background-image:url(https://cdn.neo4jlabs.com/images/lab-pipette-big.jpg);background-repeat:no-repeat;background-size:cover}body.landing.labs .hero h2{color:#fff}body.landing.labs h2::after{background-color:#805ad5!important}body.landing.labs .hero p{color:#fff}.landing.labs .hero .buttons::before{background-color:#805ad5}.landing.labs .hero .buttons::after{background-color:#e2e8f0}body.landing.labs .buttons>*{background:#805ad5}body.landing.labs .buttons li a{background:#553c9a;color:#fff}body.landing.labs .buttons li a:hover{background:#6b46c1}body.landing.labs .buttons li a:active{background:#3182ce}body.developer .navbar,body.developer .search .search-container .search-form{border-top-color:#38a169}body.developer .nav-item .nav-item::before,body.developer .toc-menu li a::before{background-color:#a0aec0}.developer .navbar-brand #neo4j-group{fill:#fff}.developer .navbar-brand #developer{fill:#cbd5e0}body.developer .doc .button{background:#2f855a;color:#fff}body.developer .doc .button:hover{background:#38a169;color:#fff}body.developer .doc .button:active{background:#718096;color:#fff}body.developer #preamble .abstract .title,body.developer #preamble .abstract blockquote{border-left-color:#38a169}body.developer .tableblock .icon i{color:#38a169}body.developer .navbar .navbar-item.getting-started-cta .navbar-link{background:#4a5568;color:#fff}body.landing.developer .navbar{border-bottom:0}body.landing.developer .hero{background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568)}@media (min-width:760px){.landing.developer .languages h3{display:none}.landing.developer .languages .flex-container{text-align:center}}.landing.developer .languages ul{padding:0;margin:0}.landing.developer .languages ul li{margin-bottom:0;list-style:none}.landing.developer .languages ul li a{font-weight:400}body.landing.developer .hero .buttons::before{background-color:#718096}body.landing.developer .hero .buttons::after{background-color:#e2e8f0}body.landing.developer .sect1 .buttons>*{background:#718096}body.landing.developer .buttons li a{background:#2d3748;color:#fff}body.landing.developer .buttons li a:hover{background:#4a5568}body.landing.developer .buttons li a:active{background:#38a169}body.kb svg.kb{margin-bottom:10px}body.kb .navbar,body.kb .search .search-container .search-form{border-top-color:#805ad5}.kb .navbar-brand #developer{fill:#cbd5e0}.kb .navbar-brand #neo4j-group{fill:#fff}body.kb .navbar .navbar-item.getting-started-cta .navbar-link{background:#805ad5;color:#fff}body.training .navbar,body.training .search .search-container .search-form{border-top-color:#d53f8c;border-bottom:0}.training .navbar-brand #developer{fill:#cbd5e0}.training .navbar-brand #neo4j-group{fill:#fff}body.graphgists .sect1.hero h2::after{background-color:#805ad5!important}body.graphgists svg.graphgists{margin-bottom:10px}body.graphgists .navbar,body.graphgists .search .search-container .search-form{border-top-color:#805ad5;border-bottom-color:#2d3748}.graphgists .navbar-brand #developer{fill:#cbd5e0}.graphgists .navbar-brand #neo4j-group{fill:#fff}body.graphgists .navbar .navbar-item.getting-started-cta .navbar-link{background:#805ad5;color:#fff}.doc pre.has-header code{border-top-left-radius:0!important;border-top-right-radius:0!important}.doc .listingblock .code-inset,.doc .listingblock .code-title{padding:.5rem}.doc .listingblock .code-title{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.doc .code-header div{padding:.25rem 0;font-weight:600}.doc .listingblock .code-spacer{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.doc .listingblock .code-language,.doc .listingblock .code-title{color:#f7fafc}.doc .listingblock .code-header{background:#4a5568;color:#f7fafc;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.doc .listingblock .code-language{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:.25rem 0}.doc .listingblock .code-inset .btn{padding:.6rem 0}.doc .code-footer .btn,.doc .listingblock .code-inset .btn{border:0;border-radius:.175rem;font-weight:600;line-height:1;text-align:center}.doc .code-footer .btn{background:#4a5568!important;color:#f7fafc!important;margin:.25rem 0 .25rem .5rem;padding:.6rem}.doc .code-footer .btn:focus,.doc .listingblock .code-inset .btn:focus{outline:none}.doc .listingblock .code-inset .btn-copy:hover{cursor:pointer}.doc .listingblock .code-inset .btn.btn-copy{padding:0}.doc .listingblock .code-inset .btn-copy.fa-check{background:#718096;margin:.2rem;padding:.4rem}.doc .listingblock .code-inset .btn-copy.fa-check::before{display:block;background:transparent;color:#fff!important}.doc .listingblock .code-inset{border-top-right-radius:.5rem;color:#718096;font-size:.69444rem;position:absolute;padding:.25rem .5rem;z-index:1;right:0}.doc .code-inset .copy-success.hidden{display:none}.doc .code-inset .copy-success .btn{position:absolute;right:-1rem;background:#48bb78;color:#fff!important;padding:.4rem;margin:0;line-height:1;font-size:.69444rem;width:4rem;z-index:1}.doc .code-inset .copy-success .btn::after{width:0;height:0;position:absolute;content:"";display:block;top:0;left:50%;margin-left:-.25rem;margin-top:-.25rem;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid #48bb78}.doc .code-footer{background:#a0aec0;color:#fff;padding:.3rem 12px .3rem 0;font-size:.8em;display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.doc .spacer{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.doc .show-more{position:absolute;bottom:0;height:2.5rem;width:100%;text-align:center;cursor:pointer}.doc .show-more a{font-weight:500;color:#f7fafc;padding:5px 10px;background:#4a5568;border-radius:30px}.doc .code-footer.has-results{border-bottom-left-radius:0;border-bottom-right-radius:0}.doc .code-footer .loading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 .6rem;color:#edf2f7;font-size:.7rem}.doc .code-results{background:#edf2f7;color:#718096;border:solid #a0aec0;border-width:1px 1px 2px;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;font-size:.75rem;overflow:auto}.doc .code-results .code-result-options{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid #cbd5e0;margin:0 12px 4px}.doc .code-results .code-result-options .code-result-header{font-weight:600;text-transform:uppercase;padding:.6rem 0 .2rem}.doc .code-results button{padding:0;font-weight:600;border:0;color:#718096;background:transparent}.doc .code-results button:focus{color:#38a169;outline:none}.doc .code-results .code-result-container{width:100%;max-height:600px;overflow:auto;padding:12px}.doc .code-results .code-result-table{min-width:100%}.doc .code-results .code-result-table th{font-weight:600;text-align:left;font-size:.7rem;padding:0 .25rem 6px;color:#718096;border-bottom:1px solid #cbd5e0}.doc .code-results .code-result-table td{vertical-align:top;padding:.25rem;color:#718096}.doc .code-results .code-result-table tbody td{border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.doc .code-results .code-result-table tbody tr td:last-child{border-right-width:0}.doc .code-results .code-result-table tbody tr:hover{background:#f7fafc}.doc .code-results pre{padding:0;font-size:.6rem;background:transparent}.doc .code-results .error{border-left:4px solid #e53e3e;color:#e53e3e;padding:8px;border-radius:0}.doc .editable code,.doc .editable code:focus{outline:none}.doc .code-result-toggle{padding-right:1.2rem}.doc .code-result-toggle button{line-height:1.5;padding:.5rem 0;margin-left:.4rem;border-bottom:2px solid transparent;color:#a0aec0}.doc .code-result-toggle button.code-result-toggle--current{color:#718096;border-bottom-color:#718096}@media (min-width:760px){.code-walkthrough .doc #preamble .paragraph{font-size:1.1rem}.code-walkthrough .doc{max-width:68rem}.code-walkthrough .doc .sect1{clear:both;position:relative;padding-right:50%}.code-walkthrough .doc .sect1::after{content:"";display:block;position:absolute;top:0;bottom:-2rem;right:0;width:48%;background:#f7fafc;z-index:1}.code-walkthrough .doc .sect1.disconnected::after{display:none}.code-walkthrough .doc .sect1.first::after{top:2.7rem}.code-walkthrough .doc .sect1:first-child::after{top:2.7rem;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.code-walkthrough .doc .sect1.last::after{bottom:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.code-walkthrough .doc .listingblock{position:absolute;top:2.7rem;right:0;width:48%;z-index:10}.code-walkthrough .doc .listingblock code{-webkit-box-shadow:none;box-shadow:none;border:0!important}.code-walkthrough .toc{display:none}}body.kb .navbar{border-bottom:0;border-top-color:#805ad5}body.kb h1::after,body.kb h2::after{background-color:#805ad5!important}body.kb .label{background-color:#e9d8fd!important;color:#553c9a}body.kb .kb-search{max-width:680px;margin:2em auto 4rem;background:#718096;border-radius:.5rem;color:#edf2f7;padding:.5rem 1rem;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:.9rem;cursor:pointer}body.kb .kb-search,body.kb .kb-search .search-placeholder{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}body.kb .kb-search .search-placeholder{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:.75rem 0}body.kb .kb-search .search-shortcut{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;color:#4a5568;background:#a0aec0;padding:.5rem 1rem;border-radius:.25rem;font-size:.8rem;font-weight:400}body.kb .kb-search .kb-search-icon{padding-top:2px}body.kb .kb-search svg{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:1.6rem;height:1.6rem;stroke:#2d3748;margin-left:12px}body.kb .hero{padding-bottom:2em!important}body.kb-article .doc{max-width:none;padding:2em 0;margin:0;width:100%;-webkit-box-flex:0!important;-ms-flex:none!important;flex:none!important}body.kb-article .doc>.sect1>.sectionbody{padding-left:1rem;padding-right:1rem;max-width:980px;margin-left:auto;margin-right:auto}body.kb .doc .flex-container{padding:2em 0 1em}body.kb .doc .sectionbody{-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0}body.landing.kb.kb-home .article.paragraph{padding:0}body.landing.kb.kb-home .sectionbody{padding-left:1rem;padding-right:1rem}body.landing.kb.kb-home .flex-container .sectionbody .column{-webkit-box-flex:1;-ms-flex:1 1 25%;flex:1 1 25%;-ms-flex-wrap:wrap;flex-wrap:wrap;min-width:13rem}@media (min-width:760px){body.landing.kb.kb-home .flex-container .sectionbody .column{padding-left:0;padding-right:2rem}}body.landing.kb .doc .sectionbody .column ul li a{font-weight:200}body.landing.kb .doc .sectionbody .column ul{list-style-type:none;padding:0}.landing .flex-container .category.column:first-child{margin-left:0!important}.landing .flex-container .category.column:last-child{margin-right:0!important}body.landing.kb.kb-home ul.category-tags span.count{float:right;color:#2d3748;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:.75em;height:2em;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:1.25;padding-left:.75em;padding-right:.75em;white-space:nowrap;margin-right:2rem}body.kb .article.paragraph{padding:0 1rem}body.kb-article .doc h1{display:block}body.kb h2{font-weight:200}body.kb h2 span{color:#805ad5;font-weight:600}body.kb-article .heading{padding:2em 0}body.kb-category .breadcrumbs,body.kb-tag .breadcrumbs{padding:0 1rem}body.kb-article .breadcrumbs{padding:0}body.kb-article .breadcrumbs ul,body.kb-category .breadcrumbs ul,body.kb-tag .breadcrumbs ul{padding:0!important;margin-bottom:.2rem;font-size:.8rem}.kb-article .breadcrumbs a,.kb-category .breadcrumbs a,.kb-tag .breadcrumbs a{font-weight:200}.kb .breadcrumbs a::after{display:none}.kb-article h1.page{margin:.5rem 0}.kb .kb-metadata{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:.875rem}.kb .kb-metadata,.kb .kb-metadata-menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:0}.kb .kb-metadata-menu{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.kb .kb-metadata-menu dl{margin:0}.kb .kb-metadata dd,.kb .kb-metadata dt{display:inline-block;padding:0;margin-left:0}.kb-metadata dt::after{content:":"}.kb .kb-metadata dd{margin:0 1rem 0 .2rem}.kb .kb-metadata .edit-this-page{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0}.kb .kb-metadata .edit-this-page a{font-weight:400}.kb .kb-metadata .edit-this-page a::after{display:none}.training-certification .doc,.training-enrollment .doc,.training-home .doc{padding-left:1rem;padding-right:1rem;max-width:75rem;margin:auto}.training .doc h2::after{background-color:#d53f8c}.training.landing .discrete>h3{display:none}.training.landing .featured-courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,auto));margin:0 -1rem}.training.landing .featured-courses>.openblock{padding:1rem;margin-bottom:1rem;display:grid}.training.landing .featured-courses>.openblock>.content{-webkit-box-shadow:0 2px 10px rgba(0,0,0,.17);box-shadow:0 2px 10px rgba(0,0,0,.17);border-radius:5px;display:grid;grid-template-rows:.1fr auto 4rem;background:#fff}.training.landing .featured-courses>.openblock>.content>.imageblock{margin:0}.training.landing .featured-courses>.openblock>.content>.paragraph{padding:.5rem 1rem 0;line-height:1.4}.training.landing .course-label{background:linear-gradient(45deg,#63b3ed,#b794f4);font-size:12px;padding:2px 8px;border-radius:5px;color:#fff;font-weight:700}.training.landing .featured-courses .course-duration::before{display:inline-block;content:" ";background-image:url(https://neo4j.com/docs/assets/img/duration.svg);background-repeat:no-repeat;height:1rem;width:1rem;margin-right:.25rem}.training.landing .featured-courses .course-duration{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:.65rem}.training.landing a.button.course-action{background-color:#d53f8c}.training.landing a.button.course-action:hover{color:#fff;background-color:#ed64a6}.training.landing a.button.course-action:visited{color:#fff}.training-home .doc .find-training{text-align:center;padding-bottom:2em}.training-home .doc .find-training h3{margin:0;padding:0}.training-home .doc .find-training hr{background:url(https://neo4j.com/docs/assets/img/delimiter.svg) no-repeat top;background-size:contain;display:block;height:2rem;border:0;position:relative;margin-bottom:2rem}.training-home .doc .find-training hr::after,.training-home .doc .find-training hr::before{content:"";display:block;position:absolute;background:#edf2f7;height:2px;top:1.25rem}.training-home .doc .find-training hr::before{left:0;right:50%;margin-right:7.75rem}.training-home .doc .find-training hr::after{right:0;left:50%;margin-left:7.75rem}.training-home .doc section.row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-bottom:2em}.training-certification .hero,.training-enrollment .hero,.training-home .hero{color:#fff;padding:8rem 0 2rem!important;background:#2d3748;background:#020024;background:-webkit-gradient(linear,left top,left bottom,from(#2d3748),color-stop(45%,#4a5568),to(#4a5568));background:linear-gradient(180deg,#2d3748,#4a5568 45%,#4a5568);text-align:left}.training-certification .hero h1,.training-enrollment .hero h1,.training-home .hero h1{color:#fff}.training-certification .hero h1::after,.training-certification .hero h2::after,.training-enrollment .hero h1::after,.training-enrollment .hero h2::after,.training-home .hero h1::after,.training-home .hero h2::after{background-color:#d53f8c}.row>.training-courses{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-right:2em;padding-top:2rem}.training-promoted{min-width:20rem}.training-courses ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,auto))}.training-courses ul li::after{content:"";-webkit-box-flex:1;-ms-flex:auto;flex:auto}.training-courses ul>li{padding:1rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.training-courses ul>li>a{cursor:pointer}.training-courses ul>li>a:hover{color:#fff;font-weight:800}.training-courses .course-card{-webkit-box-shadow:0 2px 10px rgba(0,0,0,.17);box-shadow:0 2px 10px rgba(0,0,0,.17);border-radius:5px;display:grid;grid-template-rows:250px 1fr;grid-template-columns:minmax(-webkit-min-content,400px);grid-template-columns:minmax(min-content,400px)}.training-courses .course-card .course-illustration{height:100%;background-repeat:no-repeat;background-size:cover;border-top-left-radius:5px;border-top-right-radius:5px}.training-courses .course-card .course-label{background:linear-gradient(45deg,#63b3ed,#b794f4);font-size:12px;padding:2px 8px;border-radius:5px;color:#fff;font-weight:700}.training-courses .course-card>.course-content{padding:.5rem 1rem 1rem;display:grid;grid-template-rows:-webkit-min-content -webkit-min-content 1fr;grid-template-rows:min-content min-content 1fr}.training-courses .course-card .course-content h3{margin:0;padding:0;font-size:1rem}.training-courses .course-content .course-duration{color:#718096;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:.1rem;padding:0}.training-courses .course-content .course-actions{margin-top:auto}.training-courses .course-content .course-duration::before{display:inline-block;content:" ";background-image:url(https://neo4j.com/docs/assets/img/duration.svg);height:1rem;width:1rem;margin-right:.25rem}.course-actions a.button{background-color:#d53f8c}.course-actions a.button:hover{color:#fff;background-color:#ed64a6}.course-actions a.button:visited{color:#fff}.course-actions .course-state.is-hidden{display:none}.training-courses ul>li .course-card .button{margin-top:1rem;margin-bottom:.75rem}.training-courses ul>li a{color:inherit}.training-courses ul>li a:hover{color:#d53f8c}.training-certification .doc .sect1,.training-enrollment .doc .sect1{padding:.25rem 0;margin-top:0}.training-certification .doc h2,.training-enrollment .doc h2{margin:0;border-bottom:0}.training-certification .doc h2::after,.training-enrollment .doc h2::after{display:block;height:3px;width:80px;margin-top:1rem;margin-bottom:0;content:""}.training-certification .doc,.training-enrollment .doc{padding-top:2em}.training-certification .doc section,.training-enrollment .doc section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.training-certification .doc header h3,.training-enrollment .doc header h3{margin:0;padding:.4rem 0 2rem}.training-certification .course-description,.training-enrollment .course-description{-webkit-box-flex:3;-ms-flex:3;flex:3;min-width:450px;padding-left:1rem;padding-right:1rem}.training-certification .course-actions,.training-enrollment .course-actions{display:grid;-webkit-box-flex:2;-ms-flex:2;flex:2;min-width:350px;padding-left:1rem;padding-right:1rem}.training-certification .course-actions>.content,.training-certification .course-actions>.error,.training-certification .course-actions>.spinner,.training-enrollment .course-actions>.content,.training-enrollment .course-actions>.error,.training-enrollment .course-actions>.spinner{grid-column:1/2;grid-row:1/2}.training-certification .course-actions .panel,.training-enrollment .course-actions .panel{display:grid;padding:1rem;background-color:#f7fafc;border-top:5px solid #d53f8c}.training-certification .course-actions a.button-logout,.training-enrollment .course-actions a.button-logout{background:none;color:#718096;text-decoration:underline;text-align:end;display:block;font-size:.8rem;padding:0;margin-bottom:.5rem}.training-certification .course-actions .content,.training-enrollment .course-actions .content{display:grid}.training-certification .course-actions .content>.course-state,.training-enrollment .course-actions .content>.course-state{grid-column:1/2;grid-row:1/2}.training-certification .course-actions form label,.training-enrollment .course-actions form label{color:#2d3748;display:block;font-size:1rem;margin-bottom:.5rem}.training-certification .course-actions form .field:not(:last-child),.training-enrollment .course-actions form .field:not(:last-child){margin-bottom:.75rem}.training-certification .course-actions form .field.action,.training-enrollment .course-actions form .field.action{margin-top:1rem;display:-webkit-box;display:-ms-flexbox;display:flex}.training-certification .course-actions .button-course-continue,.training-certification .course-actions .button-course-enroll,.training-certification .course-actions .button-signin,.training-enrollment .course-actions .button-course-continue,.training-enrollment .course-actions .button-course-enroll,.training-enrollment .course-actions .button-signin{margin:auto}.training-certification .course-actions form .help,.training-enrollment .course-actions form .help{font-size:.85rem;margin-top:0;font-style:italic;margin-bottom:1.25rem;margin-left:.8rem}.training-certification .course-actions form input:hover,.training-certification .course-actions form select:hover,.training-enrollment .course-actions form input:hover,.training-enrollment .course-actions form select:hover{border-color:#a0aec0}.training-certification .course-actions form select,.training-enrollment .course-actions form select{cursor:pointer;display:block;outline:0;border-radius:4px;border:1px solid #cbd5e0}.training-certification .course-actions form input[type=email],.training-certification .course-actions form input[type=text],.training-certification .course-actions form select,.training-enrollment .course-actions form input[type=email],.training-enrollment .course-actions form input[type=text],.training-enrollment .course-actions form select{max-width:100%;background-color:#fff;color:#2d3748;-webkit-appearance:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-shadow:none;box-shadow:none;font-size:1rem;height:2.5em;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;line-height:1.5;padding:calc(.5em - 1px) calc(.75em - 1px);position:relative;vertical-align:top}.training-certification .course-actions form input[type=email],.training-certification .course-actions form input[type=text],.training-enrollment .course-actions form input[type=email],.training-enrollment .course-actions form input[type=text]{width:100%;border-radius:4px;-moz-appearance:none;border:1px solid #e2e8f0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.training-certification .course-actions form input:focus,.training-certification .course-actions form select:focus,.training-enrollment .course-actions form input:focus,.training-enrollment .course-actions form select:focus{outline:0;border-color:#d53f8c;-webkit-box-shadow:0 0 0 .125em rgba(213,63,140,.25);box-shadow:0 0 0 .125em rgba(213,63,140,.25)}.training-certification .mktoForm .mktoFieldWrap,.training-certification .mktoForm .mktoFormCol,.training-enrollment .mktoForm .mktoFieldWrap,.training-enrollment .mktoForm .mktoFormCol{width:100%}.training-certification .mktoField,.training-certification .mktoForm,.training-enrollment .mktoField,.training-enrollment .mktoForm{width:100%!important}.training-certification input.mktoField[type=checkbox],.training-enrollment input.mktoField[type=checkbox]{width:auto!important;margin-top:.5rem}.training-certification .mktoForm .mktoRequiredField .mktoAsterix,.training-enrollment .mktoForm .mktoRequiredField .mktoAsterix{display:block}.training-certification .mktoForm .mktoAsterix,.training-enrollment .mktoForm .mktoAsterix{color:#9b2c2c;display:none}.training-certification .mktoForm .mktoError .mktoErrorMsg,.training-enrollment .mktoForm .mktoError .mktoErrorMsg{display:block;margin-top:7px;border-radius:6px;background-image:none;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;color:#742a2a;padding:.65rem}.training-certification .mktoForm .mktoError .mktoErrorArrow,.training-certification .mktoForm .mktoError .mktoErrorMsg,.training-enrollment .mktoForm .mktoError .mktoErrorArrow,.training-enrollment .mktoForm .mktoError .mktoErrorMsg{border:none;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fed7d7}.training-certification .mktoForm button.mktoButton,.training-enrollment .mktoForm button.mktoButton{color:#fff;cursor:pointer;background-color:#d53f8c;display:inline-block;border-radius:.25rem;margin:auto;-webkit-transition:all .2s;transition:all .2s;font-weight:600}.training-certification button.mktoButton:hover,.training-enrollment button.mktoButton:hover{background-color:#ed64a6}.training-certification .mktoForm div,.training-certification .mktoForm div.mktoButtonRow,.training-certification .mktoForm label,.training-certification .mktoForm p,.training-certification .mktoForm span,.training-enrollment .mktoForm div,.training-enrollment .mktoForm div.mktoButtonRow,.training-enrollment .mktoForm label,.training-enrollment .mktoForm p,.training-enrollment .mktoForm span{display:-webkit-box;display:-ms-flexbox;display:flex}.training-certification .mktoForm span,.training-enrollment .mktoForm span{width:100%}#LblPostalCode{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;white-space:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.training-certification .course-actions[data-status=info] .info{visibility:visible}.training-certification .course-actions[data-status=info] .content,.training-certification .course-actions[data-status=info] .error,.training-certification .course-actions[data-status=info] .spinner{visibility:hidden}.training-certification .course-actions[data-status=loading] .spinner,.training-enrollment .course-actions[data-status=loading] .spinner{visibility:visible}.training-certification .course-actions[data-status=loading] .content,.training-certification .course-actions[data-status=loading] .error,.training-certification .course-actions[data-status=loading] .info,.training-enrollment .course-actions[data-status=loading] .content,.training-enrollment .course-actions[data-status=loading] .error{visibility:hidden}.training-certification .course-actions[data-status=loaded] .content,.training-enrollment .course-actions[data-status=loaded] .content{visibility:visible}.training-certification .course-actions[data-status=loaded] .error,.training-certification .course-actions[data-status=loaded] .info,.training-certification .course-actions[data-status=loaded] .spinner,.training-enrollment .course-actions[data-status=loaded] .error,.training-enrollment .course-actions[data-status=loaded] .spinner{visibility:hidden}.training-certification .course-actions[data-status=error] .error,.training-enrollment .course-actions[data-status=error] .error{visibility:visible}.training-certification .course-actions[data-status=error] .content,.training-certification .course-actions[data-status=error] .info,.training-certification .course-actions[data-status=error] .spinner,.training-enrollment .course-actions[data-status=error] .content,.training-enrollment .course-actions[data-status=error] .spinner{visibility:hidden}.training-certification .course-actions .error,.training-enrollment .course-actions .error{background-color:#fed7d7;color:#742a2a;border-left:4px solid #e53e3e}.training-certification .course-actions .error,.training-certification .course-actions .info,.training-enrollment .course-actions .error{padding:1rem;border-radius:.25rem;display:-webkit-box;display:-ms-flexbox;display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 auto auto}.training-certification .course-actions .info{background-color:#bee3f8;color:#2a4365;border-left:4px solid #3182ce}.training-certification .course-actions .spinner,.training-enrollment .course-actions .spinner{margin:0 auto auto}.training-certification .doc .sect1.heading,.training-enrollment .doc .sect1.heading{padding:2em 0 0}.training-certification .doc .sect1 h2,.training-enrollment .doc .sect1 h2{padding-bottom:1rem}.training-certification #preamble .imageblock,.training-enrollment #preamble .imageblock{max-width:40rem;margin:auto}.training-certification .breadcrumbs,.training-enrollment .breadcrumbs{display:block;padding:0}.training-certification .breadcrumbs ul,.training-enrollment .breadcrumbs ul{padding:0!important;margin-bottom:.2rem;font-size:.8rem}.training-certification .breadcrumbs a,.training-enrollment .breadcrumbs a{font-weight:200}.training-certification .breadcrumbs a::after,.training-enrollment .breadcrumbs a::after{display:none}body.training .nav-item .nav-item.is-completed::before{border-radius:9999px;content:"✓";background-color:#48bb78}body.training .nav-item .nav-item.is-completed::before,body.training .nav-item .nav-item.is-pending::before{position:absolute;left:0;top:0;margin-top:.15rem;display:block;height:1rem;width:1rem;margin-left:-1.3rem;opacity:1;z-index:1000;color:#fff;text-align:center;font-weight:700;-webkit-transition:all .2s linear;transition:all .2s linear}body.training .nav-item .nav-item.is-pending::before{border-radius:9999px;content:"";border:1px solid #a0aec0;background-color:#f7fafc}body.training .nav-item .nav-item.is-completed.is-current-page::before,body.training .nav-item .nav-item.is-completed:hover::before{background-color:#2f855a}body.training .nav-item .nav-item.is-current-page::before,body.training .nav-item .nav-item:hover::before{opacity:1;background-color:#a0aec0;z-index:1000}body.training .button{cursor:pointer}#quiz-result{padding:1rem;border-radius:.25rem}#quiz-result.is-success{background-color:#c6f6d5;color:#22543d;border-left:4px solid #38a169}#quiz-result.is-error{background-color:#fed7d7;color:#742a2a;border-left:4px solid #e53e3e}#quiz-result>p.paragraph{margin:0}.training .download-certificate{position:relative}.training .download-certificate .spinner{position:absolute;margin-top:0}.training .download-certificate .error{position:absolute;background-color:#bee3f8;color:#2a4365;border-left:4px solid #3182ce;padding:1rem;border-radius:.25rem}.training .download-certificate .success{position:absolute;background-color:#c6f6d5;color:#22543d;border-left:4px solid #38a169;padding:1rem;border-radius:.25rem}.training .download-certificate .success a{text-decoration:underline;color:#38a169}.training .download-certificate .success a:hover{color:#48bb78}.training .download-certificate[data-status=ready] .content{visibility:visible}.training .download-certificate[data-status=ready] .error,.training .download-certificate[data-status=ready] .spinner,.training .download-certificate[data-status=ready] .success{visibility:hidden}.training .download-certificate[data-status=loading] .spinner{visibility:visible}.training .download-certificate[data-status=loading] .content,.training .download-certificate[data-status=loading] .error,.training .download-certificate[data-status=loading] .success{visibility:hidden}.training .download-certificate[data-status=success] .success{visibility:visible}.training .download-certificate[data-status=success] .content,.training .download-certificate[data-status=success] .error,.training .download-certificate[data-status=success] .spinner{visibility:hidden}.training .download-certificate[data-status=error] .error{visibility:visible}.training .download-certificate[data-status=error] .content,.training .download-certificate[data-status=error] .spinner,.training .download-certificate[data-status=error] .success{visibility:hidden}.training-help{position:fixed;bottom:0;right:2rem;border-top-left-radius:.25rem;border-top-right-radius:.25rem;background:#ebf8ff;color:#2c5282;padding:.5rem 1rem;width:320px;font-size:.8rem;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);z-index:1000}.training-help p{padding:.25rem 0}#yelp-dataset-agreement{padding:.75em;border:1px solid #e2e8f0;margin-bottom:1em;margin-right:1em}#yelp-dataset-agreement .button{margin-bottom:.25rem;margin-top:.5rem}#yelp-dataset-agreement p{padding:0;margin:0}#yelp-dataset-agreement .paragraph{padding-bottom:0;margin-bottom:0}#yelp-dataset-agreement button{display:block}#yelp-dataset-agreement label[for=yelp-dataset-agreement-check]{font-weight:600}#yelp-dataset-agreement.has-focus{background:#fff;-webkit-animation:highlight 2.5s ease;animation:highlight 2.5s ease}@-webkit-keyframes highlight{0%{background:#f0f8ff}to{background:#fff}}@keyframes highlight{0%{background:#f0f8ff}to{background:#fff}}body.graphgist .hero,body.graphgists .hero{padding-bottom:2em!important}body.graphgists .leading .sectionbody{padding-top:1rem}body.graphgists .leading .sectionbody .imageblock.left{margin-right:2rem}body.graphgists .breadcrumbs{padding:0;font-size:.9rem}body.graphgists .breadcrumbs ul{padding:0}body.graphgists ul.industries,body.graphgists ul.use-cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,auto));margin:0;padding:1em 0 0}body.graphgists ul.industries>li,body.graphgists ul.use-cases>li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:1rem;padding-right:.5rem;padding-bottom:.5rem}body.graphgists ul.industries>li img,body.graphgists ul.use-cases>li img{width:1rem;max-height:1rem;margin-right:.5em}ul.graphgists{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,auto));margin:0;padding:1em 0 0;grid-gap:3em 1.5em}ul.graphgists li::after{content:"";-webkit-box-flex:1;-ms-flex:auto;flex:auto}ul.graphgists>li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}ul.graphgists>li>a{cursor:pointer}.graphgist-card{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);border-radius:5px;display:grid;grid-template-rows:250px 1fr;grid-template-columns:minmax(-webkit-min-content,400px);grid-template-columns:minmax(min-content,400px);background-color:#fff}.graphgist-card .graphgist-illustration{height:100%;background-repeat:no-repeat;background-size:cover;border-top-left-radius:5px;border-top-right-radius:5px;background-position:50%}.graphgist-card>.graphgist-content{display:grid;grid-template-rows:-webkit-min-content -webkit-min-content 1fr;grid-template-rows:min-content min-content 1fr;border-top:1px solid #eaeaea;margin-top:.5rem;padding:1.5rem 1rem 1rem}.graphgist-card .graphgist-content h3{margin:0;padding:0;font-size:1rem;height:4rem;line-height:1.5rem}.graphgist-card dl.graphgist-info>dd{padding:0;margin:0 0 .5rem;color:#718096}.graphgist-card dl.graphgist-info>dt{color:#a0aec0;text-transform:uppercase;font-size:.8rem}.graphgist-card dl.graphgist-info>dt::after{content:": ";margin-right:.3em}.graphgist-card .graphgist-info ul.graphgist-industries,.graphgist-card .graphgist-info ul.graphgist-use-cases{margin:0;padding:0}.graphgist-card .graphgist-info ul.graphgist-industries>li,.graphgist-card .graphgist-info ul.graphgist-use-cases>li{display:inline}.graphgist-card .graphgist-info ul.graphgist-industries>li:not(:last-child)::after,.graphgist-card .graphgist-info ul.graphgist-use-cases>li:not(:last-child)::after{content:", "}ul.graphgists li:first-child{padding-left:0}ul.graphgists li:last-child{padding-right:0}body.graphgist .navbar{border-bottom:none}body.graphgist .doc{max-width:none;padding:2em 0;margin:0;width:100%;-webkit-box-flex:0;-ms-flex:none;flex:none}body.graphgist .doc>.sect1>.sectionbody{padding-left:1rem;padding-right:1rem;max-width:980px;margin-left:auto;margin-right:auto}.graphgist-metadata{background:#f7fafc;float:right;margin-left:1rem;margin-bottom:1rem;-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);padding:1rem;border-radius:.5rem;width:320px}.graphgist-metadata dl{margin-top:0}.graphgist-metadata .graphgist-industry,.graphgist-metadata .graphgist-use-case{display:block}.graphgist-metadata dt{color:#a0aec0;text-transform:uppercase;font-size:.8rem}body.graphgist .graphgist-metadata dd,body.graphgist .graphgist-metadata dt{display:block;margin-left:0;padding:0}body.graphgist .graphgist-metadata dt:not(:first-child){padding-top:1em}body.graphgist .graphgist-metadata fieldset{border:none;margin-top:1.25em;padding:.25em 0 0}body.graphgist .graphgist-metadata fieldset>legend{font-weight:600;color:#4a5568}body.graphgist .graphgist-metadata label{color:#4a5568;font-size:.9em}body.graphgist .graphgist-metadata .field.has-addons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}body.graphgist .graphgist-metadata .field.has-addons .control:first-child:not(:only-child) .input{border-bottom-right-radius:0;border-top-right-radius:0}body.graphgist .graphgist-metadata .field.has-addons .control:last-child:not(:only-child) .button{border-bottom-left-radius:0;border-top-left-radius:0}body.graphgist .graphgist-metadata .field.has-addons a.button{border-color:#805ad5;cursor:pointer;padding:calc(.5em - 1px) 1em;border-radius:.375em;-webkit-box-shadow:none;box-shadow:none;font-size:1em;line-height:1.5;height:2.5em}body.graphgist .graphgist-metadata .field.has-addons .control:not(:last-child){margin-right:-1px}body.graphgist .graphgist-metadata .input:active,body.graphgist .graphgist-metadata .input:focus{border-color:#805ad5}body.graphgist .graphgist-metadata .input:focus-visible{outline:none}body.graphgist .graphgist-metadata .input{-webkit-box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);width:100%;color:#4a5568;border-radius:.375em;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #cbd5e0;font-size:1em;line-height:1.5;padding:calc(.5em - 1px) calc(.75em - 1px);height:2.5em}body.graphgist .graphgist-metadata .control{-webkit-box-sizing:border-box;box-sizing:border-box;clear:both;font-size:1em;position:relative;text-align:inherit}body.graphgist .listingblock pre{z-index:-1}.graphgist-metadata-menu{padding-top:1rem;border-top:1px solid #e2e8f0}.graphgist-metadata-menu ul{padding:0;list-style:none}.graphgist-metadata .button{display:block;width:100%;margin:0 0 .5rem;background:#805ad5;border:1px solid #fff;padding:.5rem 1rem;color:#fff!important;font-size:.9rem}.graphgist-metadata .button:hover{background-color:#553c9a!important}.graphgist-metadata .button.secondary{border:1px solid #805ad5!important;background:#fff!important;color:#805ad5!important}.graphgist-metadata .button.secondary:hover{background:#faf5ff!important}#search_open{display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:400;padding-right:0}@media (max-width:1024px){#search_open svg{margin-right:1rem}}.search{position:fixed;top:0;right:0;bottom:0;width:100%;z-index:6000;background:rgba(0,0,0,.2);-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;display:none;opacity:0}body.search--active{overflow:hidden}.search.search--active{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1}.search .search-container{width:100%;max-width:420px;height:100%;background:#fff;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-webkit-box-shadow:-5px 10px 15px -3px rgba(0,0,0,.1),-5px 4px 6px -2px rgba(0,0,0,.05);box-shadow:-5px 10px 15px -3px rgba(0,0,0,.1),-5px 4px 6px -2px rgba(0,0,0,.05)}.search .search-container,.search .search-container .search-form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.search .search-container .search-form{position:relative;z-index:1000;border-top:4px solid #edf2f7;border-bottom:1px solid #e2e8f0;height:3.77778rem;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:0;-ms-flex:0;flex:0;padding-right:1rem}.search .search-container .search-form label{display:none}.search .search-container .search-form input{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:1rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border:0;color:#718096;height:3rem}.search .search-container .search-form input:active,.search .search-container .search-form input:focus{outline:none}.search .search-container .search-form input::-webkit-input-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input::-moz-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input:-ms-input-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input::-ms-input-placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form input::placeholder{font-style:italic;color:#cbd5e0}.search .search-container .search-form .search-icon{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding:1rem .5rem;display:block;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.search svg line{stroke-width:1.5;stroke:#718096}.search .search-container .search-results{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:1rem;overflow:auto;font-size:.9rem}.search .search-container .search-results.loading{position:relative}.search .search-container .search-results.loading::before{content:"";display:block;border:.3rem solid #edf2f7;border-top-color:#718096;border-radius:50%;width:3rem;height:3rem;position:absolute;top:50%;left:50%;margin-top:-1.5rem;margin-left:-1.5rem;-webkit-animation:spinner .5s linear infinite;animation:spinner .5s linear infinite}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.search .search-container .search-results p{font-size:.75rem;margin-top:0}.search .search-container .search-filters{border-top:1px solid #e2e8f0}.search .search-container .search-filters.hidden{display:none}.search .search-container .search-filters h2{color:#718096;font-weight:400;font-size:.8rem;margin:0}.search .search-filters-header{background:#ebf8ff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;cursor:pointer;padding:1rem}.search .search-filters .search-filters-content{padding:1rem;display:none}.search .search-filters--active .search-filters-content{display:block}.search .search-filters .search-filters-header .search-filters-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.search .search-filters #hide_filters{display:none}.search .search-filters #show_filters,.search .search-filters--active #hide_filters{display:block}.search .search-filters--active #show_filters{display:none}.search .search-filter-checkbox{margin-bottom:.2rem;font-size:.8rem}.search .search-filter-checkbox input{margin-right:.5rem}.search .search-filter-checkbox label span{float:right;color:#a0aec0}.search-results .search-result-item{margin-bottom:2rem}.search-results .search-result-item h3{font-size:.85rem;font-weight:600;margin-bottom:0}.search-results .search-result-item h3 a{color:#3182ce}.search-results .search-result-item em{background:ivory;color:#c05621;font-style:normal;font-weight:600;padding:.2rem;border-radius:.25rem}.search-results .search-result-item .search-result-url{display:block;font-size:.7rem;font-weight:400;color:#2c5282;margin-bottom:.5rem}.search-results .search-result-item .search-result-body{font-size:.8rem;margin-bottom:.5rem;color:#718096}.search-results .search-result-label{line-height:1;font-size:.7rem;background:#edf2f7;color:#718096;font-style:normal;padding:.2rem .5rem;font-weight:600;border-radius:.25rem}.search-results .label--docs{background:#3182ce;color:#ebf8ff}.search-results .label--developer-guide{background:#2d3748;color:#edf2f7}.search-results .label--knowledge-base{background:#dd6b20;color:#fff}.search-results .search-pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:.75rem;border-top:1px solid #e2e8f0;padding-top:.5rem}.search-results .search-pagination-link{color:#718096;cursor:pointer}.search-results .search-pagination-link:hover{color:#3182ce}.search-results .search-pagination .search-pagination--next{margin-left:auto}.comments{margin:1.5rem -1rem;border:1px solid #edf2f7;border-top:2px solid #edf2f7;border-radius:.5rem}.comments-header{background:#edf2f7;padding:1rem}.comments-header h2{color:#718096;font-size:.8rem;font-weight:600;line-height:1;margin:0;padding:0!important;border-bottom:0!important}.comments-container{padding:1rem}@media (max-width:720px){.comments{display:none}}#cookiebanner{background:#f7fafc;-webkit-box-shadow:0 -5px 5px 1px rgba(0,0,0,.08)!important;box-shadow:0 -5px 5px 1px rgba(0,0,0,.08)!important;padding:1rem;font-size:.8rem;color:#4a5568}#cookiebanner .row{max-width:32.5rem;margin:auto}#cookiebanner .c-header{font-size:.9rem;font-weight:600;color:#2d3748}#c-left a{color:#3182ce;font-weight:700}#c-right a{display:inline-block;padding:.25rem .75rem;font-weight:600;border:1px solid #2b6cb0;border-radius:.25rem;margin-right:.5rem}#NeoCybotCookiebotDialogBodyButtonAccept{background:#2b6cb0;color:#ebf8ff}#NeoCybotCookiebotDialogBodyButtonDecline{background:var(--white);color:#2b6cb0}.medium-zoom-overlay,img.medium-zoom-image{z-index:1000}.spinner{width:3rem;height:3rem;position:relative;margin:1rem auto}.double-bounce1,.double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#e2e8f0;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:sk-bounce 2s ease-in-out infinite;animation:sk-bounce 2s ease-in-out infinite}.double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}} -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.eot?v=4.7.0);src:url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.woff2?v=4.7.0) format("woff2"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.woff?v=4.7.0) format("woff"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.ttf?v=4.7.0) format("truetype"),url(https://neo4j.com/docs/assets/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal;font-display:swap}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass::before{content:"\f000"}.fa-music::before{content:"\f001"}.fa-search::before{content:"\f002"}.fa-envelope-o::before{content:"\f003"}.fa-heart::before{content:"\f004"}.fa-star::before{content:"\f005"}.fa-star-o::before{content:"\f006"}.fa-user::before{content:"\f007"}.fa-film::before{content:"\f008"}.fa-th-large::before{content:"\f009"}.fa-th::before{content:"\f00a"}.fa-th-list::before{content:"\f00b"}.fa-check::before{content:"\f00c"}.fa-close::before,.fa-remove::before,.fa-times::before{content:"\f00d"}.fa-search-plus::before{content:"\f00e"}.fa-search-minus::before{content:"\f010"}.fa-power-off::before{content:"\f011"}.fa-signal::before{content:"\f012"}.fa-cog::before,.fa-gear::before{content:"\f013"}.fa-trash-o::before{content:"\f014"}.fa-home::before{content:"\f015"}.fa-file-o::before{content:"\f016"}.fa-clock-o::before{content:"\f017"}.fa-road::before{content:"\f018"}.fa-download::before{content:"\f019"}.fa-arrow-circle-o-down::before{content:"\f01a"}.fa-arrow-circle-o-up::before{content:"\f01b"}.fa-inbox::before{content:"\f01c"}.fa-play-circle-o::before{content:"\f01d"}.fa-repeat::before,.fa-rotate-right::before{content:"\f01e"}.fa-refresh::before{content:"\f021"}.fa-list-alt::before{content:"\f022"}.fa-lock::before{content:"\f023"}.fa-flag::before{content:"\f024"}.fa-headphones::before{content:"\f025"}.fa-volume-off::before{content:"\f026"}.fa-volume-down::before{content:"\f027"}.fa-volume-up::before{content:"\f028"}.fa-qrcode::before{content:"\f029"}.fa-barcode::before{content:"\f02a"}.fa-tag::before{content:"\f02b"}.fa-tags::before{content:"\f02c"}.fa-book::before{content:"\f02d"}.fa-bookmark::before{content:"\f02e"}.fa-print::before{content:"\f02f"}.fa-camera::before{content:"\f030"}.fa-font::before{content:"\f031"}.fa-bold::before{content:"\f032"}.fa-italic::before{content:"\f033"}.fa-text-height::before{content:"\f034"}.fa-text-width::before{content:"\f035"}.fa-align-left::before{content:"\f036"}.fa-align-center::before{content:"\f037"}.fa-align-right::before{content:"\f038"}.fa-align-justify::before{content:"\f039"}.fa-list::before{content:"\f03a"}.fa-dedent::before,.fa-outdent::before{content:"\f03b"}.fa-indent::before{content:"\f03c"}.fa-video-camera::before{content:"\f03d"}.fa-image::before,.fa-photo::before,.fa-picture-o::before{content:"\f03e"}.fa-pencil::before{content:"\f040"}.fa-map-marker::before{content:"\f041"}.fa-adjust::before{content:"\f042"}.fa-tint::before{content:"\f043"}.fa-edit::before,.fa-pencil-square-o::before{content:"\f044"}.fa-share-square-o::before{content:"\f045"}.fa-check-square-o::before{content:"\f046"}.fa-arrows::before{content:"\f047"}.fa-step-backward::before{content:"\f048"}.fa-fast-backward::before{content:"\f049"}.fa-backward::before{content:"\f04a"}.fa-play::before{content:"\f04b"}.fa-pause::before{content:"\f04c"}.fa-stop::before{content:"\f04d"}.fa-forward::before{content:"\f04e"}.fa-fast-forward::before{content:"\f050"}.fa-step-forward::before{content:"\f051"}.fa-eject::before{content:"\f052"}.fa-chevron-left::before{content:"\f053"}.fa-chevron-right::before{content:"\f054"}.fa-plus-circle::before{content:"\f055"}.fa-minus-circle::before{content:"\f056"}.fa-times-circle::before{content:"\f057"}.fa-check-circle::before{content:"\f058"}.fa-question-circle::before{content:"\f059"}.fa-info-circle::before{content:"\f05a"}.fa-crosshairs::before{content:"\f05b"}.fa-times-circle-o::before{content:"\f05c"}.fa-check-circle-o::before{content:"\f05d"}.fa-ban::before{content:"\f05e"}.fa-arrow-left::before{content:"\f060"}.fa-arrow-right::before{content:"\f061"}.fa-arrow-up::before{content:"\f062"}.fa-arrow-down::before{content:"\f063"}.fa-mail-forward::before,.fa-share::before{content:"\f064"}.fa-expand::before{content:"\f065"}.fa-compress::before{content:"\f066"}.fa-plus::before{content:"\f067"}.fa-minus::before{content:"\f068"}.fa-asterisk::before{content:"\f069"}.fa-exclamation-circle::before{content:"\f06a"}.fa-gift::before{content:"\f06b"}.fa-leaf::before{content:"\f06c"}.fa-fire::before{content:"\f06d"}.fa-eye::before{content:"\f06e"}.fa-eye-slash::before{content:"\f070"}.fa-exclamation-triangle::before,.fa-warning::before{content:"\f071"}.fa-plane::before{content:"\f072"}.fa-calendar::before{content:"\f073"}.fa-random::before{content:"\f074"}.fa-comment::before{content:"\f075"}.fa-magnet::before{content:"\f076"}.fa-chevron-up::before{content:"\f077"}.fa-chevron-down::before{content:"\f078"}.fa-retweet::before{content:"\f079"}.fa-shopping-cart::before{content:"\f07a"}.fa-folder::before{content:"\f07b"}.fa-folder-open::before{content:"\f07c"}.fa-arrows-v::before{content:"\f07d"}.fa-arrows-h::before{content:"\f07e"}.fa-bar-chart-o::before,.fa-bar-chart::before{content:"\f080"}.fa-twitter-square::before{content:"\f081"}.fa-facebook-square::before{content:"\f082"}.fa-camera-retro::before{content:"\f083"}.fa-key::before{content:"\f084"}.fa-cogs::before,.fa-gears::before{content:"\f085"}.fa-comments::before{content:"\f086"}.fa-thumbs-o-up::before{content:"\f087"}.fa-thumbs-o-down::before{content:"\f088"}.fa-star-half::before{content:"\f089"}.fa-heart-o::before{content:"\f08a"}.fa-sign-out::before{content:"\f08b"}.fa-linkedin-square::before{content:"\f08c"}.fa-thumb-tack::before{content:"\f08d"}.fa-external-link::before{content:"\f08e"}.fa-sign-in::before{content:"\f090"}.fa-trophy::before{content:"\f091"}.fa-github-square::before{content:"\f092"}.fa-upload::before{content:"\f093"}.fa-lemon-o::before{content:"\f094"}.fa-phone::before{content:"\f095"}.fa-square-o::before{content:"\f096"}.fa-bookmark-o::before{content:"\f097"}.fa-phone-square::before{content:"\f098"}.fa-twitter::before{content:"\f099"}.fa-facebook-f::before,.fa-facebook::before{content:"\f09a"}.fa-github::before{content:"\f09b"}.fa-unlock::before{content:"\f09c"}.fa-credit-card::before{content:"\f09d"}.fa-feed::before,.fa-rss::before{content:"\f09e"}.fa-hdd-o::before{content:"\f0a0"}.fa-bullhorn::before{content:"\f0a1"}.fa-bell::before{content:"\f0f3"}.fa-certificate::before{content:"\f0a3"}.fa-hand-o-right::before{content:"\f0a4"}.fa-hand-o-left::before{content:"\f0a5"}.fa-hand-o-up::before{content:"\f0a6"}.fa-hand-o-down::before{content:"\f0a7"}.fa-arrow-circle-left::before{content:"\f0a8"}.fa-arrow-circle-right::before{content:"\f0a9"}.fa-arrow-circle-up::before{content:"\f0aa"}.fa-arrow-circle-down::before{content:"\f0ab"}.fa-globe::before{content:"\f0ac"}.fa-wrench::before{content:"\f0ad"}.fa-tasks::before{content:"\f0ae"}.fa-filter::before{content:"\f0b0"}.fa-briefcase::before{content:"\f0b1"}.fa-arrows-alt::before{content:"\f0b2"}.fa-group::before,.fa-users::before{content:"\f0c0"}.fa-chain::before,.fa-link::before{content:"\f0c1"}.fa-cloud::before{content:"\f0c2"}.fa-flask::before{content:"\f0c3"}.fa-cut::before,.fa-scissors::before{content:"\f0c4"}.fa-copy::before,.fa-files-o::before{content:"\f0c5"}.fa-paperclip::before{content:"\f0c6"}.fa-floppy-o::before,.fa-save::before{content:"\f0c7"}.fa-square::before{content:"\f0c8"}.fa-bars::before,.fa-navicon::before,.fa-reorder::before{content:"\f0c9"}.fa-list-ul::before{content:"\f0ca"}.fa-list-ol::before{content:"\f0cb"}.fa-strikethrough::before{content:"\f0cc"}.fa-underline::before{content:"\f0cd"}.fa-table::before{content:"\f0ce"}.fa-magic::before{content:"\f0d0"}.fa-truck::before{content:"\f0d1"}.fa-pinterest::before{content:"\f0d2"}.fa-pinterest-square::before{content:"\f0d3"}.fa-google-plus-square::before{content:"\f0d4"}.fa-google-plus::before{content:"\f0d5"}.fa-money::before{content:"\f0d6"}.fa-caret-down::before{content:"\f0d7"}.fa-caret-up::before{content:"\f0d8"}.fa-caret-left::before{content:"\f0d9"}.fa-caret-right::before{content:"\f0da"}.fa-columns::before{content:"\f0db"}.fa-sort::before,.fa-unsorted::before{content:"\f0dc"}.fa-sort-desc::before,.fa-sort-down::before{content:"\f0dd"}.fa-sort-asc::before,.fa-sort-up::before{content:"\f0de"}.fa-envelope::before{content:"\f0e0"}.fa-linkedin::before{content:"\f0e1"}.fa-rotate-left::before,.fa-undo::before{content:"\f0e2"}.fa-gavel::before,.fa-legal::before{content:"\f0e3"}.fa-dashboard::before,.fa-tachometer::before{content:"\f0e4"}.fa-comment-o::before{content:"\f0e5"}.fa-comments-o::before{content:"\f0e6"}.fa-bolt::before,.fa-flash::before{content:"\f0e7"}.fa-sitemap::before{content:"\f0e8"}.fa-umbrella::before{content:"\f0e9"}.fa-clipboard::before,.fa-paste::before{content:"\f0ea"}.fa-lightbulb-o::before{content:"\f0eb"}.fa-exchange::before{content:"\f0ec"}.fa-cloud-download::before{content:"\f0ed"}.fa-cloud-upload::before{content:"\f0ee"}.fa-user-md::before{content:"\f0f0"}.fa-stethoscope::before{content:"\f0f1"}.fa-suitcase::before{content:"\f0f2"}.fa-bell-o::before{content:"\f0a2"}.fa-coffee::before{content:"\f0f4"}.fa-cutlery::before{content:"\f0f5"}.fa-file-text-o::before{content:"\f0f6"}.fa-building-o::before{content:"\f0f7"}.fa-hospital-o::before{content:"\f0f8"}.fa-ambulance::before{content:"\f0f9"}.fa-medkit::before{content:"\f0fa"}.fa-fighter-jet::before{content:"\f0fb"}.fa-beer::before{content:"\f0fc"}.fa-h-square::before{content:"\f0fd"}.fa-plus-square::before{content:"\f0fe"}.fa-angle-double-left::before{content:"\f100"}.fa-angle-double-right::before{content:"\f101"}.fa-angle-double-up::before{content:"\f102"}.fa-angle-double-down::before{content:"\f103"}.fa-angle-left::before{content:"\f104"}.fa-angle-right::before{content:"\f105"}.fa-angle-up::before{content:"\f106"}.fa-angle-down::before{content:"\f107"}.fa-desktop::before{content:"\f108"}.fa-laptop::before{content:"\f109"}.fa-tablet::before{content:"\f10a"}.fa-mobile-phone::before,.fa-mobile::before{content:"\f10b"}.fa-circle-o::before{content:"\f10c"}.fa-quote-left::before{content:"\f10d"}.fa-quote-right::before{content:"\f10e"}.fa-spinner::before{content:"\f110"}.fa-circle::before{content:"\f111"}.fa-mail-reply::before,.fa-reply::before{content:"\f112"}.fa-github-alt::before{content:"\f113"}.fa-folder-o::before{content:"\f114"}.fa-folder-open-o::before{content:"\f115"}.fa-smile-o::before{content:"\f118"}.fa-frown-o::before{content:"\f119"}.fa-meh-o::before{content:"\f11a"}.fa-gamepad::before{content:"\f11b"}.fa-keyboard-o::before{content:"\f11c"}.fa-flag-o::before{content:"\f11d"}.fa-flag-checkered::before{content:"\f11e"}.fa-terminal::before{content:"\f120"}.fa-code::before{content:"\f121"}.fa-mail-reply-all::before,.fa-reply-all::before{content:"\f122"}.fa-star-half-empty::before,.fa-star-half-full::before,.fa-star-half-o::before{content:"\f123"}.fa-location-arrow::before{content:"\f124"}.fa-crop::before{content:"\f125"}.fa-code-fork::before{content:"\f126"}.fa-chain-broken::before,.fa-unlink::before{content:"\f127"}.fa-question::before{content:"\f128"}.fa-info::before{content:"\f129"}.fa-exclamation::before{content:"\f12a"}.fa-superscript::before{content:"\f12b"}.fa-subscript::before{content:"\f12c"}.fa-eraser::before{content:"\f12d"}.fa-puzzle-piece::before{content:"\f12e"}.fa-microphone::before{content:"\f130"}.fa-microphone-slash::before{content:"\f131"}.fa-shield::before{content:"\f132"}.fa-calendar-o::before{content:"\f133"}.fa-fire-extinguisher::before{content:"\f134"}.fa-rocket::before{content:"\f135"}.fa-maxcdn::before{content:"\f136"}.fa-chevron-circle-left::before{content:"\f137"}.fa-chevron-circle-right::before{content:"\f138"}.fa-chevron-circle-up::before{content:"\f139"}.fa-chevron-circle-down::before{content:"\f13a"}.fa-html5::before{content:"\f13b"}.fa-css3::before{content:"\f13c"}.fa-anchor::before{content:"\f13d"}.fa-unlock-alt::before{content:"\f13e"}.fa-bullseye::before{content:"\f140"}.fa-ellipsis-h::before{content:"\f141"}.fa-ellipsis-v::before{content:"\f142"}.fa-rss-square::before{content:"\f143"}.fa-play-circle::before{content:"\f144"}.fa-ticket::before{content:"\f145"}.fa-minus-square::before{content:"\f146"}.fa-minus-square-o::before{content:"\f147"}.fa-level-up::before{content:"\f148"}.fa-level-down::before{content:"\f149"}.fa-check-square::before{content:"\f14a"}.fa-pencil-square::before{content:"\f14b"}.fa-external-link-square::before{content:"\f14c"}.fa-share-square::before{content:"\f14d"}.fa-compass::before{content:"\f14e"}.fa-caret-square-o-down::before,.fa-toggle-down::before{content:"\f150"}.fa-caret-square-o-up::before,.fa-toggle-up::before{content:"\f151"}.fa-caret-square-o-right::before,.fa-toggle-right::before{content:"\f152"}.fa-eur::before,.fa-euro::before{content:"\f153"}.fa-gbp::before{content:"\f154"}.fa-dollar::before,.fa-usd::before{content:"\f155"}.fa-inr::before,.fa-rupee::before{content:"\f156"}.fa-cny::before,.fa-jpy::before,.fa-rmb::before,.fa-yen::before{content:"\f157"}.fa-rouble::before,.fa-rub::before,.fa-ruble::before{content:"\f158"}.fa-krw::before,.fa-won::before{content:"\f159"}.fa-bitcoin::before,.fa-btc::before{content:"\f15a"}.fa-file::before{content:"\f15b"}.fa-file-text::before{content:"\f15c"}.fa-sort-alpha-asc::before{content:"\f15d"}.fa-sort-alpha-desc::before{content:"\f15e"}.fa-sort-amount-asc::before{content:"\f160"}.fa-sort-amount-desc::before{content:"\f161"}.fa-sort-numeric-asc::before{content:"\f162"}.fa-sort-numeric-desc::before{content:"\f163"}.fa-thumbs-up::before{content:"\f164"}.fa-thumbs-down::before{content:"\f165"}.fa-youtube-square::before{content:"\f166"}.fa-youtube::before{content:"\f167"}.fa-xing::before{content:"\f168"}.fa-xing-square::before{content:"\f169"}.fa-youtube-play::before{content:"\f16a"}.fa-dropbox::before{content:"\f16b"}.fa-stack-overflow::before{content:"\f16c"}.fa-instagram::before{content:"\f16d"}.fa-flickr::before{content:"\f16e"}.fa-adn::before{content:"\f170"}.fa-bitbucket::before{content:"\f171"}.fa-bitbucket-square::before{content:"\f172"}.fa-tumblr::before{content:"\f173"}.fa-tumblr-square::before{content:"\f174"}.fa-long-arrow-down::before{content:"\f175"}.fa-long-arrow-up::before{content:"\f176"}.fa-long-arrow-left::before{content:"\f177"}.fa-long-arrow-right::before{content:"\f178"}.fa-apple::before{content:"\f179"}.fa-windows::before{content:"\f17a"}.fa-android::before{content:"\f17b"}.fa-linux::before{content:"\f17c"}.fa-dribbble::before{content:"\f17d"}.fa-skype::before{content:"\f17e"}.fa-foursquare::before{content:"\f180"}.fa-trello::before{content:"\f181"}.fa-female::before{content:"\f182"}.fa-male::before{content:"\f183"}.fa-gittip::before,.fa-gratipay::before{content:"\f184"}.fa-sun-o::before{content:"\f185"}.fa-moon-o::before{content:"\f186"}.fa-archive::before{content:"\f187"}.fa-bug::before{content:"\f188"}.fa-vk::before{content:"\f189"}.fa-weibo::before{content:"\f18a"}.fa-renren::before{content:"\f18b"}.fa-pagelines::before{content:"\f18c"}.fa-stack-exchange::before{content:"\f18d"}.fa-arrow-circle-o-right::before{content:"\f18e"}.fa-arrow-circle-o-left::before{content:"\f190"}.fa-caret-square-o-left::before,.fa-toggle-left::before{content:"\f191"}.fa-dot-circle-o::before{content:"\f192"}.fa-wheelchair::before{content:"\f193"}.fa-vimeo-square::before{content:"\f194"}.fa-try::before,.fa-turkish-lira::before{content:"\f195"}.fa-plus-square-o::before{content:"\f196"}.fa-space-shuttle::before{content:"\f197"}.fa-slack::before{content:"\f198"}.fa-envelope-square::before{content:"\f199"}.fa-wordpress::before{content:"\f19a"}.fa-openid::before{content:"\f19b"}.fa-bank::before,.fa-institution::before,.fa-university::before{content:"\f19c"}.fa-graduation-cap::before,.fa-mortar-board::before{content:"\f19d"}.fa-yahoo::before{content:"\f19e"}.fa-google::before{content:"\f1a0"}.fa-reddit::before{content:"\f1a1"}.fa-reddit-square::before{content:"\f1a2"}.fa-stumbleupon-circle::before{content:"\f1a3"}.fa-stumbleupon::before{content:"\f1a4"}.fa-delicious::before{content:"\f1a5"}.fa-digg::before{content:"\f1a6"}.fa-pied-piper-pp::before{content:"\f1a7"}.fa-pied-piper-alt::before{content:"\f1a8"}.fa-drupal::before{content:"\f1a9"}.fa-joomla::before{content:"\f1aa"}.fa-language::before{content:"\f1ab"}.fa-fax::before{content:"\f1ac"}.fa-building::before{content:"\f1ad"}.fa-child::before{content:"\f1ae"}.fa-paw::before{content:"\f1b0"}.fa-spoon::before{content:"\f1b1"}.fa-cube::before{content:"\f1b2"}.fa-cubes::before{content:"\f1b3"}.fa-behance::before{content:"\f1b4"}.fa-behance-square::before{content:"\f1b5"}.fa-steam::before{content:"\f1b6"}.fa-steam-square::before{content:"\f1b7"}.fa-recycle::before{content:"\f1b8"}.fa-automobile::before,.fa-car::before{content:"\f1b9"}.fa-cab::before,.fa-taxi::before{content:"\f1ba"}.fa-tree::before{content:"\f1bb"}.fa-spotify::before{content:"\f1bc"}.fa-deviantart::before{content:"\f1bd"}.fa-soundcloud::before{content:"\f1be"}.fa-database::before{content:"\f1c0"}.fa-file-pdf-o::before{content:"\f1c1"}.fa-file-word-o::before{content:"\f1c2"}.fa-file-excel-o::before{content:"\f1c3"}.fa-file-powerpoint-o::before{content:"\f1c4"}.fa-file-image-o::before,.fa-file-photo-o::before,.fa-file-picture-o::before{content:"\f1c5"}.fa-file-archive-o::before,.fa-file-zip-o::before{content:"\f1c6"}.fa-file-audio-o::before,.fa-file-sound-o::before{content:"\f1c7"}.fa-file-movie-o::before,.fa-file-video-o::before{content:"\f1c8"}.fa-file-code-o::before{content:"\f1c9"}.fa-vine::before{content:"\f1ca"}.fa-codepen::before{content:"\f1cb"}.fa-jsfiddle::before{content:"\f1cc"}.fa-life-bouy::before,.fa-life-buoy::before,.fa-life-ring::before,.fa-life-saver::before,.fa-support::before{content:"\f1cd"}.fa-circle-o-notch::before{content:"\f1ce"}.fa-ra::before,.fa-rebel::before,.fa-resistance::before{content:"\f1d0"}.fa-empire::before,.fa-ge::before{content:"\f1d1"}.fa-git-square::before{content:"\f1d2"}.fa-git::before{content:"\f1d3"}.fa-hacker-news::before,.fa-y-combinator-square::before,.fa-yc-square::before{content:"\f1d4"}.fa-tencent-weibo::before{content:"\f1d5"}.fa-qq::before{content:"\f1d6"}.fa-wechat::before,.fa-weixin::before{content:"\f1d7"}.fa-paper-plane::before,.fa-send::before{content:"\f1d8"}.fa-paper-plane-o::before,.fa-send-o::before{content:"\f1d9"}.fa-history::before{content:"\f1da"}.fa-circle-thin::before{content:"\f1db"}.fa-header::before{content:"\f1dc"}.fa-paragraph::before{content:"\f1dd"}.fa-sliders::before{content:"\f1de"}.fa-share-alt::before{content:"\f1e0"}.fa-share-alt-square::before{content:"\f1e1"}.fa-bomb::before{content:"\f1e2"}.fa-futbol-o::before,.fa-soccer-ball-o::before{content:"\f1e3"}.fa-tty::before{content:"\f1e4"}.fa-binoculars::before{content:"\f1e5"}.fa-plug::before{content:"\f1e6"}.fa-slideshare::before{content:"\f1e7"}.fa-twitch::before{content:"\f1e8"}.fa-yelp::before{content:"\f1e9"}.fa-newspaper-o::before{content:"\f1ea"}.fa-wifi::before{content:"\f1eb"}.fa-calculator::before{content:"\f1ec"}.fa-paypal::before{content:"\f1ed"}.fa-google-wallet::before{content:"\f1ee"}.fa-cc-visa::before{content:"\f1f0"}.fa-cc-mastercard::before{content:"\f1f1"}.fa-cc-discover::before{content:"\f1f2"}.fa-cc-amex::before{content:"\f1f3"}.fa-cc-paypal::before{content:"\f1f4"}.fa-cc-stripe::before{content:"\f1f5"}.fa-bell-slash::before{content:"\f1f6"}.fa-bell-slash-o::before{content:"\f1f7"}.fa-trash::before{content:"\f1f8"}.fa-copyright::before{content:"\f1f9"}.fa-at::before{content:"\f1fa"}.fa-eyedropper::before{content:"\f1fb"}.fa-paint-brush::before{content:"\f1fc"}.fa-birthday-cake::before{content:"\f1fd"}.fa-area-chart::before{content:"\f1fe"}.fa-pie-chart::before{content:"\f200"}.fa-line-chart::before{content:"\f201"}.fa-lastfm::before{content:"\f202"}.fa-lastfm-square::before{content:"\f203"}.fa-toggle-off::before{content:"\f204"}.fa-toggle-on::before{content:"\f205"}.fa-bicycle::before{content:"\f206"}.fa-bus::before{content:"\f207"}.fa-ioxhost::before{content:"\f208"}.fa-angellist::before{content:"\f209"}.fa-cc::before{content:"\f20a"}.fa-ils::before,.fa-shekel::before,.fa-sheqel::before{content:"\f20b"}.fa-meanpath::before{content:"\f20c"}.fa-buysellads::before{content:"\f20d"}.fa-connectdevelop::before{content:"\f20e"}.fa-dashcube::before{content:"\f210"}.fa-forumbee::before{content:"\f211"}.fa-leanpub::before{content:"\f212"}.fa-sellsy::before{content:"\f213"}.fa-shirtsinbulk::before{content:"\f214"}.fa-simplybuilt::before{content:"\f215"}.fa-skyatlas::before{content:"\f216"}.fa-cart-plus::before{content:"\f217"}.fa-cart-arrow-down::before{content:"\f218"}.fa-diamond::before{content:"\f219"}.fa-ship::before{content:"\f21a"}.fa-user-secret::before{content:"\f21b"}.fa-motorcycle::before{content:"\f21c"}.fa-street-view::before{content:"\f21d"}.fa-heartbeat::before{content:"\f21e"}.fa-venus::before{content:"\f221"}.fa-mars::before{content:"\f222"}.fa-mercury::before{content:"\f223"}.fa-intersex::before,.fa-transgender::before{content:"\f224"}.fa-transgender-alt::before{content:"\f225"}.fa-venus-double::before{content:"\f226"}.fa-mars-double::before{content:"\f227"}.fa-venus-mars::before{content:"\f228"}.fa-mars-stroke::before{content:"\f229"}.fa-mars-stroke-v::before{content:"\f22a"}.fa-mars-stroke-h::before{content:"\f22b"}.fa-neuter::before{content:"\f22c"}.fa-genderless::before{content:"\f22d"}.fa-facebook-official::before{content:"\f230"}.fa-pinterest-p::before{content:"\f231"}.fa-whatsapp::before{content:"\f232"}.fa-server::before{content:"\f233"}.fa-user-plus::before{content:"\f234"}.fa-user-times::before{content:"\f235"}.fa-bed::before,.fa-hotel::before{content:"\f236"}.fa-viacoin::before{content:"\f237"}.fa-train::before{content:"\f238"}.fa-subway::before{content:"\f239"}.fa-medium::before{content:"\f23a"}.fa-y-combinator::before,.fa-yc::before{content:"\f23b"}.fa-optin-monster::before{content:"\f23c"}.fa-opencart::before{content:"\f23d"}.fa-expeditedssl::before{content:"\f23e"}.fa-battery-4::before,.fa-battery-full::before,.fa-battery::before{content:"\f240"}.fa-battery-3::before,.fa-battery-three-quarters::before{content:"\f241"}.fa-battery-2::before,.fa-battery-half::before{content:"\f242"}.fa-battery-1::before,.fa-battery-quarter::before{content:"\f243"}.fa-battery-0::before,.fa-battery-empty::before{content:"\f244"}.fa-mouse-pointer::before{content:"\f245"}.fa-i-cursor::before{content:"\f246"}.fa-object-group::before{content:"\f247"}.fa-object-ungroup::before{content:"\f248"}.fa-sticky-note::before{content:"\f249"}.fa-sticky-note-o::before{content:"\f24a"}.fa-cc-jcb::before{content:"\f24b"}.fa-cc-diners-club::before{content:"\f24c"}.fa-clone::before{content:"\f24d"}.fa-balance-scale::before{content:"\f24e"}.fa-hourglass-o::before{content:"\f250"}.fa-hourglass-1::before,.fa-hourglass-start::before{content:"\f251"}.fa-hourglass-2::before,.fa-hourglass-half::before{content:"\f252"}.fa-hourglass-3::before,.fa-hourglass-end::before{content:"\f253"}.fa-hourglass::before{content:"\f254"}.fa-hand-grab-o::before,.fa-hand-rock-o::before{content:"\f255"}.fa-hand-paper-o::before,.fa-hand-stop-o::before{content:"\f256"}.fa-hand-scissors-o::before{content:"\f257"}.fa-hand-lizard-o::before{content:"\f258"}.fa-hand-spock-o::before{content:"\f259"}.fa-hand-pointer-o::before{content:"\f25a"}.fa-hand-peace-o::before{content:"\f25b"}.fa-trademark::before{content:"\f25c"}.fa-registered::before{content:"\f25d"}.fa-creative-commons::before{content:"\f25e"}.fa-gg::before{content:"\f260"}.fa-gg-circle::before{content:"\f261"}.fa-tripadvisor::before{content:"\f262"}.fa-odnoklassniki::before{content:"\f263"}.fa-odnoklassniki-square::before{content:"\f264"}.fa-get-pocket::before{content:"\f265"}.fa-wikipedia-w::before{content:"\f266"}.fa-safari::before{content:"\f267"}.fa-chrome::before{content:"\f268"}.fa-firefox::before{content:"\f269"}.fa-opera::before{content:"\f26a"}.fa-internet-explorer::before{content:"\f26b"}.fa-television::before,.fa-tv::before{content:"\f26c"}.fa-contao::before{content:"\f26d"}.fa-500px::before{content:"\f26e"}.fa-amazon::before{content:"\f270"}.fa-calendar-plus-o::before{content:"\f271"}.fa-calendar-minus-o::before{content:"\f272"}.fa-calendar-times-o::before{content:"\f273"}.fa-calendar-check-o::before{content:"\f274"}.fa-industry::before{content:"\f275"}.fa-map-pin::before{content:"\f276"}.fa-map-signs::before{content:"\f277"}.fa-map-o::before{content:"\f278"}.fa-map::before{content:"\f279"}.fa-commenting::before{content:"\f27a"}.fa-commenting-o::before{content:"\f27b"}.fa-houzz::before{content:"\f27c"}.fa-vimeo::before{content:"\f27d"}.fa-black-tie::before{content:"\f27e"}.fa-fonticons::before{content:"\f280"}.fa-reddit-alien::before{content:"\f281"}.fa-edge::before{content:"\f282"}.fa-credit-card-alt::before{content:"\f283"}.fa-codiepie::before{content:"\f284"}.fa-modx::before{content:"\f285"}.fa-fort-awesome::before{content:"\f286"}.fa-usb::before{content:"\f287"}.fa-product-hunt::before{content:"\f288"}.fa-mixcloud::before{content:"\f289"}.fa-scribd::before{content:"\f28a"}.fa-pause-circle::before{content:"\f28b"}.fa-pause-circle-o::before{content:"\f28c"}.fa-stop-circle::before{content:"\f28d"}.fa-stop-circle-o::before{content:"\f28e"}.fa-shopping-bag::before{content:"\f290"}.fa-shopping-basket::before{content:"\f291"}.fa-hashtag::before{content:"\f292"}.fa-bluetooth::before{content:"\f293"}.fa-bluetooth-b::before{content:"\f294"}.fa-percent::before{content:"\f295"}.fa-gitlab::before{content:"\f296"}.fa-wpbeginner::before{content:"\f297"}.fa-wpforms::before{content:"\f298"}.fa-envira::before{content:"\f299"}.fa-universal-access::before{content:"\f29a"}.fa-wheelchair-alt::before{content:"\f29b"}.fa-question-circle-o::before{content:"\f29c"}.fa-blind::before{content:"\f29d"}.fa-audio-description::before{content:"\f29e"}.fa-volume-control-phone::before{content:"\f2a0"}.fa-braille::before{content:"\f2a1"}.fa-assistive-listening-systems::before{content:"\f2a2"}.fa-american-sign-language-interpreting::before,.fa-asl-interpreting::before{content:"\f2a3"}.fa-deaf::before,.fa-deafness::before,.fa-hard-of-hearing::before{content:"\f2a4"}.fa-glide::before{content:"\f2a5"}.fa-glide-g::before{content:"\f2a6"}.fa-sign-language::before,.fa-signing::before{content:"\f2a7"}.fa-low-vision::before{content:"\f2a8"}.fa-viadeo::before{content:"\f2a9"}.fa-viadeo-square::before{content:"\f2aa"}.fa-snapchat::before{content:"\f2ab"}.fa-snapchat-ghost::before{content:"\f2ac"}.fa-snapchat-square::before{content:"\f2ad"}.fa-pied-piper::before{content:"\f2ae"}.fa-first-order::before{content:"\f2b0"}.fa-yoast::before{content:"\f2b1"}.fa-themeisle::before{content:"\f2b2"}.fa-google-plus-circle::before,.fa-google-plus-official::before{content:"\f2b3"}.fa-fa::before,.fa-font-awesome::before{content:"\f2b4"}.fa-handshake-o::before{content:"\f2b5"}.fa-envelope-open::before{content:"\f2b6"}.fa-envelope-open-o::before{content:"\f2b7"}.fa-linode::before{content:"\f2b8"}.fa-address-book::before{content:"\f2b9"}.fa-address-book-o::before{content:"\f2ba"}.fa-address-card::before,.fa-vcard::before{content:"\f2bb"}.fa-address-card-o::before,.fa-vcard-o::before{content:"\f2bc"}.fa-user-circle::before{content:"\f2bd"}.fa-user-circle-o::before{content:"\f2be"}.fa-user-o::before{content:"\f2c0"}.fa-id-badge::before{content:"\f2c1"}.fa-drivers-license::before,.fa-id-card::before{content:"\f2c2"}.fa-drivers-license-o::before,.fa-id-card-o::before{content:"\f2c3"}.fa-quora::before{content:"\f2c4"}.fa-free-code-camp::before{content:"\f2c5"}.fa-telegram::before{content:"\f2c6"}.fa-thermometer-4::before,.fa-thermometer-full::before,.fa-thermometer::before{content:"\f2c7"}.fa-thermometer-3::before,.fa-thermometer-three-quarters::before{content:"\f2c8"}.fa-thermometer-2::before,.fa-thermometer-half::before{content:"\f2c9"}.fa-thermometer-1::before,.fa-thermometer-quarter::before{content:"\f2ca"}.fa-thermometer-0::before,.fa-thermometer-empty::before{content:"\f2cb"}.fa-shower::before{content:"\f2cc"}.fa-bath::before,.fa-bathtub::before,.fa-s15::before{content:"\f2cd"}.fa-podcast::before{content:"\f2ce"}.fa-window-maximize::before{content:"\f2d0"}.fa-window-minimize::before{content:"\f2d1"}.fa-window-restore::before{content:"\f2d2"}.fa-times-rectangle::before,.fa-window-close::before{content:"\f2d3"}.fa-times-rectangle-o::before,.fa-window-close-o::before{content:"\f2d4"}.fa-bandcamp::before{content:"\f2d5"}.fa-grav::before{content:"\f2d6"}.fa-etsy::before{content:"\f2d7"}.fa-imdb::before{content:"\f2d8"}.fa-ravelry::before{content:"\f2d9"}.fa-eercast::before{content:"\f2da"}.fa-microchip::before{content:"\f2db"}.fa-snowflake-o::before{content:"\f2dc"}.fa-superpowers::before{content:"\f2dd"}.fa-wpexplorer::before{content:"\f2de"}.fa-meetup::before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.doc .paragraph .title{font-weight:600}.doc .listingblock.dot{height:400px;overflow:scroll;border:2px solid #805ad5}.docs.image-border article img,.docs article .border img{border:1px solid #63b3ed;border-radius:4px;padding:1rem}.docs.image-shadow article img,.docs article .shadow img{-webkit-box-shadow:2px 2px 4px 0 #a0aec0,0 4px 4px 2px #e2e8f0,0 4px 6px 4px #edf2f7,4px 4px 4px 4px #f7fafc;box-shadow:2px 2px 4px 0 #a0aec0,0 4px 4px 2px #e2e8f0,0 4px 6px 4px #edf2f7,4px 4px 4px 4px #f7fafc}.docs article .no-border img{border:none;padding:0}.docs article .no-shadow img{-webkit-box-shadow:none;box-shadow:none}section.deprecated .title::after{bottom:4px;margin-left:10px}div.roles,div.roles>span.role{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:8px;font-size:2rem;line-height:1.3}@media screen and (max-width:1023px){div.roles,div.roles>span.role::after{margin-left:0}div.roles,div.roles>span.role{margin-bottom:0}}.deprecated>.title::after,.sect1.alpha h2::after,.sect1.beta h2::after,.sect2.alpha h3::after,.sect2.beta h3::after,body.deprecated article dt::after,body.deprecated article h2::after,body.deprecated article h3::after,body.deprecated article h4::after,body.fabric article h2::after,body.fabric article h3::after,body.fabric article h4::after,div.aura-db-enterprise h2::after,div.aura-db-enterprise h3::after,div.aura-db-enterprise h4::after,div.deprecated h2::after,div.deprecated h3::after,div.deprecated h4::after,div.enterprise-edition h2::after,div.enterprise-edition h3::after,div.enterprise-edition h4::after,div.fabric h2::after,div.fabric h3::after,div.fabric h4::after,div.not-on-aura h2::after,div.not-on-aura h3::after,div.not-on-aura h4::after,p.aura-db-enterprise::before,p.deprecated::before,p.enterprise-edition::before,p.fabric::before,p.not-on-aura::before,section.aura-db-enterprise.title::after,section.deprecated .title::after,section.enterprise-edition .title::after,section.fabric .title::after,section.not-on-aura .title::after,span.alpha::after,span.aura-db-enterprise::after,span.beta::after,span.deprecated::after,span.enterprise-edition::after,span.fabric::after,span.not-on-aura::after{text-align:center;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;font-size:1rem;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px 8px;border-style:solid;border-width:1px;border-radius:6px;bottom:2px;margin-left:8px}.sect1.show-roles h2::after,.sect2.show-roles h3::after,.sect3.show-roles h4::after{display:none}.sect1.show-roles h2,.sect2.show-roles h3,.sect2.show-roles h4{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.sect2.show-roles div.roles,.sect2.show-roles div.roles>span.role{font-size:1rem;margin-bottom:0}.sect-header{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;margin-bottom:1rem}.sect1:not(.display)>.sect-header{border-bottom:1px solid #e2e8f0;margin-bottom:1rem;padding-bottom:.5rem}.sect1 div.roles>span.role,div.roles>span.role::after{margin:0}.doc .sect-header h2{border-bottom:none;margin-bottom:0}.deprecated>.title::after,.deprecated dt::after,body.deprecated article h2::after,body.deprecated article h3::after,body.deprecated article h4::after,div.deprecated h2::after,div.deprecated h3::after,div.deprecated h4::after,p.deprecated::before,section.deprecated .title::after,span.deprecated::after{content:"deprecated";color:#d53f8c;border-color:#d53f8c;margin-left:8px}div.not-on-aura h2::after,div.not-on-aura h3::after,div.not-on-aura h4::after,p.not-on-aura::before,section.not-on-aura .title::after,span.not-on-aura::after{content:"Not available on Aura";color:#c53030;border-color:#c53030}div.aura-db-enterprise h2::after,div.aura-db-enterprise h3::after,div.aura-db-enterprise h4::after,p.aura-db-enterprise::before,section.aura-db-enterprise.title::after,span.aura-db-enterprise::after{content:"AuraDB Enterprise";color:#3182ce;border-color:#3182ce}div.enterprise-edition h2::after,div.enterprise-edition h3::after,div.enterprise-edition h4::after,p.enterprise-edition::before,section.enterprise-edition .title::after,span.enterprise-edition::after{content:"Enterprise Edition";color:#38a169;border-color:#38a169}div.fabric h2::after,div.fabric h3::after,div.fabric h4::after,p.fabric::before,section.fabric .title::after,span.fabric::after{content:"Fabric";color:#4299e1;border-color:#4299e1}.admonitionblock td.icon .icon-::before{content:"\f088";color:#f58220}.doc .admonitionblock.deprecated .icon{background-color:#d53f8c;color:#fff}.doc .admonitionblock.deprecated .icon i::after{content:"DEPRECATED"}.doc .admonitionblock.deprecated{background-color:#fed7e2;color:#702459;border-left-color:#d53f8c}.doc .admonitionblock.deprecated pre{background-color:#fff5f5;color:#c53030}.doc .admonitionblock.deprecated a{color:#e53e3e}.doc pre{font-size:.77778rem}.doc .paragraph.erroronlyqueryresult,.doc .paragraph.statsonlyqueryresult{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.77778rem;background-color:#edf2f7;margin:-1.5rem 30% 1.5rem 2rem;padding-top:.25rem;padding-bottom:.25rem;padding-left:1.5rem}.sect1.alpha h2::after,.sect1.beta h2::after,.sect2.alpha h3::after,.sect2.beta h3::after,span.alpha::after,span.beta::after{color:#ed8936}.sect1.alpha h2::after,.sect2.alpha h3::after,span.alpha::after{content:"alpha"}.sect1.beta h2::after,.sect2.beta h3::after,span.beta::after{content:"beta"}div.tier-note p{padding:10px}div.tier-note p::before{border-right:thin solid #cbd5e0;padding:0 10px;margin-right:10px;font-family:fantasy;font-size:2rem;color:#ed8936;text-shadow:1px 1px 2px rgba(0,0,0,.5)}div.alpha-symbol p::before{content:"\03b1"}div.beta-symbol p::before{content:"\03b2"}.function-reference::after{content:"\2A0D";margin-left:.5em;padding:0 .5em;background-color:#e9d8fd;color:#6b46c1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;border-radius:25%}.graph-variants>.title{color:#4a5568!important;font-style:normal!important;font-size:1.11111rem!important}.graph-variants>.content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}@media screen and (max-width:1244px){.graph-variants>.content>.paragraph{-webkit-box-flex:0;-ms-flex:0 0 30%;flex:0 0 30%}}@media screen and (max-width:582px){.graph-variants>.content>.paragraph{-webkit-box-flex:1;-ms-flex:1 1 20%;flex:1 1 20%}}@media screen and (min-width:1245px){.graph-variants>.content>.paragraph{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}}.graph-variants>.content>.paragraph{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;white-space:nowrap;padding:.2rem .3rem;margin:.5em 1em 0 0;line-height:1em;border-radius:.2rem}.graph-variants>.content>.supported::before{content:"\2714";margin-right:.5em;color:#00ba88}.graph-variants>.content>.supported{background-color:#e1faef}.graph-variants>.content>.allowed::before{content:"(\2714)";margin-right:.5em;color:#808a87}.graph-variants>.content>.allowed{background-color:#e4e9e8}.graph-variants>.content>.not-supported{background-color:#ffe6e9}.graph-variants>.content>.not-supported::before{content:"\2716";margin-right:.5em;color:#ed1252}.newsletter{background:#bee3f8;border-radius:.5rem;color:#2b6cb0;font-size:.77778rem;padding:1rem}.newsletter h2{font-size:.88889rem;font-weight:600;line-height:1.5;margin:0;color:#2c5282}.newsletter p{margin:.25rem 0}.newsletter label{color:#2b6cb0}.newsletter .mktoForm .mktoRequiredField .mktoAsterix,.newsletter .mktoGutter,.newsletter .mktoOffset{display:none!important}.newsletter .mktoForm input{outline:none;margin:0!important;border:1px solid #90cdf4!important;border-radius:.25rem!important;background:#ebf8ff!important;color:#2c5282!important}.newsletter .mktoLogicalField{padding:0!important}.newsletter .mktoLogicalField label{width:100%!important}.newsletter .mktoForm div.mktoButtonRow{width:100%}.newsletter .mktoForm .mktoButtonWrap.mktoSimple .mktoButton{background:#2c5282!important;color:#ebf8ff!important;width:100%!important;border-radius:.25rem!important;border:0}.toc .newsletter{position:absolute;bottom:6rem}.arrange-options ul{margin:1rem 0!important;padding:0!important;min-height:1.5rem}.arrange-options .arrange-message{font-size:.75rem;color:#718096;border-bottom:1px solid #e2e8f0;margin:0 0 .25rem;padding-bottom:.25rem}.arrange-options li,.arrange pre code span{display:inline-block;background:#f7fafc;border:1px solid #edf2f7;border-radius:.25rem;padding:.25rem .5rem;margin:0 .5rem 0 0;font-family:Roboto Mono,monospace;cursor:pointer}.arrange pre code span{background:#fff} diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js deleted file mode 100644 index d06a71d75..000000000 --- a/docs/build/html/_static/doctools.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), - LOCALE: "unknown", - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js deleted file mode 100644 index 7e4c114f2..000000000 --- a/docs/build/html/_static/documentation_options.js +++ /dev/null @@ -1,13 +0,0 @@ -const DOCUMENTATION_OPTIONS = { - VERSION: '', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/docs/build/html/_static/file.png b/docs/build/html/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/docs/build/html/_static/fonts/nunito-sans-cyrillic-ext.woff2 b/docs/build/html/_static/fonts/nunito-sans-cyrillic-ext.woff2 deleted file mode 100644 index 381d41fb6b7dd8cf9c5042c955f4438b2b20c031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21616 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 diff --git a/docs/build/html/_static/fonts/nunito-sans-cyrillic.woff2 b/docs/build/html/_static/fonts/nunito-sans-cyrillic.woff2 deleted file mode 100644 index a45f47783328f10222d283f10de1083458f21385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16456 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 X{}??RAD=hbV)9aNe{{UG`~?62Os$7% diff --git a/docs/build/html/_static/fonts/nunito-sans-latin.woff2 b/docs/build/html/_static/fonts/nunito-sans-latin.woff2 deleted file mode 100644 index b0e2c35fc4b5f09304b46ba99277339597349053..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31052 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 Xd~LniMd=9KJ4*H;{As=aw6+5PSuU)m diff --git a/docs/build/html/_static/fonts/nunito-sans-vietnamese.woff2 b/docs/build/html/_static/fonts/nunito-sans-vietnamese.woff2 deleted file mode 100644 index 8f9ec7cc6e5e994ec6a2e829279b6c0e3d5a7f94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10332 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 diff --git a/docs/build/html/_static/js/12-fragment-jumper.js b/docs/build/html/_static/js/12-fragment-jumper.js deleted file mode 100644 index b2021ca8f..000000000 --- a/docs/build/html/_static/js/12-fragment-jumper.js +++ /dev/null @@ -1,53 +0,0 @@ -;(function () { - 'use strict' - - var article = document.querySelector('article.doc') - var cheatSheet = document.querySelector('body.cheat-sheet') - var toolbar = document.querySelector('.toolbar') - var headerNavigationBar = document.querySelector('header > .navbar') - - function decodeFragment (hash) { - return hash && (~hash.indexOf('%') ? decodeURIComponent(hash) : hash).slice(1) - } - - function computePosition (el, sum) { - if (article.contains(el)) { - return computePosition(el.offsetParent, el.offsetTop + sum) - } else { - return sum - } - } - - function jumpToAnchor (e) { - if (e) { - window.location.hash = '#' + this.id - e.preventDefault() - } - var topOffset = toolbar ? toolbar.getBoundingClientRect().bottom : headerNavigationBar.getBoundingClientRect().bottom - - if (cheatSheet) { - var scrollTarget = this.closest('div') - var selectorsTop = document.querySelector('.nav-container .selectors').querySelector('div').getBoundingClientRect().top - if (this.tagName === 'H3') topOffset = selectorsTop - window.scrollTo(0, computePosition(scrollTarget, 0) - topOffset) - } else { - window.scrollTo(0, computePosition(this, 0) - topOffset) - } - } - - window.addEventListener('load', function jumpOnLoad (e) { - var fragment, target - if ((fragment = decodeFragment(window.location.hash)) && (target = document.getElementById(fragment))) { - jumpToAnchor.bind(target)() - setTimeout(jumpToAnchor.bind(target), 0) - } - window.removeEventListener('load', jumpOnLoad) - }) - - Array.prototype.slice.call(document.querySelectorAll('a[href^="#"]')).forEach(function (el) { - var fragment, target - if ((fragment = decodeFragment(el.hash)) && (target = document.getElementById(fragment))) { - el.addEventListener('click', jumpToAnchor.bind(target)) - } - }) -})() diff --git a/docs/build/html/_static/language_data.js b/docs/build/html/_static/language_data.js deleted file mode 100644 index 250f5665f..000000000 --- a/docs/build/html/_static/language_data.js +++ /dev/null @@ -1,199 +0,0 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, is available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - diff --git a/docs/build/html/_static/menu.svg b/docs/build/html/_static/menu.svg deleted file mode 100644 index 1cc79e63c..000000000 --- a/docs/build/html/_static/menu.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/build/html/_static/minus.png b/docs/build/html/_static/minus.png deleted file mode 100644 index d96755fdaf8bb2214971e0db9c1fd3077d7c419d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK diff --git a/docs/build/html/_static/plus.png b/docs/build/html/_static/plus.png deleted file mode 100644 index 7107cec93a979b9a5f64843235a16651d563ce2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz diff --git a/docs/build/html/_static/pygments.css b/docs/build/html/_static/pygments.css deleted file mode 100644 index 0d49244ed..000000000 --- a/docs/build/html/_static/pygments.css +++ /dev/null @@ -1,75 +0,0 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #eeffcc; } -.highlight .c { color: #408090; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #333333 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #208050 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #208050 } /* Literal.Number.Bin */ -.highlight .mf { color: #208050 } /* Literal.Number.Float */ -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ -.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #06287e } /* Name.Function.Magic */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/build/html/_static/searchtools.js b/docs/build/html/_static/searchtools.js deleted file mode 100644 index 7918c3fab..000000000 --- a/docs/build/html/_static/searchtools.js +++ /dev/null @@ -1,574 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename] = result - return score - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: { - 0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5, // used to be unimportantResults - }, - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms, highlightTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const contentRoot = document.documentElement.dataset.content_root; - - const [docName, title, anchor, descr, score, _filename] = item; - - let listItem = document.createElement("li"); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = contentRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = contentRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) { - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) - ); - // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms, - highlightTerms, -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms, highlightTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; - console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - // array of [docname, title, anchor, descr, score, filename] - let results = []; - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // lookup as object - objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - results = results.reverse(); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms, highlightTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - const arr = [ - { files: terms[word], score: Scorer.term }, - { files: titleTerms[word], score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, {}); - scoreMap.get(file)[word] = record.score; - }); - }); - - // create the mapping - files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/docs/build/html/_static/sphinx_highlight.js b/docs/build/html/_static/sphinx_highlight.js deleted file mode 100644 index 8a96c69a1..000000000 --- a/docs/build/html/_static/sphinx_highlight.js +++ /dev/null @@ -1,154 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - const rest = document.createTextNode(val.substr(pos + text.length)); - parent.insertBefore( - span, - parent.insertBefore( - rest, - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - /* There may be more occurrences of search term in this node. So call this - * function recursively on the remaining fragment. - */ - _highlight(rest, addItems, text, className); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(() => { - /* Do not call highlightSearchWords() when we are on the search page. - * It will highlight words from the *previous* search query. - */ - if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); - SphinxHighlight.initEscapeListener(); -}); diff --git a/docs/build/html/api.html b/docs/build/html/api.html deleted file mode 100644 index de7c3c3e9..000000000 --- a/docs/build/html/api.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - - API Documentation — neo4j-genai-python documentation - - - - - - - - - - - - - - -
- -
- - -
- - -
- -
-
- -
-

API Documentation

-
-

Retrieval-Augmented Generation (RAG)

-

RAG is a technique that enhances Large Language Model (LLM) responses by retrieving -source information from external data stores to augment generated responses.

-

This package enables Python developers to use perform RAG using Neo4j.

-
-
-

Retrievers

-
-

VectorRetriever

-
-
-class neo4j_genai.retrievers.vector.VectorRetriever(driver: Driver, index_name: str, embedder: Embedder | None = None, return_properties: list[str] | None = None)
-

Provides retrieval method using vector search over embeddings. -If an embedder is provided, it needs to have the required Embedder type.

-
-
-search(query_vector: list[float] | None = None, query_text: str | None = None, top_k: int = 5) list[VectorSearchRecord]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -See the following documentation for more details:

- -
-
Args:

query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -query_text (Optional[str], optional): The text to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[VectorSearchRecord]: The top_k neighbors found in vector search with their nodes and scores.

-
-
-
- -
- -
-
-

VectorCypherRetriever

-
-
-class neo4j_genai.retrievers.vector.VectorCypherRetriever(driver: Driver, index_name: str, retrieval_query: str, embedder: Embedder | None = None)
-

Provides retrieval method using vector similarity and custom Cypher query. -If an embedder is provided, it needs to have the required Embedder type.

-
-
-search(query_vector: list[float] | None = None, query_text: str | None = None, top_k: int = 5, query_params: dict[str, Any] | None = None) list[Record]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -See the following documentation for more details:

- -
-
Args:

query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -query_text (Optional[str], optional): The text to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5. -query_params (Optional[dict[str, Any]], optional): Parameters for the Cypher query. Defaults to None.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[Record]: The results of the search query

-
-
-
- -
- -
-
-

HybridRetriever

-
-
-class neo4j_genai.retrievers.hybrid.HybridRetriever(driver: Driver, vector_index_name: str, fulltext_index_name: str, embedder: Embedder | None = None, return_properties: list[str] | None = None)
-
-
-search(query_text: str, query_vector: list[float] | None = None, top_k: int = 5) list[Record]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -Both query_vector and query_text can be provided. -If query_vector is provided, then it will be preferred over the embedded query_text -for the vector search.

-

See the following documentation for more details:

- -
-
Args:

query_text (str): The text to get the closest neighbors of. -query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[Record]: The results of the search query

-
-
-
- -
- -
-
-

HybridCypherRetriever

-
-
-class neo4j_genai.retrievers.hybrid.HybridCypherRetriever(driver: Driver, vector_index_name: str, fulltext_index_name: str, retrieval_query: str, embedder: Embedder | None = None)
-
-
-search(query_text: str, query_vector: list[float] | None = None, top_k: int = 5, query_params: dict[str, Any] | None = None) list[Record]
-

Get the top_k nearest neighbor embeddings for either provided query_vector or query_text. -Both query_vector and query_text can be provided. -If query_vector is provided, then it will be preferred over the embedded query_text -for the vector search.

-

See the following documentation for more details:

- -
-
Args:

query_text (str): The text to get the closest neighbors of. -query_vector (Optional[list[float]], optional): The vector embeddings to get the closest neighbors of. Defaults to None. -top_k (int, optional): The number of neighbors to return. Defaults to 5. -query_params (Optional[dict[str, Any]], optional): Parameters for the Cypher query. Defaults to None.

-
-
Raises:

ValueError: If validation of the input arguments fail. -ValueError: If no embedder is provided.

-
-
Returns:

list[Record]: The results of the search query

-
-
-
- -
- -
-
-
- - - -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html deleted file mode 100644 index 360c0f451..000000000 --- a/docs/build/html/genindex.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - Index — neo4j-genai-python documentation - - - - - - - - - - - - - -
- -
- - - - - - - - - \ No newline at end of file diff --git a/docs/build/html/index.html b/docs/build/html/index.html deleted file mode 100644 index 4d520f87a..000000000 --- a/docs/build/html/index.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - Welcome to neo4j-genai-python’s documentation! — neo4j-genai-python documentation - - - - - - - - - - - - - - -
- -
- - -
- - -
- -
- -
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv deleted file mode 100644 index a4db56716..000000000 --- a/docs/build/html/objects.inv +++ /dev/null @@ -1,7 +0,0 @@ -# Sphinx inventory version 2 -# Project: neo4j-genai-python -# Version: -# The remainder of this file is compressed using zlib. -xڭN0 } -#&$NUl!eYi%DoǓ&hvrdќ?oQ3I'qӪ8)U Э*ffUL݋zdWe2?!;i<Goc8fy8dgZ/j >0 R&vu7 .QXƟ8(KgX9C^0|W,I8umP-gm!&3hFwxA/HlÄ$bmPH+#v -{QYTDrIse ;|z \ No newline at end of file diff --git a/docs/build/html/search.html b/docs/build/html/search.html deleted file mode 100644 index 6eb5eaf24..000000000 --- a/docs/build/html/search.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - Search — neo4j-genai-python documentation - - - - - - - - - - - - - - - - - - - -
- -
- - -
- - -
- -
-
- -

Search

- - - - -

- Searching for multiple words only shows matches that contain - all words. -

- - -
- - - -
- - - -
- -
- - - -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js deleted file mode 100644 index 7f9ba351b..000000000 --- a/docs/build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"docnames": ["README", "api", "index"], "filenames": ["README.md", "api.rst", "index.rst"], "titles": ["Neo4j GenAI package for Python", "API Documentation", "Welcome to neo4j-genai-python\u2019s documentation!"], "terms": {"thi": [0, 1], "repositori": 0, "contain": 0, "offici": 0, "featur": 0, "The": [0, 1], "purpos": 0, "i": [0, 1], "provid": [0, 1], "first": 0, "parti": 0, "where": 0, "can": [0, 1], "guarante": 0, "long": 0, "term": 0, "commit": 0, "mainten": 0, "well": 0, "being": 0, "fast": 0, "ship": 0, "new": 0, "high": 0, "pattern": 0, "method": [0, 1], "doc": 0, "ar": 0, "come": 0, "soon": 0, "requir": [0, 1], "3": 0, "8": 0, "1": 0, "To": 0, "latest": 0, "stabl": 0, "version": 0, "us": [0, 1], "pip": 0, "while": 0, "librari": 0, "ha": 0, "more": [0, 1], "retriev": [0, 2], "than": 0, "shown": 0, "here": 0, "follow": [0, 1], "should": 0, "abl": 0, "you": 0, "assumpt": 0, "place": 0, "from": [0, 1], "import": 0, "graphdatabas": 0, "neo4j_genai": [0, 1], "vectorretriev": 0, "uri": 0, "localhost": 0, "7687": 0, "auth": 0, "password": 0, "index_nam": [0, 1], "embed": [0, 1], "name": 0, "connect": 0, "databas": 0, "driver": [0, 1], "initi": 0, "query_text": [0, 1], "how": 0, "do": 0, "respons": [0, 1], "top_k": [0, 1], "5": [0, 1], "when": 0, "sure": 0, "match": 0, "number": [0, 1], "dimens": 0, "have": [0, 1], "create_vector_index": 0, "chunk": 0, "label": 0, "document": 0, "properti": 0, "textproperti": 0, "1536": 0, "similarity_fn": 0, "euclidean": 0, "doe": 0, "write": 0, "up": 0, "see": [0, 1], "below": 0, "cypher": [0, 1], "via": 0, "defin": 0, "random": 0, "upsert": 0, "_": 0, "rang": 0, "insert_queri": 0, "merg": 0, "n": 0, "id": 0, "WITH": 0, "call": 0, "db": [0, 1], "setnodevectorproperti": 0, "return": [0, 1], "paramet": [0, 1], "0": 0, "execute_queri": 0, "poetri": 0, "If": [0, 1], "bug": 0, "report": 0, "an": [0, 1], "alreadi": 0, "exist": 0, "relat": 0, "doesn": 0, "t": 0, "pleas": 0, "rais": [0, 1], "relev": 0, "form": 0, "re": 0, "enterpris": 0, "custom": [0, 1], "also": 0, "reach": 0, "out": 0, "support": 0, "don": 0, "need": [0, 1], "hand": 0, "commun": 0, "avail": 0, "onlin": 0, "discord": 0, "fork": 0, "For": 0, "guid": 0, "work": 0, "branch": 0, "main": 0, "your": 0, "finish": 0, "known": 0, "pr": 0, "ensur": 0, "sign": 0, "cla": 0, "base": 0, "set": 0, "forget": 0, "link": 0, "solv": 0, "one": 0, "enabl": [0, 1], "checkbox": 0, "allow": 0, "maintain": 0, "edit": 0, "so": 0, "ani": [0, 1], "necessari": 0, "tweak": 0, "updat": 0, "review": 0, "mai": 0, "ask": 0, "made": 0, "befor": 0, "either": [0, 1], "suggest": 0, "normal": 0, "comment": 0, "appli": 0, "directli": 0, "through": 0, "ui": 0, "other": 0, "As": 0, "mark": 0, "each": 0, "convers": 0, "resolv": 0, "open": 0, "virtual": 0, "environ": 0, "shell": 0, "pytest": 0, "integr": 0, "techniqu": 1, "enhanc": 1, "larg": 1, "languag": 1, "model": 1, "llm": 1, "sourc": 1, "inform": 1, "extern": 1, "data": 1, "store": 1, "packag": 1, "python": 1, "develop": 1, "perform": 1, "neo4j": 1, "class": 1, "vector": 1, "str": 1, "embedd": 1, "none": 1, "return_properti": 1, "list": 1, "search": [1, 2], "over": 1, "type": 1, "query_vector": 1, "float": 1, "int": 1, "vectorsearchrecord": 1, "get": 1, "nearest": 1, "neighbor": 1, "detail": 1, "queri": 1, "index": [1, 2], "http": [], "com": [], "manual": [], "current": [], "querynod": 1, "oper": [], "refer": [], "procedur": [], "procedure_db_index_vector_querynod": [], "arg": 1, "option": 1, "closest": 1, "default": 1, "text": 1, "valueerror": 1, "valid": 1, "input": 1, "argument": 1, "fail": 1, "found": 1, "node": 1, "score": 1, "retrieval_queri": 1, "similar": 1, "query_param": 1, "dict": 1, "record": 1, "result": 1, "hybrid": 1, "vector_index_nam": 1, "fulltext_index_nam": 1, "both": 1, "prefer": 1, "fulltext": 1, "procedure_db_index_fulltext_querynod": [], "api": 2, "augment": 2, "gener": 2, "rag": 2, "modul": 2, "page": 2}, "objects": {"neo4j_genai.retrievers.hybrid": [[1, 0, 1, "", "HybridCypherRetriever"], [1, 0, 1, "", "HybridRetriever"]], "neo4j_genai.retrievers.hybrid.HybridCypherRetriever": [[1, 1, 1, "", "search"]], "neo4j_genai.retrievers.hybrid.HybridRetriever": [[1, 1, 1, "", "search"]], "neo4j_genai.retrievers.vector": [[1, 0, 1, "", "VectorCypherRetriever"], [1, 0, 1, "", "VectorRetriever"]], "neo4j_genai.retrievers.vector.VectorCypherRetriever": [[1, 1, 1, "", "search"]], "neo4j_genai.retrievers.vector.VectorRetriever": [[1, 1, 1, "", "search"]]}, "objtypes": {"0": "py:class", "1": "py:method"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"]}, "titleterms": {"neo4j": [0, 2], "genai": [0, 2], "packag": 0, "python": [0, 2], "usag": 0, "instal": 0, "exampl": 0, "perform": 0, "similar": 0, "search": 0, "creat": 0, "vector": 0, "index": 0, "popul": 0, "develop": 0, "depend": 0, "get": 0, "start": 0, "issu": 0, "make": 0, "chang": 0, "pull": 0, "request": 0, "run": 0, "test": 0, "further": 0, "inform": 0, "api": 1, "document": [1, 2], "retriev": 1, "augment": 1, "gener": 1, "rag": 1, "vectorretriev": 1, "vectorcypherretriev": 1, "hybridretriev": 1, "welcom": 2, "": 2, "content": 2, "indic": 2, "tabl": 2, "hybridcypherretriev": 1}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.intersphinx": 1, "sphinx": 60}, "alltitles": {"Neo4j GenAI package for Python": [[0, "neo4j-genai-package-for-python"]], "Usage": [[0, "usage"]], "Installation": [[0, "installation"]], "Examples": [[0, "examples"]], "Performing a similarity search": [[0, "performing-a-similarity-search"]], "Creating a vector index": [[0, "creating-a-vector-index"]], "Populating the Neo4j Vector Index": [[0, "populating-the-neo4j-vector-index"]], "Development": [[0, "development"]], "Install dependencies": [[0, "install-dependencies"]], "Getting started": [[0, "getting-started"]], "Issues": [[0, "issues"]], "Make changes": [[0, "make-changes"]], "Pull request": [[0, "pull-request"]], "Run tests": [[0, "run-tests"]], "Further information": [[0, "further-information"]], "Welcome to neo4j-genai-python\u2019s documentation!": [[2, "welcome-to-neo4j-genai-python-s-documentation"]], "Contents:": [[2, null]], "Indices and tables": [[2, "indices-and-tables"]], "API Documentation": [[1, "api-documentation"]], "Retrieval-Augmented Generation (RAG)": [[1, "retrieval-augmented-generation-rag"]], "Retrievers": [[1, "retrievers"]], "VectorRetriever": [[1, "vectorretriever"]], "VectorCypherRetriever": [[1, "vectorcypherretriever"]], "HybridRetriever": [[1, "hybridretriever"]], "HybridCypherRetriever": [[1, "hybridcypherretriever"]]}, "indexentries": {"hybridcypherretriever (class in neo4j_genai.retrievers.hybrid)": [[1, "neo4j_genai.retrievers.hybrid.HybridCypherRetriever"]], "hybridretriever (class in neo4j_genai.retrievers.hybrid)": [[1, "neo4j_genai.retrievers.hybrid.HybridRetriever"]], "vectorcypherretriever (class in neo4j_genai.retrievers.vector)": [[1, "neo4j_genai.retrievers.vector.VectorCypherRetriever"]], "vectorretriever (class in neo4j_genai.retrievers.vector)": [[1, "neo4j_genai.retrievers.vector.VectorRetriever"]], "search() (neo4j_genai.retrievers.hybrid.hybridcypherretriever method)": [[1, "neo4j_genai.retrievers.hybrid.HybridCypherRetriever.search"]], "search() (neo4j_genai.retrievers.hybrid.hybridretriever method)": [[1, "neo4j_genai.retrievers.hybrid.HybridRetriever.search"]], "search() (neo4j_genai.retrievers.vector.vectorcypherretriever method)": [[1, "neo4j_genai.retrievers.vector.VectorCypherRetriever.search"]], "search() (neo4j_genai.retrievers.vector.vectorretriever method)": [[1, "neo4j_genai.retrievers.vector.VectorRetriever.search"]]}}) \ No newline at end of file diff --git a/docs/build/index.html b/docs/build/index.html deleted file mode 100644 index 4d520f87a..000000000 --- a/docs/build/index.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - Welcome to neo4j-genai-python’s documentation! — neo4j-genai-python documentation - - - - - - - - - - - - - - -
- -
- - -
- - -
- -
- -
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/objects.inv b/docs/build/objects.inv deleted file mode 100644 index a4db56716..000000000 --- a/docs/build/objects.inv +++ /dev/null @@ -1,7 +0,0 @@ -# Sphinx inventory version 2 -# Project: neo4j-genai-python -# Version: -# The remainder of this file is compressed using zlib. -xڭN0 } -#&$NUl!eYi%DoǓ&hvrdќ?oQ3I'qӪ8)U Э*ffUL݋zdWe2?!;i<Goc8fy8dgZ/j >0 R&vu7 .QXƟ8(KgX9C^0|W,I8umP-gm!&3hFwxA/HlÄ$bmPH+#v -{QYTDrIse ;|z \ No newline at end of file diff --git a/docs/build/search.html b/docs/build/search.html deleted file mode 100644 index 6eb5eaf24..000000000 --- a/docs/build/search.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - Search — neo4j-genai-python documentation - - - - - - - - - - - - - - - - - - - -
- -
- - -
- - -
- -
-
- -

Search

- - - - -

- Searching for multiple words only shows matches that contain - all words. -

- - -
- - - -
- - - -
- -
- - - -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/docs/build/searchindex.js b/docs/build/searchindex.js deleted file mode 100644 index 7f9ba351b..000000000 --- a/docs/build/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"docnames": ["README", "api", "index"], "filenames": ["README.md", "api.rst", "index.rst"], "titles": ["Neo4j GenAI package for Python", "API Documentation", "Welcome to neo4j-genai-python\u2019s documentation!"], "terms": {"thi": [0, 1], "repositori": 0, "contain": 0, "offici": 0, "featur": 0, "The": [0, 1], "purpos": 0, "i": [0, 1], "provid": [0, 1], "first": 0, "parti": 0, "where": 0, "can": [0, 1], "guarante": 0, "long": 0, "term": 0, "commit": 0, "mainten": 0, "well": 0, "being": 0, "fast": 0, "ship": 0, "new": 0, "high": 0, "pattern": 0, "method": [0, 1], "doc": 0, "ar": 0, "come": 0, "soon": 0, "requir": [0, 1], "3": 0, "8": 0, "1": 0, "To": 0, "latest": 0, "stabl": 0, "version": 0, "us": [0, 1], "pip": 0, "while": 0, "librari": 0, "ha": 0, "more": [0, 1], "retriev": [0, 2], "than": 0, "shown": 0, "here": 0, "follow": [0, 1], "should": 0, "abl": 0, "you": 0, "assumpt": 0, "place": 0, "from": [0, 1], "import": 0, "graphdatabas": 0, "neo4j_genai": [0, 1], "vectorretriev": 0, "uri": 0, "localhost": 0, "7687": 0, "auth": 0, "password": 0, "index_nam": [0, 1], "embed": [0, 1], "name": 0, "connect": 0, "databas": 0, "driver": [0, 1], "initi": 0, "query_text": [0, 1], "how": 0, "do": 0, "respons": [0, 1], "top_k": [0, 1], "5": [0, 1], "when": 0, "sure": 0, "match": 0, "number": [0, 1], "dimens": 0, "have": [0, 1], "create_vector_index": 0, "chunk": 0, "label": 0, "document": 0, "properti": 0, "textproperti": 0, "1536": 0, "similarity_fn": 0, "euclidean": 0, "doe": 0, "write": 0, "up": 0, "see": [0, 1], "below": 0, "cypher": [0, 1], "via": 0, "defin": 0, "random": 0, "upsert": 0, "_": 0, "rang": 0, "insert_queri": 0, "merg": 0, "n": 0, "id": 0, "WITH": 0, "call": 0, "db": [0, 1], "setnodevectorproperti": 0, "return": [0, 1], "paramet": [0, 1], "0": 0, "execute_queri": 0, "poetri": 0, "If": [0, 1], "bug": 0, "report": 0, "an": [0, 1], "alreadi": 0, "exist": 0, "relat": 0, "doesn": 0, "t": 0, "pleas": 0, "rais": [0, 1], "relev": 0, "form": 0, "re": 0, "enterpris": 0, "custom": [0, 1], "also": 0, "reach": 0, "out": 0, "support": 0, "don": 0, "need": [0, 1], "hand": 0, "commun": 0, "avail": 0, "onlin": 0, "discord": 0, "fork": 0, "For": 0, "guid": 0, "work": 0, "branch": 0, "main": 0, "your": 0, "finish": 0, "known": 0, "pr": 0, "ensur": 0, "sign": 0, "cla": 0, "base": 0, "set": 0, "forget": 0, "link": 0, "solv": 0, "one": 0, "enabl": [0, 1], "checkbox": 0, "allow": 0, "maintain": 0, "edit": 0, "so": 0, "ani": [0, 1], "necessari": 0, "tweak": 0, "updat": 0, "review": 0, "mai": 0, "ask": 0, "made": 0, "befor": 0, "either": [0, 1], "suggest": 0, "normal": 0, "comment": 0, "appli": 0, "directli": 0, "through": 0, "ui": 0, "other": 0, "As": 0, "mark": 0, "each": 0, "convers": 0, "resolv": 0, "open": 0, "virtual": 0, "environ": 0, "shell": 0, "pytest": 0, "integr": 0, "techniqu": 1, "enhanc": 1, "larg": 1, "languag": 1, "model": 1, "llm": 1, "sourc": 1, "inform": 1, "extern": 1, "data": 1, "store": 1, "packag": 1, "python": 1, "develop": 1, "perform": 1, "neo4j": 1, "class": 1, "vector": 1, "str": 1, "embedd": 1, "none": 1, "return_properti": 1, "list": 1, "search": [1, 2], "over": 1, "type": 1, "query_vector": 1, "float": 1, "int": 1, "vectorsearchrecord": 1, "get": 1, "nearest": 1, "neighbor": 1, "detail": 1, "queri": 1, "index": [1, 2], "http": [], "com": [], "manual": [], "current": [], "querynod": 1, "oper": [], "refer": [], "procedur": [], "procedure_db_index_vector_querynod": [], "arg": 1, "option": 1, "closest": 1, "default": 1, "text": 1, "valueerror": 1, "valid": 1, "input": 1, "argument": 1, "fail": 1, "found": 1, "node": 1, "score": 1, "retrieval_queri": 1, "similar": 1, "query_param": 1, "dict": 1, "record": 1, "result": 1, "hybrid": 1, "vector_index_nam": 1, "fulltext_index_nam": 1, "both": 1, "prefer": 1, "fulltext": 1, "procedure_db_index_fulltext_querynod": [], "api": 2, "augment": 2, "gener": 2, "rag": 2, "modul": 2, "page": 2}, "objects": {"neo4j_genai.retrievers.hybrid": [[1, 0, 1, "", "HybridCypherRetriever"], [1, 0, 1, "", "HybridRetriever"]], "neo4j_genai.retrievers.hybrid.HybridCypherRetriever": [[1, 1, 1, "", "search"]], "neo4j_genai.retrievers.hybrid.HybridRetriever": [[1, 1, 1, "", "search"]], "neo4j_genai.retrievers.vector": [[1, 0, 1, "", "VectorCypherRetriever"], [1, 0, 1, "", "VectorRetriever"]], "neo4j_genai.retrievers.vector.VectorCypherRetriever": [[1, 1, 1, "", "search"]], "neo4j_genai.retrievers.vector.VectorRetriever": [[1, 1, 1, "", "search"]]}, "objtypes": {"0": "py:class", "1": "py:method"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"]}, "titleterms": {"neo4j": [0, 2], "genai": [0, 2], "packag": 0, "python": [0, 2], "usag": 0, "instal": 0, "exampl": 0, "perform": 0, "similar": 0, "search": 0, "creat": 0, "vector": 0, "index": 0, "popul": 0, "develop": 0, "depend": 0, "get": 0, "start": 0, "issu": 0, "make": 0, "chang": 0, "pull": 0, "request": 0, "run": 0, "test": 0, "further": 0, "inform": 0, "api": 1, "document": [1, 2], "retriev": 1, "augment": 1, "gener": 1, "rag": 1, "vectorretriev": 1, "vectorcypherretriev": 1, "hybridretriev": 1, "welcom": 2, "": 2, "content": 2, "indic": 2, "tabl": 2, "hybridcypherretriev": 1}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.intersphinx": 1, "sphinx": 60}, "alltitles": {"Neo4j GenAI package for Python": [[0, "neo4j-genai-package-for-python"]], "Usage": [[0, "usage"]], "Installation": [[0, "installation"]], "Examples": [[0, "examples"]], "Performing a similarity search": [[0, "performing-a-similarity-search"]], "Creating a vector index": [[0, "creating-a-vector-index"]], "Populating the Neo4j Vector Index": [[0, "populating-the-neo4j-vector-index"]], "Development": [[0, "development"]], "Install dependencies": [[0, "install-dependencies"]], "Getting started": [[0, "getting-started"]], "Issues": [[0, "issues"]], "Make changes": [[0, "make-changes"]], "Pull request": [[0, "pull-request"]], "Run tests": [[0, "run-tests"]], "Further information": [[0, "further-information"]], "Welcome to neo4j-genai-python\u2019s documentation!": [[2, "welcome-to-neo4j-genai-python-s-documentation"]], "Contents:": [[2, null]], "Indices and tables": [[2, "indices-and-tables"]], "API Documentation": [[1, "api-documentation"]], "Retrieval-Augmented Generation (RAG)": [[1, "retrieval-augmented-generation-rag"]], "Retrievers": [[1, "retrievers"]], "VectorRetriever": [[1, "vectorretriever"]], "VectorCypherRetriever": [[1, "vectorcypherretriever"]], "HybridRetriever": [[1, "hybridretriever"]], "HybridCypherRetriever": [[1, "hybridcypherretriever"]]}, "indexentries": {"hybridcypherretriever (class in neo4j_genai.retrievers.hybrid)": [[1, "neo4j_genai.retrievers.hybrid.HybridCypherRetriever"]], "hybridretriever (class in neo4j_genai.retrievers.hybrid)": [[1, "neo4j_genai.retrievers.hybrid.HybridRetriever"]], "vectorcypherretriever (class in neo4j_genai.retrievers.vector)": [[1, "neo4j_genai.retrievers.vector.VectorCypherRetriever"]], "vectorretriever (class in neo4j_genai.retrievers.vector)": [[1, "neo4j_genai.retrievers.vector.VectorRetriever"]], "search() (neo4j_genai.retrievers.hybrid.hybridcypherretriever method)": [[1, "neo4j_genai.retrievers.hybrid.HybridCypherRetriever.search"]], "search() (neo4j_genai.retrievers.hybrid.hybridretriever method)": [[1, "neo4j_genai.retrievers.hybrid.HybridRetriever.search"]], "search() (neo4j_genai.retrievers.vector.vectorcypherretriever method)": [[1, "neo4j_genai.retrievers.vector.VectorCypherRetriever.search"]], "search() (neo4j_genai.retrievers.vector.vectorretriever method)": [[1, "neo4j_genai.retrievers.vector.VectorRetriever.search"]]}}) \ No newline at end of file diff --git a/docs/source/README.md b/docs/source/README.md index 10096a060..5e995465e 100644 --- a/docs/source/README.md +++ b/docs/source/README.md @@ -1,170 +1,14 @@ -# Neo4j GenAI package for Python +# Sphinx Documentation -This repository contains the official Neo4j GenAI features for Python. +Building the docs requires Python 3.8.1+ -The purpose of this package is to provide a first party package to developers, -where Neo4j can guarantee long term commitment and maintenance as well as being -fast to ship new features and high performing patterns and methods. - -Docs are coming soon! - -# Usage - -## Installation - -This package requires Python (>=3.8.1). - -To install the latest stable version, use: - -```shell -pip install neo4j-genai -``` - -## Examples - -While the library has more retrievers than shown here, the following examples should be able to get you started. - -### Performing a similarity search - -Assumption: Neo4j running with populated vector index in place. - -```python -from neo4j import GraphDatabase -from neo4j_genai import VectorRetriever - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -INDEX_NAME = "embedding-name" - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Initialize the retriever -retriever = VectorRetriever(driver, INDEX_NAME) - -# Run the similarity search -query_text = "How do I do similarity search in Neo4j?" -response = retriever.search(query_text=query_text, top_k=5) -``` - -### Creating a vector index - -When creating a vector index, make sure you match the number of dimensions in the index with the number of dimensions the embeddings have. - -Assumption: Neo4j running - -```python -from neo4j import GraphDatabase -from neo4j_genai.indexes import create_vector_index - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -INDEX_NAME = "chunk-index" - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Creating the index -create_vector_index( - driver, - INDEX_NAME, - label="Document", - property="textProperty", - dimensions=1536, - similarity_fn="euclidean", -) +Ensure the dev dependencies in `pyproject.toml` are installed. +From the root directory ``` - -### Populating the Neo4j Vector Index - -This library does not write to the database, that is up to you. -See below for how to write using Cypher via the Neo4j driver. - -Assumption: Neo4j running with a defined vector index - -```python -from neo4j import GraphDatabase -from random import random - -URI = "neo4j://localhost:7687" -AUTH = ("neo4j", "password") - -# Connect to Neo4j database -driver = GraphDatabase.driver(URI, auth=AUTH) - -# Upsert the vector -vector = [random() for _ in range(DIMENSION)] -insert_query = ( - "MERGE (n:Document {id: $id})" - "WITH n " - "CALL db.create.setNodeVectorProperty(n, 'textProperty', $vector)" - "RETURN n" -) -parameters = { - "id": 0, - "vector": vector, -} -driver.execute_query(insert_query, parameters) +make -C docs html ``` -# Development - -## Install dependencies - -```bash -poetry install ``` - -## Getting started - -### Issues - -If you have a bug to report or feature to request, first -[search to see if an issue already exists](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments). -If a related issue doesn't exist, please raise a new issue using the relevant -[issue form](https://github.com/neo4j/neo4j-genai-python/issues/new/choose). - -If you're a Neo4j Enterprise customer, you can also reach out to [Customer Support](http://support.neo4j.com/). - -If you don't have a bug to report or feature request, but you need a hand with -the library; community support is available via [Neo4j Online Community](https://community.neo4j.com/) -and/or [Discord](https://discord.gg/neo4j). - -### Make changes - -1. Fork the repository. -2. Install Python and Poetry. For more information, see [the development guide](./docs/contributing/DEVELOPING.md). -3. Create a working branch from `main` and start with your changes! - -### Pull request - -When you're finished with your changes, create a pull request, also known as a PR. - -- Ensure that you have [signed the CLA](https://neo4j.com/developer/contributing-code/#sign-cla). -- Ensure that the base of your PR is set to `main`. -- Don't forget to [link your PR to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) - if you are solving one. -- Enable the checkbox to [allow maintainer edits](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) - so that maintainers can make any necessary tweaks and update your branch for merge. -- Reviewers may ask for changes to be made before a PR can be merged, either using - [suggested changes](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/incorporating-feedback-in-your-pull-request) - or normal pull request comments. You can apply suggested changes directly through - the UI, and any other changes can be made in your fork and committed to the PR branch. -- As you update your PR and apply changes, mark each conversation as [resolved](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#resolving-conversations). - -## Run tests - -Open a new virtual environment and then run the tests. - -```bash -poetry shell -pytest +python -m sphinx -b html docs/source docs/build/html ``` - -## Further information - -- [The official Neo4j Python driver](https://github.com/neo4j/neo4j-python-driver) -- [Neo4j GenAI integrations](https://neo4j.com/docs/cypher-manual/current/genai-integrations/) diff --git a/docs/source/api.rst b/docs/source/api.rst index 7e46f2f40..c2921b908 100644 --- a/docs/source/api.rst +++ b/docs/source/api.rst @@ -37,7 +37,7 @@ HybridRetriever HybridCypherRetriever -=============== +===================== .. autoclass:: neo4j_genai.retrievers.hybrid.HybridCypherRetriever :members: diff --git a/src/neo4j_genai/queries.py b/src/neo4j_genai/queries.py deleted file mode 100644 index 752677d5f..000000000 --- a/src/neo4j_genai/queries.py +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright (c) "Neo4j" -# Neo4j Sweden AB [https://neo4j.com] -# # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# # -# https://www.apache.org/licenses/LICENSE-2.0 -# # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from typing import Optional - -from neo4j_genai.types import SearchType - - -def get_search_query( - search_type: SearchType, - return_properties: Optional[list[str]] = None, - retrieval_query: Optional[str] = None, -): - query_map = { - SearchType.VECTOR: ( - "CALL db.index.vector.queryNodes($index_name, $top_k, $query_vector) " - ), - SearchType.HYBRID: ( - "CALL { " - "CALL db.index.vector.queryNodes($vector_index_name, $top_k, $query_vector) " - "YIELD node, score " - "RETURN node, score UNION " - "CALL db.index.fulltext.queryNodes($fulltext_index_name, $query_text, {limit: $top_k}) " - "YIELD node, score " - "WITH collect({node:node, score:score}) AS nodes, max(score) AS max " - "UNWIND nodes AS n " - "RETURN n.node AS node, (n.score / max) AS score " - "} " - "WITH node, max(score) AS score ORDER BY score DESC LIMIT $top_k " - ), - } - - base_query = query_map[search_type] - additional_query = "" - - if retrieval_query: - additional_query += retrieval_query - elif return_properties: - return_properties_cypher = ", ".join([f".{prop}" for prop in return_properties]) - additional_query += "YIELD node, score " - additional_query += f"RETURN node {{{return_properties_cypher}}} as node, score" - else: - additional_query += "RETURN node, score" - - return base_query + additional_query
- -