diff --git a/404.html b/404.html index 19c8403d..532ef488 100644 --- a/404.html +++ b/404.html @@ -3,14 +3,14 @@ -Page Not Found | Groundlight - - +Page Not Found | Groundlight + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/api-reference-docs/_static/documentation_options.js b/api-reference-docs/_static/documentation_options.js index f83ff0dd..c23d6404 100644 --- a/api-reference-docs/_static/documentation_options.js +++ b/api-reference-docs/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '0.11.2', + VERSION: '0.12.0', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/api-reference-docs/genindex.html b/api-reference-docs/genindex.html index f7c11083..03740708 100644 --- a/api-reference-docs/genindex.html +++ b/api-reference-docs/genindex.html @@ -3,7 +3,7 @@ - Index — Groundlight Python SDK 0.11.2 documentation + Index — Groundlight Python SDK 0.12.0 documentation @@ -13,7 +13,7 @@ - + @@ -33,7 +33,7 @@ Groundlight Python SDK
- 0.11.2 + 0.12.0
@@ -105,6 +105,14 @@

A

+
@@ -305,6 +313,10 @@

W

+
diff --git a/api-reference-docs/index.html b/api-reference-docs/index.html index 49747f56..4f1174be 100644 --- a/api-reference-docs/index.html +++ b/api-reference-docs/index.html @@ -4,7 +4,7 @@ - Welcome to Groundlight Python SDK’s documentation! — Groundlight Python SDK 0.11.2 documentation + Welcome to Groundlight Python SDK’s documentation! — Groundlight Python SDK 0.12.0 documentation @@ -14,7 +14,7 @@ - + @@ -35,7 +35,7 @@ Groundlight Python SDK
- 0.11.2 + 0.12.0
@@ -118,9 +118,13 @@

Welcome to Groundlight Python SDK’s documentation! +
Returns:
+

Groundlight client

+
+
Return type:
+

Groundlight

+
-

:return Groundlight client -:rtype Groundlight

@@ -135,9 +139,150 @@

Welcome to Groundlight Python SDK’s documentation!

label (Label or str) – The string “YES” or the string “NO” in answer to the query.

+
Returns:
+

None

+
+
Return type:
+

None

+
+

+ + +
+
+ask_async(detector: Detector | str, image: str | bytes | Image | BytesIO | BufferedReader | UnavailableModule, human_review: str | None = None, inspection_id: str | None = None) ImageQuery
+

Convenience method for submitting an ImageQuery asynchronously. This is equivalent to calling +submit_image_query with want_async=True and wait=0. Use get_image_query to retrieve the result of the +ImageQuery.

+
+
Parameters:
+
    +
  • detector (Detector or str) – the Detector object, or string id of a detector like det_12345

  • +
  • image (str or bytes or Image.Image or BytesIO or BufferedReader or np.ndarray) –

    The image, in several possible formats:

    +
      +
    • filename (string) of a jpeg file

    • +
    • byte array or BytesIO or BufferedReader with jpeg bytes

    • +
    • numpy array with values 0-255 and dimensions (H,W,3) in BGR order +(Note OpenCV uses BGR not RGB. img[:, :, ::-1] will reverse the channels)

    • +
    • PIL Image: Any binary format must be JPEG-encoded already. +Any pixel format will get converted to JPEG at high quality before sending to service.

    • +
    +

  • +
  • human_review (str) – If None or DEFAULT, send the image query for human review +only if the ML prediction is not confident. +If set to ALWAYS, always send the image query for human review. +If set to NEVER, never send the image query for human review.

  • +
  • inspection_id (str) – Most users will omit this. For accounts with Inspection Reports enabled, +this is the ID of the inspection to associate with the image query.

  • +
+
+
Returns:
+

ImageQuery

+
+
Return type:
+

ImageQuery

+
+
+

Example usage:

+
gl = Groundlight()
+detector = gl.get_or_create_detector(
+                name="door",
+                query="Is the door locked?",
+                confidence_threshold=0.9
+            )
+
+image_query = gl.ask_async(
+                detector=detector,
+                image="path/to/image.jpeg")
+
+# the image_query will have an id for later retrieval
+assert image_query.id is not None
+
+# Do not attempt to access the result of this query as the result for all async queries
+# will be None. Your result is being computed asynchronously and will be available
+# later
+assert image_query.result is None
+
+# retrieve the result later or on another machine by calling gl.get_image_query()
+# with the id of the image_query above
+image_query = gl.get_image_query(image_query.id)
+
+# now the result will be available for your use
+assert image_query.result is not None
+
+
+
+ +
+
+ask_confident(detector: Detector | str, image: str | bytes | Image | BytesIO | BufferedReader | UnavailableModule, confidence_threshold: float | None = None, wait: float | None = None) ImageQuery
+
+
Evaluates an image with Groundlight waiting until an answer above the confidence threshold

of the detector is reached or the wait period has passed.

+
+
+
+
Parameters:
+
    +
  • detector (Detector or str) – the Detector object, or string id of a detector like det_12345

  • +
  • image (str or bytes or Image.Image or BytesIO or BufferedReader or np.ndarray) –

    The image, in several possible formats: +- filename (string) of a jpeg file +- byte array or BytesIO or BufferedReader with jpeg bytes +- numpy array with values 0-255 and dimensions (H,W,3) in BGR order

    +
    +

    (Note OpenCV uses BGR not RGB. img[:, :, ::-1] will reverse the channels)

    +
    +
      +
    • PIL Image

    • +
    +

    Any binary format must be JPEG-encoded already. Any pixel format will get +converted to JPEG at high quality before sending to service.

    +

  • +
  • confidence_threshold (float) – The confidence threshold to wait for. +If not set, use the detector’s confidence threshold.

  • +
  • wait (float) – How long to wait (in seconds) for a confident answer.

  • +
+
+
Returns:
+

ImageQuery

+
+
Return type:
+

ImageQuery

+
+
+
+ +
+
+ask_ml(detector: Detector | str, image: str | bytes | Image | BytesIO | BufferedReader | UnavailableModule, wait: float | None = None) ImageQuery
+

Evaluates an image with Groundlight, getting the first answer Groundlight can provide. +:param detector: the Detector object, or string id of a detector like det_12345 +:type detector: Detector or str

+
+
Parameters:
+
    +
  • image (str or bytes or Image.Image or BytesIO or BufferedReader or np.ndarray) –

    The image, in several possible formats: +- filename (string) of a jpeg file +- byte array or BytesIO or BufferedReader with jpeg bytes +- numpy array with values 0-255 and dimensions (H,W,3) in BGR order

    +
    +

    (Note OpenCV uses BGR not RGB. img[:, :, ::-1] will reverse the channels)

    +
    +
      +
    • PIL Image

    • +
    +

    Any binary format must be JPEG-encoded already. Any pixel format will get +converted to JPEG at high quality before sending to service.

    +

  • +
  • wait (float) – How long to wait (in seconds) for any answer.

  • +
+
+
Returns:
+

ImageQuery

+
+
Return type:
+

ImageQuery

+
-

:return None -:rtype None

@@ -153,9 +298,13 @@

Welcome to Groundlight Python SDK’s documentation!

pipeline_config (str) – the pipeline config

+
Returns:
+

Detector

+
+
Return type:
+

Detector

+

-

:return Detector -:rtype Detector

@@ -166,9 +315,13 @@

Welcome to Groundlight Python SDK’s documentation!Parameters:

id (str or Detector) – the detector id

+
Returns:
+

Detector

+
+
Return type:
+

Detector

+

-

:return Detector -:rtype Detector

@@ -179,9 +332,13 @@

Welcome to Groundlight Python SDK’s documentation!Parameters:

name (str) – the detector name

+
Returns:
+

Detector

+
+
Return type:
+

Detector

+

-

:return Detector -:rtype Detector

@@ -192,9 +349,13 @@

Welcome to Groundlight Python SDK’s documentation!Parameters:

id (str) – the image query id

+
Returns:
+

ImageQuery

+
+
Return type:
+

ImageQuery

+

-

:return ImageQuery -:rtype ImageQuery

@@ -212,9 +373,13 @@

Welcome to Groundlight Python SDK’s documentation!

pipeline_config (str) – the pipeline config

+
Returns:
+

Detector

+
+
Return type:
+

Detector

+

-

:return Detector -:rtype Detector

@@ -228,9 +393,13 @@

Welcome to Groundlight Python SDK’s documentation!

page_size (int) – the page size

+
Returns:
+

PaginatedDetectorList

+
+
Return type:
+

PaginatedDetectorList

+

-

:return PaginatedDetectorList -:rtype PaginatedDetectorList

@@ -244,9 +413,13 @@

Welcome to Groundlight Python SDK’s documentation!

page_size (int) – the page size

+
Returns:
+

PaginatedImageQueryList

+
+
Return type:
+

PaginatedImageQueryList

+

-

:return PaginatedImageQueryList -:rtype PaginatedImageQueryList

@@ -254,6 +427,14 @@

Welcome to Groundlight Python SDK’s documentation!start_inspection() str

NOTE: For users with Inspection Reports enabled only. Starts an inspection report and returns the id of the inspection.

+
+
Returns:
+

The unique identifier of the inspection.

+
+
Return type:
+

str

+
+

@@ -261,31 +442,36 @@

Welcome to Groundlight Python SDK’s documentation!stop_inspection(inspection_id: str) str

NOTE: For users with Inspection Reports enabled only. Stops an inspection and raises an exception if the response from the server -indicates that the inspection was not successfully stopped. -Returns a str with result of the inspection (either PASS or FAIL).

+indicates that the inspection was not successfully stopped.

Parameters:
-

inspection_id (str) – The id of the inspection to stop.

+

inspection_id (str) – The unique identifier of the inspection.

+
+
Returns:
+

“PASS” or “FAIL” depending on the result of the inspection.

+
+
Return type:
+

str

-

:return str -:rtype str

-submit_image_query(detector: Detector | str, image: str | bytes | UnavailableModule | BytesIO | BufferedReader | UnavailableModule, wait: float | None = None, human_review: str | None = None, inspection_id: str | None = None) ImageQuery
+submit_image_query(detector: Detector | str, image: str | bytes | Image | BytesIO | BufferedReader | UnavailableModule, wait: float | None = None, patience_time: float | None = None, confidence_threshold: float | None = None, human_review: str | None = None, want_async: bool = False, inspection_id: str | None = None) ImageQuery

Evaluates an image with Groundlight.

Parameters:
+
Returns:
+

ImageQuery

+
+
Return type:
+

ImageQuery

+
-

:return ImageQuery -:rtype ImageQuery

@@ -328,14 +521,18 @@

Welcome to Groundlight Python SDK’s documentation!
Parameters:
    -
  • inspection_id (str) – The id of the inspection to update.

  • -
  • user_provided_key (str) – The key of the metadata to add/update.

  • -
  • user_provided_value (str) – The value of the metadata to add/update.

  • +
  • inspection_id (str) – The unique identifier of the inspection.

  • +
  • user_provided_key (str) – the key in the key/value pair for the inspection metadata.

  • +
  • user_provided_value (str) – the value in the key/value pair for the inspection metadata.

+
Returns:
+

None

+
+
Return type:
+

None

+

-

:return None -:rtype None

@@ -351,9 +548,35 @@

Welcome to Groundlight Python SDK’s documentation!

timeout_sec (float) – The maximum number of seconds to wait.

+
Returns:
+

ImageQuery

+
+
Return type:
+

ImageQuery

+
+

+ + +
+
+wait_for_ml_result(image_query: ImageQuery | str, timeout_sec: float = 30.0) ImageQuery
+

Waits for the first ml result to be returned. +Currently this is done by polling with an exponential back-off.

+
+
Parameters:
+
    +
  • image_query (ImageQuery or str) – An ImageQuery object to poll

  • +
  • confidence_threshold (float) – The minimum confidence level required to return before the timeout.

  • +
  • timeout_sec (float) – The maximum number of seconds to wait.

  • +
+
+
Returns:
+

ImageQuery

+
+
Return type:
+

ImageQuery

+
-

:return ImageQuery -:rtype ImageQuery

diff --git a/api-reference-docs/models.html b/api-reference-docs/models.html index fb439a36..9b9bb382 100644 --- a/api-reference-docs/models.html +++ b/api-reference-docs/models.html @@ -4,7 +4,7 @@ - API Response Objects — Groundlight Python SDK 0.11.2 documentation + API Response Objects — Groundlight Python SDK 0.12.0 documentation @@ -14,7 +14,7 @@ - + @@ -35,7 +35,7 @@ Groundlight Python SDK
- 0.11.2 + 0.12.0
@@ -298,7 +298,15 @@

API Response Objects "description": "What type of result are we returning?" }, "result": { - "$ref": "#/$defs/ClassificationResult" + "anyOf": [ + { + "$ref": "#/$defs/ClassificationResult" + }, + { + "type": "null" + } + ], + "default": null } }, "$defs": { @@ -346,8 +354,7 @@

API Response Objects "created_at", "query", "detector_id", - "result_type", - "result" + "result_type" ] }

@@ -359,7 +366,7 @@

API Response Objects

detector_id (str)

  • id (str)

  • query (str)

  • -
  • result (model.ClassificationResult)

  • +
  • result (model.ClassificationResult | None)

  • result_type (model.ResultTypeEnum)

  • type (model.ImageQueryTypeEnum)

  • @@ -391,7 +398,7 @@

    API Response Objects
    -field result: ClassificationResult [Required]
    +field result: ClassificationResult | None = None
    @@ -717,7 +724,15 @@

    API Response Objects "description": "What type of result are we returning?" }, "result": { - "$ref": "#/$defs/ClassificationResult" + "anyOf": [ + { + "$ref": "#/$defs/ClassificationResult" + }, + { + "type": "null" + } + ], + "default": null } }, "required": [ @@ -726,8 +741,7 @@

    API Response Objects "created_at", "query", "detector_id", - "result_type", - "result" + "result_type" ], "title": "ImageQuery", "type": "object" diff --git a/api-reference-docs/objects.inv b/api-reference-docs/objects.inv index 07fb7bfd..6ddf9b5c 100644 Binary files a/api-reference-docs/objects.inv and b/api-reference-docs/objects.inv differ diff --git a/api-reference-docs/py-modindex.html b/api-reference-docs/py-modindex.html index 49240c0c..3076e561 100644 --- a/api-reference-docs/py-modindex.html +++ b/api-reference-docs/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — Groundlight Python SDK 0.11.2 documentation + Python Module Index — Groundlight Python SDK 0.12.0 documentation @@ -13,7 +13,7 @@ - + @@ -36,7 +36,7 @@ Groundlight Python SDK
    - 0.11.2 + 0.12.0
    diff --git a/api-reference-docs/search.html b/api-reference-docs/search.html index aff5dec0..efc0c628 100644 --- a/api-reference-docs/search.html +++ b/api-reference-docs/search.html @@ -3,7 +3,7 @@ - Search — Groundlight Python SDK 0.11.2 documentation + Search — Groundlight Python SDK 0.12.0 documentation @@ -14,7 +14,7 @@ - + @@ -36,7 +36,7 @@ Groundlight Python SDK
    - 0.11.2 + 0.12.0
    diff --git a/api-reference-docs/searchindex.js b/api-reference-docs/searchindex.js index b832d00d..001a3f8a 100644 --- a/api-reference-docs/searchindex.js +++ b/api-reference-docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "models"], "filenames": ["index.rst", "models.rst"], "titles": ["Welcome to Groundlight Python SDK\u2019s documentation!", "API Response Objects"], "terms": {"For": 0, "detail": 0, "view": 0, "sourc": 0, "code": 0, "visit": 0, "github": 0, "repositori": 0, "class": 0, "client": 0, "endpoint": 0, "str": [0, 1], "none": [0, 1], "api_token": 0, "access": 0, "cloud": 0, "servic": 0, "The": [0, 1], "api": 0, "token": 0, "auth": 0, "i": [0, 1], "specifi": 0, "through": 0, "groundlight_api_token": 0, "environ": 0, "variabl": 0, "default": [0, 1], "exampl": [0, 1], "usag": 0, "gl": 0, "detector": [0, 1], "get_or_create_detector": 0, "name": [0, 1], "door": 0, "queri": [0, 1], "lock": 0, "confidence_threshold": [0, 1], "0": [0, 1], "9": [0, 1], "image_queri": [0, 1], "submit_image_queri": 0, "imag": [0, 1], "path": 0, "jpeg": 0, "wait": 0, "human_review": 0, "alwai": 0, "print": 0, "f": 0, "confid": [0, 1], "result": [0, 1], "poll": 0, "backend": 0, "answer": 0, "wait_for_confident_result": 0, "timeout_sec": 0, "60": 0, "examin": 0, "new": 0, "after": 0, "continu": 0, "train": 0, "ml": 0, "model": [0, 1], "ha": 0, "re": 0, "evalu": 0, "__init__": 0, "construct": 0, "paramet": 0, "option": [0, 1], "differ": 0, "us": [0, 1], "thi": [0, 1], "your": 0, "call": 0, "If": [0, 1], "unset": 0, "fallback": 0, "return": [0, 1], "rtype": 0, "add_label": 0, "imagequeri": [0, 1], "label": [0, 1], "add": 0, "an": 0, "question": [0, 1], "either": 0, "object": 0, "from": 0, "id": [0, 1], "string": [0, 1], "ye": 0, "NO": 0, "create_detector": 0, "float": [0, 1], "pipeline_config": 0, "creat": [0, 1], "given": 0, "threshold": [0, 1], "pipelin": 0, "config": 0, "get_detector": 0, "get": 0, "get_detector_by_nam": 0, "get_image_queri": 0, "tri": 0, "look": 0, "up": 0, "exist": 0, "otherwis": 0, "list_detector": 0, "page": [0, 1], "int": [0, 1], "1": [0, 1], "page_s": 0, "10": 0, "paginateddetectorlist": [0, 1], "list": [0, 1], "out": 0, "you": 0, "own": 0, "number": [0, 1], "size": 0, "list_image_queri": 0, "paginatedimagequerylist": [0, 1], "start_inspect": 0, "note": 0, "user": 0, "inspect": 0, "report": 0, "enabl": 0, "onli": 0, "start": 0, "stop_inspect": 0, "inspection_id": 0, "stop": 0, "rais": 0, "except": 0, "respons": 0, "server": 0, "wa": [0, 1], "successfulli": 0, "pass": 0, "fail": 0, "byte": 0, "unavailablemodul": 0, "bytesio": 0, "bufferedread": 0, "like": 0, "det_12345": 0, "np": 0, "ndarrai": 0, "sever": 0, "possibl": 0, "format": [0, 1], "filenam": 0, "file": 0, "arrai": [0, 1], "numpi": 0, "valu": 0, "255": 0, "dimens": 0, "h": 0, "w": 0, "3": 0, "bgr": 0, "order": 0, "opencv": 0, "rgb": 0, "img": 0, "revers": 0, "channel": 0, "pil": 0, "ani": 0, "binari": 0, "must": 0, "encod": 0, "alreadi": 0, "pixel": 0, "convert": 0, "high": 0, "qualiti": 0, "befor": 0, "send": [0, 1], "how": [0, 1], "long": 0, "second": 0, "human": [0, 1], "review": [0, 1], "predict": [0, 1], "set": 0, "never": 0, "most": 0, "omit": 0, "account": [0, 1], "associ": 0, "update_detector_confidence_threshold": 0, "detector_id": [0, 1], "updat": 0, "update_inspection_metadata": 0, "user_provided_kei": 0, "user_provided_valu": 0, "metadata": 0, "kei": 0, "30": 0, "level": 0, "reach": 0, "current": 0, "done": 0, "exponenti": 0, "back": 0, "off": 0, "minimum": [0, 1], "requir": [0, 1], "timeout": 0, "maximum": [0, 1], "index": 0, "modul": 0, "search": 0, "pydant": 1, "show": 1, "json": 1, "schema": 1, "titl": 1, "type": 1, "properti": 1, "descript": 1, "A": 1, "uniqu": 1, "allof": 1, "ref": 1, "def": 1, "detectortypeenum": 1, "created_at": 1, "when": 1, "date": 1, "time": 1, "At": 1, "short": 1, "maxlength": 1, "200": 1, "about": 1, "group_nam": 1, "which": 1, "group": 1, "should": 1, "part": 1, "anyof": 1, "null": 1, "": 1, "below": 1, "const": 1, "field": 1, "datetim": 1, "confloat": 1, "ge": 1, "le": 1, "constr": 1, "max_length": 1, "constraint": 1, "imagequerytypeenum": 1, "result_typ": 1, "resulttypeenum": 1, "what": 1, "ar": 1, "we": 1, "classificationresult": 1, "On": 1, "scale": 1, "binary_classif": 1, "count": 1, "integ": 1, "123": 1, "next": 1, "uri": 1, "minlength": 1, "http": 1, "org": 1, "4": 1, "previou": 1, "2": 1, "item": 1, "pydantic_cor": 1, "_pydantic_cor": 1, "url": 1, "anyurl": 1}, "objects": {"groundlight": [[0, 0, 0, "-", "client"]], "groundlight.client": [[0, 1, 1, "", "Groundlight"]], "groundlight.client.Groundlight": [[0, 2, 1, "", "__init__"], [0, 2, 1, "", "add_label"], [0, 2, 1, "", "create_detector"], [0, 2, 1, "", "get_detector"], [0, 2, 1, "", "get_detector_by_name"], [0, 2, 1, "", "get_image_query"], [0, 2, 1, "", "get_or_create_detector"], [0, 2, 1, "", "list_detectors"], [0, 2, 1, "", "list_image_queries"], [0, 2, 1, "", "start_inspection"], [0, 2, 1, "", "stop_inspection"], [0, 2, 1, "", "submit_image_query"], [0, 2, 1, "", "update_detector_confidence_threshold"], [0, 2, 1, "", "update_inspection_metadata"], [0, 2, 1, "", "wait_for_confident_result"]], "model": [[1, 3, 1, "", "Detector"], [1, 3, 1, "", "ImageQuery"], [1, 3, 1, "", "PaginatedDetectorList"], [1, 3, 1, "", "PaginatedImageQueryList"]], "model.Detector": [[1, 4, 1, "", "confidence_threshold"], [1, 4, 1, "", "created_at"], [1, 4, 1, "", "group_name"], [1, 4, 1, "", "id"], [1, 4, 1, "", "name"], [1, 4, 1, "", "query"], [1, 4, 1, "", "type"]], "model.ImageQuery": [[1, 4, 1, "", "created_at"], [1, 4, 1, "", "detector_id"], [1, 4, 1, "", "id"], [1, 4, 1, "", "query"], [1, 4, 1, "", "result"], [1, 4, 1, "", "result_type"], [1, 4, 1, "", "type"]], "model.PaginatedDetectorList": [[1, 4, 1, "", "count"], [1, 4, 1, "", "next"], [1, 4, 1, "", "previous"], [1, 4, 1, "", "results"]], "model.PaginatedImageQueryList": [[1, 4, 1, "", "count"], [1, 4, 1, "", "next"], [1, 4, 1, "", "previous"], [1, 4, 1, "", "results"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:pydantic_model", "4": "py:pydantic_field"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "pydantic_model", "Python model"], "4": ["py", "pydantic_field", "Python field"]}, "titleterms": {"welcom": 0, "groundlight": 0, "python": 0, "sdk": 0, "": 0, "document": 0, "content": 0, "indic": 0, "tabl": 0, "api": 1, "respons": 1, "object": 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": 60}, "alltitles": {"Welcome to Groundlight Python SDK\u2019s documentation!": [[0, "welcome-to-groundlight-python-sdk-s-documentation"]], "Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "API Response Objects": [[1, "api-response-objects"]]}, "indexentries": {"groundlight (class in groundlight.client)": [[0, "groundlight.client.Groundlight"]], "__init__() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.__init__"]], "add_label() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.add_label"]], "create_detector() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.create_detector"]], "get_detector() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_detector"]], "get_detector_by_name() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_detector_by_name"]], "get_image_query() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_image_query"]], "get_or_create_detector() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_or_create_detector"]], "groundlight.client": [[0, "module-groundlight.client"]], "list_detectors() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.list_detectors"]], "list_image_queries() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.list_image_queries"]], "module": [[0, "module-groundlight.client"]], "start_inspection() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.start_inspection"]], "stop_inspection() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.stop_inspection"]], "submit_image_query() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.submit_image_query"]], "update_detector_confidence_threshold() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.update_detector_confidence_threshold"]], "update_inspection_metadata() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.update_inspection_metadata"]], "wait_for_confident_result() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.wait_for_confident_result"]], "confidence_threshold (model.detector attribute)": [[1, "model.Detector.confidence_threshold"]], "count (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.count"]], "count (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.count"]], "created_at (model.detector attribute)": [[1, "model.Detector.created_at"]], "created_at (model.imagequery attribute)": [[1, "model.ImageQuery.created_at"]], "detector_id (model.imagequery attribute)": [[1, "model.ImageQuery.detector_id"]], "group_name (model.detector attribute)": [[1, "model.Detector.group_name"]], "id (model.detector attribute)": [[1, "model.Detector.id"]], "id (model.imagequery attribute)": [[1, "model.ImageQuery.id"]], "name (model.detector attribute)": [[1, "model.Detector.name"]], "next (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.next"]], "next (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.next"]], "previous (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.previous"]], "previous (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.previous"]], "query (model.detector attribute)": [[1, "model.Detector.query"]], "query (model.imagequery attribute)": [[1, "model.ImageQuery.query"]], "result (model.imagequery attribute)": [[1, "model.ImageQuery.result"]], "result_type (model.imagequery attribute)": [[1, "model.ImageQuery.result_type"]], "results (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.results"]], "results (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.results"]], "type (model.detector attribute)": [[1, "model.Detector.type"]], "type (model.imagequery attribute)": [[1, "model.ImageQuery.type"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "models"], "filenames": ["index.rst", "models.rst"], "titles": ["Welcome to Groundlight Python SDK\u2019s documentation!", "API Response Objects"], "terms": {"For": 0, "detail": 0, "view": 0, "sourc": 0, "code": 0, "visit": 0, "github": 0, "repositori": 0, "class": 0, "client": 0, "endpoint": 0, "str": [0, 1], "none": [0, 1], "api_token": 0, "access": 0, "cloud": 0, "servic": 0, "The": [0, 1], "api": 0, "token": 0, "auth": 0, "i": [0, 1], "specifi": 0, "through": 0, "groundlight_api_token": 0, "environ": 0, "variabl": 0, "default": [0, 1], "exampl": [0, 1], "usag": 0, "gl": 0, "detector": [0, 1], "get_or_create_detector": 0, "name": [0, 1], "door": 0, "queri": [0, 1], "lock": 0, "confidence_threshold": [0, 1], "0": [0, 1], "9": [0, 1], "image_queri": [0, 1], "submit_image_queri": 0, "imag": [0, 1], "path": 0, "jpeg": 0, "wait": 0, "human_review": 0, "alwai": 0, "print": 0, "f": 0, "confid": [0, 1], "result": [0, 1], "poll": 0, "backend": 0, "answer": 0, "wait_for_confident_result": 0, "timeout_sec": 0, "60": 0, "examin": 0, "new": 0, "after": 0, "continu": 0, "train": 0, "ml": 0, "model": [0, 1], "ha": 0, "re": 0, "evalu": 0, "__init__": 0, "construct": 0, "paramet": 0, "option": [0, 1], "differ": 0, "us": [0, 1], "thi": [0, 1], "your": 0, "call": 0, "If": [0, 1], "unset": 0, "fallback": 0, "return": [0, 1], "type": [0, 1], "add_label": 0, "imagequeri": [0, 1], "label": [0, 1], "add": 0, "an": 0, "question": [0, 1], "either": 0, "object": 0, "from": 0, "id": [0, 1], "string": [0, 1], "ye": 0, "NO": 0, "ask_async": 0, "byte": 0, "bytesio": 0, "bufferedread": 0, "unavailablemodul": 0, "inspection_id": 0, "conveni": 0, "method": 0, "submit": 0, "asynchron": 0, "equival": 0, "want_async": 0, "true": 0, "get_image_queri": 0, "retriev": 0, "like": 0, "det_12345": 0, "np": 0, "ndarrai": 0, "sever": 0, "possibl": 0, "format": [0, 1], "filenam": 0, "file": 0, "arrai": [0, 1], "numpi": 0, "valu": 0, "255": 0, "dimens": 0, "h": 0, "w": 0, "3": 0, "bgr": 0, "order": 0, "note": 0, "opencv": 0, "rgb": 0, "img": 0, "1": [0, 1], "revers": 0, "channel": 0, "pil": 0, "ani": 0, "binari": 0, "must": 0, "encod": 0, "alreadi": 0, "pixel": 0, "get": 0, "convert": 0, "high": 0, "qualiti": 0, "befor": 0, "send": [0, 1], "human": [0, 1], "review": [0, 1], "onli": 0, "predict": [0, 1], "set": 0, "never": 0, "most": 0, "user": 0, "omit": 0, "account": [0, 1], "inspect": 0, "report": 0, "enabl": 0, "associ": 0, "have": 0, "later": 0, "assert": 0, "do": 0, "attempt": 0, "all": 0, "async": 0, "being": 0, "comput": 0, "avail": 0, "anoth": 0, "machin": 0, "abov": 0, "now": 0, "ask_confid": 0, "float": [0, 1], "until": 0, "threshold": [0, 1], "reach": 0, "period": 0, "pass": 0, "how": [0, 1], "long": 0, "second": 0, "ask_ml": 0, "first": 0, "can": 0, "provid": 0, "param": 0, "create_detector": 0, "pipeline_config": 0, "creat": [0, 1], "given": 0, "pipelin": 0, "config": 0, "get_detector": 0, "get_detector_by_nam": 0, "tri": 0, "look": 0, "up": 0, "exist": 0, "otherwis": 0, "list_detector": 0, "page": [0, 1], "int": [0, 1], "page_s": 0, "10": 0, "paginateddetectorlist": [0, 1], "list": [0, 1], "out": 0, "you": 0, "own": 0, "number": [0, 1], "size": 0, "list_image_queri": 0, "paginatedimagequerylist": [0, 1], "start_inspect": 0, "start": 0, "uniqu": [0, 1], "identifi": 0, "stop_inspect": 0, "stop": 0, "rais": 0, "except": 0, "respons": 0, "server": 0, "wa": [0, 1], "successfulli": 0, "fail": 0, "depend": 0, "patience_tim": 0, "bool": 0, "fals": 0, "soon": 0, "update_detector_confidence_threshold": 0, "detector_id": [0, 1], "updat": 0, "rtype": 0, "update_inspection_metadata": 0, "user_provided_kei": 0, "user_provided_valu": 0, "metadata": 0, "kei": 0, "pair": 0, "30": 0, "level": 0, "current": 0, "done": 0, "exponenti": 0, "back": 0, "off": 0, "minimum": [0, 1], "requir": [0, 1], "timeout": 0, "maximum": [0, 1], "wait_for_ml_result": 0, "index": 0, "modul": 0, "search": 0, "pydant": 1, "show": 1, "json": 1, "schema": 1, "titl": 1, "properti": 1, "descript": 1, "A": 1, "allof": 1, "ref": 1, "def": 1, "detectortypeenum": 1, "created_at": 1, "when": 1, "date": 1, "time": 1, "At": 1, "short": 1, "maxlength": 1, "200": 1, "about": 1, "group_nam": 1, "which": 1, "group": 1, "should": 1, "part": 1, "anyof": 1, "null": 1, "": 1, "below": 1, "const": 1, "field": 1, "datetim": 1, "confloat": 1, "ge": 1, "le": 1, "constr": 1, "max_length": 1, "constraint": 1, "imagequerytypeenum": 1, "result_typ": 1, "resulttypeenum": 1, "what": 1, "ar": 1, "we": 1, "classificationresult": 1, "On": 1, "scale": 1, "binary_classif": 1, "count": 1, "integ": 1, "123": 1, "next": 1, "uri": 1, "minlength": 1, "http": 1, "org": 1, "4": 1, "previou": 1, "2": 1, "item": 1, "pydantic_cor": 1, "_pydantic_cor": 1, "url": 1, "anyurl": 1}, "objects": {"groundlight": [[0, 0, 0, "-", "client"]], "groundlight.client": [[0, 1, 1, "", "Groundlight"]], "groundlight.client.Groundlight": [[0, 2, 1, "", "__init__"], [0, 2, 1, "", "add_label"], [0, 2, 1, "", "ask_async"], [0, 2, 1, "", "ask_confident"], [0, 2, 1, "", "ask_ml"], [0, 2, 1, "", "create_detector"], [0, 2, 1, "", "get_detector"], [0, 2, 1, "", "get_detector_by_name"], [0, 2, 1, "", "get_image_query"], [0, 2, 1, "", "get_or_create_detector"], [0, 2, 1, "", "list_detectors"], [0, 2, 1, "", "list_image_queries"], [0, 2, 1, "", "start_inspection"], [0, 2, 1, "", "stop_inspection"], [0, 2, 1, "", "submit_image_query"], [0, 2, 1, "", "update_detector_confidence_threshold"], [0, 2, 1, "", "update_inspection_metadata"], [0, 2, 1, "", "wait_for_confident_result"], [0, 2, 1, "", "wait_for_ml_result"]], "model": [[1, 3, 1, "", "Detector"], [1, 3, 1, "", "ImageQuery"], [1, 3, 1, "", "PaginatedDetectorList"], [1, 3, 1, "", "PaginatedImageQueryList"]], "model.Detector": [[1, 4, 1, "", "confidence_threshold"], [1, 4, 1, "", "created_at"], [1, 4, 1, "", "group_name"], [1, 4, 1, "", "id"], [1, 4, 1, "", "name"], [1, 4, 1, "", "query"], [1, 4, 1, "", "type"]], "model.ImageQuery": [[1, 4, 1, "", "created_at"], [1, 4, 1, "", "detector_id"], [1, 4, 1, "", "id"], [1, 4, 1, "", "query"], [1, 4, 1, "", "result"], [1, 4, 1, "", "result_type"], [1, 4, 1, "", "type"]], "model.PaginatedDetectorList": [[1, 4, 1, "", "count"], [1, 4, 1, "", "next"], [1, 4, 1, "", "previous"], [1, 4, 1, "", "results"]], "model.PaginatedImageQueryList": [[1, 4, 1, "", "count"], [1, 4, 1, "", "next"], [1, 4, 1, "", "previous"], [1, 4, 1, "", "results"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:pydantic_model", "4": "py:pydantic_field"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "pydantic_model", "Python model"], "4": ["py", "pydantic_field", "Python field"]}, "titleterms": {"welcom": 0, "groundlight": 0, "python": 0, "sdk": 0, "": 0, "document": 0, "content": 0, "indic": 0, "tabl": 0, "api": 1, "respons": 1, "object": 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": 60}, "alltitles": {"Welcome to Groundlight Python SDK\u2019s documentation!": [[0, "welcome-to-groundlight-python-sdk-s-documentation"]], "Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "API Response Objects": [[1, "api-response-objects"]]}, "indexentries": {"groundlight (class in groundlight.client)": [[0, "groundlight.client.Groundlight"]], "__init__() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.__init__"]], "add_label() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.add_label"]], "ask_async() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.ask_async"]], "ask_confident() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.ask_confident"]], "ask_ml() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.ask_ml"]], "create_detector() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.create_detector"]], "get_detector() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_detector"]], "get_detector_by_name() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_detector_by_name"]], "get_image_query() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_image_query"]], "get_or_create_detector() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.get_or_create_detector"]], "groundlight.client": [[0, "module-groundlight.client"]], "list_detectors() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.list_detectors"]], "list_image_queries() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.list_image_queries"]], "module": [[0, "module-groundlight.client"]], "start_inspection() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.start_inspection"]], "stop_inspection() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.stop_inspection"]], "submit_image_query() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.submit_image_query"]], "update_detector_confidence_threshold() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.update_detector_confidence_threshold"]], "update_inspection_metadata() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.update_inspection_metadata"]], "wait_for_confident_result() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.wait_for_confident_result"]], "wait_for_ml_result() (groundlight.client.groundlight method)": [[0, "groundlight.client.Groundlight.wait_for_ml_result"]], "confidence_threshold (model.detector attribute)": [[1, "model.Detector.confidence_threshold"]], "count (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.count"]], "count (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.count"]], "created_at (model.detector attribute)": [[1, "model.Detector.created_at"]], "created_at (model.imagequery attribute)": [[1, "model.ImageQuery.created_at"]], "detector_id (model.imagequery attribute)": [[1, "model.ImageQuery.detector_id"]], "group_name (model.detector attribute)": [[1, "model.Detector.group_name"]], "id (model.detector attribute)": [[1, "model.Detector.id"]], "id (model.imagequery attribute)": [[1, "model.ImageQuery.id"]], "name (model.detector attribute)": [[1, "model.Detector.name"]], "next (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.next"]], "next (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.next"]], "previous (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.previous"]], "previous (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.previous"]], "query (model.detector attribute)": [[1, "model.Detector.query"]], "query (model.imagequery attribute)": [[1, "model.ImageQuery.query"]], "result (model.imagequery attribute)": [[1, "model.ImageQuery.result"]], "result_type (model.imagequery attribute)": [[1, "model.ImageQuery.result_type"]], "results (model.paginateddetectorlist attribute)": [[1, "model.PaginatedDetectorList.results"]], "results (model.paginatedimagequerylist attribute)": [[1, "model.PaginatedImageQueryList.results"]], "type (model.detector attribute)": [[1, "model.Detector.type"]], "type (model.imagequery attribute)": [[1, "model.ImageQuery.type"]]}}) \ No newline at end of file diff --git a/assets/css/styles.7b259770.css b/assets/css/styles.196046c5.css similarity index 71% rename from assets/css/styles.7b259770.css rename to assets/css/styles.196046c5.css index b4a46439..8c6fe294 100644 --- a/assets/css/styles.7b259770.css +++ b/assets/css/styles.196046c5.css @@ -1 +1 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e4b85;--ifm-color-primary-dark:#294378;--ifm-color-primary-darker:#274071;--ifm-color-primary-darkest:#20345d;--ifm-color-primary-light:#335292;--ifm-color-primary-lighter:#355699;--ifm-color-primary-lightest:#3c61ad;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items,.searchResultItem_U687>h2{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#71a3e5;--ifm-color-primary-dark:#5490e0;--ifm-color-primary-darker:#4687dd;--ifm-color-primary-darkest:#256cca;--ifm-color-primary-light:#8eb6ea;--ifm-color-primary-lighter:#9cbfed;--ifm-color-primary-lightest:#c8dbf5;--docusaurus-highlighted-code-line-bg:#4469a54d}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.hideAction_vcyE>svg,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.buttons_AeoN,.features_t9lD{align-items:center;display:flex}.features_t9lD{padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{justify-content:center}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e4b85;--ifm-color-primary-dark:#294378;--ifm-color-primary-darker:#274071;--ifm-color-primary-darkest:#20345d;--ifm-color-primary-light:#335292;--ifm-color-primary-lighter:#355699;--ifm-color-primary-lightest:#3c61ad;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items,.searchResultItem_U687>h2{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#71a3e5;--ifm-color-primary-dark:#5490e0;--ifm-color-primary-darker:#4687dd;--ifm-color-primary-darkest:#256cca;--ifm-color-primary-light:#8eb6ea;--ifm-color-primary-lighter:#9cbfed;--ifm-color-primary-lightest:#c8dbf5;--docusaurus-highlighted-code-line-bg:#4469a54d}#docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.hideAction_vcyE>svg,.page-content[data-id=redirect],.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.buttons_AeoN,.features_t9lD{align-items:center;display:flex}.features_t9lD{padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{justify-content:center}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/4178ee1d.0cbf1d53.js b/assets/js/4178ee1d.0cbf1d53.js deleted file mode 100644 index 0c9a5d3a..00000000 --- a/assets/js/4178ee1d.0cbf1d53.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[859],{3905:(e,r,t)=>{t.d(r,{Zo:()=>f,kt:()=>m});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),l=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},f=function(e){var r=l(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,f=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=a,m=s["".concat(p,".").concat(d)]||s[d]||u[d]||o;return t?n.createElement(m,c(c({ref:r},f),{},{components:t})):n.createElement(m,c({ref:r},f))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=d;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=t(7462),a=(t(7294),t(3905));const o={},c="API Reference",i={unversionedId:"api-reference/api-reference",id:"api-reference/api-reference",title:"API Reference",description:"Click here to access a detailed documentation of the SDK with all available methods.",source:"@site/docs/api-reference/api-reference.md",sourceDirName:"api-reference",slug:"/api-reference/",permalink:"/python-sdk/docs/api-reference/",draft:!1,editUrl:"https://github.com/groundlight/python-sdk/tree/main/docs/docs/api-reference/api-reference.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Setting up an ESP32 Camera Board",permalink:"/python-sdk/docs/iot/"}},p={},l=[],f={toc:l},s="wrapper";function u(e){let{components:r,...t}=e;return(0,a.kt)(s,(0,n.Z)({},f,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"api-reference"},"API Reference"),(0,a.kt)("p",null,"Click ",(0,a.kt)("a",{parentName:"p",href:"pathname:///python-sdk/api-reference-docs/"},"here")," to access a detailed documentation of the SDK with all available methods."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4178ee1d.70661d3b.js b/assets/js/4178ee1d.70661d3b.js new file mode 100644 index 00000000..afa81244 --- /dev/null +++ b/assets/js/4178ee1d.70661d3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[859],{3905:(e,r,t)=>{t.d(r,{Zo:()=>f,kt:()=>m});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),l=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},f=function(e){var r=l(e.components);return n.createElement(p.Provider,{value:r},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,f=a(e,["components","mdxType","originalType","parentName"]),u=l(t),d=o,m=u["".concat(p,".").concat(d)]||u[d]||s[d]||i;return t?n.createElement(m,c(c({ref:r},f),{},{components:t})):n.createElement(m,c({ref:r},f))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=d;var a={};for(var p in r)hasOwnProperty.call(r,p)&&(a[p]=r[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>s,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=t(7462),o=(t(7294),t(3905));const i={id:"redirect",title:"API Reference",hide_title:!0},c=void 0,a={unversionedId:"api-reference/redirect",id:"api-reference/redirect",title:"API Reference",description:"",source:"@site/docs/api-reference/api-reference.md",sourceDirName:"api-reference",slug:"/api-reference/",permalink:"/python-sdk/docs/api-reference/",draft:!1,editUrl:"https://github.com/groundlight/python-sdk/tree/main/docs/docs/api-reference/api-reference.md",tags:[],version:"current",frontMatter:{id:"redirect",title:"API Reference",hide_title:!0},sidebar:"tutorialSidebar",previous:{title:"Setting up an ESP32 Camera Board",permalink:"/python-sdk/docs/iot/"}},p={},l=[],f={toc:l},u="wrapper";function s(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},f,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("meta",{"http-equiv":"refresh",content:"0; url=/python-sdk/api-reference-docs/"}))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.60079538.js b/assets/js/935f2afb.60079538.js deleted file mode 100644 index 5b35cb8a..00000000 --- a/assets/js/935f2afb.60079538.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[53],{1109:i=>{i.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"API Tokens","href":"/python-sdk/docs/getting-started/api-tokens","docId":"getting-started/api-tokens"},{"type":"link","label":"Writing Queries","href":"/python-sdk/docs/getting-started/writing-queries","docId":"getting-started/writing-queries"},{"type":"link","label":"A Serious Example: Retail Analytics","href":"/python-sdk/docs/getting-started/retail-analytics","docId":"getting-started/retail-analytics"},{"type":"link","label":"A Fun Example: Dog-on-Couch Detector","href":"/python-sdk/docs/getting-started/dog-on-couch","docId":"getting-started/dog-on-couch"}],"href":"/python-sdk/docs/getting-started/"},{"type":"category","label":"Building Applications","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Grabbing Images","href":"/python-sdk/docs/building-applications/grabbing-images","docId":"building-applications/grabbing-images"},{"type":"link","label":"Working with Detectors","href":"/python-sdk/docs/building-applications/working-with-detectors","docId":"building-applications/working-with-detectors"},{"type":"link","label":"Confidence Levels","href":"/python-sdk/docs/building-applications/managing-confidence","docId":"building-applications/managing-confidence"},{"type":"link","label":"Using Groundlight on the edge","href":"/python-sdk/docs/building-applications/edge","docId":"building-applications/edge"},{"type":"link","label":"Handling Server Errors","href":"/python-sdk/docs/building-applications/handling-errors","docId":"building-applications/handling-errors"},{"type":"link","label":"Industrial and Manufacturing Applications","href":"/python-sdk/docs/building-applications/industrial","docId":"building-applications/industrial"}],"href":"/python-sdk/docs/building-applications/"},{"type":"category","label":"Installation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Installing on Linux","href":"/python-sdk/docs/installation/linux","docId":"installation/linux"},{"type":"link","label":"Installing on macOS","href":"/python-sdk/docs/installation/macos","docId":"installation/macos"},{"type":"link","label":"Installing on Windows","href":"/python-sdk/docs/installation/windows","docId":"installation/windows"},{"type":"link","label":"Installing on Raspberry Pi","href":"/python-sdk/docs/installation/raspberry-pi","docId":"installation/raspberry-pi"},{"type":"link","label":"Installing on NVIDIA Jetson","href":"/python-sdk/docs/installation/nvidia-jetson","docId":"installation/nvidia-jetson"},{"type":"link","label":"Optional libraries","href":"/python-sdk/docs/installation/optional-libraries","docId":"installation/optional-libraries"},{"type":"link","label":"Monitoring Notification Server","href":"/python-sdk/docs/installation/monitoring-notification-server","docId":"installation/monitoring-notification-server"}],"href":"/python-sdk/docs/installation/"},{"type":"link","label":"IoT","href":"/python-sdk/docs/iot/","docId":"iot/esp32cam"},{"type":"link","label":"API Reference","href":"/python-sdk/docs/api-reference/","docId":"api-reference/api-reference"}]},"docs":{"api-reference/api-reference":{"id":"api-reference/api-reference","title":"API Reference","description":"Click here to access a detailed documentation of the SDK with all available methods.","sidebar":"tutorialSidebar"},"building-applications/building-applications":{"id":"building-applications/building-applications","title":"Building Applications","description":"Groundlight provides a powerful \\"computer vision powered by natural language\\" system that enables you to build visual applications with minimal code. With Groundlight, you can quickly create applications for various use cases, from simple object detection to complex visual analysis.","sidebar":"tutorialSidebar"},"building-applications/edge":{"id":"building-applications/edge","title":"Using Groundlight on the edge","description":"Starting your model evaluations at the edge reduces latency, cost, network bandwidth, and energy. Once you have downloaded and installed your Groundlight edge models, you can configure the Groundlight SDK to use your edge environment by configuring the \'endpoint\' which the SDK connects to. You can do this either directly in code as such:","sidebar":"tutorialSidebar"},"building-applications/grabbing-images":{"id":"building-applications/grabbing-images","title":"Grabbing Images","description":"Groundlight\'s SDK accepts images in many popular formats, including PIL, OpenCV, and numpy arrays.","sidebar":"tutorialSidebar"},"building-applications/handling-errors":{"id":"building-applications/handling-errors","title":"Handling Server Errors","description":"When building applications with the Groundlight SDK, you may encounter server errors during API calls. This page covers how to handle such errors and build robust code that can gracefully handle exceptions.","sidebar":"tutorialSidebar"},"building-applications/industrial":{"id":"building-applications/industrial","title":"Industrial and Manufacturing Applications","description":"Modern natural language-based computer vision is transforming industrial and manufacturing applications by enabling more intuitive interaction with automation systems. Groundlight offers cutting-edge computer vision technology that can be seamlessly integrated into various industrial processes, enhancing efficiency, productivity, and quality control.","sidebar":"tutorialSidebar"},"building-applications/managing-confidence":{"id":"building-applications/managing-confidence","title":"Confidence Levels","description":"Groundlight gives you a simple way to control the trade-off of latency against accuracy. The longer you can wait for an answer to your image query, the better accuracy you can get. In particular, if the ML models are unsure of the best response, they will escalate the image query to more intensive analysis with more complex models and real-time human monitors as needed. Your code can easily wait for this delayed response. Either way, these new results are automatically trained into your models so your next queries will get better results faster.","sidebar":"tutorialSidebar"},"building-applications/working-with-detectors":{"id":"building-applications/working-with-detectors","title":"Working with Detectors","description":"Explicitly create a new detector","sidebar":"tutorialSidebar"},"getting-started/api-tokens":{"id":"getting-started/api-tokens","title":"API Tokens","description":"About API Tokens","sidebar":"tutorialSidebar"},"getting-started/dog-on-couch":{"id":"getting-started/dog-on-couch","title":"A Fun Example: Dog-on-Couch Detector","description":"Here is a whimsical example of how you could use Groundlight in your home to keep your dog off the couch. This document will guide you through creating a complete application. If the dog is detected on the couch, the application will play a pre-recorded sound over the computer\'s speakers, instructing the dog to get off the couch. Be sure to record your own voice so that your dog pays attention to you.","sidebar":"tutorialSidebar"},"getting-started/getting-started":{"id":"getting-started/getting-started","title":"Getting Started","description":"Computer Vision powered by Natural Language","sidebar":"tutorialSidebar"},"getting-started/retail-analytics":{"id":"getting-started/retail-analytics","title":"A Serious Example: Retail Analytics","description":"Tracking utilization of a customer service counter","sidebar":"tutorialSidebar"},"getting-started/writing-queries":{"id":"getting-started/writing-queries","title":"Writing Queries","description":"Introduction","sidebar":"tutorialSidebar"},"installation/installation":{"id":"installation/installation","title":"Installation","description":"Welcome to the Groundlight SDK installation guide. In this guide, you\'ll find step-by-step instructions on how to install and set up the Groundlight SDK on various platforms.","sidebar":"tutorialSidebar"},"installation/linux":{"id":"installation/linux","title":"Installing on Linux","description":"This guide will help you install the Groundlight SDK on Linux. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/macos":{"id":"installation/macos","title":"Installing on macOS","description":"This guide will help you install the Groundlight SDK on macOS. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/monitoring-notification-server":{"id":"installation/monitoring-notification-server","title":"Monitoring Notification Server","description":"This is the easiest way to deploy your Groundlight detectors on a linux computer. All configuration is done through a web user interface, and no code development is required.","sidebar":"tutorialSidebar"},"installation/nvidia-jetson":{"id":"installation/nvidia-jetson","title":"Installing on NVIDIA Jetson","description":"This guide will help you install the Groundlight SDK on NVIDIA Jetson devices. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/optional-libraries":{"id":"installation/optional-libraries","title":"Optional libraries","description":"Smaller is better!","sidebar":"tutorialSidebar"},"installation/raspberry-pi":{"id":"installation/raspberry-pi","title":"Installing on Raspberry Pi","description":"This guide will help you install the Groundlight SDK on Raspberry Pi. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/windows":{"id":"installation/windows","title":"Installing on Windows","description":"This guide will help you install the Groundlight SDK on Windows. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"iot/esp32cam":{"id":"iot/esp32cam","title":"Setting up an ESP32 Camera Board","description":"Groundlight supplies a tool for no-code deployment of a detector to an ESP32 Camera board. You can find it at https://iot.groundlight.ai/espcam.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.cacc6174.js b/assets/js/935f2afb.cacc6174.js new file mode 100644 index 00000000..596dbaff --- /dev/null +++ b/assets/js/935f2afb.cacc6174.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[53],{1109:i=>{i.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"API Tokens","href":"/python-sdk/docs/getting-started/api-tokens","docId":"getting-started/api-tokens"},{"type":"link","label":"Writing Queries","href":"/python-sdk/docs/getting-started/writing-queries","docId":"getting-started/writing-queries"},{"type":"link","label":"A Serious Example: Retail Analytics","href":"/python-sdk/docs/getting-started/retail-analytics","docId":"getting-started/retail-analytics"},{"type":"link","label":"A Fun Example: Dog-on-Couch Detector","href":"/python-sdk/docs/getting-started/dog-on-couch","docId":"getting-started/dog-on-couch"}],"href":"/python-sdk/docs/getting-started/"},{"type":"category","label":"Building Applications","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Grabbing Images","href":"/python-sdk/docs/building-applications/grabbing-images","docId":"building-applications/grabbing-images"},{"type":"link","label":"Working with Detectors","href":"/python-sdk/docs/building-applications/working-with-detectors","docId":"building-applications/working-with-detectors"},{"type":"link","label":"Confidence Levels","href":"/python-sdk/docs/building-applications/managing-confidence","docId":"building-applications/managing-confidence"},{"type":"link","label":"Using Groundlight on the edge","href":"/python-sdk/docs/building-applications/edge","docId":"building-applications/edge"},{"type":"link","label":"Handling Server Errors","href":"/python-sdk/docs/building-applications/handling-errors","docId":"building-applications/handling-errors"},{"type":"link","label":"Industrial and Manufacturing Applications","href":"/python-sdk/docs/building-applications/industrial","docId":"building-applications/industrial"}],"href":"/python-sdk/docs/building-applications/"},{"type":"category","label":"Installation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Installing on Linux","href":"/python-sdk/docs/installation/linux","docId":"installation/linux"},{"type":"link","label":"Installing on macOS","href":"/python-sdk/docs/installation/macos","docId":"installation/macos"},{"type":"link","label":"Installing on Windows","href":"/python-sdk/docs/installation/windows","docId":"installation/windows"},{"type":"link","label":"Installing on Raspberry Pi","href":"/python-sdk/docs/installation/raspberry-pi","docId":"installation/raspberry-pi"},{"type":"link","label":"Installing on NVIDIA Jetson","href":"/python-sdk/docs/installation/nvidia-jetson","docId":"installation/nvidia-jetson"},{"type":"link","label":"Optional libraries","href":"/python-sdk/docs/installation/optional-libraries","docId":"installation/optional-libraries"},{"type":"link","label":"Monitoring Notification Server","href":"/python-sdk/docs/installation/monitoring-notification-server","docId":"installation/monitoring-notification-server"}],"href":"/python-sdk/docs/installation/"},{"type":"link","label":"IoT","href":"/python-sdk/docs/iot/","docId":"iot/esp32cam"},{"type":"link","label":"API Reference","href":"/python-sdk/docs/api-reference/","docId":"api-reference/redirect"}]},"docs":{"api-reference/redirect":{"id":"api-reference/redirect","title":"API Reference","description":"","sidebar":"tutorialSidebar"},"building-applications/building-applications":{"id":"building-applications/building-applications","title":"Building Applications","description":"Groundlight provides a powerful \\"computer vision powered by natural language\\" system that enables you to build visual applications with minimal code. With Groundlight, you can quickly create applications for various use cases, from simple object detection to complex visual analysis.","sidebar":"tutorialSidebar"},"building-applications/edge":{"id":"building-applications/edge","title":"Using Groundlight on the edge","description":"If your account has access to edge models, you can download and install them to your edge devices.","sidebar":"tutorialSidebar"},"building-applications/grabbing-images":{"id":"building-applications/grabbing-images","title":"Grabbing Images","description":"Groundlight\'s SDK accepts images in many popular formats, including PIL, OpenCV, and numpy arrays.","sidebar":"tutorialSidebar"},"building-applications/handling-errors":{"id":"building-applications/handling-errors","title":"Handling Server Errors","description":"When building applications with the Groundlight SDK, you may encounter server errors during API calls. This page covers how to handle such errors and build robust code that can gracefully handle exceptions.","sidebar":"tutorialSidebar"},"building-applications/industrial":{"id":"building-applications/industrial","title":"Industrial and Manufacturing Applications","description":"Modern natural language-based computer vision is transforming industrial and manufacturing applications by enabling more intuitive interaction with automation systems. Groundlight offers cutting-edge computer vision technology that can be seamlessly integrated into various industrial processes, enhancing efficiency, productivity, and quality control.","sidebar":"tutorialSidebar"},"building-applications/managing-confidence":{"id":"building-applications/managing-confidence","title":"Confidence Levels","description":"Groundlight gives you a simple way to control the trade-off of latency against accuracy. The longer you can wait for an answer to your image query, the better accuracy you can get. In particular, if the ML models are unsure of the best response, they will escalate the image query to more intensive analysis with more complex models and real-time human monitors as needed. Your code can easily wait for this delayed response. Either way, these new results are automatically trained into your models so your next queries will get better results faster.","sidebar":"tutorialSidebar"},"building-applications/working-with-detectors":{"id":"building-applications/working-with-detectors","title":"Working with Detectors","description":"Explicitly create a new detector","sidebar":"tutorialSidebar"},"getting-started/api-tokens":{"id":"getting-started/api-tokens","title":"API Tokens","description":"About API Tokens","sidebar":"tutorialSidebar"},"getting-started/dog-on-couch":{"id":"getting-started/dog-on-couch","title":"A Fun Example: Dog-on-Couch Detector","description":"Here is a whimsical example of how you could use Groundlight in your home to keep your dog off the couch. This document will guide you through creating a complete application. If the dog is detected on the couch, the application will play a pre-recorded sound over the computer\'s speakers, instructing the dog to get off the couch. Be sure to record your own voice so that your dog pays attention to you.","sidebar":"tutorialSidebar"},"getting-started/getting-started":{"id":"getting-started/getting-started","title":"Getting Started","description":"Computer Vision powered by Natural Language","sidebar":"tutorialSidebar"},"getting-started/retail-analytics":{"id":"getting-started/retail-analytics","title":"A Serious Example: Retail Analytics","description":"Tracking utilization of a customer service counter","sidebar":"tutorialSidebar"},"getting-started/writing-queries":{"id":"getting-started/writing-queries","title":"Writing Queries","description":"Introduction","sidebar":"tutorialSidebar"},"installation/installation":{"id":"installation/installation","title":"Installation","description":"Welcome to the Groundlight SDK installation guide. In this guide, you\'ll find step-by-step instructions on how to install and set up the Groundlight SDK on various platforms.","sidebar":"tutorialSidebar"},"installation/linux":{"id":"installation/linux","title":"Installing on Linux","description":"This guide will help you install the Groundlight SDK on Linux. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/macos":{"id":"installation/macos","title":"Installing on macOS","description":"This guide will help you install the Groundlight SDK on macOS. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/monitoring-notification-server":{"id":"installation/monitoring-notification-server","title":"Monitoring Notification Server","description":"This is the easiest way to deploy your Groundlight detectors on a linux computer. All configuration is done through a web user interface, and no code development is required.","sidebar":"tutorialSidebar"},"installation/nvidia-jetson":{"id":"installation/nvidia-jetson","title":"Installing on NVIDIA Jetson","description":"This guide will help you install the Groundlight SDK on NVIDIA Jetson devices. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/optional-libraries":{"id":"installation/optional-libraries","title":"Optional libraries","description":"Smaller is better!","sidebar":"tutorialSidebar"},"installation/raspberry-pi":{"id":"installation/raspberry-pi","title":"Installing on Raspberry Pi","description":"This guide will help you install the Groundlight SDK on Raspberry Pi. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"installation/windows":{"id":"installation/windows","title":"Installing on Windows","description":"This guide will help you install the Groundlight SDK on Windows. The Groundlight SDK requires Python 3.7 or higher.","sidebar":"tutorialSidebar"},"iot/esp32cam":{"id":"iot/esp32cam","title":"Setting up an ESP32 Camera Board","description":"Groundlight supplies a tool for no-code deployment of a detector to an ESP32 Camera board. You can find it at https://iot.groundlight.ai/espcam.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f0dfe5b3.24acc556.js b/assets/js/f0dfe5b3.24acc556.js deleted file mode 100644 index 3e00d8fc..00000000 --- a/assets/js/f0dfe5b3.24acc556.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[867],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>h});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),d=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=d(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=d(t),g=o,h=p["".concat(c,".").concat(g)]||p[g]||s[g]||i;return t?r.createElement(h,a(a({ref:n},u),{},{components:t})):r.createElement(h,a({ref:n},u))}));function h(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=g;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:o,a[1]=l;for(var d=2;d{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=t(7462),o=(t(7294),t(3905));const i={},a="Using Groundlight on the edge",l={unversionedId:"building-applications/edge",id:"building-applications/edge",title:"Using Groundlight on the edge",description:"Starting your model evaluations at the edge reduces latency, cost, network bandwidth, and energy. Once you have downloaded and installed your Groundlight edge models, you can configure the Groundlight SDK to use your edge environment by configuring the 'endpoint' which the SDK connects to. You can do this either directly in code as such:",source:"@site/docs/building-applications/edge.md",sourceDirName:"building-applications",slug:"/building-applications/edge",permalink:"/python-sdk/docs/building-applications/edge",draft:!1,editUrl:"https://github.com/groundlight/python-sdk/tree/main/docs/docs/building-applications/edge.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Confidence Levels",permalink:"/python-sdk/docs/building-applications/managing-confidence"},next:{title:"Handling Server Errors",permalink:"/python-sdk/docs/building-applications/handling-errors"}},c={},d=[],u={toc:d},p="wrapper";function s(e){let{components:n,...t}=e;return(0,o.kt)(p,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"using-groundlight-on-the-edge"},"Using Groundlight on the edge"),(0,o.kt)("p",null,"Starting your model evaluations at the edge reduces latency, cost, network bandwidth, and energy. Once you have downloaded and installed your Groundlight edge models, you can configure the Groundlight SDK to use your edge environment by configuring the 'endpoint' which the SDK connects to. You can do this either directly in code as such:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'from groundlight import Groundlight\ngl = Groundlight(endpoint="http://localhost:6717")\n')),(0,o.kt)("p",null,"or by setting the ",(0,o.kt)("inlineCode",{parentName:"p"},"GROUNDLIGHT_ENDPOINT")," environment variable like:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"export GROUNDLIGHT_ENDPOINT=http://localhost:6717\npython your_app.py\n")),(0,o.kt)("p",null,"(Edge model download is not yet generally available. Work with your Solutions Engineer to set up edge inference.)"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f0dfe5b3.a6a900c4.js b/assets/js/f0dfe5b3.a6a900c4.js new file mode 100644 index 00000000..abad4035 --- /dev/null +++ b/assets/js/f0dfe5b3.a6a900c4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkweb=self.webpackChunkweb||[]).push([[867],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>h});var o=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function a(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var d=o.createContext({}),p=function(e){var n=o.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=p(e.components);return o.createElement(d.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},g=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,d=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=p(t),g=r,h=c["".concat(d,".").concat(g)]||c[g]||u[g]||i;return t?o.createElement(h,a(a({ref:n},s),{},{components:t})):o.createElement(h,a({ref:n},s))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,a=new Array(i);a[0]=g;var l={};for(var d in n)hasOwnProperty.call(n,d)&&(l[d]=n[d]);l.originalType=e,l[c]="string"==typeof e?e:r,a[1]=l;for(var p=2;p{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var o=t(7462),r=(t(7294),t(3905));const i={},a="Using Groundlight on the edge",l={unversionedId:"building-applications/edge",id:"building-applications/edge",title:"Using Groundlight on the edge",description:"If your account has access to edge models, you can download and install them to your edge devices.",source:"@site/docs/building-applications/edge.md",sourceDirName:"building-applications",slug:"/building-applications/edge",permalink:"/python-sdk/docs/building-applications/edge",draft:!1,editUrl:"https://github.com/groundlight/python-sdk/tree/main/docs/docs/building-applications/edge.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Confidence Levels",permalink:"/python-sdk/docs/building-applications/managing-confidence"},next:{title:"Handling Server Errors",permalink:"/python-sdk/docs/building-applications/handling-errors"}},d={},p=[{value:"How the Edge Endpoint works",id:"how-the-edge-endpoint-works",level:2},{value:"Configuring the Edge Endpoint",id:"configuring-the-edge-endpoint",level:2}],s={toc:p},c="wrapper";function u(e){let{components:n,...t}=e;return(0,r.kt)(c,(0,o.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"using-groundlight-on-the-edge"},"Using Groundlight on the edge"),(0,r.kt)("p",null,"If your account has access to edge models, you can download and install them to your edge devices.",(0,r.kt)("br",{parentName:"p"}),"\n","This allows you to run your model evaluations on the edge, reducing latency, cost, network bandwidth, and energy."),(0,r.kt)("h2",{id:"how-the-edge-endpoint-works"},"How the Edge Endpoint works"),(0,r.kt)("p",null,'The Edge Endpoint runs as a set of docker containers on an "edge device". This edge device can be an NVIDIA Jetson device, rack-mounted server, or even a Raspberry Pi. The Edge Endpoint is responsible for downloading and running the models,\nand for communicating with the Groundlight cloud service.'),(0,r.kt)("p",null,"To use the edge endpoint, simply configure the Groundlight SDK to use the edge endpoint's URL instead of the cloud endpoint.\nAll application logic will work seamlessly and unchanged with the Groundlight Edge Endpoint, except some ML answers will\nreturn much faster locally. The only visible difference is that image queries answered at the edge endpoint will have the prefix ",(0,r.kt)("inlineCode",{parentName:"p"},"iqe_")," instead of ",(0,r.kt)("inlineCode",{parentName:"p"},"iq_")," for image queries answered in the cloud. ",(0,r.kt)("inlineCode",{parentName:"p"},"iqe_"),' stands for "image query edge". Edge-originated\nimage queries will not appear in the cloud dashboard.'),(0,r.kt)("h2",{id:"configuring-the-edge-endpoint"},"Configuring the Edge Endpoint"),(0,r.kt)("p",null,"To configure the Groundlight SDK to use the edge endpoint, you can either pass the endpoint URL to the Groundlight constructor like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'from groundlight import Groundlight\ngl = Groundlight(endpoint="http://localhost:6717")\n')),(0,r.kt)("p",null,"or by setting the ",(0,r.kt)("inlineCode",{parentName:"p"},"GROUNDLIGHT_ENDPOINT")," environment variable like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"export GROUNDLIGHT_ENDPOINT=http://localhost:6717\npython your_app.py\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.38cd5fef.js b/assets/js/main.38cd5fef.js deleted file mode 100644 index 6da165f4..00000000 --- a/assets/js/main.38cd5fef.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.38cd5fef.js.LICENSE.txt */ -(self.webpackChunkweb=self.webpackChunkweb||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"045b1720":[()=>n.e(843).then(n.bind(n,3985)),"@site/docs/building-applications/industrial.md",3985],"0acb101b":[()=>n.e(367).then(n.bind(n,2414)),"@site/docs/building-applications/handling-errors.md",2414],"0b4c8eac":[()=>n.e(67).then(n.bind(n,7474)),"@site/docs/installation/4-raspberry-pi.md",7474],"0cd01ddf":[()=>n.e(240).then(n.bind(n,315)),"@site/docs/iot/iot.md",315],"14fdb7e5":[()=>n.e(355).then(n.bind(n,3983)),"@site/docs/getting-started/3-retail-analytics.md",3983],17896441:[()=>Promise.all([n.e(532),n.e(272),n.e(918)]).then(n.bind(n,903)),"@theme/DocItem",903],"1a4e3797":[()=>Promise.all([n.e(532),n.e(920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1d8b90e7":[()=>n.e(29).then(n.bind(n,497)),"@site/docs/building-applications/working-with-detectors.md",497],"1df93b7f":[()=>Promise.all([n.e(532),n.e(237)]).then(n.bind(n,8391)),"@site/src/pages/index.tsx",8391],"1e924268":[()=>n.e(614).then(n.bind(n,4686)),"@site/docs/installation/installation.md",4686],"1f391b9e":[()=>Promise.all([n.e(532),n.e(272),n.e(85)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"325ecf53":[()=>n.e(45).then(n.bind(n,2904)),"@site/docs/getting-started/getting-started.mdx",2904],"393be207":[()=>n.e(414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],"4178ee1d":[()=>n.e(859).then(n.bind(n,7607)),"@site/docs/api-reference/api-reference.md",7607],"4a1ffe74":[()=>n.e(955).then(n.t.bind(n,3769,19)),"/home/runner/work/python-sdk/python-sdk/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"4fbde773":[()=>n.e(425).then(n.bind(n,3550)),"@site/docs/building-applications/5-managing-confidence.md",3550],"530c8fc0":[()=>n.e(642).then(n.bind(n,4481)),"@site/docs/building-applications/building-applications.md",4481],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6662e7aa":[()=>n.e(352).then(n.t.bind(n,2776,19)),"/home/runner/work/python-sdk/python-sdk/docs/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],"8091dcef":[()=>n.e(100).then(n.bind(n,7143)),"@site/docs/installation/2-macos.md",7143],"8557125a":[()=>n.e(729).then(n.bind(n,4544)),"@site/docs/installation/6-optional-libraries.md",4544],"86aa3e00":[()=>n.e(605).then(n.bind(n,8205)),"@site/docs/installation/1-linux.md",8205],"8c4006d9":[()=>n.e(894).then(n.t.bind(n,5745,19)),"/home/runner/work/python-sdk/python-sdk/docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],a30c3fca:[()=>n.e(557).then(n.bind(n,1985)),"@site/docs/building-applications/1-grabbing-images.md",1985],ad6b0f9d:[()=>n.e(168).then(n.bind(n,7095)),"@site/docs/installation/7-monitoring-notification-server.md",7095],c5b38f9e:[()=>n.e(863).then(n.bind(n,2905)),"@site/docs/getting-started/1-api-tokens.md",2905],d5ec6805:[()=>n.e(986).then(n.bind(n,4444)),"@site/docs/installation/3-windows.md",4444],ddfecd50:[()=>n.e(609).then(n.bind(n,6738)),"@site/docs/getting-started/4-dog-on-couch.md",6738],f0dfe5b3:[()=>n.e(867).then(n.bind(n,5606)),"@site/docs/building-applications/edge.md",5606],f705f88e:[()=>n.e(537).then(n.bind(n,9518)),"@site/docs/installation/5-nvidia-jetson.md",9518],fc921a7a:[()=>n.e(124).then(n.bind(n,974)),"@site/docs/getting-started/2-writing-queries.md",974]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(9670),d=n(226);function p(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],p={},f=[],h=[],m=(0,c.Z)(o);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),h.push(r[2]))})),i().Map({loading:u,loader:p,modules:f,webpack:()=>h,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const f=[{path:"/python-sdk/markdown-page",component:p("/python-sdk/markdown-page","6f0"),exact:!0},{path:"/python-sdk/search",component:p("/python-sdk/search","619"),exact:!0},{path:"/python-sdk/docs",component:p("/python-sdk/docs","65a"),routes:[{path:"/python-sdk/docs/api-reference",component:p("/python-sdk/docs/api-reference","092"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/building-applications",component:p("/python-sdk/docs/building-applications","753"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/building-applications/edge",component:p("/python-sdk/docs/building-applications/edge","e64"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/building-applications/grabbing-images",component:p("/python-sdk/docs/building-applications/grabbing-images","c42"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/building-applications/handling-errors",component:p("/python-sdk/docs/building-applications/handling-errors","fad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/building-applications/industrial",component:p("/python-sdk/docs/building-applications/industrial","a16"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/building-applications/managing-confidence",component:p("/python-sdk/docs/building-applications/managing-confidence","145"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/building-applications/working-with-detectors",component:p("/python-sdk/docs/building-applications/working-with-detectors","1b9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/getting-started",component:p("/python-sdk/docs/getting-started","23b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/getting-started/api-tokens",component:p("/python-sdk/docs/getting-started/api-tokens","48d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/getting-started/dog-on-couch",component:p("/python-sdk/docs/getting-started/dog-on-couch","7b3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/getting-started/retail-analytics",component:p("/python-sdk/docs/getting-started/retail-analytics","4ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/getting-started/writing-queries",component:p("/python-sdk/docs/getting-started/writing-queries","35e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation",component:p("/python-sdk/docs/installation","905"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation/linux",component:p("/python-sdk/docs/installation/linux","027"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation/macos",component:p("/python-sdk/docs/installation/macos","ce1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation/monitoring-notification-server",component:p("/python-sdk/docs/installation/monitoring-notification-server","1fb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation/nvidia-jetson",component:p("/python-sdk/docs/installation/nvidia-jetson","c38"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation/optional-libraries",component:p("/python-sdk/docs/installation/optional-libraries","82b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation/raspberry-pi",component:p("/python-sdk/docs/installation/raspberry-pi","4e4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/installation/windows",component:p("/python-sdk/docs/installation/windows","9e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/python-sdk/docs/iot",component:p("/python-sdk/docs/iot","9e2"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/python-sdk/",component:p("/python-sdk/","978"),exact:!0},{path:"*",component:p("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),h=n(5742),m=n(2263),g=n(4996),v=n(6668),y=n(1944),b=n(4711),w=n(9727),k=n(3320),E=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,m.Z)(),n=(0,b.l)();return r.createElement(h.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),a=function(){const{siteConfig:{url:e}}=(0,m.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(h.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(h.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(y.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(h.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const T=new Map;function _(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var L=n(8934),R=n(8940);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const A=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),N("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class P extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?N("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(A,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=P,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner",F="docusaurus-base-url-issue-banner-suggestion-container",j="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${j}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${j}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
    \n

    Your Docusaurus site did not load properly.

    \n

    A very common reason is a wrong site baseUrl configuration.

    \n

    Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

    \n

    We suggest trying baseUrl =

    \n
    \n`}(e)).replace(/{window[j]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(h.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:D}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,m.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(h.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(4763);function H(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(R.M,null,r.createElement(L.t,null,r.createElement(p,null,r.createElement(U,null),r.createElement(C,null),r.createElement($,null),r.createElement(I,{location:_(t)},e)))))}var G=n(6887);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Z=n(9670);const V=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),O(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/python-sdk/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/python-sdk/docs","mainDocId":"getting-started/getting-started","docs":[{"id":"api-reference/api-reference","path":"/python-sdk/docs/api-reference/","sidebar":"tutorialSidebar"},{"id":"building-applications/building-applications","path":"/python-sdk/docs/building-applications/","sidebar":"tutorialSidebar"},{"id":"building-applications/edge","path":"/python-sdk/docs/building-applications/edge","sidebar":"tutorialSidebar"},{"id":"building-applications/grabbing-images","path":"/python-sdk/docs/building-applications/grabbing-images","sidebar":"tutorialSidebar"},{"id":"building-applications/handling-errors","path":"/python-sdk/docs/building-applications/handling-errors","sidebar":"tutorialSidebar"},{"id":"building-applications/industrial","path":"/python-sdk/docs/building-applications/industrial","sidebar":"tutorialSidebar"},{"id":"building-applications/managing-confidence","path":"/python-sdk/docs/building-applications/managing-confidence","sidebar":"tutorialSidebar"},{"id":"building-applications/working-with-detectors","path":"/python-sdk/docs/building-applications/working-with-detectors","sidebar":"tutorialSidebar"},{"id":"getting-started/api-tokens","path":"/python-sdk/docs/getting-started/api-tokens","sidebar":"tutorialSidebar"},{"id":"getting-started/dog-on-couch","path":"/python-sdk/docs/getting-started/dog-on-couch","sidebar":"tutorialSidebar"},{"id":"getting-started/getting-started","path":"/python-sdk/docs/getting-started/","sidebar":"tutorialSidebar"},{"id":"getting-started/retail-analytics","path":"/python-sdk/docs/getting-started/retail-analytics","sidebar":"tutorialSidebar"},{"id":"getting-started/writing-queries","path":"/python-sdk/docs/getting-started/writing-queries","sidebar":"tutorialSidebar"},{"id":"installation/installation","path":"/python-sdk/docs/installation/","sidebar":"tutorialSidebar"},{"id":"installation/linux","path":"/python-sdk/docs/installation/linux","sidebar":"tutorialSidebar"},{"id":"installation/macos","path":"/python-sdk/docs/installation/macos","sidebar":"tutorialSidebar"},{"id":"installation/monitoring-notification-server","path":"/python-sdk/docs/installation/monitoring-notification-server","sidebar":"tutorialSidebar"},{"id":"installation/nvidia-jetson","path":"/python-sdk/docs/installation/nvidia-jetson","sidebar":"tutorialSidebar"},{"id":"installation/optional-libraries","path":"/python-sdk/docs/installation/optional-libraries","sidebar":"tutorialSidebar"},{"id":"installation/raspberry-pi","path":"/python-sdk/docs/installation/raspberry-pi","sidebar":"tutorialSidebar"},{"id":"installation/windows","path":"/python-sdk/docs/installation/windows","sidebar":"tutorialSidebar"},{"id":"iot/esp32cam","path":"/python-sdk/docs/iot/","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/python-sdk/docs/getting-started/","label":"Getting Started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.0"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.35.0"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(179);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),a=n(7294),o=n(3727),i=n(8780),l=n(2263),s=n(3919),u=n(412);const c=a.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:v=!0,...y}=e;const{siteConfig:{trailingSlash:b,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),E=(0,a.useContext)(c),S=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>S.current));const x=p||f;const C=(0,s.Z)(x),T=x?.replace("pathname://","");let _=void 0!==T?(L=T,v&&(e=>e.startsWith("/"))(L)?k(L):L):void 0;var L;_&&C&&(_=(0,i.applyTrailingSlash)(_,{trailingSlash:b,baseUrl:w}));const R=(0,a.useRef)(!1),N=n?o.OL:o.rU,A=u.Z.canUseIntersectionObserver,O=(0,a.useRef)(),P=()=>{R.current||null==_||(window.docusaurus.preload(_),R.current=!0)};(0,a.useEffect)((()=>(!A&&C&&null!=_&&window.docusaurus.prefetch(_),()=>{A&&O.current&&O.current.disconnect()})),[O,_,A,C]);const I=_?.startsWith("#")??!1,D=!_||!C||I;return D||g||E.collectLink(_),D?a.createElement("a",(0,r.Z)({ref:S,href:_},x&&!C&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(N,(0,r.Z)({},y,{onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,A&&e&&C&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=_&&window.docusaurus.prefetch(_))}))})),O.current.observe(e))},to:_},n&&{isActive:m,activeClassName:h}))}const f=a.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>p,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>h,gB:()=>f});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function f(e){return d(e).versions}function h(e){const t=d(e);return l(t)}function m(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},179:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ot});var r=n(7294),a=n(6010),o=n(4763),i=n(1944),l=n(7462),s=n(6550),u=n(5999),c=n(5936);const d="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":h},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(5281),v=n(9727);const y={skipToContent:"skipToContent_fXgn"};function b(){return r.createElement(m,{className:y.skipToContent})}var w=n(6668),k=n(9689);function E(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const C={content:"content_knG7"};function T(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const _={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:_.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:_.announcementBarPlaceholder}),r.createElement(T,{className:_.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:_.announcementBarClose}))}var R=n(2961),N=n(2466);var A=n(902),O=n(3102);const P=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,R.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,A.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(P.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(P);if(!e)throw new A.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var j=n(2949),B=n(2389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function $(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,B.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(U.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!l&&U.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),r.createElement($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Q(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,j.I)();return a?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var Z=n(1327);function V(){return r.createElement(Z.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,R.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(V,null),r.createElement(Q,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(a),f=(0,X.Z)(t),h=(0,X.Z)(o,{forcePrependBaseUrl:!0}),m=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,m&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?h:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(6043),le=n(8596),se=n(2263);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(Ge,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[c,d,h]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(Ge,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var fe=n(4711);function he(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const me="iconLanguage_nlXk";var ge=n(1029),ve=n(412),ye=n(373),be=n(143),we=n(22),ke=n(8202),Ee=n(3926),Se=n(1073),xe=n(2539),Ce=n(726);const Te='',_e='',Le='',Re='',Ne='',Ae='',Oe='',Pe={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",searchBarLeft:"searchBarLeft_MXDe",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Ie(e){let{document:t,type:n,page:r,metadata:a,tokens:o,isInterOfTree:i,isLastOfTree:l}=e;const s=0===n,u=1===n,c=[];i?c.push(Ae):l&&c.push(Oe);const d=c.map((e=>`${e}`)),p=`${s?Te:u?_e:Le}`,f=[`${(0,Ce.o)(t.t,(0,Se.m)(a,"t"),o)}`];if(!i&&!l&&ge.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(`${(0,Ee.e)(e??[])}`)}else s||f.push(`${(0,xe.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),o)}`);const h=`${Re}`;return[...d,p,``,...f,"",h].join("")}function De(){return`${Ne}${(0,u.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var Me=n(311);async function Fe(){const e=await Promise.all([n.e(443),n.e(525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const je="_highlight";const Be=function(e){let{handleSearchBarToggle:t}=e;const{siteConfig:{baseUrl:n}}=(0,se.Z)(),o=(0,be.gA)();let i=n;try{const{preferredVersion:e}=(0,ye.J)(o?.pluginId??ge.gQ);e&&!e.isLast&&(i=e.path+"/")}catch(D){if(ge.l9&&!(D instanceof A.i6))throw D}const l=(0,s.k6)(),c=(0,s.TH)(),d=(0,r.useRef)(null),p=(0,r.useRef)(new Map),f=(0,r.useRef)(!1),[h,m]=(0,r.useState)(!1),[g,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(""),w=(0,r.useRef)(null),k=(0,r.useRef)(""),[E,S]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ge.Kc))return;let e="";if(c.pathname.startsWith(i)){const t=c.pathname.substring(i.length),n=ge.Kc.find((e=>t===e||t.startsWith(`${e}/`)));n&&(e=n)}k.current!==e&&(p.current.delete(e),k.current=e),S(e)}),[c.pathname,i]);const x=!!ge.hG&&Array.isArray(ge.Kc)&&""===E,C=(0,r.useCallback)((async()=>{if(x||p.current.get(E))return;p.current.set(E,"loading"),w.current?.autocomplete.destroy(),m(!0);const[{wrappedIndexes:e,zhDictionary:t},r]=await Promise.all([(0,we.w)(i,E),Fe()]);if(w.current=r(d.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,a.Z)(Pe.searchBar,{[Pe.searchBarLeft]:"left"===ge.pu}),noPrefix:!0,dropdownMenu:Pe.dropdownMenu,input:Pe.input,hint:Pe.hint,suggestions:Pe.suggestions,suggestion:Pe.suggestion,cursor:Pe.cursor,dataset:Pe.dataset,empty:Pe.empty}},[{source:(0,ke.v)(e,t,ge.qo),templates:{suggestion:Ie,empty:De,footer:e=>{let{query:t,isEmpty:r}=e;if(r&&!E)return;const a=(e=>{let{query:t,isEmpty:r}=e;const a=document.createElement("a"),o=new URLSearchParams,s=(0,u.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),c=(0,u.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:E}),d=(0,u.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:E});let p;if(o.set("q",t),p=E&&r?c:E?d:s,Array.isArray(ge.Kc)&&!r&&o.set("ctx",E),i!==n){if(!i.startsWith(n))throw new Error(`Version url '${i}' does not start with base url '${n}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);o.set("version",i.substring(n.length))}const f=`${n}search?${o.toString()}`;return a.href=f,a.textContent=p,a.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),w.current?.autocomplete.close(),l.push(f))})),a})({query:t,isEmpty:r}),o=document.createElement("div");return o.className=Pe.hitFooter,o.appendChild(a),o}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;d.current?.blur();let o=n;if(ge.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(je,t);o+=`?${e.toString()}`}r&&(o+=r),l.push(o)})).on("autocomplete:closed",(()=>{d.current?.blur()})),p.current.set(E,"done"),m(!1),f.current){const e=d.current;e.value&&w.current?.autocomplete.open(),e.focus()}}),[x,E,i,n,l]);(0,r.useEffect)((()=>{if(!ge.vc)return;const e=ve.Z.canUseDOM?new URLSearchParams(c.search).getAll(je):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ge.vc(t);n.unmark(),0!==e.length&&n.mark(e),b(e.join(" ")),w.current?.autocomplete.setVal(e.join(" "))}))}),[c.search,c.pathname]);const[T,_]=(0,r.useState)(!1),L=(0,r.useCallback)((()=>{f.current=!0,C(),_(!0),t?.(!0)}),[t,C]),R=(0,r.useCallback)((()=>{_(!1),t?.(!1)}),[t]),N=(0,r.useCallback)((()=>{C()}),[C]),O=(0,r.useCallback)((e=>{b(e.target.value),e.target.value&&v(!0)}),[]),P=!!ve.Z.canUseDOM&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ge.AY)return;const e=e=>{!(P?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),d.current?.focus(),L())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[P,L]);const I=(0,r.useCallback)((()=>{const e=new URLSearchParams(c.search);e.delete(je);const t=e.toString(),n=c.pathname+(""!=t?`?${t}`:"")+c.hash;n!=c.pathname+c.search+c.hash&&l.push(n),b(""),w.current?.autocomplete.setVal("")}),[c.pathname,c.search,c.hash,l]);return r.createElement("div",{className:(0,a.Z)("navbar__search",Pe.searchBarContainer,{[Pe.searchIndexLoading]:h&&g,[Pe.focused]:T}),hidden:x},r.createElement("input",{placeholder:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:N,onFocus:L,onBlur:R,onChange:O,ref:d,value:y}),r.createElement(Me.Z,{className:Pe.searchBarLoadingRing}),ge.AY&&ge.t_&&(""!==y?r.createElement("button",{className:Pe.searchClearButton,onClick:I},"\u2715"):ve.Z.canUseDOM&&r.createElement("div",{className:Pe.searchHintContainer},r.createElement("kbd",{className:Pe.searchHint},P?"\u2318":"ctrl"),r.createElement("kbd",{className:Pe.searchHint},"K"))))},ze={searchBox:"searchBox_ZlJk"};function $e(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,ze.searchBox)},t)}var Ue=n(2802);const qe=e=>e.docs.find((t=>t.id===e.mainDocId));const He={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:h}=(0,s.TH)(),m=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${h}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(he,{className:me}),g),items:m}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement($e,{className:n},r.createElement(Be,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,be.Iw)(a),s=(0,Ue.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,be.Iw)(a),s=(0,Ue.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,Ue.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,be.Iw)(n),h=(0,be.gB)(n),{savePreferredVersionName:m}=(0,ye.J)(n),g=[...o,...h.map((e=>{const t=f.alternateDocVersions[e.name]??qe(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>m(e.name)}})),...i],v=(0,Ue.lO)(n)[0],y=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):v.label,b=t&&g.length>1?void 0:qe(v).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:y,to:b,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},c,{mobile:t,label:y,to:b,items:g,isActive:a?()=>!1:void 0}))}};function Ge(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=He[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Qe(){const e=(0,R.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(Ge,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ze(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ze,{onClick:()=>t.hide()}),t.content)}function We(){const e=(0,R.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Qe,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ke={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ye(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,R.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,N.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ke.navbarHideable,!s&&Ke.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Ye,{onClick:i.toggle}),r.createElement(We,null))}var Je=n(8780);const et={errorBoundaryError:"errorBoundaryError_a6uf"};function tt(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function nt(e){let{error:t}=e;const n=(0,Je.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:et.errorBoundaryError},n)}class rt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const at="right";function ot(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function it(){const{toggle:e,shown:t}=(0,R.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(ot,null))}const lt={colorModeToggle:"colorModeToggle_DEke"};function st(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(rt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(Ge,e)))))}function ut(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function ct(){const e=(0,R.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??at)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(ut,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(it,null),r.createElement(V,null),r.createElement(st,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(st,{items:a}),r.createElement(Q,{className:lt.colorModeToggle}),!o&&r.createElement($e,null,r.createElement(Be,null)))})}function dt(){return r.createElement(Xe,null,r.createElement(ct,null))}function pt(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function ft(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(pt,{item:t}))}function ht(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(ft,{key:t,item:e})))))}function mt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ht,{key:t,column:e}))))}function gt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function vt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(pt,{item:t})}function yt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(vt,{item:e}),t.length!==n+1&&r.createElement(gt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(mt,{columns:t}):r.createElement(yt,{links:t})}var wt=n(941);const kt={footerLogoLink:"footerLogoLink_BH7S"};function Et(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(wt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function St(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:kt.footerLogoLink,target:t.target},r.createElement(Et,{logo:t})):r.createElement(Et,{logo:t})}function xt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Ct(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function Tt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Ct,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(St,{logo:a}),copyright:t&&r.createElement(xt,{copyright:t})})}const _t=r.memo(Tt),Lt=(0,A.Qc)([j.S,k.pl,N.OC,ye.L5,i.VC,function(e){let{children:t}=e;return r.createElement(O.n2,null,r.createElement(R.M,null,r.createElement(I,null,t)))}]);function Rt(e){let{children:t}=e;return r.createElement(Lt,null,t)}function Nt(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(tt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(nt,{error:t})))))}const At={mainWrapper:"mainWrapper_z2l0"};function Ot(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,v.t)(),r.createElement(Rt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(b,null),r.createElement(L,null),r.createElement(dt,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,At.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(Nt,e)},t)),!n&&r.createElement(_t,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(9960),i=n(4996),l=n(2263),s=n(6668),u=n(941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,h=(0,i.Z)(u?.href||"/"),m=n?"":t,g=u?.alt??m;return a.createElement(o.Z,(0,r.Z)({to:h},f,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(6010),i=n(2389),l=n(2949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},p)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>g});var r=n(7462),a=n(7294),o=n(412);const i="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=function(){const t=e.scrollHeight;return{transition:`height ${r?.duration??d(t)}ms ${r?.easing??i}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return c(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(a(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{a()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!o.Z.canUseDOM)return e?s:u}function h(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),i?.(n))},className:l},r)}function m(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(h,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?m:h;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>f});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>m});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),h=e=>{c.set(p(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>g});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(m,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),l=(n(1688),n(902));function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668);const c=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function p(e){let{children:t}=e;const n=d();return r.createElement(c.Provider,{value:n},t)}function f(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},2802:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>m,cE:()=>d,hI:()=>k,lO:()=>y,vY:()=>w,oz:()=>b,s1:()=>v});var r=n(7294),a=n(6550),o=n(8790),i=n(143),l=n(373),s=n(1116);function u(e){return Array.from(new Set(e))}var c=n(8596);const d=!!i._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,c.Mg)(e,t),h=(e,t)=>e.some((e=>m(e,t)));function m(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||h(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,c.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,c.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function v(){const e=(0,s.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function y(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function b(e,t){const n=y(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function w(e,t){const n=y(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2263);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d});var r=n(7294),a=n(412),o=n(2389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),a=n(6010);const o={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};function i(e){let{className:t}=e;return r.createElement("div",{className:(0,a.Z)(o.loadingRing,t)},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>l});var r=n(1336),a=n.n(r),o=n(1029);const i=new Map;function l(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=async function(e,t){{const n=`${e}${o.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(l)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),i.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(1336),a=n.n(r);var o=n(1029);function i(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,o.dK);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const o=r[0];if(/\p{Unified_Ideograph}/u.test(o)){const n=function(e,t){const n=[];return function e(r,a){let o=0,i=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),i=!0}else for(let t=l.length-1;t>o;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){o=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(o,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:o});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const i of o.dK)if("en"===i)o._k||r.unshift(a().stopWordFilter);else{const e=a()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return i(n).concat(i(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:o,type:i}of e)if(c.push(...o.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(1690);function a(e,t,n){const o=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&o.push(a(e.substr(0,n),t)),o.push(`${(0,r.X)(e.substr(n,i.length))}`);const l=n+i.length;l${(0,r.X)(e)}`:(0,r.X)(e):o.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>s});var r=n(1690),a=n(2539);const o=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(o);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(1029);function s(e,t,n,o){void 0===o&&(o=l.Hk);const{chunkIndex:s,chunks:u}=function(e,t,n){const o=[];let l=0,s=0,u=-1;for(;ls){const t=i(e.substring(s,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}-1===u&&(u=o.length),s=c+d,o.push({html:(0,a.C)(e.substring(c,s),n,!0),textLength:d})}}if(s({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}return{chunkIndex:u,chunks:o}}(e,t,n),c=u.slice(0,s),d=u[s],p=[d.html],f=u.slice(s+1);let h=d.textLength,m=0,g=0,v=!1,y=!1;for(;h0){const e=c.pop();h+e.textLength<=o?(p.unshift(e.html),m+=e.textLength,h+=e.textLength):(v=!0,c.length=0)}else{if(!(f.length>0))break;{const e=f.shift();h+e.textLength<=o?(p.push(e.html),g+=e.textLength,h+=e.textLength):(y=!0,f.length=0)}}return(v||c.length>0)&&p.unshift("\u2026"),(y||f.length>0)&&p.push("\u2026"),p.join("")}},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>a(),gQ:()=>h,H6:()=>c,hG:()=>v,l9:()=>m,dK:()=>o,_k:()=>i,pu:()=>f,AY:()=>d,t_:()=>p,Kc:()=>g,J:()=>l,Hk:()=>u,qo:()=>s,pQ:()=>y});n(1336);var r=n(813),a=n.n(r);const o=["en"],i=!1,l="search-index{dir}.json?_=11fe5696",s=8,u=50,c=!0,d=!0,p=!0,f="right",h=void 0,m=!0,g=null,v=!1,y=!1},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>T,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=f(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1336:(e,t,n)=>{var r,a;!function(){var o,i,l,s,u,c,d,p,f,h,m,g,v,y,b,w,k,E,S,x,C,T,_,L,R,N,A,O,P,I,D=function(e){var t=new D.Builder;return t.pipeline.add(D.trimmer,D.stopWordFilter,D.stemmer),t.searchPipeline.add(D.stemmer),e.call(t,t),t.build()};D.version="2.3.9",D.utils={},D.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),D.utils.asString=function(e){return null==e?"":e.toString()},D.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var s=D.utils.clone(t)||{};s.position=[i,l],s.index=a.length,a.push(new D.Token(n.slice(i,o),s))}i=o+1}}return a},D.tokenizer.separator=/[\s\-]+/,D.Pipeline=function(){this._stack=[]},D.Pipeline.registeredFunctions=Object.create(null),D.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&D.utils.warn("Overwriting existing registered function: "+t),e.label=t,D.Pipeline.registeredFunctions[e.label]=e},D.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||D.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},D.Pipeline.load=function(e){var t=new D.Pipeline;return e.forEach((function(e){var n=D.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},D.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){D.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},D.Pipeline.prototype.after=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},D.Pipeline.prototype.before=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},D.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},D.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(oe&&(n=a),o!=e);)r=n-t,a=t+Math.floor(r/2),o=this.elements[2*a];return o==e||o>e?2*a:ol?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},D.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},D.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var o,i=a.str.charAt(0);i in a.node.edges?o=a.node.edges[i]:(o=new D.TokenSet,a.node.edges[i]=o),1==a.str.length&&(o.final=!0),r.push({node:o,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new D.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new D.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new D.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},D.TokenSet.fromString=function(e){for(var t=new D.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},D.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},D.Index.prototype.search=function(e){return this.query((function(t){new D.QueryParser(e,t).parse()}))},D.Index.prototype.query=function(e){for(var t=new D.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),o=Object.create(null),i=Object.create(null),l=0;l1?1:e},D.Builder.prototype.k1=function(e){this._k1=e},D.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return D.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},D.QueryLexer.prototype.width=function(){return this.pos-this.start},D.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},D.QueryLexer.prototype.backup=function(){this.pos-=1},D.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=D.QueryLexer.EOS&&this.backup()},D.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(D.QueryLexer.TERM)),e.ignore(),e.more())return D.QueryLexer.lexText},D.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.EDIT_DISTANCE),D.QueryLexer.lexText},D.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.BOOST),D.QueryLexer.lexText},D.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(D.QueryLexer.TERM)},D.QueryLexer.termSeparator=D.tokenizer.separator,D.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==D.QueryLexer.EOS)return D.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return D.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if(t.match(D.QueryLexer.termSeparator))return D.QueryLexer.lexTerm}else e.escapeCharacter()}},D.QueryParser=function(e,t){this.lexer=new D.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},D.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=D.QueryParser.parseClause;e;)e=e(this);return this.query},D.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},D.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},D.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},D.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case D.QueryLexer.PRESENCE:return D.QueryParser.parsePresence;case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new D.QueryParseError(n,t.start,t.end)}},D.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=D.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=D.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new D.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new D.QueryParseError(n,t.start,t.end)}switch(r.type){case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new D.QueryParseError(n,r.start,r.end)}}},D.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new D.QueryParseError(r,t.start,t.end)}if(a.type===D.QueryLexer.TERM)return D.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}},D.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new D.QueryParseError(r,n.start,n.end)}else e.nextClause()}},D.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},D.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return D})?r.call(t,n,t,e):r)||(e.exports=a)}()},813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=a,this.iframesTimeout=o}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var a=e.contentWindow;if(r=a.document,!a||!r)throw new Error("iframe inaccessible")}catch(o){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,a=!1,o=null,i=function i(){if(!a){a=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(l){n()}}};e.addEventListener("load",i),o=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var a=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),l=i.length,s=0;i=Array.prototype.slice.call(i);var u=function(){--l<=0&&o(s)};l||u(),i.forEach((function(t){e.matches(t,a.exclude)?u():a.onIframeReady(t,(function(e){n(t)&&(s++,r(e)),u()}),u)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var a=!1,o=!1;return r.forEach((function(e,t){e.val===n&&(a=t,o=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==a||o?!1===a||o||(r[a].handled=!0):r.push({val:n,handled:!0}),!0):(!1===a&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var a=this;e.forEach((function(e){e.handled||a.getIframeContents(e.val,(function(e){a.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,a){for(var o=this,i=this.createIterator(t,e,r),l=[],s=[],u=void 0,c=void 0,d=function(){var e=o.getIteratorNode(i);return c=e.prevNode,u=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return o.checkIframeFilter(u,c,e,l)}),(function(t){o.createInstanceOnIframe(t).forEachNode(e,(function(e){return s.push(e)}),r)})),s.push(u);s.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(l,e,n,r),a()}},{key:"forEachNode",value:function(e,t,n){var r=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),i=o.length;i||a(),o.forEach((function(o){var l=function(){r.iterateThroughNodes(e,o,t,n,(function(){--i<=0&&a()}))};r.iframes?r.waitForIframes(o,l):l()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var a=!1;return n.every((function(t){return!r.call(e,t)||(a=!0,!1)})),a}return!1}}]),e}(),o=function(){function o(e){t(this,o),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(o,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var a in t)if(t.hasOwnProperty(a)){var o=t[a],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a),l="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);""!==i&&""!==l&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(l)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(l)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(a){n.every((function(n){if(-1!==n.indexOf(a)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,a="string"==typeof r?r:r.value,o="string"==typeof r?[]:r.limiters,i="";switch(o.forEach((function(e){i+="|"+t.escapeStr(e)})),a){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var a=t.callNoMatchOnInvalidRanges(e,r),o=a.start,i=a.end;a.valid&&(e.start=o,e.length=i-o,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,a=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?a=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:a}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,a=!0,o=n.length,i=t-o,l=parseInt(e.start,10)-i;return(r=(l=l>o?o:l)+parseInt(e.length,10))>o&&(r=o,this.log("End range automatically set to the max value of "+o)),l<0||r-l<0||l>o||r>o?(a=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(l,r).replace(/\s+/g,"")&&(a=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:l,end:r,valid:a}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return a.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",a=e.splitText(t),o=a.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=a.textContent,a.parentNode.replaceChild(i,a),o}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,a){var o=this;e.nodes.every((function(i,l){var s=e.nodes[l+1];if(void 0===s||s.start>t){if(!r(i.node))return!1;var u=t-i.start,c=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(c+i.start);if(i.node=o.wrapRangeInTextNode(i.node,u,c),e.value=d+p,e.nodes.forEach((function(t,n){n>=l&&(e.nodes[n].start>0&&n!==l&&(e.nodes[n].start-=c),e.nodes[n].end-=c)})),n-=c,a(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,a){var o=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var a=void 0;null!==(a=e.exec(t.textContent))&&""!==a[i];)if(n(a[i],t)){var l=a.index;if(0!==i)for(var s=1;s{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
    '};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var h=e[i],m=n[2],g=n[3],v=n[4],y=n[5],b=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=m&&null!=h&&h!==m,E="+"===b||"*"===b,S="?"===b||"*"===b,x=n[2]||c,C=v||y;r.push({name:g||o++,prefix:m||"",delimiter:x,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:C?u(C):w?".*":"[^"+s(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var C,T=1;if(y){if(!(C=o(k,S,e,v))||C.index>=e.length)break;var _=C.index,L=C.index+C[0].length,R=S;for(R+=E.value.length;_>=R;)R+=(E=E.next).value.length;if(S=R-=E.value.length,E.value instanceof a)continue;for(var N=E;N!==t.tail&&(Rd.reach&&(d.reach=I);var D=E.prev;if(O&&(D=s(t,D,O),S+=O.length),u(t,D,T),E=s(t,D,new a(p,g?r.tokenize(A,g):A,b,A)),P&&s(t,E,P),T>1){var M={cause:p+","+h,reach:I};i(e,t,n,E.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return i=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),f=o.substring(l+a.length),h=[];if(s&&h.push(s),h.push(d),f){var m=[f];e(m),h.push.apply(h,m)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):r.content=h}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),h=p.indexOf(f);if(h>-1){++a;var m=p.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=p.substring(h+f.length),y=[];m&&y.push.apply(y,i([m])),y.push(g),v&&y.push.apply(y,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),h=c;a(h);){for(var m in p={},h){var g=s[m];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var v in d)if(!(v in c))for(var y in f(v))if(y in c){p[v]=!0;break}for(var b in h=p)c[b]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n
    + + \ No newline at end of file diff --git a/docs/building-applications.html b/docs/building-applications.html index 801cf014..dea00ee7 100644 --- a/docs/building-applications.html +++ b/docs/building-applications.html @@ -3,14 +3,14 @@ -Building Applications | Groundlight - - +Building Applications | Groundlight + +

    Building Applications

    Groundlight provides a powerful "computer vision powered by natural language" system that enables you to build visual applications with minimal code. With Groundlight, you can quickly create applications for various use cases, from simple object detection to complex visual analysis.

    In this page, we'll introduce you to some sample applications built using Groundlight and provide links to more detailed guides on various topics.

    Sample Applications

    Explore these GitHub repositories to see examples of Groundlight-powered applications:

    Groundlight Stream Processor

    Repository: https://github.com/groundlight/stream

    The Groundlight Stream Processor is an easy-to-use Docker container for analyzing RTSP streams or common USB-based cameras. You can run it with a single Docker command, such as:

    docker run stream:local --help

    Arduino ESP32 Camera Sample App

    Repository: https://github.com/groundlight/esp32cam

    This sample application allows you to build a working AI vision detector using an inexpensive WiFi camera. With a cost of under $10, you can create a powerful and affordable AI vision system.

    Raspberry Pi

    Repository: https://github.com/groundlight/raspberry-pi-door-lock

    This sample application demonstrates how to set up a Raspberry Pi-based door lock system. The application monitors a door and sends a notification if the door is observed to be unlocked during non-standard business hours.

    Industrial and Manufacturing Applications

    Groundlight can be used to apply modern natural-language-based computer vision to industrial and manufacturing applications.

    Further Reading

    For more in-depth guides on various aspects of building applications with Groundlight, check out the following pages:

    • Working with Detectors: Learn how to create, configure, and use detectors in your Groundlight-powered applications.
    • Using Groundlight on the edge: Discover how to deploy Groundlight in edge computing environments for improved performance and reduced latency.
    • Handling HTTP errors: Understand how to handle and troubleshoot HTTP errors that may occur while using Groundlight.

    By exploring these resources and sample applications, you'll be well on your way to building powerful visual applications using Groundlight's computer vision and natural language capabilities.

    - - + + \ No newline at end of file diff --git a/docs/building-applications/edge.html b/docs/building-applications/edge.html index d6dcb3cc..08c9f0fb 100644 --- a/docs/building-applications/edge.html +++ b/docs/building-applications/edge.html @@ -3,14 +3,19 @@ -Using Groundlight on the edge | Groundlight - - +Using Groundlight on the edge | Groundlight + +
    -

    Using Groundlight on the edge

    Starting your model evaluations at the edge reduces latency, cost, network bandwidth, and energy. Once you have downloaded and installed your Groundlight edge models, you can configure the Groundlight SDK to use your edge environment by configuring the 'endpoint' which the SDK connects to. You can do this either directly in code as such:

    from groundlight import Groundlight
    gl = Groundlight(endpoint="http://localhost:6717")

    or by setting the GROUNDLIGHT_ENDPOINT environment variable like:

    export GROUNDLIGHT_ENDPOINT=http://localhost:6717
    python your_app.py

    (Edge model download is not yet generally available. Work with your Solutions Engineer to set up edge inference.)

    - - +

    Using Groundlight on the edge

    If your account has access to edge models, you can download and install them to your edge devices.
    +This allows you to run your model evaluations on the edge, reducing latency, cost, network bandwidth, and energy.

    How the Edge Endpoint works

    The Edge Endpoint runs as a set of docker containers on an "edge device". This edge device can be an NVIDIA Jetson device, rack-mounted server, or even a Raspberry Pi. The Edge Endpoint is responsible for downloading and running the models, +and for communicating with the Groundlight cloud service.

    To use the edge endpoint, simply configure the Groundlight SDK to use the edge endpoint's URL instead of the cloud endpoint. +All application logic will work seamlessly and unchanged with the Groundlight Edge Endpoint, except some ML answers will +return much faster locally. The only visible difference is that image queries answered at the edge endpoint will have the prefix iqe_ instead of iq_ for image queries answered in the cloud. iqe_ stands for "image query edge". Edge-originated +image queries will not appear in the cloud dashboard.

    Configuring the Edge Endpoint

    To configure the Groundlight SDK to use the edge endpoint, you can either pass the endpoint URL to the Groundlight constructor like:

    from groundlight import Groundlight
    gl = Groundlight(endpoint="http://localhost:6717")

    or by setting the GROUNDLIGHT_ENDPOINT environment variable like:

    export GROUNDLIGHT_ENDPOINT=http://localhost:6717
    python your_app.py
    + + \ No newline at end of file diff --git a/docs/building-applications/grabbing-images.html b/docs/building-applications/grabbing-images.html index d45f8ec8..0b2b37ee 100644 --- a/docs/building-applications/grabbing-images.html +++ b/docs/building-applications/grabbing-images.html @@ -3,9 +3,9 @@ -Grabbing Images | Groundlight - - +Grabbing Images | Groundlight + +
    @@ -21,7 +21,7 @@ Correct color order Swapped color channels

    Framegrab

    For a unified interface to many different kinds of image sources, see the framegrab library. Framegrab is still an early work in progress, but has many useful features for working with cameras and other image sources. Framegrab provides a single interface for many different kinds of image sources, including:

    • USB cameras
    • IP cameras
    • Video files
    • Image files

    - - + + \ No newline at end of file diff --git a/docs/building-applications/handling-errors.html b/docs/building-applications/handling-errors.html index 4fd04531..8b11c6a6 100644 --- a/docs/building-applications/handling-errors.html +++ b/docs/building-applications/handling-errors.html @@ -3,14 +3,14 @@ -Handling Server Errors | Groundlight - - +Handling Server Errors | Groundlight + +
    Skip to main content

    Handling Server Errors

    When building applications with the Groundlight SDK, you may encounter server errors during API calls. This page covers how to handle such errors and build robust code that can gracefully handle exceptions.

    Handling ApiException

    If there is an HTTP error during an API call, the SDK will raise an ApiException. You can access different metadata from that exception:

    import traceback
    from groundlight import ApiException, Groundlight

    gl = Groundlight()
    try:
    d = gl.get_or_create_detector(
    "Road Checker",
    "Is the site access road blocked?")
    iq = gl.submit_image_query(d, get_image(), wait=60)
    except ApiException as e:
    # Print a traceback for debugging
    traceback.print_exc()

    # e.reason contains a textual description of the error
    print(f"Error reason: {e.reason}")

    # e.status contains the HTTP status code
    print(f"HTTP status code: {e.status}")

    # Common HTTP status codes:
    # 400 Bad Request: The request was invalid or malformed
    # 401 Unauthorized: Your GROUNDLIGHT_API_TOKEN is missing or invalid
    # 403 Forbidden: The request is not allowed due to insufficient permissions
    # 404 Not Found: The requested resource was not found
    # 429 Too Many Requests: The rate limit for the API has been exceeded
    # 500 Internal Server Error: An error occurred on the server side

    Best Practices for Handling Exceptions

    When working with the Groundlight SDK, follow these best practices to handle exceptions and build robust code:

    Catch Specific Exceptions

    Catch only the specific exceptions that you expect to be raised, such as ApiException. Avoid catching broad exceptions like Exception, as it may make debugging difficult and obscure other unrelated issues.

    Use Custom Exception Classes

    Consider creating custom exception classes for your application-specific errors. This can help you differentiate between errors originating from the Groundlight SDK and those from your application.

    Log Exceptions

    Log exceptions with appropriate log levels (e.g., error, warning, etc.) and include relevant context information. This will help you debug issues more effectively and monitor the health of your application.

    Implement Retry Logic

    When handling exceptions, implement retry logic with exponential backoff for transient errors, such as network issues or rate-limiting. This can help your application recover from temporary issues without manual intervention.

    Handle Exceptions Gracefully

    In addition to logging exceptions, handle them gracefully to ensure that your application remains functional despite errors. This might include displaying an error message to users or falling back to a default behavior.

    Test Your Error Handling

    Write tests to ensure that your error handling works as expected. This can help you catch issues early and ensure that your application can handle errors gracefully in production.

    By following these best practices, you can create robust and resilient applications that can handle server errors and other exceptions when using the Groundlight SDK.

    - - + + \ No newline at end of file diff --git a/docs/building-applications/industrial.html b/docs/building-applications/industrial.html index 1cda7125..128c75f4 100644 --- a/docs/building-applications/industrial.html +++ b/docs/building-applications/industrial.html @@ -3,14 +3,14 @@ -Industrial and Manufacturing Applications | Groundlight - - +Industrial and Manufacturing Applications | Groundlight + +
    Skip to main content

    Industrial and Manufacturing Applications

    Modern natural language-based computer vision is transforming industrial and manufacturing applications by enabling more intuitive interaction with automation systems. Groundlight offers cutting-edge computer vision technology that can be seamlessly integrated into various industrial processes, enhancing efficiency, productivity, and quality control.

    Machine Tending

    Groundlight's computer vision technology can assist in automating machine-tending tasks, such as loading and unloading materials in CNC machines, milling centers, or injection molding equipment. By enabling robots to recognize parts and tools using natural language, complex machine-tending tasks become more accessible and efficient.

    Process Automation

    Integrating Groundlight's computer vision into your process automation systems can help identify bottlenecks, optimize workflows, and reduce manual intervention. Our technology can work hand-in-hand with robotic systems to perform tasks like sorting, assembly, all while interpreting natural language commands to streamline operations.

    Quality Control

    Groundlight's computer vision technology can play a vital role in ensuring the highest quality standards in your manufacturing processes. By identifying defects or irregularities in products, our computer vision system can help maintain strict quality control, reducing the need for manual inspections and increasing overall product quality.

    Integration with Cobots and CNC Machines

    Groundlight's computer vision technology can be easily integrated with popular cobot robotic arms, such as Universal Robots, to enhance their capabilities and improve collaboration between humans and robots. Additionally, our technology can be integrated into existing CNC machines or other devices using the Modbus interface, allowing for seamless communication and control within your manufacturing environment.

    Contact Sales

    To learn more about how Groundlight's natural language computer vision technology can revolutionize your industrial and manufacturing processes, please reach out to us at info@groundlight.ai.

    - - + + \ No newline at end of file diff --git a/docs/building-applications/managing-confidence.html b/docs/building-applications/managing-confidence.html index 57adc820..bc8dc7a0 100644 --- a/docs/building-applications/managing-confidence.html +++ b/docs/building-applications/managing-confidence.html @@ -3,16 +3,16 @@ -Confidence Levels | Groundlight - - +Confidence Levels | Groundlight + +
    Skip to main content

    Confidence Levels

    Groundlight gives you a simple way to control the trade-off of latency against accuracy. The longer you can wait for an answer to your image query, the better accuracy you can get. In particular, if the ML models are unsure of the best response, they will escalate the image query to more intensive analysis with more complex models and real-time human monitors as needed. Your code can easily wait for this delayed response. Either way, these new results are automatically trained into your models so your next queries will get better results faster.

    The desired confidence level is set as the escalation threshold on your detector. This determines the minimum confidence score for the ML system to provide before the image query is escalated.

    For example, say you want to set your desired confidence level to 0.95, but that you're willing to wait up to 60 seconds to get a confident response.

    from groundlight import Groundlight
    from PIL import Image
    import requests

    gl = Groundlight()
    image_url = "https://www.photos-public-domain.com/wp-content/uploads/2010/11/over_flowing_garbage_can.jpg"
    image = Image.open(requests.get(image_url, stream=True).raw)

    d = gl.get_or_create_detector(name="trash", query="Is the trash can full?", confidence_threshold=0.95)

    # This will wait until either 60 seconds have passed or the confidence reaches 0.95
    image_query = gl.submit_image_query(detector=d, image=image, wait=60)

    print(f"The answer is {image_query.result}")
    tip

    Tuning confidence lets you balance accuracy against latency. Higher confidence will get higher accuracy, but will generally require higher latency. Higher confidence also requires more labels, which increases labor costs.

    Or if you want to execute submit_image_query as fast as possible, set wait=0. You will either get the ML results or a placeholder response if the ML model hasn't finished executing. Image queries which are below the desired confidence level will still be escalated for further analysis, and the results are incorporated as training data to improve your ML model, but your code will not wait for that to happen.

    image_query = gl.submit_image_query(detector=d, image=image, wait=0)

    If the returned result was generated from an ML model, you can see the confidence score returned for the image query:

    print(f"The confidence is {image_query.result.confidence}")
    - - + + \ No newline at end of file diff --git a/docs/building-applications/working-with-detectors.html b/docs/building-applications/working-with-detectors.html index 60c4b23b..0c0225e1 100644 --- a/docs/building-applications/working-with-detectors.html +++ b/docs/building-applications/working-with-detectors.html @@ -3,14 +3,14 @@ -Working with Detectors | Groundlight - - +Working with Detectors | Groundlight + +
    Skip to main content

    Working with Detectors

    Explicitly create a new detector

    Typically you'll use the get_or_create_detector(name: str, query: str) method to find an existing detector you've already created with the same name, or create a new one if it doesn't exists. But if you'd like to force creating a new detector you can also use the create_detector(name: str, query: str) method

    from groundlight import Groundlight

    gl = Groundlight()
    detector = gl.create_detector(name="your_detector_name", query="is this what we want to see?")

    Retrieve an existing detector

    from groundlight import Groundlight

    gl = Groundlight()
    detector = gl.get_detector(id="YOUR_DETECTOR_ID")

    List your detectors

    from groundlight import Groundlight

    gl = Groundlight()
    # Defaults to 10 results per page
    detectors = gl.list_detectors()

    # Pagination: 1st page of 5 results per page
    detectors = gl.list_detectors(page=1, page_size=5)

    Retrieve an image query

    In practice, you may want to check for a new result on your query. For example, after a cloud reviewer labels your query. For example, you can use the image_query.id after the above submit_image_query() call.

    from groundlight import Groundlight

    gl = Groundlight()
    image_query = gl.get_image_query(id="iq_YOUR_IMAGE_QUERY_ID")

    List your previous image queries

    from groundlight import Groundlight

    gl = Groundlight()
    # Defaults to 10 results per page
    image_queries = gl.list_image_queries()

    # Pagination: 1st page of 5 results per page
    image_queries = gl.list_image_queries(page=1, page_size=5)

    Adding labels to existing image queries

    Groundlight lets you start using models by making queries against your very first image, but there are a few situations where you might either have an existing dataset, or you'd like to handle the escalation response programatically in your own code but still include the label to get better responses in the future. With your image_query from either submit_image_query() or get_image_query() you can add the label directly. Note that if the query is already in the escalation queue due to low ML confidence or audit thresholds, it may also receive labels from another source.

    from groundlight import Groundlight
    from PIL import Image
    import requests

    gl = Groundlight()
    d = gl.get_or_create_detector(name="doorway", query="Is the doorway open?")
    image_url= "https://images.selfstorage.com/large-compress/2174925f24362c479b2.jpg"
    image = Image.open(requests.get(image_url, stream=True).raw)
    image_query = gl.submit_image_query(detector=d, image=image)
    gl.add_label(image_query, 'YES') # or 'NO'

    The only valid labels at this time are 'YES' and 'NO'.

    - - + + \ No newline at end of file diff --git a/docs/getting-started.html b/docs/getting-started.html index 5980fe65..8659de93 100644 --- a/docs/getting-started.html +++ b/docs/getting-started.html @@ -3,16 +3,16 @@ -Getting Started | Groundlight - - +Getting Started | Groundlight + +
    Skip to main content

    Getting Started

    Computer Vision powered by Natural Language

    Build a working computer vision system in just a few lines of python:

    from groundlight import Groundlight

    gl = Groundlight()
    det = gl.get_or_create_detector(name="doorway", query="Is the doorway open?")
    img = "./docs/static/img/doorway.jpg" # Image can be a file or a Python object
    image_query = gl.submit_image_query(detector=det, image=img)
    print(f"The answer is {image_query.result}")

    Note: The SDK is currently in "beta" phase. Interfaces are subject to change in future versions. We will follow semver semantics for breaking changes.

    How does it work?

    Your images are first analyzed by machine learning (ML) models which are automatically trained on your data. If those models have high enough confidence, that's your answer. But if the models are unsure, then the images are progressively escalated to more resource-intensive analysis methods up to real-time human review. So what you get is a computer vision system that starts working right away without even needing to first gather and label a dataset. At first it will operate with high latency, because people need to review the image queries. But over time, the ML systems will learn and improve so queries come back faster with higher confidence.

    Escalation Technology

    Groundlight's Escalation Technology combines the power of generative AI using our Visual LLM, along with the speed of edge computing, and the reliability of real-time human oversight.

    diagram showing escalation technology

    Building a simple visual application

    1. Install the groundlight SDK. Requires python version 3.7 or higher. See prerequisites.

      pip3 install groundlight
    2. Head over to the groundlight web app to create an API token. You will need to set the GROUNDLIGHT_API_TOKEN environment variable to access the API.

      export GROUNDLIGHT_API_TOKEN=api_2GdXMflhJi6L_example
    3. Create a python script.

      ask.py
      from groundlight import Groundlight

      gl = Groundlight()
      det = gl.get_or_create_detector(name="doorway", query="Is the doorway open?")
      img = "./docs/static/img/doorway.jpg" # Image can be a file or a Python object
      image_query = gl.submit_image_query(detector=det, image=img)
      print(f"The answer is {image_query.result}")
    4. Run it!

      python ask.py
    - - + + \ No newline at end of file diff --git a/docs/getting-started/api-tokens.html b/docs/getting-started/api-tokens.html index 2d533f05..aa898612 100644 --- a/docs/getting-started/api-tokens.html +++ b/docs/getting-started/api-tokens.html @@ -3,14 +3,14 @@ -API Tokens | Groundlight - - +API Tokens | Groundlight + +
    Skip to main content

    API Tokens

    About API Tokens

    To use the Groundlight SDK or API, you need a security token which we call an "API Token." These authenticate you to Groundlight and authorize your code to use services in your account.

    API tokens look like api_2GdXMflhJ... and consist of a ksuid (a kind of sortable UUID) followed by a secret string.

    Handling API Tokens

    You should treat API tokens like passwords. Never check them directly into your code or share them. Please use best security practices with your API tokens, because if anybody gets your API token, they have nearly full control over your Groundlight account.

    Here are some best practices for handling API tokens:

    • Store API tokens in a secure location, such as an encrypted vault.
    • Use environment variables to store API tokens, rather than hardcoding them in your application.
    • Limit the number of people who have access to API tokens.
    • Rotate API tokens regularly and revoke old ones when they are no longer needed.

    Using API Tokens with the SDK

    There are a couple of ways the SDK can find your API token:

    1. Environment variable (recommended): As a best practice, we recommend storing API tokens in the environment variable GROUNDLIGHT_API_TOKEN. This helps avoid accidentally committing the token to your code repository. The SDK will automatically look for the API token there, so you don't have to put it in your code at all.
    from groundlight import Groundlight

    # looks for API token in environment variable GROUNDLIGHT_API_TOKEN
    gl = Groundlight()
    1. Constructor argument: Alternatively, you can pass the API token directly to the Groundlight constructor. However, be cautious not to commit this code to your repository.
    from groundlight import Groundlight

    token = get_token_from_secure_location()
    gl = Groundlight(api_token=token)

    Creating and Revoking API Tokens

    You can manage your API tokens from the Groundlight website at https://app.groundlight.ai/reef/my-account/api-tokens.

    Creating API Tokens

    1. Log in to your Groundlight account and navigate to the API tokens page.
    2. Click the "Create New API Token" button.
    3. Give the new token a descriptive name, so you can easily identify it later.
    4. Click "Create Token."
    5. Copy the generated token and store it securely, as you won't be able to see it again. Groundlight does not store a copy of your API tokens.

    Viewing and Revoking API Tokens

    On the API tokens page, you can see a list of your current tokens, along with the following information:

    • Token Name: The descriptive name you assigned when creating the token
    • Snippet (prefix): A short, unique identifier for each token
    • Last used: The date and time the token was last used

    To revoke an API token

    1. Locate the token you want to revoke in the list.
    2. Click the "Delete" button next to the token.
    3. Confirm that you want to revoke the token.

    Note: Revoking an API token will immediately invalidate it and prevent any applications using it from accessing your Groundlight account. Be sure to update your applications with a new token before revoking an old one.

    - - + + \ No newline at end of file diff --git a/docs/getting-started/dog-on-couch.html b/docs/getting-started/dog-on-couch.html index 71954003..316d9385 100644 --- a/docs/getting-started/dog-on-couch.html +++ b/docs/getting-started/dog-on-couch.html @@ -3,14 +3,14 @@ -A Fun Example: Dog-on-Couch Detector | Groundlight - - +A Fun Example: Dog-on-Couch Detector | Groundlight + +
    Skip to main content

    A Fun Example: Dog-on-Couch Detector

    Here is a whimsical example of how you could use Groundlight in your home to keep your dog off the couch. This document will guide you through creating a complete application. If the dog is detected on the couch, the application will play a pre-recorded sound over the computer's speakers, instructing the dog to get off the couch. Be sure to record your own voice so that your dog pays attention to you.

    Requirements

    • Groundlight SDK with Python 3.7 or higher
    • A supported USB or network-connected camera
    • A pre-recorded sound file (e.g., get_off_couch.mp3)
    • A couch and a dog are recommended for proper end-to-end testing.

    Installation

    Ensure you have Python 3.7 or higher installed, and then install the Groundlight SDK and OpenCV library:

    pip install groundlight opencv-python pillow pyaudio

    Creating the Application

    1. First, log in to the Groundlight application and get an API Token.

    2. Next, we'll write the Python script for the application. Import the required libraries:

    import time
    import cv2
    from groundlight import Groundlight
    from PIL import Image
    import pyaudio
    import wave
    1. Define a function to capture an image from the camera using OpenCV:
    def capture_image():
    cap = cv2.VideoCapture(0)

    ret, frame = cap.read()
    cap.release()

    if ret:
    # Convert to PIL image
    return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
    else:
    return None
    1. Define a function to play the pre-recorded sound:
    def play_sound(file_path):
    CHUNK = 1024
    wf = wave.open(file_path, 'rb')

    p = pyaudio.PyAudio()

    stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
    channels=wf.getnchannels(),
    rate=wf.getframerate(),
    output=True)

    data = wf.readframes(CHUNK)

    while data:
    stream.write(data)
    data = wf.readframes(CHUNK)

    stream.stop_stream()
    stream.close()

    p.terminate()
    1. Write the main application loop:
    gl = Groundlight()

    detector = gl.get_detector("Dog on Couch Detector")

    while True:
    image = capture_image()
    if image:
    try:
    iq = gl.submit_image_query(image=image, detector=detector, wait=60)
    answer = iq.result.label
    if answer == "YES":
    print("Dog detected on the couch!")
    play_sound("get_off_couch.mp3")
    except Exception as e:
    print(f"Error submitting image query: {e}")
    else:
    print("Failed to capture image")

    # Sleep for a minute before checking again
    time.sleep(60)

    This application captures an image using the capture_image function, then submits it to the Groundlight API for analysis. If the dog is detected on the couch, it plays the pre-recorded sound using the play_sound function.

    Save the script as dog_on_couch_detector.py and run it:

    python dog_on_couch_detector.py
    - - + + \ No newline at end of file diff --git a/docs/getting-started/retail-analytics.html b/docs/getting-started/retail-analytics.html index cbecadfe..15833400 100644 --- a/docs/getting-started/retail-analytics.html +++ b/docs/getting-started/retail-analytics.html @@ -3,14 +3,14 @@ -A Serious Example: Retail Analytics | Groundlight - - +A Serious Example: Retail Analytics | Groundlight + +
    Skip to main content

    A Serious Example: Retail Analytics

    Tracking utilization of a customer service counter

    This example demonstrates the application of Groundlight to a retail analytics solution, which monitors the usage of a service counter by customers throughout the day. The application creates a detector to identify when the service desk is being utilized by a customer. It checks the detector every minute, and once an hour, it prints out a summary of the percentage of time that the service counter is in use. At the end of the day, it emails the daily log.

    This retail analytics application can be beneficial in various ways:

    1. Staff allocation and scheduling: By analyzing the usage patterns of the service counter, store managers can optimize staff allocation and scheduling, ensuring that enough employees are available during peak hours and reducing wait times for customers.

    2. Identifying trends: The application can help identify trends in customer behavior, such as busier times of the day or specific days of the week with higher traffic. This information can be used to plan targeted marketing campaigns or promotions to increase sales and customer engagement.

    3. Improving store layout: Understanding when and how often customers use the service counter can provide insights into the effectiveness of the store's layout. Retailers can use this information to make data-driven decisions about rearranging the store layout to encourage customers to visit the service counter or explore other areas of the store.

    4. Customer satisfaction: By monitoring the usage of the service counter and proactively addressing long wait times or crowded areas, retailers can improve customer satisfaction and loyalty. A positive customer experience can lead to increased sales and return visits.

    To implement this retail analytics solution, a store would need to install a supported camera near the service counter, ensuring a clear view of the area. The camera would then be connected to a computer running the Groundlight-based application. Store managers would receive hourly summaries of the service counter usage and a daily log via email, enabling them to make informed decisions to improve store operations and customer experience.

    Requirements

    • Groundlight SDK with Python 3.7 or higher
    • A supported USB or network-connected camera
    • An email account with SMTP access to send the daily log

    Installation

    Ensure you have Python 3.7 or higher installed, and then install the Groundlight SDK, OpenCV library, and other required libraries:

    pip install groundlight opencv-python pillow

    Creating the Application

    1. First, log in to the Groundlight application and get an API Token.

    2. Next, we'll write the Python script for the application. Import the required libraries:

    import time
    import cv2
    import smtplib
    from groundlight import Groundlight
    from PIL import Image
    from datetime import datetime, timedelta
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    1. Define a function to capture an image from the camera using OpenCV:
    def capture_image():
    cap = cv2.VideoCapture(0)

    ret, frame = cap.read()
    cap.release()

    if ret:
    # Convert to PIL image
    return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
    else:
    return None
    1. Define a function to send the daily log via email. You will need to customize this for your particular network environment.
    def send_email(sender, receiver, subject, body):
    msg = MIMEMultipart()
    msg['From'] = sender
    msg['To'] = receiver
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'plain'))

    server = smtplib.SMTP('smtp.example.com', 587)
    server.starttls()
    server.login(sender, "your-password")
    text = msg.as_string()
    server.sendmail(sender, receiver, text)
    server.quit()
    1. Define when your business's operating hours are:
    START_OF_BUSINESS = 9  # e.g. 9am
    END_OF_BUSINESS = 17 # e.g. 5pm

    def is_within_business_hours():
    current_hour = datetime.now().hour
    return START_OF_BUSINESS <= current_hour < END_OF_BUSINESS

    1. Write the main application loop:
    gl = Groundlight()

    detector = gl.get_or_create_detector(
    name="counter-in-use",
    query="Is there a customer at the service counter?",
    # We can get away with relatively low confidence since we're aggregating
    confidence_threshold=0.8)

    DELAY = 60

    log = []
    daily_log = []
    next_hourly_start = datetime.now().replace(minute=0, second=0, microsecond=0) + timedelta(hours=1)

    while True:
    if not is_within_business_hours():
    time.sleep(DELAY)
    continue

    image = capture_image()
    if not image:
    print("Failed to capture image")
    time.sleep(DELAY)
    continue

    try:
    iq = gl.submit_image_query(image=image, detector=detector, wait=60)
    except Exception as e:
    print(f"Error submitting image query: {e}")
    time.sleep(DELAY)
    continue

    answer = iq.result.label
    log.append(answer)

    if datetime.now() >= next_hourly_start:
    next_hourly_start += timedelta(hours=1)

    percent_in_use = (log.count("YES") / len(log)) * 100
    current_time = datetime.now().replace(hour=START_OF_BUSINESS, minute=0, second=0)
    formatted_time = current_time.strftime("%I%p") # like 3pm
    msg = f"Hourly summary for {formatted_time}: {percent_in_use:.0f}% counter in use"
    print(msg)
    daily_log.append(msg)
    log = []

    current_hour = datetime.now().hour
    if current_hour == END_OF_BUSINESS and not daily_log == []:
    daily_summary = "Daily summary:\n"
    for msg in daily_log:
    daily_summary += f"{msg}\n"

    print(daily_summary)
    send_email(sender="counterbot@example.com",
    receiver="manager@example.com",
    subject="Daily Service Counter Usage Log",
    body=daily_summary)
    daily_log = []

    time.sleep(DELAY)

    This application captures an image using the capture_image function, then submits it to the Groundlight API for analysis. If a customer is detected at the counter, it logs the event. Every hour, it prints a summary of the counter's usage percentage, and at the end of the day, it emails the daily log using the send_email function.

    Save the script as service_counter_monitor.py and run it:

    python service_counter_monitor.py
    - - + + \ No newline at end of file diff --git a/docs/getting-started/writing-queries.html b/docs/getting-started/writing-queries.html index 246b1327..c50c80dc 100644 --- a/docs/getting-started/writing-queries.html +++ b/docs/getting-started/writing-queries.html @@ -3,9 +3,9 @@ -Writing Queries | Groundlight - - +Writing Queries | Groundlight + +
    @@ -20,7 +20,7 @@ is nice weather. Instead, you might ask "Can you see any clouds in the sky?"

    ❌ Where is the thing?

    This is not a binary question "YES" and "NO" don't make sense in this context. Also, it's not clear what the "thing" refers to.

    🟡 Is the factory floor clean and organized?

    While this question is binary, "cleanliness" can be somewhat subjective. An improved version could be: "Are there any visible spills or clutter on the factory floor?"

    - - + + \ No newline at end of file diff --git a/docs/installation.html b/docs/installation.html index 7c87b34e..f0a33037 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -3,14 +3,14 @@ -Installation | Groundlight - - +Installation | Groundlight + +
    Skip to main content

    Installation

    Welcome to the Groundlight SDK installation guide. In this guide, you'll find step-by-step instructions on how to install and set up the Groundlight SDK on various platforms.

    Platform-specific Installation Guides

    Choose your platform from the list below and follow the instructions in the corresponding guide:

    After completing the installation process for your platform, you'll be ready to start building visual applications using the Groundlight SDK.

    - - + + \ No newline at end of file diff --git a/docs/installation/linux.html b/docs/installation/linux.html index 7abbac9d..50a4b1c2 100644 --- a/docs/installation/linux.html +++ b/docs/installation/linux.html @@ -3,14 +3,14 @@ -Installing on Linux | Groundlight - - +Installing on Linux | Groundlight + +
    Skip to main content

    Installing on Linux

    This guide will help you install the Groundlight SDK on Linux. The Groundlight SDK requires Python 3.7 or higher.

    Prerequisites

    Ensure that you have the following installed on your system:

    • Python 3.7 or higher
    • pip (Python package installer)

    Basic Installation

    Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:

    Installing Groundlight SDK

    To install the Groundlight SDK using pip, run the following command in your terminal:

    pip install groundlight

    If you're also using python2 on your system, you might need to use pip3 instead:

    pip3 install groundlight

    The Groundlight SDK is now installed and ready for use.

    Checking Groundlight SDK Version

    To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner:

    python -c "import groundlight; print(groundlight.__version__)"

    Upgrading Groundlight SDK

    If you need to upgrade the Groundlight SDK to the latest version, use the following pip command:

    pip install --upgrade groundlight

    Or, if you're using pip3:

    pip3 install --upgrade groundlight

    After upgrading, you can use the Python one-liner mentioned in the "Checking Groundlight SDK Version" section to verify that the latest version is now installed.

    Getting the right Python Version

    To check your installed Python version, open a terminal and run:

    python --version

    If you see a version number starting with "3.7" or higher (e.g., "3.7.5" or "3.9.0"), you're good to go. If not, you might need to upgrade Python on your system.

    Upgrading Python on Linux

    Use your distribution's package manager to install the latest Python version:

    • For Ubuntu or Debian-based systems:

      sudo apt update
      sudo apt install python3

      (For Ubuntu 18.04 see note below.)

    • For Fedora-based systems:

      sudo dnf install python3
    • For Arch Linux:

      sudo pacman -S python

    After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.

    Special note about Ubuntu 18.04

    Ubuntu 18.04 still uses python 3.6 by default, which is end-of-life. We generally recommend using python 3.10. If you know how to install py3.10, please go ahead. But the easiest version of python 3 to use with Ubuntu 18.04 is python 3.8, which can be installed as follows without adding any extra repositories:

    # Prepare Ubuntu to install things
    sudo apt-get update
    # Install the basics
    sudo apt-get install -y python3.8 python3.8-distutils curl
    # Configure `python3` to run python3.8 by default
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 10
    # Download and install pip3.8
    curl https://bootstrap.pypa.io/get-pip.py > /tmp/get-pip.py
    sudo python3.8 /tmp/get-pip.py
    # Configure `pip3` to run pip3.8
    sudo update-alternatives --install /usr/bin/pip3 pip3 $(which pip3.8) 10
    # Now we can install Groundlight!
    pip3 install groundlight

    Ready to go!

    You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.

    - - + + \ No newline at end of file diff --git a/docs/installation/macos.html b/docs/installation/macos.html index 21626d22..682b5531 100644 --- a/docs/installation/macos.html +++ b/docs/installation/macos.html @@ -3,14 +3,14 @@ -Installing on macOS | Groundlight - - +Installing on macOS | Groundlight + +
    Skip to main content

    Installing on macOS

    This guide will help you install the Groundlight SDK on macOS. The Groundlight SDK requires Python 3.7 or higher.

    Prerequisites

    Ensure that you have the following installed on your system:

    • Python 3.7 or higher
    • pip (Python package installer)

    Basic Installation

    Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:

    Installing Groundlight SDK

    To install the Groundlight SDK using pip, run the following command in your terminal:

    pip install groundlight

    If you're also using python2 on your system, you might need to use pip3 instead:

    pip3 install groundlight

    The Groundlight SDK is now installed and ready for use.

    Checking Groundlight SDK Version

    To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner:

    python -c "import groundlight; print(groundlight.__version__)"

    Upgrading Groundlight SDK

    If you need to upgrade the Groundlight SDK to the latest version, use the following pip command:

    pip install --upgrade groundlight

    Or, if you're using pip3:

    pip3 install --upgrade groundlight

    After upgrading, you can use the Python one-liner mentioned in the "Checking Groundlight SDK Version" section to verify that the latest version is now installed.

    Getting the right Python Version

    To check your installed Python version, open a terminal and run:

    python --version

    If you see a version number starting with "3.7" or higher (e.g., "3.7.5" or "3.9.0"), you're good to go. If not, you might need to upgrade Python on your system.

    Upgrading Python on MacOS

    Download the latest Python installer from the official Python website and run it, or use Homebrew to install Python:

    brew install python

    After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.

    Ready to go!

    You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.

    - - + + \ No newline at end of file diff --git a/docs/installation/monitoring-notification-server.html b/docs/installation/monitoring-notification-server.html index aeeaf23e..68e2d70b 100644 --- a/docs/installation/monitoring-notification-server.html +++ b/docs/installation/monitoring-notification-server.html @@ -3,14 +3,14 @@ -Monitoring Notification Server | Groundlight - - +Monitoring Notification Server | Groundlight + +
    Skip to main content

    Monitoring Notification Server

    This is the easiest way to deploy your Groundlight detectors on a linux computer. All configuration is done through a web user interface, and no code development is required.

    Prerequisites

    1. Internet connected linux computer
    2. Video source (USB camera or RTSP stream)
    3. Groundlight API Key (available from groundlight.ai)

    Deployment

    1. Install Docker on your computer. See Docker's installation instructions.
    2. Create a new file called docker-compose.yml in your project directory. Copy the following into it:
    services:
    frontend:
    image: docker.io/groundlight/monitoring-notification-server-frontend:latest
    ports:
    - "3000:3000"
    depends_on:
    - backend
    backend:
    image: docker.io/groundlight/monitoring-notification-server-backend:latest
    ports:
    - "8000:8000"
    devices:
    - /dev/video0:/dev/video0
    - /dev/video1:/dev/video1
    - /dev/video2:/dev/video2
    - /dev/video3:/dev/video3
    privileged: true
    volumes:
    - /dev/bus/usb:/dev/bus/usb
    1. Run the following command in your project directory:
    docker-compose up
    1. If installed locally, open http://localhost:3000 in your browser. If installed on a remote device, replace localhost with the IP address of your device. You should see the following page:

    Screenshot of the Groundlight Monitoring Notification Server

    - - + + \ No newline at end of file diff --git a/docs/installation/nvidia-jetson.html b/docs/installation/nvidia-jetson.html index 3d22959c..8cda4736 100644 --- a/docs/installation/nvidia-jetson.html +++ b/docs/installation/nvidia-jetson.html @@ -3,14 +3,14 @@ -Installing on NVIDIA Jetson | Groundlight - - +Installing on NVIDIA Jetson | Groundlight + +
    Skip to main content

    Installing on NVIDIA Jetson

    This guide will help you install the Groundlight SDK on NVIDIA Jetson devices. The Groundlight SDK requires Python 3.7 or higher.

    Prerequisites

    Ensure that you have the following installed on your NVIDIA Jetson:

    • Python 3.7 or higher
    • pip (Python package installer)

    Basic Installation

    Assuming you have Python 3.7 or higher installed on your NVIDIA Jetson, you can proceed with the following steps to install or upgrade the Groundlight SDK:

    Installing Groundlight SDK

    To install the Groundlight SDK using pip, run the following command in your terminal:

    pip3 install groundlight

    An ARM-compatible version will automatically get installed. The Groundlight SDK is now installed and ready for use.

    Using RTSP Streams

    If you have docker installed on your NVIDIA Jetson, you can even just run

    docker run groundlight/stream

    as we publish an ARM version of our streaming application to Docker Hub.

    Sample application

    For a complete end-to-end example of running on an NVIDIA Jetson, see this GitHub repo.

    Ready to go!

    You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and [Building Applications

    - - + + \ No newline at end of file diff --git a/docs/installation/optional-libraries.html b/docs/installation/optional-libraries.html index 91ce0699..8d9db1f9 100644 --- a/docs/installation/optional-libraries.html +++ b/docs/installation/optional-libraries.html @@ -3,9 +3,9 @@ -Optional libraries | Groundlight - - +Optional libraries | Groundlight + +
    @@ -14,7 +14,7 @@ and will make use of them if they're present. If not, we'll gracefully degrade, and tell you what's wrong if you try to use these features.

    PIL - optional but default installed

    The PIL library offers a bunch of standard utilities for working with images in python. The Groundlight SDK can work without PIL.

    Because PIL is not very large, and is quite useful, we install it by default with the normal build of the Groundlight SDK. So when you

    pip3 install groundlight

    it comes with the pillow version of the PIL library already installed.

    Working without PIL

    If you are extremely space constrained, you can install the Groundlight SDK from source without PIL and it will work properly, but with reduced functionality. Specifically, you will need to convert your images into JPEG format yourself. The SDK normally relies on PIL to do JPEG compression (which is a non-trivial algorithm), and the API requires images to be in JPEG format. However on space-constrained platforms, sometimes this conversion is done in hardware, and so we don't want to force you to install PIL if you don't need it.

    Numpy, OpenCV - fully optional

    These commonly-used libraries are not installed by default, because they are quite large, and their installation can often cause conflicts with other dependent libraries. If you want to use them, install them directly.

    - - + + \ No newline at end of file diff --git a/docs/installation/raspberry-pi.html b/docs/installation/raspberry-pi.html index bed160aa..1d46b8e4 100644 --- a/docs/installation/raspberry-pi.html +++ b/docs/installation/raspberry-pi.html @@ -3,14 +3,14 @@ -Installing on Raspberry Pi | Groundlight - - +Installing on Raspberry Pi | Groundlight + +
    Skip to main content

    Installing on Raspberry Pi

    This guide will help you install the Groundlight SDK on Raspberry Pi. The Groundlight SDK requires Python 3.7 or higher.

    Prerequisites

    Ensure that you have the following installed on your Raspberry Pi:

    • Python 3.7 or higher
    • pip (Python package installer)

    Basic Installation

    Assuming you have Python 3.7 or higher installed on your Raspberry Pi, you can proceed with the following steps to install or upgrade the Groundlight SDK:

    Installing Groundlight SDK

    To install the Groundlight SDK using pip, run the following command in your terminal:

    pip3 install groundlight

    An ARM-compatible version will automatically get installed. The Groundlight SDK is now installed and ready for use.

    Using RTSP Streams

    If you have docker installed on your Raspberry Pi, you can even just run

    docker run groundlight/stream

    as we publish an ARM version of our streaming application to Docker Hub.

    Sample application

    For a complete end-to-end example of running on a Raspberry Pi, see this GitHub repo.

    Ready to go!

    You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.

    - - + + \ No newline at end of file diff --git a/docs/installation/windows.html b/docs/installation/windows.html index fd3d125c..680b6703 100644 --- a/docs/installation/windows.html +++ b/docs/installation/windows.html @@ -3,14 +3,14 @@ -Installing on Windows | Groundlight - - +Installing on Windows | Groundlight + +
    Skip to main content

    Installing on Windows

    This guide will help you install the Groundlight SDK on Windows. The Groundlight SDK requires Python 3.7 or higher.

    Prerequisites

    Ensure that you have the following installed on your system:

    • Python 3.7 or higher
    • pip (Python package installer)

    Basic Installation

    Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:

    Installing Groundlight SDK

    To install the Groundlight SDK using pip, run the following command in your Command Prompt:

    pip install groundlight

    If you're also using python2 on your system, you might need to use pip3 instead:

    pip3 install groundlight

    The Groundlight SDK is now installed and ready for use.

    Checking Groundlight SDK Version

    To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner:

    python -c "import groundlight; print(groundlight.__version__)"

    Upgrading Groundlight SDK

    If you need to upgrade the Groundlight SDK to the latest version, use the following pip command:

    pip install --upgrade groundlight

    Or, if you're using pip3:

    pip3 install --upgrade groundlight

    After upgrading, you can use the Python one-liner mentioned in the "Checking Groundlight SDK Version" section to verify that the latest version is now installed.

    Getting the right Python Version

    To check your installed Python version, open a Command Prompt and run:

    python --version

    If you see a version number starting with "3.7" or higher (e.g., "3.7.5" or "3.9.0"), you're good to go. If not, you might need to upgrade Python on your system.

    Upgrading Python on Windows

    Download the latest Python installer from the official Python website and run it.

    After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.

    Ready to go!

    You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.

    - - + + \ No newline at end of file diff --git a/docs/iot.html b/docs/iot.html index 343e96d0..71edf0cc 100644 --- a/docs/iot.html +++ b/docs/iot.html @@ -3,14 +3,14 @@ -Setting up an ESP32 Camera Board | Groundlight - - +Setting up an ESP32 Camera Board | Groundlight + +
    Skip to main content

    No-Code IoT Deployment

    Groundlight supplies a tool for no-code deployment of a detector to an ESP32 Camera board. You can find it at https://iot.groundlight.ai/espcam.

    Easy Deployment

    This tool is designed to make it as easy as possible to deploy your Groundlight detector on an ESP32 Camera Board. You can deploy your detector in just a few clicks.

    1. Go to https://iot.groundlight.ai/espcam
    2. Plug your ESP32 Camera Board into your computer with a USB cable.
    3. Click through the steps to upload your detector to your ESP32 Camera Board.
    4. When prompted, allow your browser access to the serial port, so that it can program the device.
    Dialog box in browser asking for serial port access

    If you don't see a prompt like this, try using a current version of Chrome or another browser that supports Web Serial.

    Notification Options

    The tool supports the following notification options for your deployed detector:

    • Email
    • SMS (With Twilio)
    • Slack

    Multiple Supported Boards

    Tested with the following boards. Many other ESP32 boards should work as well, but may require building the firmware from source and changing the IO pin definitions.

    Example bannerExample bannerExample bannerExample banner

    Source Code

    The source code is written as an Arduino-based PlatformIO project for ESP32, and is available on GitHub at https://github.com/groundlight/esp32cam

    If you need assistance or have questions about integrating Groundlight with Arduino, please consider opening an issue on the GitHub repository or reaching out to our support team.

    - - + + \ No newline at end of file diff --git a/index.html b/index.html index 8c380497..6db9f83b 100644 --- a/index.html +++ b/index.html @@ -3,14 +3,14 @@ -Groundlight | Groundlight - - +Groundlight | Groundlight + +
    Skip to main content

    Groundlight

    Computer Vision powered by Natural Language

    Instant Models

    Groundlight's Visual LLM creates computer vision models from English instructions instead of a dataset. This reduces the time to get an AI-driven solution off the ground. Did we mention you don't need a dataset?

    Human Reliability

    Groundlight's models are allowed to say they're "Unsure" and can escalate to a larger model or human expert for assistance. By knowing what they know, Groundlight's models act more robust, combining the speed of AI with the reliability of human oversight.

    Seamless MLOps

    Because Groundlight starts with humans-in-the-loop (HITL), continuous monitoring and auditing are automatic. Any data drift is automatically detected and corrected for. So you know your visual applications won't fall behind as the world around them inevitably changes.

    - - + + \ No newline at end of file diff --git a/markdown-page.html b/markdown-page.html index 480483c2..690f475a 100644 --- a/markdown-page.html +++ b/markdown-page.html @@ -3,14 +3,14 @@ -Markdown page example | Groundlight - - +Markdown page example | Groundlight + +
    Skip to main content

    Markdown page example

    You don't need React to write simple standalone pages.

    - - + + \ No newline at end of file diff --git a/search-index.json b/search-index.json index 944158a5..5046b536 100644 --- a/search-index.json +++ b/search-index.json @@ -1 +1 @@ -[{"documents":[{"i":1,"t":"API Reference","u":"/python-sdk/docs/api-reference","b":["Docs"]},{"i":3,"t":"Building Applications","u":"/python-sdk/docs/building-applications","b":["Docs","Building Applications"]},{"i":17,"t":"Using Groundlight on the edge","u":"/python-sdk/docs/building-applications/edge","b":["Docs","Building Applications"]},{"i":19,"t":"Grabbing Images","u":"/python-sdk/docs/building-applications/grabbing-images","b":["Docs","Building Applications"]},{"i":31,"t":"Handling Server Errors","u":"/python-sdk/docs/building-applications/handling-errors","b":["Docs","Building Applications"]},{"i":49,"t":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications/industrial","b":["Docs","Building Applications"]},{"i":61,"t":"Confidence Levels","u":"/python-sdk/docs/building-applications/managing-confidence","b":["Docs","Building Applications"]},{"i":63,"t":"Working with Detectors","u":"/python-sdk/docs/building-applications/working-with-detectors","b":["Docs","Building Applications"]},{"i":76,"t":"Getting Started","u":"/python-sdk/docs/getting-started","b":["Docs","Getting Started"]},{"i":85,"t":"API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","b":["Docs","Getting Started"]},{"i":100,"t":"A Fun Example: Dog-on-Couch Detector","u":"/python-sdk/docs/getting-started/dog-on-couch","b":["Docs","Getting Started"]},{"i":108,"t":"A Serious Example: Retail Analytics","u":"/python-sdk/docs/getting-started/retail-analytics","b":["Docs","Getting Started"]},{"i":117,"t":"Writing Queries","u":"/python-sdk/docs/getting-started/writing-queries","b":["Docs","Getting Started"]},{"i":133,"t":"Installation","u":"/python-sdk/docs/installation","b":["Docs","Installation"]},{"i":137,"t":"Installing on Linux","u":"/python-sdk/docs/installation/linux","b":["Docs","Installation"]},{"i":157,"t":"Installing on macOS","u":"/python-sdk/docs/installation/macos","b":["Docs","Installation"]},{"i":175,"t":"Monitoring Notification Server","u":"/python-sdk/docs/installation/monitoring-notification-server","b":["Docs","Installation"]},{"i":181,"t":"Installing on NVIDIA Jetson","u":"/python-sdk/docs/installation/nvidia-jetson","b":["Docs","Installation"]},{"i":195,"t":"Optional libraries","u":"/python-sdk/docs/installation/optional-libraries","b":["Docs","Installation"]},{"i":204,"t":"Installing on Raspberry Pi","u":"/python-sdk/docs/installation/raspberry-pi","b":["Docs","Installation"]},{"i":218,"t":"Installing on Windows","u":"/python-sdk/docs/installation/windows","b":["Docs","Installation"]},{"i":236,"t":"No-Code IoT Deployment","u":"/python-sdk/docs/iot","b":["Docs"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,2.417,1,2.973]],["t/3",[2,2.973,3,2.417]],["t/17",[4,2.524,5,2.524,6,2.524]],["t/19",[7,2.973,8,2.973]],["t/31",[9,2.524,10,2.051,11,2.524]],["t/49",[3,2.051,12,2.524,13,2.524]],["t/61",[14,2.973,15,2.973]],["t/63",[16,2.973,17,2.973]],["t/76",[18,2.973,19,2.973]],["t/85",[0,2.417,20,2.973]],["t/100",[21,1.937,22,1.575,23,1.937,24,1.937,25,1.937]],["t/108",[22,1.782,26,2.192,27,2.192,28,2.192]],["t/117",[29,2.973,30,2.973]],["t/133",[31,3.618]],["t/137",[32,1.558,33,2.973]],["t/157",[32,1.558,34,2.973]],["t/175",[10,2.051,35,2.524,36,2.524]],["t/181",[32,1.323,37,2.524,38,2.524]],["t/195",[39,2.973,40,2.973]],["t/204",[32,1.323,41,2.524,42,2.524]],["t/218",[32,1.558,43,2.973]],["t/236",[44,2.524,45,2.524,46,2.524]]],"invertedIndex":[["analytics",{"_index":28,"t":{"108":{"position":[[26,9]]}}}],["api",{"_index":0,"t":{"1":{"position":[[0,3]]},"85":{"position":[[0,3]]}}}],["applications",{"_index":3,"t":{"3":{"position":[[9,12]]},"49":{"position":[[29,12]]}}}],["building",{"_index":2,"t":{"3":{"position":[[0,8]]}}}],["code",{"_index":44,"t":{"236":{"position":[[3,4]]}}}],["confidence",{"_index":14,"t":{"61":{"position":[[0,10]]}}}],["couch",{"_index":24,"t":{"100":{"position":[[22,5]]}}}],["deployment",{"_index":46,"t":{"236":{"position":[[12,10]]}}}],["detector",{"_index":25,"t":{"100":{"position":[[28,8]]}}}],["detectors",{"_index":17,"t":{"63":{"position":[[13,9]]}}}],["dog",{"_index":23,"t":{"100":{"position":[[15,3]]}}}],["edge",{"_index":6,"t":{"17":{"position":[[25,4]]}}}],["errors",{"_index":11,"t":{"31":{"position":[[16,6]]}}}],["example",{"_index":22,"t":{"100":{"position":[[6,8]]},"108":{"position":[[10,8]]}}}],["fun",{"_index":21,"t":{"100":{"position":[[2,3]]}}}],["getting",{"_index":18,"t":{"76":{"position":[[0,7]]}}}],["grabbing",{"_index":7,"t":{"19":{"position":[[0,8]]}}}],["groundlight",{"_index":5,"t":{"17":{"position":[[6,11]]}}}],["handling",{"_index":9,"t":{"31":{"position":[[0,8]]}}}],["images",{"_index":8,"t":{"19":{"position":[[9,6]]}}}],["industrial",{"_index":12,"t":{"49":{"position":[[0,10]]}}}],["installation",{"_index":31,"t":{"133":{"position":[[0,12]]}}}],["installing",{"_index":32,"t":{"137":{"position":[[0,10]]},"157":{"position":[[0,10]]},"181":{"position":[[0,10]]},"204":{"position":[[0,10]]},"218":{"position":[[0,10]]}}}],["iot",{"_index":45,"t":{"236":{"position":[[8,3]]}}}],["jetson",{"_index":38,"t":{"181":{"position":[[21,6]]}}}],["levels",{"_index":15,"t":{"61":{"position":[[11,6]]}}}],["libraries",{"_index":40,"t":{"195":{"position":[[9,9]]}}}],["linux",{"_index":33,"t":{"137":{"position":[[14,5]]}}}],["macos",{"_index":34,"t":{"157":{"position":[[14,5]]}}}],["manufacturing",{"_index":13,"t":{"49":{"position":[[15,13]]}}}],["monitoring",{"_index":35,"t":{"175":{"position":[[0,10]]}}}],["notification",{"_index":36,"t":{"175":{"position":[[11,12]]}}}],["nvidia",{"_index":37,"t":{"181":{"position":[[14,6]]}}}],["optional",{"_index":39,"t":{"195":{"position":[[0,8]]}}}],["pi",{"_index":42,"t":{"204":{"position":[[24,2]]}}}],["queries",{"_index":30,"t":{"117":{"position":[[8,7]]}}}],["raspberry",{"_index":41,"t":{"204":{"position":[[14,9]]}}}],["reference",{"_index":1,"t":{"1":{"position":[[4,9]]}}}],["retail",{"_index":27,"t":{"108":{"position":[[19,6]]}}}],["serious",{"_index":26,"t":{"108":{"position":[[2,7]]}}}],["server",{"_index":10,"t":{"31":{"position":[[9,6]]},"175":{"position":[[24,6]]}}}],["started",{"_index":19,"t":{"76":{"position":[[8,7]]}}}],["tokens",{"_index":20,"t":{"85":{"position":[[4,6]]}}}],["using",{"_index":4,"t":{"17":{"position":[[0,5]]}}}],["windows",{"_index":43,"t":{"218":{"position":[[14,7]]}}}],["working",{"_index":16,"t":{"63":{"position":[[0,7]]}}}],["writing",{"_index":29,"t":{"117":{"position":[[0,7]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":5,"t":"Sample Applications","u":"/python-sdk/docs/building-applications","h":"#sample-applications","p":3},{"i":7,"t":"Groundlight Stream Processor","u":"/python-sdk/docs/building-applications","h":"#groundlight-stream-processor","p":3},{"i":9,"t":"Arduino ESP32 Camera Sample App","u":"/python-sdk/docs/building-applications","h":"#arduino-esp32-camera-sample-app","p":3},{"i":11,"t":"Raspberry Pi","u":"/python-sdk/docs/building-applications","h":"#raspberry-pi","p":3},{"i":13,"t":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications","h":"#industrial-and-manufacturing-applications","p":3},{"i":15,"t":"Further Reading","u":"/python-sdk/docs/building-applications","h":"#further-reading","p":3},{"i":21,"t":"PIL","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#pil","p":19},{"i":23,"t":"OpenCV","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#opencv","p":19},{"i":25,"t":"Numpy","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#numpy","p":19},{"i":27,"t":"Channel order: BGR vs RGB","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#channel-order-bgr-vs-rgb","p":19},{"i":29,"t":"Framegrab","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#framegrab","p":19},{"i":33,"t":"Handling ApiException","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handling-apiexception","p":31},{"i":35,"t":"Best Practices for Handling Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#best-practices-for-handling-exceptions","p":31},{"i":37,"t":"Catch Specific Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#catch-specific-exceptions","p":31},{"i":39,"t":"Use Custom Exception Classes","u":"/python-sdk/docs/building-applications/handling-errors","h":"#use-custom-exception-classes","p":31},{"i":41,"t":"Log Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#log-exceptions","p":31},{"i":43,"t":"Implement Retry Logic","u":"/python-sdk/docs/building-applications/handling-errors","h":"#implement-retry-logic","p":31},{"i":45,"t":"Handle Exceptions Gracefully","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handle-exceptions-gracefully","p":31},{"i":47,"t":"Test Your Error Handling","u":"/python-sdk/docs/building-applications/handling-errors","h":"#test-your-error-handling","p":31},{"i":51,"t":"Machine Tending","u":"/python-sdk/docs/building-applications/industrial","h":"#machine-tending","p":49},{"i":53,"t":"Process Automation","u":"/python-sdk/docs/building-applications/industrial","h":"#process-automation","p":49},{"i":55,"t":"Quality Control","u":"/python-sdk/docs/building-applications/industrial","h":"#quality-control","p":49},{"i":57,"t":"Integration with Cobots and CNC Machines","u":"/python-sdk/docs/building-applications/industrial","h":"#integration-with-cobots-and-cnc-machines","p":49},{"i":59,"t":"Contact Sales","u":"/python-sdk/docs/building-applications/industrial","h":"","p":49},{"i":64,"t":"Explicitly create a new detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#explicitly-create-a-new-detector","p":63},{"i":66,"t":"Retrieve an existing detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-existing-detector","p":63},{"i":68,"t":"List your detectors","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-detectors","p":63},{"i":70,"t":"Retrieve an image query","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-image-query","p":63},{"i":72,"t":"List your previous image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-previous-image-queries","p":63},{"i":74,"t":"Adding labels to existing image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#adding-labels-to-existing-image-queries","p":63},{"i":77,"t":"Computer Vision powered by Natural Language","u":"/python-sdk/docs/getting-started","h":"#computer-vision-powered-by-natural-language","p":76},{"i":79,"t":"How does it work?","u":"/python-sdk/docs/getting-started","h":"#how-does-it-work","p":76},{"i":81,"t":"Escalation Technology","u":"/python-sdk/docs/getting-started","h":"#escalation-technology","p":76},{"i":83,"t":"Building a simple visual application","u":"/python-sdk/docs/getting-started","h":"#building-a-simple-visual-application","p":76},{"i":86,"t":"About API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#about-api-tokens","p":85},{"i":88,"t":"Handling API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#handling-api-tokens","p":85},{"i":90,"t":"Using API Tokens with the SDK","u":"/python-sdk/docs/getting-started/api-tokens","h":"#using-api-tokens-with-the-sdk","p":85},{"i":92,"t":"Creating and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-and-revoking-api-tokens","p":85},{"i":94,"t":"Creating API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-api-tokens","p":85},{"i":96,"t":"Viewing and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#viewing-and-revoking-api-tokens","p":85},{"i":98,"t":"To revoke an API token","u":"/python-sdk/docs/getting-started/api-tokens","h":"#to-revoke-an-api-token","p":85},{"i":102,"t":"Requirements","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#requirements","p":100},{"i":104,"t":"Installation","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#installation","p":100},{"i":106,"t":"Creating the Application","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#creating-the-application","p":100},{"i":109,"t":"Tracking utilization of a customer service counter","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#tracking-utilization-of-a-customer-service-counter","p":108},{"i":111,"t":"Requirements","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#requirements","p":108},{"i":113,"t":"Installation","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#installation","p":108},{"i":115,"t":"Creating the Application","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#creating-the-application","p":108},{"i":118,"t":"Introduction","u":"/python-sdk/docs/getting-started/writing-queries","h":"#introduction","p":117},{"i":120,"t":"Examples","u":"/python-sdk/docs/getting-started/writing-queries","h":"#examples","p":117},{"i":121,"t":"✅ Are there any cardboard boxes on the conveyor belt?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-are-there-any-cardboard-boxes-on-the-conveyor-belt","p":117},{"i":123,"t":"🟡 Is the trash can full?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-trash-can-full","p":117},{"i":125,"t":"✅ Is the garage door completely closed?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-garage-door-completely-closed","p":117},{"i":127,"t":"🟡 Is the weather nice out?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-weather-nice-out","p":117},{"i":129,"t":"❌ Where is the thing?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-where-is-the-thing","p":117},{"i":131,"t":"🟡 Is the factory floor clean and organized?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-factory-floor-clean-and-organized","p":117},{"i":135,"t":"Platform-specific Installation Guides","u":"/python-sdk/docs/installation","h":"#platform-specific-installation-guides","p":133},{"i":139,"t":"Prerequisites","u":"/python-sdk/docs/installation/linux","h":"#prerequisites","p":137},{"i":141,"t":"Basic Installation","u":"/python-sdk/docs/installation/linux","h":"#basic-installation","p":137},{"i":143,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#installing-groundlight-sdk","p":137},{"i":145,"t":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/linux","h":"#checking-groundlight-sdk-version","p":137},{"i":147,"t":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#upgrading-groundlight-sdk","p":137},{"i":149,"t":"Getting the right Python Version","u":"/python-sdk/docs/installation/linux","h":"#getting-the-right-python-version","p":137},{"i":151,"t":"Upgrading Python on Linux","u":"/python-sdk/docs/installation/linux","h":"#upgrading-python-on-linux","p":137},{"i":153,"t":"Special note about Ubuntu 18.04","u":"/python-sdk/docs/installation/linux","h":"#special-note-about-ubuntu-1804","p":137},{"i":155,"t":"Ready to go!","u":"/python-sdk/docs/installation/linux","h":"#ready-to-go","p":137},{"i":159,"t":"Prerequisites","u":"/python-sdk/docs/installation/macos","h":"#prerequisites","p":157},{"i":161,"t":"Basic Installation","u":"/python-sdk/docs/installation/macos","h":"#basic-installation","p":157},{"i":163,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#installing-groundlight-sdk","p":157},{"i":165,"t":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/macos","h":"#checking-groundlight-sdk-version","p":157},{"i":167,"t":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#upgrading-groundlight-sdk","p":157},{"i":169,"t":"Getting the right Python Version","u":"/python-sdk/docs/installation/macos","h":"#getting-the-right-python-version","p":157},{"i":171,"t":"Upgrading Python on MacOS","u":"/python-sdk/docs/installation/macos","h":"#upgrading-python-on-macos","p":157},{"i":173,"t":"Ready to go!","u":"/python-sdk/docs/installation/macos","h":"#ready-to-go","p":157},{"i":177,"t":"Prerequisites","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#prerequisites","p":175},{"i":179,"t":"Deployment","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#deployment","p":175},{"i":183,"t":"Prerequisites","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#prerequisites","p":181},{"i":185,"t":"Basic Installation","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#basic-installation","p":181},{"i":187,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#installing-groundlight-sdk","p":181},{"i":189,"t":"Using RTSP Streams","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#using-rtsp-streams","p":181},{"i":191,"t":"Sample application","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#sample-application","p":181},{"i":193,"t":"Ready to go!","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#ready-to-go","p":181},{"i":196,"t":"Smaller is better!","u":"/python-sdk/docs/installation/optional-libraries","h":"#smaller-is-better","p":195},{"i":198,"t":"PIL - optional but default installed","u":"/python-sdk/docs/installation/optional-libraries","h":"#pil---optional-but-default-installed","p":195},{"i":200,"t":"Working without PIL","u":"/python-sdk/docs/installation/optional-libraries","h":"#working-without-pil","p":195},{"i":202,"t":"Numpy, OpenCV - fully optional","u":"/python-sdk/docs/installation/optional-libraries","h":"#numpy-opencv---fully-optional","p":195},{"i":206,"t":"Prerequisites","u":"/python-sdk/docs/installation/raspberry-pi","h":"#prerequisites","p":204},{"i":208,"t":"Basic Installation","u":"/python-sdk/docs/installation/raspberry-pi","h":"#basic-installation","p":204},{"i":210,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/raspberry-pi","h":"#installing-groundlight-sdk","p":204},{"i":212,"t":"Using RTSP Streams","u":"/python-sdk/docs/installation/raspberry-pi","h":"#using-rtsp-streams","p":204},{"i":214,"t":"Sample application","u":"/python-sdk/docs/installation/raspberry-pi","h":"#sample-application","p":204},{"i":216,"t":"Ready to go!","u":"/python-sdk/docs/installation/raspberry-pi","h":"#ready-to-go","p":204},{"i":220,"t":"Prerequisites","u":"/python-sdk/docs/installation/windows","h":"#prerequisites","p":218},{"i":222,"t":"Basic Installation","u":"/python-sdk/docs/installation/windows","h":"#basic-installation","p":218},{"i":224,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#installing-groundlight-sdk","p":218},{"i":226,"t":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/windows","h":"#checking-groundlight-sdk-version","p":218},{"i":228,"t":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#upgrading-groundlight-sdk","p":218},{"i":230,"t":"Getting the right Python Version","u":"/python-sdk/docs/installation/windows","h":"#getting-the-right-python-version","p":218},{"i":232,"t":"Upgrading Python on Windows","u":"/python-sdk/docs/installation/windows","h":"#upgrading-python-on-windows","p":218},{"i":234,"t":"Ready to go!","u":"/python-sdk/docs/installation/windows","h":"#ready-to-go","p":218},{"i":238,"t":"Easy Deployment","u":"/python-sdk/docs/iot","h":"#easy-deployment","p":236},{"i":240,"t":"Notification Options","u":"/python-sdk/docs/iot","h":"#notification-options","p":236},{"i":242,"t":"Multiple Supported Boards","u":"/python-sdk/docs/iot","h":"#multiple-supported-boards","p":236},{"i":244,"t":"Source Code","u":"/python-sdk/docs/iot","h":"#source-code","p":236}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/5",[0,3.524,1,4.182]],["t/7",[2,2.036,3,4.065,4,4.065]],["t/9",[0,2.337,5,3.152,6,3.152,7,3.152,8,3.152]],["t/11",[9,4.754,10,4.754]],["t/13",[1,3.576,11,4.065,12,4.065]],["t/15",[13,4.754,14,4.754]],["t/21",[15,4.582]],["t/23",[16,5.035]],["t/25",[17,5.035]],["t/27",[18,3.152,19,3.152,20,3.152,21,3.152,22,3.152]],["t/29",[23,5.723]],["t/33",[24,3.524,25,4.754]],["t/35",[24,2.632,26,3.551,27,3.551,28,2.632]],["t/37",[28,3.014,29,4.065,30,3.576]],["t/39",[31,3.551,32,3.551,33,3.551,34,3.551]],["t/41",[28,3.524,35,4.754]],["t/43",[36,4.065,37,4.065,38,4.065]],["t/45",[28,3.014,39,4.065,40,4.065]],["t/47",[24,3.014,41,4.065,42,4.065]],["t/51",[43,4.754,44,4.754]],["t/53",[45,4.754,46,4.754]],["t/55",[47,4.754,48,4.754]],["t/57",[49,3.551,50,3.551,51,3.551,52,3.551]],["t/59",[53,4.754,54,4.754]],["t/64",[55,3.551,56,3.551,57,3.551,58,3.124]],["t/66",[58,3.576,59,3.576,60,3.576]],["t/68",[61,4.182,62,4.754]],["t/70",[59,3.576,63,3.254,64,4.065]],["t/72",[61,3.124,63,2.843,65,3.551,66,3.124]],["t/74",[60,2.773,63,2.523,66,2.773,67,3.152,68,3.152]],["t/77",[69,3.152,70,3.152,71,3.152,72,3.152,73,3.152]],["t/79",[74,5.723]],["t/81",[75,4.754,76,4.754]],["t/83",[77,3.551,78,3.551,79,3.551,80,2.465]],["t/86",[81,2.953,82,3.113]],["t/88",[24,3.014,81,2.525,82,2.662]],["t/90",[81,2.206,82,2.325,83,2.843,84,1.779]],["t/92",[81,2.206,82,2.325,85,2.632,86,3.124]],["t/94",[81,2.525,82,2.662,85,3.014]],["t/96",[81,2.206,82,2.325,86,3.124,87,3.551]],["t/98",[81,2.525,88,4.065,89,4.065]],["t/102",[90,5.035]],["t/104",[91,3.387]],["t/106",[80,3.3,85,3.524]],["t/109",[92,3.152,93,3.152,94,3.152,95,3.152,96,3.152]],["t/111",[90,5.035]],["t/113",[91,3.387]],["t/115",[80,3.3,85,3.524]],["t/118",[97,5.723]],["t/120",[98,5.723]],["t/121",[99,2.064,100,3.152,101,3.152,102,3.152,103,3.152]],["t/123",[99,2.662,104,4.065,105,4.065]],["t/125",[99,2.064,106,3.152,107,3.152,108,3.152,109,3.152]],["t/127",[99,2.325,110,3.551,111,3.551,112,3.551]],["t/129",[99,3.113,113,4.754]],["t/131",[99,2.064,114,3.152,115,3.152,116,3.152,117,3.152]],["t/135",[30,3.124,91,2.101,118,3.551,119,3.551]],["t/139",[120,3.748]],["t/141",[91,2.813,121,3.3]],["t/143",[2,2.036,84,2.036,122,2.822]],["t/145",[2,1.779,84,1.779,123,2.843,124,2.325]],["t/147",[2,2.036,84,2.036,125,2.662]],["t/149",[124,2.325,126,2.843,127,2.843,128,2.325]],["t/151",[125,2.662,128,2.662,129,4.065]],["t/153",[130,3.551,131,3.551,132,3.551,133,3.551]],["t/155",[134,3.3,135,3.3]],["t/159",[120,3.748]],["t/161",[91,2.813,121,3.3]],["t/163",[2,2.036,84,2.036,122,2.822]],["t/165",[2,1.779,84,1.779,123,2.843,124,2.325]],["t/167",[2,2.036,84,2.036,125,2.662]],["t/169",[124,2.325,126,2.843,127,2.843,128,2.325]],["t/171",[125,2.662,128,2.662,136,4.065]],["t/173",[134,3.3,135,3.3]],["t/177",[120,3.748]],["t/179",[137,5.035]],["t/183",[120,3.748]],["t/185",[91,2.813,121,3.3]],["t/187",[2,2.036,84,2.036,122,2.822]],["t/189",[83,3.254,138,3.576,139,3.576]],["t/191",[0,3.524,80,3.3]],["t/193",[134,3.3,135,3.3]],["t/196",[140,4.754,141,4.754]],["t/198",[15,2.843,142,3.124,143,3.551,144,3.551]],["t/200",[15,3.254,145,4.065,146,4.065]],["t/202",[16,3.124,17,3.124,142,3.124,147,3.551]],["t/206",[120,3.748]],["t/208",[91,2.813,121,3.3]],["t/210",[2,2.036,84,2.036,122,2.822]],["t/212",[83,3.254,138,3.576,139,3.576]],["t/214",[0,3.524,80,3.3]],["t/216",[134,3.3,135,3.3]],["t/220",[120,3.748]],["t/222",[91,2.813,121,3.3]],["t/224",[2,2.036,84,2.036,122,2.822]],["t/226",[2,1.779,84,1.779,123,2.843,124,2.325]],["t/228",[2,2.036,84,2.036,125,2.662]],["t/230",[124,2.325,126,2.843,127,2.843,128,2.325]],["t/232",[125,2.662,128,2.662,148,4.065]],["t/234",[134,3.3,135,3.3]],["t/238",[137,4.182,149,4.754]],["t/240",[150,4.754,151,4.754]],["t/242",[152,4.065,153,4.065,154,4.065]],["t/244",[155,4.754,156,4.754]]],"invertedIndex":[["",{"_index":99,"t":{"121":{"position":[[0,1]]},"123":{"position":[[0,2]]},"125":{"position":[[0,1]]},"127":{"position":[[0,2]]},"129":{"position":[[0,1]]},"131":{"position":[[0,2]]}}}],["18.04",{"_index":133,"t":{"153":{"position":[[26,5]]}}}],["adding",{"_index":67,"t":{"74":{"position":[[0,6]]}}}],["api",{"_index":81,"t":{"86":{"position":[[6,3]]},"88":{"position":[[9,3]]},"90":{"position":[[6,3]]},"92":{"position":[[22,3]]},"94":{"position":[[9,3]]},"96":{"position":[[21,3]]},"98":{"position":[[13,3]]}}}],["apiexception",{"_index":25,"t":{"33":{"position":[[9,12]]}}}],["app",{"_index":8,"t":{"9":{"position":[[28,3]]}}}],["application",{"_index":80,"t":{"83":{"position":[[25,11]]},"106":{"position":[[13,11]]},"115":{"position":[[13,11]]},"191":{"position":[[7,11]]},"214":{"position":[[7,11]]}}}],["applications",{"_index":1,"t":{"5":{"position":[[7,12]]},"13":{"position":[[29,12]]}}}],["arduino",{"_index":5,"t":{"9":{"position":[[0,7]]}}}],["automation",{"_index":46,"t":{"53":{"position":[[8,10]]}}}],["basic",{"_index":121,"t":{"141":{"position":[[0,5]]},"161":{"position":[[0,5]]},"185":{"position":[[0,5]]},"208":{"position":[[0,5]]},"222":{"position":[[0,5]]}}}],["belt",{"_index":103,"t":{"121":{"position":[[48,5]]}}}],["best",{"_index":26,"t":{"35":{"position":[[0,4]]}}}],["better",{"_index":141,"t":{"196":{"position":[[11,7]]}}}],["bgr",{"_index":20,"t":{"27":{"position":[[15,3]]}}}],["boards",{"_index":154,"t":{"242":{"position":[[19,6]]}}}],["boxes",{"_index":101,"t":{"121":{"position":[[26,5]]}}}],["building",{"_index":77,"t":{"83":{"position":[[0,8]]}}}],["camera",{"_index":7,"t":{"9":{"position":[[14,6]]}}}],["cardboard",{"_index":100,"t":{"121":{"position":[[16,9]]}}}],["catch",{"_index":29,"t":{"37":{"position":[[0,5]]}}}],["channel",{"_index":18,"t":{"27":{"position":[[0,7]]}}}],["checking",{"_index":123,"t":{"145":{"position":[[0,8]]},"165":{"position":[[0,8]]},"226":{"position":[[0,8]]}}}],["classes",{"_index":34,"t":{"39":{"position":[[21,7]]}}}],["clean",{"_index":116,"t":{"131":{"position":[[24,5]]}}}],["closed",{"_index":109,"t":{"125":{"position":[[32,7]]}}}],["cnc",{"_index":51,"t":{"57":{"position":[[28,3]]}}}],["cobots",{"_index":50,"t":{"57":{"position":[[17,6]]}}}],["code",{"_index":156,"t":{"244":{"position":[[7,4]]}}}],["completely",{"_index":108,"t":{"125":{"position":[[21,10]]}}}],["computer",{"_index":69,"t":{"77":{"position":[[0,8]]}}}],["contact",{"_index":53,"t":{"59":{"position":[[0,7]]}}}],["control",{"_index":48,"t":{"55":{"position":[[8,7]]}}}],["conveyor",{"_index":102,"t":{"121":{"position":[[39,8]]}}}],["counter",{"_index":96,"t":{"109":{"position":[[43,7]]}}}],["create",{"_index":56,"t":{"64":{"position":[[11,6]]}}}],["creating",{"_index":85,"t":{"92":{"position":[[0,8]]},"94":{"position":[[0,8]]},"106":{"position":[[0,8]]},"115":{"position":[[0,8]]}}}],["custom",{"_index":32,"t":{"39":{"position":[[4,6]]}}}],["customer",{"_index":94,"t":{"109":{"position":[[26,8]]}}}],["default",{"_index":143,"t":{"198":{"position":[[19,7]]}}}],["deployment",{"_index":137,"t":{"179":{"position":[[0,10]]},"238":{"position":[[5,10]]}}}],["detector",{"_index":58,"t":{"64":{"position":[[24,8]]},"66":{"position":[[21,8]]}}}],["detectors",{"_index":62,"t":{"68":{"position":[[10,9]]}}}],["door",{"_index":107,"t":{"125":{"position":[[16,4]]}}}],["easy",{"_index":149,"t":{"238":{"position":[[0,4]]}}}],["error",{"_index":42,"t":{"47":{"position":[[10,5]]}}}],["escalation",{"_index":75,"t":{"81":{"position":[[0,10]]}}}],["esp32",{"_index":6,"t":{"9":{"position":[[8,5]]}}}],["examples",{"_index":98,"t":{"120":{"position":[[0,8]]}}}],["exception",{"_index":33,"t":{"39":{"position":[[11,9]]}}}],["exceptions",{"_index":28,"t":{"35":{"position":[[28,10]]},"37":{"position":[[15,10]]},"41":{"position":[[4,10]]},"45":{"position":[[7,10]]}}}],["existing",{"_index":60,"t":{"66":{"position":[[12,8]]},"74":{"position":[[17,8]]}}}],["explicitly",{"_index":55,"t":{"64":{"position":[[0,10]]}}}],["factory",{"_index":114,"t":{"131":{"position":[[10,7]]}}}],["floor",{"_index":115,"t":{"131":{"position":[[18,5]]}}}],["framegrab",{"_index":23,"t":{"29":{"position":[[0,9]]}}}],["full",{"_index":105,"t":{"123":{"position":[[20,5]]}}}],["fully",{"_index":147,"t":{"202":{"position":[[16,5]]}}}],["further",{"_index":13,"t":{"15":{"position":[[0,7]]}}}],["garage",{"_index":106,"t":{"125":{"position":[[9,6]]}}}],["getting",{"_index":126,"t":{"149":{"position":[[0,7]]},"169":{"position":[[0,7]]},"230":{"position":[[0,7]]}}}],["go",{"_index":135,"t":{"155":{"position":[[9,3]]},"173":{"position":[[9,3]]},"193":{"position":[[9,3]]},"216":{"position":[[9,3]]},"234":{"position":[[9,3]]}}}],["gracefully",{"_index":40,"t":{"45":{"position":[[18,10]]}}}],["groundlight",{"_index":2,"t":{"7":{"position":[[0,11]]},"143":{"position":[[11,11]]},"145":{"position":[[9,11]]},"147":{"position":[[10,11]]},"163":{"position":[[11,11]]},"165":{"position":[[9,11]]},"167":{"position":[[10,11]]},"187":{"position":[[11,11]]},"210":{"position":[[11,11]]},"224":{"position":[[11,11]]},"226":{"position":[[9,11]]},"228":{"position":[[10,11]]}}}],["guides",{"_index":119,"t":{"135":{"position":[[31,6]]}}}],["handle",{"_index":39,"t":{"45":{"position":[[0,6]]}}}],["handling",{"_index":24,"t":{"33":{"position":[[0,8]]},"35":{"position":[[19,8]]},"47":{"position":[[16,8]]},"88":{"position":[[0,8]]}}}],["image",{"_index":63,"t":{"70":{"position":[[12,5]]},"72":{"position":[[19,5]]},"74":{"position":[[26,5]]}}}],["implement",{"_index":36,"t":{"43":{"position":[[0,9]]}}}],["industrial",{"_index":11,"t":{"13":{"position":[[0,10]]}}}],["installation",{"_index":91,"t":{"104":{"position":[[0,12]]},"113":{"position":[[0,12]]},"135":{"position":[[18,12]]},"141":{"position":[[6,12]]},"161":{"position":[[6,12]]},"185":{"position":[[6,12]]},"208":{"position":[[6,12]]},"222":{"position":[[6,12]]}}}],["installed",{"_index":144,"t":{"198":{"position":[[27,9]]}}}],["installing",{"_index":122,"t":{"143":{"position":[[0,10]]},"163":{"position":[[0,10]]},"187":{"position":[[0,10]]},"210":{"position":[[0,10]]},"224":{"position":[[0,10]]}}}],["integration",{"_index":49,"t":{"57":{"position":[[0,11]]}}}],["introduction",{"_index":97,"t":{"118":{"position":[[0,12]]}}}],["labels",{"_index":68,"t":{"74":{"position":[[7,6]]}}}],["language",{"_index":73,"t":{"77":{"position":[[35,8]]}}}],["linux",{"_index":129,"t":{"151":{"position":[[20,5]]}}}],["list",{"_index":61,"t":{"68":{"position":[[0,4]]},"72":{"position":[[0,4]]}}}],["log",{"_index":35,"t":{"41":{"position":[[0,3]]}}}],["logic",{"_index":38,"t":{"43":{"position":[[16,5]]}}}],["machine",{"_index":43,"t":{"51":{"position":[[0,7]]}}}],["machines",{"_index":52,"t":{"57":{"position":[[32,8]]}}}],["macos",{"_index":136,"t":{"171":{"position":[[20,5]]}}}],["manufacturing",{"_index":12,"t":{"13":{"position":[[15,13]]}}}],["multiple",{"_index":152,"t":{"242":{"position":[[0,8]]}}}],["natural",{"_index":72,"t":{"77":{"position":[[27,7]]}}}],["new",{"_index":57,"t":{"64":{"position":[[20,3]]}}}],["nice",{"_index":111,"t":{"127":{"position":[[18,4]]}}}],["note",{"_index":131,"t":{"153":{"position":[[8,4]]}}}],["notification",{"_index":150,"t":{"240":{"position":[[0,12]]}}}],["numpy",{"_index":17,"t":{"25":{"position":[[0,5]]},"202":{"position":[[0,6]]}}}],["opencv",{"_index":16,"t":{"23":{"position":[[0,6]]},"202":{"position":[[7,6]]}}}],["optional",{"_index":142,"t":{"198":{"position":[[6,8]]},"202":{"position":[[22,8]]}}}],["options",{"_index":151,"t":{"240":{"position":[[13,7]]}}}],["order",{"_index":19,"t":{"27":{"position":[[8,6]]}}}],["organized",{"_index":117,"t":{"131":{"position":[[34,10]]}}}],["out",{"_index":112,"t":{"127":{"position":[[23,4]]}}}],["pi",{"_index":10,"t":{"11":{"position":[[10,2]]}}}],["pil",{"_index":15,"t":{"21":{"position":[[0,3]]},"198":{"position":[[0,3]]},"200":{"position":[[16,3]]}}}],["platform",{"_index":118,"t":{"135":{"position":[[0,8]]}}}],["powered",{"_index":71,"t":{"77":{"position":[[16,7]]}}}],["practices",{"_index":27,"t":{"35":{"position":[[5,9]]}}}],["prerequisites",{"_index":120,"t":{"139":{"position":[[0,13]]},"159":{"position":[[0,13]]},"177":{"position":[[0,13]]},"183":{"position":[[0,13]]},"206":{"position":[[0,13]]},"220":{"position":[[0,13]]}}}],["previous",{"_index":65,"t":{"72":{"position":[[10,8]]}}}],["process",{"_index":45,"t":{"53":{"position":[[0,7]]}}}],["processor",{"_index":4,"t":{"7":{"position":[[19,9]]}}}],["python",{"_index":128,"t":{"149":{"position":[[18,6]]},"151":{"position":[[10,6]]},"169":{"position":[[18,6]]},"171":{"position":[[10,6]]},"230":{"position":[[18,6]]},"232":{"position":[[10,6]]}}}],["quality",{"_index":47,"t":{"55":{"position":[[0,7]]}}}],["queries",{"_index":66,"t":{"72":{"position":[[25,7]]},"74":{"position":[[32,7]]}}}],["query",{"_index":64,"t":{"70":{"position":[[18,5]]}}}],["raspberry",{"_index":9,"t":{"11":{"position":[[0,9]]}}}],["reading",{"_index":14,"t":{"15":{"position":[[8,7]]}}}],["ready",{"_index":134,"t":{"155":{"position":[[0,5]]},"173":{"position":[[0,5]]},"193":{"position":[[0,5]]},"216":{"position":[[0,5]]},"234":{"position":[[0,5]]}}}],["requirements",{"_index":90,"t":{"102":{"position":[[0,12]]},"111":{"position":[[0,12]]}}}],["retrieve",{"_index":59,"t":{"66":{"position":[[0,8]]},"70":{"position":[[0,8]]}}}],["retry",{"_index":37,"t":{"43":{"position":[[10,5]]}}}],["revoke",{"_index":88,"t":{"98":{"position":[[3,6]]}}}],["revoking",{"_index":86,"t":{"92":{"position":[[13,8]]},"96":{"position":[[12,8]]}}}],["rgb",{"_index":22,"t":{"27":{"position":[[22,3]]}}}],["right",{"_index":127,"t":{"149":{"position":[[12,5]]},"169":{"position":[[12,5]]},"230":{"position":[[12,5]]}}}],["rtsp",{"_index":138,"t":{"189":{"position":[[6,4]]},"212":{"position":[[6,4]]}}}],["sales",{"_index":54,"t":{"59":{"position":[[8,5]]}}}],["sample",{"_index":0,"t":{"5":{"position":[[0,6]]},"9":{"position":[[21,6]]},"191":{"position":[[0,6]]},"214":{"position":[[0,6]]}}}],["sdk",{"_index":84,"t":{"90":{"position":[[26,3]]},"143":{"position":[[23,3]]},"145":{"position":[[21,3]]},"147":{"position":[[22,3]]},"163":{"position":[[23,3]]},"165":{"position":[[21,3]]},"167":{"position":[[22,3]]},"187":{"position":[[23,3]]},"210":{"position":[[23,3]]},"224":{"position":[[23,3]]},"226":{"position":[[21,3]]},"228":{"position":[[22,3]]}}}],["service",{"_index":95,"t":{"109":{"position":[[35,7]]}}}],["simple",{"_index":78,"t":{"83":{"position":[[11,6]]}}}],["smaller",{"_index":140,"t":{"196":{"position":[[0,7]]}}}],["source",{"_index":155,"t":{"244":{"position":[[0,6]]}}}],["special",{"_index":130,"t":{"153":{"position":[[0,7]]}}}],["specific",{"_index":30,"t":{"37":{"position":[[6,8]]},"135":{"position":[[9,8]]}}}],["stream",{"_index":3,"t":{"7":{"position":[[12,6]]}}}],["streams",{"_index":139,"t":{"189":{"position":[[11,7]]},"212":{"position":[[11,7]]}}}],["supported",{"_index":153,"t":{"242":{"position":[[9,9]]}}}],["technology",{"_index":76,"t":{"81":{"position":[[11,10]]}}}],["tending",{"_index":44,"t":{"51":{"position":[[8,7]]}}}],["test",{"_index":41,"t":{"47":{"position":[[0,4]]}}}],["thing",{"_index":113,"t":{"129":{"position":[[15,6]]}}}],["token",{"_index":89,"t":{"98":{"position":[[17,5]]}}}],["tokens",{"_index":82,"t":{"86":{"position":[[10,6]]},"88":{"position":[[13,6]]},"90":{"position":[[10,6]]},"92":{"position":[[26,6]]},"94":{"position":[[13,6]]},"96":{"position":[[25,6]]}}}],["tracking",{"_index":92,"t":{"109":{"position":[[0,8]]}}}],["trash",{"_index":104,"t":{"123":{"position":[[10,5]]}}}],["ubuntu",{"_index":132,"t":{"153":{"position":[[19,6]]}}}],["upgrading",{"_index":125,"t":{"147":{"position":[[0,9]]},"151":{"position":[[0,9]]},"167":{"position":[[0,9]]},"171":{"position":[[0,9]]},"228":{"position":[[0,9]]},"232":{"position":[[0,9]]}}}],["use",{"_index":31,"t":{"39":{"position":[[0,3]]}}}],["using",{"_index":83,"t":{"90":{"position":[[0,5]]},"189":{"position":[[0,5]]},"212":{"position":[[0,5]]}}}],["utilization",{"_index":93,"t":{"109":{"position":[[9,11]]}}}],["version",{"_index":124,"t":{"145":{"position":[[25,7]]},"149":{"position":[[25,7]]},"165":{"position":[[25,7]]},"169":{"position":[[25,7]]},"226":{"position":[[25,7]]},"230":{"position":[[25,7]]}}}],["viewing",{"_index":87,"t":{"96":{"position":[[0,7]]}}}],["vision",{"_index":70,"t":{"77":{"position":[[9,6]]}}}],["visual",{"_index":79,"t":{"83":{"position":[[18,6]]}}}],["vs",{"_index":21,"t":{"27":{"position":[[19,2]]}}}],["weather",{"_index":110,"t":{"127":{"position":[[10,7]]}}}],["windows",{"_index":148,"t":{"232":{"position":[[20,7]]}}}],["without",{"_index":146,"t":{"200":{"position":[[8,7]]}}}],["work",{"_index":74,"t":{"79":{"position":[[12,5]]}}}],["working",{"_index":145,"t":{"200":{"position":[[0,7]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Click here to access a detailed documentation of the SDK with all available methods.","s":"API Reference","u":"/python-sdk/docs/api-reference","h":"","p":1},{"i":4,"t":"Groundlight provides a powerful \"computer vision powered by natural language\" system that enables you to build visual applications with minimal code. With Groundlight, you can quickly create applications for various use cases, from simple object detection to complex visual analysis. In this page, we'll introduce you to some sample applications built using Groundlight and provide links to more detailed guides on various topics.","s":"Building Applications","u":"/python-sdk/docs/building-applications","h":"","p":3},{"i":6,"t":"Explore these GitHub repositories to see examples of Groundlight-powered applications:","s":"Sample Applications","u":"/python-sdk/docs/building-applications","h":"#sample-applications","p":3},{"i":8,"t":"Repository: https://github.com/groundlight/stream The Groundlight Stream Processor is an easy-to-use Docker container for analyzing RTSP streams or common USB-based cameras. You can run it with a single Docker command, such as: docker run stream:local --help","s":"Groundlight Stream Processor","u":"/python-sdk/docs/building-applications","h":"#groundlight-stream-processor","p":3},{"i":10,"t":"Repository: https://github.com/groundlight/esp32cam This sample application allows you to build a working AI vision detector using an inexpensive WiFi camera. With a cost of under $10, you can create a powerful and affordable AI vision system.","s":"Arduino ESP32 Camera Sample App","u":"/python-sdk/docs/building-applications","h":"#arduino-esp32-camera-sample-app","p":3},{"i":12,"t":"Repository: https://github.com/groundlight/raspberry-pi-door-lock This sample application demonstrates how to set up a Raspberry Pi-based door lock system. The application monitors a door and sends a notification if the door is observed to be unlocked during non-standard business hours.","s":"Raspberry Pi","u":"/python-sdk/docs/building-applications","h":"#raspberry-pi","p":3},{"i":14,"t":"Groundlight can be used to apply modern natural-language-based computer vision to industrial and manufacturing applications.","s":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications","h":"#industrial-and-manufacturing-applications","p":3},{"i":16,"t":"For more in-depth guides on various aspects of building applications with Groundlight, check out the following pages: Working with Detectors: Learn how to create, configure, and use detectors in your Groundlight-powered applications. Using Groundlight on the edge: Discover how to deploy Groundlight in edge computing environments for improved performance and reduced latency. Handling HTTP errors: Understand how to handle and troubleshoot HTTP errors that may occur while using Groundlight. By exploring these resources and sample applications, you'll be well on your way to building powerful visual applications using Groundlight's computer vision and natural language capabilities.","s":"Further Reading","u":"/python-sdk/docs/building-applications","h":"#further-reading","p":3},{"i":18,"t":"Starting your model evaluations at the edge reduces latency, cost, network bandwidth, and energy. Once you have downloaded and installed your Groundlight edge models, you can configure the Groundlight SDK to use your edge environment by configuring the 'endpoint' which the SDK connects to. You can do this either directly in code as such: from groundlight import Groundlight gl = Groundlight(endpoint=\"http://localhost:6717\") or by setting the GROUNDLIGHT_ENDPOINT environment variable like: export GROUNDLIGHT_ENDPOINT=http://localhost:6717 python your_app.py (Edge model download is not yet generally available. Work with your Solutions Engineer to set up edge inference.)","s":"Using Groundlight on the edge","u":"/python-sdk/docs/building-applications/edge","h":"","p":17},{"i":20,"t":"Groundlight's SDK accepts images in many popular formats, including PIL, OpenCV, and numpy arrays.","s":"Grabbing Images","u":"/python-sdk/docs/building-applications/grabbing-images","h":"","p":19},{"i":22,"t":"The Groundlight SDK can accept PIL images directly in submit_image_query. Here's an example: from groundlight import Groundlight from PIL import Image gl = Groundlight() det = gl.get_or_create_detector(name=\"path-clear\", query=\"Is the path clear?\") pil_img = Image.open(\"./docs/static/img/doorway.jpg\") gl.submit_image_query(det, pil_img)","s":"PIL","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#pil","p":19},{"i":24,"t":"OpenCV is a popular image processing library, with many utilities for working with images. OpenCV images are stored as numpy arrays. (Note they are stored in BGR order, not RGB order, but as of Groundlight SDK v0.8 this is the expected order.) OpenCV's images can be send directly to submit_image_query as follows: import cv2 cam = cv2.VideoCapture(0) # Initialize camera (0 is the default index) _, frame = cam.read() # Capture one frame gl.submit_image_query(detector, frame) # Send the frame to Groundlight cam.release() # Release the camera","s":"OpenCV","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#opencv","p":19},{"i":26,"t":"The Groundlight SDK can accept images as numpy arrays. They should be in the standard HWN format in BGR color order, matching OpenCV standards. Pixel values should be from 0-255 (not 0.0-1.0 as floats). So uint8 data type is preferable since it saves memory. Here's sample code to create an 800x600 random image in numpy: import numpy as np np_img = np.random.uniform(low=0, high=255, size=(600, 800, 3)).astype(np.uint8) # Note: channel order is interpretted as BGR not RGB gl.submit_image_query(detector, np_img)","s":"Numpy","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#numpy","p":19},{"i":28,"t":"Groundlight expects images in BGR order, because this is standard for OpenCV, which uses numpy arrays as image storage. (OpenCV uses BGR because it was originally developed decades ago for compatibility with the BGR color format used by many cameras and image processing hardware at the time of its creation.) Most other image libraries use RGB order, so if you are using images as numpy arrays which did not originate from OpenCV you likely need to reverse the channel order before sending the images to Groundlight. Note this change was made in v0.8 of the Groundlight SDK - in previous versions, RGB order was expected. If you have an RGB array, you must reverse the channel order before sending it to Groundlight, like: # Convert numpy image in RGB channel order to BGR order bgr_img = rgb_img[:, :, ::-1] The difference can be surprisingly subtle when red and blue get swapped. Often images just look a little off, but sometimes they look very wrong. Here's an example of a natural-scene image where you might think the color balance is just off: In industrial settings, the difference can be almost impossible to detect without prior knowledge of the scene:","s":"Channel order: BGR vs RGB","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#channel-order-bgr-vs-rgb","p":19},{"i":30,"t":"For a unified interface to many different kinds of image sources, see the framegrab library. Framegrab is still an early work in progress, but has many useful features for working with cameras and other image sources. Framegrab provides a single interface for many different kinds of image sources, including: USB cameras IP cameras Video files Image files","s":"Framegrab","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#framegrab","p":19},{"i":32,"t":"When building applications with the Groundlight SDK, you may encounter server errors during API calls. This page covers how to handle such errors and build robust code that can gracefully handle exceptions.","s":"Handling Server Errors","u":"/python-sdk/docs/building-applications/handling-errors","h":"","p":31},{"i":34,"t":"If there is an HTTP error during an API call, the SDK will raise an ApiException. You can access different metadata from that exception: import traceback from groundlight import ApiException, Groundlight gl = Groundlight() try: d = gl.get_or_create_detector( \"Road Checker\", \"Is the site access road blocked?\") iq = gl.submit_image_query(d, get_image(), wait=60) except ApiException as e: # Print a traceback for debugging traceback.print_exc() # e.reason contains a textual description of the error print(f\"Error reason: {e.reason}\") # e.status contains the HTTP status code print(f\"HTTP status code: {e.status}\") # Common HTTP status codes: # 400 Bad Request: The request was invalid or malformed # 401 Unauthorized: Your GROUNDLIGHT_API_TOKEN is missing or invalid # 403 Forbidden: The request is not allowed due to insufficient permissions # 404 Not Found: The requested resource was not found # 429 Too Many Requests: The rate limit for the API has been exceeded # 500 Internal Server Error: An error occurred on the server side","s":"Handling ApiException","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handling-apiexception","p":31},{"i":36,"t":"When working with the Groundlight SDK, follow these best practices to handle exceptions and build robust code:","s":"Best Practices for Handling Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#best-practices-for-handling-exceptions","p":31},{"i":38,"t":"Catch only the specific exceptions that you expect to be raised, such as ApiException. Avoid catching broad exceptions like Exception, as it may make debugging difficult and obscure other unrelated issues.","s":"Catch Specific Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#catch-specific-exceptions","p":31},{"i":40,"t":"Consider creating custom exception classes for your application-specific errors. This can help you differentiate between errors originating from the Groundlight SDK and those from your application.","s":"Use Custom Exception Classes","u":"/python-sdk/docs/building-applications/handling-errors","h":"#use-custom-exception-classes","p":31},{"i":42,"t":"Log exceptions with appropriate log levels (e.g., error, warning, etc.) and include relevant context information. This will help you debug issues more effectively and monitor the health of your application.","s":"Log Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#log-exceptions","p":31},{"i":44,"t":"When handling exceptions, implement retry logic with exponential backoff for transient errors, such as network issues or rate-limiting. This can help your application recover from temporary issues without manual intervention.","s":"Implement Retry Logic","u":"/python-sdk/docs/building-applications/handling-errors","h":"#implement-retry-logic","p":31},{"i":46,"t":"In addition to logging exceptions, handle them gracefully to ensure that your application remains functional despite errors. This might include displaying an error message to users or falling back to a default behavior.","s":"Handle Exceptions Gracefully","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handle-exceptions-gracefully","p":31},{"i":48,"t":"Write tests to ensure that your error handling works as expected. This can help you catch issues early and ensure that your application can handle errors gracefully in production. By following these best practices, you can create robust and resilient applications that can handle server errors and other exceptions when using the Groundlight SDK.","s":"Test Your Error Handling","u":"/python-sdk/docs/building-applications/handling-errors","h":"#test-your-error-handling","p":31},{"i":50,"t":"Modern natural language-based computer vision is transforming industrial and manufacturing applications by enabling more intuitive interaction with automation systems. Groundlight offers cutting-edge computer vision technology that can be seamlessly integrated into various industrial processes, enhancing efficiency, productivity, and quality control.","s":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications/industrial","h":"","p":49},{"i":52,"t":"Groundlight's computer vision technology can assist in automating machine-tending tasks, such as loading and unloading materials in CNC machines, milling centers, or injection molding equipment. By enabling robots to recognize parts and tools using natural language, complex machine-tending tasks become more accessible and efficient.","s":"Machine Tending","u":"/python-sdk/docs/building-applications/industrial","h":"#machine-tending","p":49},{"i":54,"t":"Integrating Groundlight's computer vision into your process automation systems can help identify bottlenecks, optimize workflows, and reduce manual intervention. Our technology can work hand-in-hand with robotic systems to perform tasks like sorting, assembly, all while interpreting natural language commands to streamline operations.","s":"Process Automation","u":"/python-sdk/docs/building-applications/industrial","h":"#process-automation","p":49},{"i":56,"t":"Groundlight's computer vision technology can play a vital role in ensuring the highest quality standards in your manufacturing processes. By identifying defects or irregularities in products, our computer vision system can help maintain strict quality control, reducing the need for manual inspections and increasing overall product quality.","s":"Quality Control","u":"/python-sdk/docs/building-applications/industrial","h":"#quality-control","p":49},{"i":58,"t":"Groundlight's computer vision technology can be easily integrated with popular cobot robotic arms, such as Universal Robots, to enhance their capabilities and improve collaboration between humans and robots. Additionally, our technology can be integrated into existing CNC machines or other devices using the Modbus interface, allowing for seamless communication and control within your manufacturing environment.","s":"Integration with Cobots and CNC Machines","u":"/python-sdk/docs/building-applications/industrial","h":"#integration-with-cobots-and-cnc-machines","p":49},{"i":60,"t":"To learn more about how Groundlight's natural language computer vision technology can revolutionize your industrial and manufacturing processes, please reach out to us at info@groundlight.ai.","s":"Contact Sales","u":"/python-sdk/docs/building-applications/industrial","h":"","p":49},{"i":62,"t":"Groundlight gives you a simple way to control the trade-off of latency against accuracy. The longer you can wait for an answer to your image query, the better accuracy you can get. In particular, if the ML models are unsure of the best response, they will escalate the image query to more intensive analysis with more complex models and real-time human monitors as needed. Your code can easily wait for this delayed response. Either way, these new results are automatically trained into your models so your next queries will get better results faster. The desired confidence level is set as the escalation threshold on your detector. This determines the minimum confidence score for the ML system to provide before the image query is escalated. For example, say you want to set your desired confidence level to 0.95, but that you're willing to wait up to 60 seconds to get a confident response. from groundlight import Groundlight from PIL import Image import requests gl = Groundlight() image_url = \"https://www.photos-public-domain.com/wp-content/uploads/2010/11/over_flowing_garbage_can.jpg\" image = Image.open(requests.get(image_url, stream=True).raw) d = gl.get_or_create_detector(name=\"trash\", query=\"Is the trash can full?\", confidence_threshold=0.95) # This will wait until either 60 seconds have passed or the confidence reaches 0.95 image_query = gl.submit_image_query(detector=d, image=image, wait=60) print(f\"The answer is {image_query.result}\") tip Tuning confidence lets you balance accuracy against latency. Higher confidence will get higher accuracy, but will generally require higher latency. Higher confidence also requires more labels, which increases labor costs. Or if you want to execute submit_image_query as fast as possible, set wait=0. You will either get the ML results or a placeholder response if the ML model hasn't finished executing. Image queries which are below the desired confidence level will still be escalated for further analysis, and the results are incorporated as training data to improve your ML model, but your code will not wait for that to happen. image_query = gl.submit_image_query(detector=d, image=image, wait=0) If the returned result was generated from an ML model, you can see the confidence score returned for the image query: print(f\"The confidence is {image_query.result.confidence}\")","s":"Confidence Levels","u":"/python-sdk/docs/building-applications/managing-confidence","h":"","p":61},{"i":65,"t":"Typically you'll use the get_or_create_detector(name: str, query: str) method to find an existing detector you've already created with the same name, or create a new one if it doesn't exists. But if you'd like to force creating a new detector you can also use the create_detector(name: str, query: str) method from groundlight import Groundlight gl = Groundlight() detector = gl.create_detector(name=\"your_detector_name\", query=\"is this what we want to see?\")","s":"Explicitly create a new detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#explicitly-create-a-new-detector","p":63},{"i":67,"t":"from groundlight import Groundlight gl = Groundlight() detector = gl.get_detector(id=\"YOUR_DETECTOR_ID\")","s":"Retrieve an existing detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-existing-detector","p":63},{"i":69,"t":"from groundlight import Groundlight gl = Groundlight() # Defaults to 10 results per page detectors = gl.list_detectors() # Pagination: 1st page of 5 results per page detectors = gl.list_detectors(page=1, page_size=5)","s":"List your detectors","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-detectors","p":63},{"i":71,"t":"In practice, you may want to check for a new result on your query. For example, after a cloud reviewer labels your query. For example, you can use the image_query.id after the above submit_image_query() call. from groundlight import Groundlight gl = Groundlight() image_query = gl.get_image_query(id=\"iq_YOUR_IMAGE_QUERY_ID\")","s":"Retrieve an image query","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-image-query","p":63},{"i":73,"t":"from groundlight import Groundlight gl = Groundlight() # Defaults to 10 results per page image_queries = gl.list_image_queries() # Pagination: 1st page of 5 results per page image_queries = gl.list_image_queries(page=1, page_size=5)","s":"List your previous image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-previous-image-queries","p":63},{"i":75,"t":"Groundlight lets you start using models by making queries against your very first image, but there are a few situations where you might either have an existing dataset, or you'd like to handle the escalation response programatically in your own code but still include the label to get better responses in the future. With your image_query from either submit_image_query() or get_image_query() you can add the label directly. Note that if the query is already in the escalation queue due to low ML confidence or audit thresholds, it may also receive labels from another source. from groundlight import Groundlight from PIL import Image import requests gl = Groundlight() d = gl.get_or_create_detector(name=\"doorway\", query=\"Is the doorway open?\") image_url= \"https://images.selfstorage.com/large-compress/2174925f24362c479b2.jpg\" image = Image.open(requests.get(image_url, stream=True).raw) image_query = gl.submit_image_query(detector=d, image=image) gl.add_label(image_query, 'YES') # or 'NO' The only valid labels at this time are 'YES' and 'NO'.","s":"Adding labels to existing image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#adding-labels-to-existing-image-queries","p":63},{"i":78,"t":"Build a working computer vision system in just a few lines of python: from groundlight import Groundlight gl = Groundlight() det = gl.get_or_create_detector(name=\"doorway\", query=\"Is the doorway open?\") img = \"./docs/static/img/doorway.jpg\" # Image can be a file or a Python object image_query = gl.submit_image_query(detector=det, image=img) print(f\"The answer is {image_query.result}\") Note: The SDK is currently in \"beta\" phase. Interfaces are subject to change in future versions. We will follow semver semantics for breaking changes.","s":"Computer Vision powered by Natural Language","u":"/python-sdk/docs/getting-started","h":"#computer-vision-powered-by-natural-language","p":76},{"i":80,"t":"Your images are first analyzed by machine learning (ML) models which are automatically trained on your data. If those models have high enough confidence, that's your answer. But if the models are unsure, then the images are progressively escalated to more resource-intensive analysis methods up to real-time human review. So what you get is a computer vision system that starts working right away without even needing to first gather and label a dataset. At first it will operate with high latency, because people need to review the image queries. But over time, the ML systems will learn and improve so queries come back faster with higher confidence.","s":"How does it work?","u":"/python-sdk/docs/getting-started","h":"#how-does-it-work","p":76},{"i":82,"t":"Groundlight's Escalation Technology combines the power of generative AI using our Visual LLM, along with the speed of edge computing, and the reliability of real-time human oversight.","s":"Escalation Technology","u":"/python-sdk/docs/getting-started","h":"#escalation-technology","p":76},{"i":84,"t":"Install the groundlight SDK. Requires python version 3.7 or higher. See prerequisites. pip3 install groundlight Head over to the groundlight web app to create an API token. You will need to set the GROUNDLIGHT_API_TOKEN environment variable to access the API. export GROUNDLIGHT_API_TOKEN=api_2GdXMflhJi6L_example Create a python script. ask.py from groundlight import Groundlight gl = Groundlight() det = gl.get_or_create_detector(name=\"doorway\", query=\"Is the doorway open?\") img = \"./docs/static/img/doorway.jpg\" # Image can be a file or a Python object image_query = gl.submit_image_query(detector=det, image=img) print(f\"The answer is {image_query.result}\") Run it! python ask.py","s":"Building a simple visual application","u":"/python-sdk/docs/getting-started","h":"#building-a-simple-visual-application","p":76},{"i":87,"t":"To use the Groundlight SDK or API, you need a security token which we call an \"API Token.\" These authenticate you to Groundlight and authorize your code to use services in your account. API tokens look like api_2GdXMflhJ... and consist of a ksuid (a kind of sortable UUID) followed by a secret string.","s":"About API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#about-api-tokens","p":85},{"i":89,"t":"You should treat API tokens like passwords. Never check them directly into your code or share them. Please use best security practices with your API tokens, because if anybody gets your API token, they have nearly full control over your Groundlight account. Here are some best practices for handling API tokens: Store API tokens in a secure location, such as an encrypted vault. Use environment variables to store API tokens, rather than hardcoding them in your application. Limit the number of people who have access to API tokens. Rotate API tokens regularly and revoke old ones when they are no longer needed.","s":"Handling API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#handling-api-tokens","p":85},{"i":91,"t":"There are a couple of ways the SDK can find your API token: Environment variable (recommended): As a best practice, we recommend storing API tokens in the environment variable GROUNDLIGHT_API_TOKEN. This helps avoid accidentally committing the token to your code repository. The SDK will automatically look for the API token there, so you don't have to put it in your code at all. from groundlight import Groundlight # looks for API token in environment variable GROUNDLIGHT_API_TOKEN gl = Groundlight() Constructor argument: Alternatively, you can pass the API token directly to the Groundlight constructor. However, be cautious not to commit this code to your repository. from groundlight import Groundlight token = get_token_from_secure_location() gl = Groundlight(api_token=token)","s":"Using API Tokens with the SDK","u":"/python-sdk/docs/getting-started/api-tokens","h":"#using-api-tokens-with-the-sdk","p":85},{"i":93,"t":"You can manage your API tokens from the Groundlight website at https://app.groundlight.ai/reef/my-account/api-tokens.","s":"Creating and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-and-revoking-api-tokens","p":85},{"i":95,"t":"Log in to your Groundlight account and navigate to the API tokens page. Click the \"Create New API Token\" button. Give the new token a descriptive name, so you can easily identify it later. Click \"Create Token.\" Copy the generated token and store it securely, as you won't be able to see it again. Groundlight does not store a copy of your API tokens.","s":"Creating API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-api-tokens","p":85},{"i":97,"t":"On the API tokens page, you can see a list of your current tokens, along with the following information: Token Name: The descriptive name you assigned when creating the token Snippet (prefix): A short, unique identifier for each token Last used: The date and time the token was last used","s":"Viewing and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#viewing-and-revoking-api-tokens","p":85},{"i":99,"t":"Locate the token you want to revoke in the list. Click the \"Delete\" button next to the token. Confirm that you want to revoke the token. Note: Revoking an API token will immediately invalidate it and prevent any applications using it from accessing your Groundlight account. Be sure to update your applications with a new token before revoking an old one.","s":"To revoke an API token","u":"/python-sdk/docs/getting-started/api-tokens","h":"#to-revoke-an-api-token","p":85},{"i":101,"t":"Here is a whimsical example of how you could use Groundlight in your home to keep your dog off the couch. This document will guide you through creating a complete application. If the dog is detected on the couch, the application will play a pre-recorded sound over the computer's speakers, instructing the dog to get off the couch. Be sure to record your own voice so that your dog pays attention to you.","s":"A Fun Example: Dog-on-Couch Detector","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"","p":100},{"i":103,"t":"Groundlight SDK with Python 3.7 or higher A supported USB or network-connected camera A pre-recorded sound file (e.g., get_off_couch.mp3) A couch and a dog are recommended for proper end-to-end testing.","s":"Requirements","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#requirements","p":100},{"i":105,"t":"Ensure you have Python 3.7 or higher installed, and then install the Groundlight SDK and OpenCV library: pip install groundlight opencv-python pillow pyaudio","s":"Installation","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#installation","p":100},{"i":107,"t":"First, log in to the Groundlight application and get an API Token. Next, we'll write the Python script for the application. Import the required libraries: import time import cv2 from groundlight import Groundlight from PIL import Image import pyaudio import wave Define a function to capture an image from the camera using OpenCV: def capture_image(): cap = cv2.VideoCapture(0) ret, frame = cap.read() cap.release() if ret: # Convert to PIL image return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) else: return None Define a function to play the pre-recorded sound: def play_sound(file_path): CHUNK = 1024 wf = wave.open(file_path, 'rb') p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(), rate=wf.getframerate(), output=True) data = wf.readframes(CHUNK) while data: stream.write(data) data = wf.readframes(CHUNK) stream.stop_stream() stream.close() p.terminate() Write the main application loop: gl = Groundlight() detector = gl.get_detector(\"Dog on Couch Detector\") while True: image = capture_image() if image: try: iq = gl.submit_image_query(image=image, detector=detector, wait=60) answer = iq.result.label if answer == \"YES\": print(\"Dog detected on the couch!\") play_sound(\"get_off_couch.mp3\") except Exception as e: print(f\"Error submitting image query: {e}\") else: print(\"Failed to capture image\") # Sleep for a minute before checking again time.sleep(60) This application captures an image using the capture_image function, then submits it to the Groundlight API for analysis. If the dog is detected on the couch, it plays the pre-recorded sound using the play_sound function. Save the script as dog_on_couch_detector.py and run it: python dog_on_couch_detector.py","s":"Creating the Application","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#creating-the-application","p":100},{"i":110,"t":"This example demonstrates the application of Groundlight to a retail analytics solution, which monitors the usage of a service counter by customers throughout the day. The application creates a detector to identify when the service desk is being utilized by a customer. It checks the detector every minute, and once an hour, it prints out a summary of the percentage of time that the service counter is in use. At the end of the day, it emails the daily log. This retail analytics application can be beneficial in various ways: Staff allocation and scheduling: By analyzing the usage patterns of the service counter, store managers can optimize staff allocation and scheduling, ensuring that enough employees are available during peak hours and reducing wait times for customers. Identifying trends: The application can help identify trends in customer behavior, such as busier times of the day or specific days of the week with higher traffic. This information can be used to plan targeted marketing campaigns or promotions to increase sales and customer engagement. Improving store layout: Understanding when and how often customers use the service counter can provide insights into the effectiveness of the store's layout. Retailers can use this information to make data-driven decisions about rearranging the store layout to encourage customers to visit the service counter or explore other areas of the store. Customer satisfaction: By monitoring the usage of the service counter and proactively addressing long wait times or crowded areas, retailers can improve customer satisfaction and loyalty. A positive customer experience can lead to increased sales and return visits. To implement this retail analytics solution, a store would need to install a supported camera near the service counter, ensuring a clear view of the area. The camera would then be connected to a computer running the Groundlight-based application. Store managers would receive hourly summaries of the service counter usage and a daily log via email, enabling them to make informed decisions to improve store operations and customer experience.","s":"Tracking utilization of a customer service counter","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#tracking-utilization-of-a-customer-service-counter","p":108},{"i":112,"t":"Groundlight SDK with Python 3.7 or higher A supported USB or network-connected camera An email account with SMTP access to send the daily log","s":"Requirements","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#requirements","p":108},{"i":114,"t":"Ensure you have Python 3.7 or higher installed, and then install the Groundlight SDK, OpenCV library, and other required libraries: pip install groundlight opencv-python pillow","s":"Installation","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#installation","p":108},{"i":116,"t":"First, log in to the Groundlight application and get an API Token. Next, we'll write the Python script for the application. Import the required libraries: import time import cv2 import smtplib from groundlight import Groundlight from PIL import Image from datetime import datetime, timedelta from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText Define a function to capture an image from the camera using OpenCV: def capture_image(): cap = cv2.VideoCapture(0) ret, frame = cap.read() cap.release() if ret: # Convert to PIL image return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) else: return None Define a function to send the daily log via email. You will need to customize this for your particular network environment. def send_email(sender, receiver, subject, body): msg = MIMEMultipart() msg['From'] = sender msg['To'] = receiver msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) server = smtplib.SMTP('smtp.example.com', 587) server.starttls() server.login(sender, \"your-password\") text = msg.as_string() server.sendmail(sender, receiver, text) server.quit() Define when your business's operating hours are: START_OF_BUSINESS = 9 # e.g. 9am END_OF_BUSINESS = 17 # e.g. 5pm def is_within_business_hours(): current_hour = datetime.now().hour return START_OF_BUSINESS <= current_hour < END_OF_BUSINESS Write the main application loop: gl = Groundlight() detector = gl.get_or_create_detector( name=\"counter-in-use\", query=\"Is there a customer at the service counter?\", # We can get away with relatively low confidence since we're aggregating confidence_threshold=0.8) DELAY = 60 log = [] daily_log = [] next_hourly_start = datetime.now().replace(minute=0, second=0, microsecond=0) + timedelta(hours=1) while True: if not is_within_business_hours(): time.sleep(DELAY) continue image = capture_image() if not image: print(\"Failed to capture image\") time.sleep(DELAY) continue try: iq = gl.submit_image_query(image=image, detector=detector, wait=60) except Exception as e: print(f\"Error submitting image query: {e}\") time.sleep(DELAY) continue answer = iq.result.label log.append(answer) if datetime.now() >= next_hourly_start: next_hourly_start += timedelta(hours=1) percent_in_use = (log.count(\"YES\") / len(log)) * 100 current_time = datetime.now().replace(hour=START_OF_BUSINESS, minute=0, second=0) formatted_time = current_time.strftime(\"%I%p\") # like 3pm msg = f\"Hourly summary for {formatted_time}: {percent_in_use:.0f}% counter in use\" print(msg) daily_log.append(msg) log = [] current_hour = datetime.now().hour if current_hour == END_OF_BUSINESS and not daily_log == []: daily_summary = \"Daily summary:\\n\" for msg in daily_log: daily_summary += f\"{msg}\\n\" print(daily_summary) send_email(sender=\"counterbot@example.com\", receiver=\"manager@example.com\", subject=\"Daily Service Counter Usage Log\", body=daily_summary) daily_log = [] time.sleep(DELAY) This application captures an image using the capture_image function, then submits it to the Groundlight API for analysis. If a customer is detected at the counter, it logs the event. Every hour, it prints a summary of the counter's usage percentage, and at the end of the day, it emails the daily log using the send_email function. Save the script as service_counter_monitor.py and run it: python service_counter_monitor.py","s":"Creating the Application","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#creating-the-application","p":108},{"i":119,"t":"With Groundlight's detectors, you can ask binary questions about images — i.e., the answer should be unambiguously \"YES\" or \"NO\". If you ask an ambiguous question, you may receive an \"UNSURE\" response. detector = gl.get_or_create_detector( name=\"Conveyor belt boxes\", query=\"Are there any cardboard boxes on the conveyor belt?\" ) image_query = gl.submit_image_query(detector=detector, image=some_image) # The SDK can return \"YES\" or \"NO\" (or \"UNSURE\") print(f\"The answer is {image_query.result.label}\") So, what makes a good question? Let's look at a few good ✅, moderate 🟡, and bad ❌ examples!","s":"Introduction","u":"/python-sdk/docs/getting-started/writing-queries","h":"#introduction","p":117},{"i":122,"t":"This question is binary and can be answered unambiguously with a simple \"YES\" or \"NO\" based on the image content.","s":"✅ Are there any cardboard boxes on the conveyor belt?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-are-there-any-cardboard-boxes-on-the-conveyor-belt","p":117},{"i":124,"t":"This question is okay, but it could be rephrased to be more specific. For example, \"Is the black trash can more than 80% full?\" tip With Groundlight, your questions may be routed to a machine learning model or a human reviewer. One way to improve your questions is to think, \"If I saw this question for the first time, would I know precisely what the person was trying to convey?\"","s":"🟡 Is the trash can full?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-trash-can-full","p":117},{"i":126,"t":"The query is very specific about what \"YES\" means. According to this query, any slight / partial opening would be considered \"NO\".","s":"✅ Is the garage door completely closed?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-garage-door-completely-closed","p":117},{"i":128,"t":"This question is somewhat ambiguous. Different people may have different opinions on what is nice weather. Instead, you might ask \"Can you see any clouds in the sky?\"","s":"🟡 Is the weather nice out?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-weather-nice-out","p":117},{"i":130,"t":"This is not a binary question — \"YES\" and \"NO\" don't make sense in this context. Also, it's not clear what the \"thing\" refers to.","s":"❌ Where is the thing?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-where-is-the-thing","p":117},{"i":132,"t":"While this question is binary, \"cleanliness\" can be somewhat subjective. An improved version could be: \"Are there any visible spills or clutter on the factory floor?\"","s":"🟡 Is the factory floor clean and organized?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-factory-floor-clean-and-organized","p":117},{"i":134,"t":"Welcome to the Groundlight SDK installation guide. In this guide, you'll find step-by-step instructions on how to install and set up the Groundlight SDK on various platforms.","s":"Installation","u":"/python-sdk/docs/installation","h":"","p":133},{"i":136,"t":"Choose your platform from the list below and follow the instructions in the corresponding guide: Linux macOS Windows Raspberry Pi NVIDIA Jetson Linux with Monitoring Notification Server ESP32 Camera Device After completing the installation process for your platform, you'll be ready to start building visual applications using the Groundlight SDK.","s":"Platform-specific Installation Guides","u":"/python-sdk/docs/installation","h":"#platform-specific-installation-guides","p":133},{"i":138,"t":"This guide will help you install the Groundlight SDK on Linux. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on Linux","u":"/python-sdk/docs/installation/linux","h":"","p":137},{"i":140,"t":"Ensure that you have the following installed on your system: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/linux","h":"#prerequisites","p":137},{"i":142,"t":"Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/linux","h":"#basic-installation","p":137},{"i":144,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip install groundlight If you're also using python2 on your system, you might need to use pip3 instead: pip3 install groundlight The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#installing-groundlight-sdk","p":137},{"i":146,"t":"To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner: python -c \"import groundlight; print(groundlight.__version__)\"","s":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/linux","h":"#checking-groundlight-sdk-version","p":137},{"i":148,"t":"If you need to upgrade the Groundlight SDK to the latest version, use the following pip command: pip install --upgrade groundlight Or, if you're using pip3: pip3 install --upgrade groundlight After upgrading, you can use the Python one-liner mentioned in the \"Checking Groundlight SDK Version\" section to verify that the latest version is now installed.","s":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#upgrading-groundlight-sdk","p":137},{"i":150,"t":"To check your installed Python version, open a terminal and run: python --version If you see a version number starting with \"3.7\" or higher (e.g., \"3.7.5\" or \"3.9.0\"), you're good to go. If not, you might need to upgrade Python on your system.","s":"Getting the right Python Version","u":"/python-sdk/docs/installation/linux","h":"#getting-the-right-python-version","p":137},{"i":152,"t":"Use your distribution's package manager to install the latest Python version: For Ubuntu or Debian-based systems: sudo apt update sudo apt install python3 (For Ubuntu 18.04 see note below.) For Fedora-based systems: sudo dnf install python3 For Arch Linux: sudo pacman -S python After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.","s":"Upgrading Python on Linux","u":"/python-sdk/docs/installation/linux","h":"#upgrading-python-on-linux","p":137},{"i":154,"t":"Ubuntu 18.04 still uses python 3.6 by default, which is end-of-life. We generally recommend using python 3.10. If you know how to install py3.10, please go ahead. But the easiest version of python 3 to use with Ubuntu 18.04 is python 3.8, which can be installed as follows without adding any extra repositories: # Prepare Ubuntu to install things sudo apt-get update # Install the basics sudo apt-get install -y python3.8 python3.8-distutils curl # Configure `python3` to run python3.8 by default sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 10 # Download and install pip3.8 curl https://bootstrap.pypa.io/get-pip.py > /tmp/get-pip.py sudo python3.8 /tmp/get-pip.py # Configure `pip3` to run pip3.8 sudo update-alternatives --install /usr/bin/pip3 pip3 $(which pip3.8) 10 # Now we can install Groundlight! pip3 install groundlight","s":"Special note about Ubuntu 18.04","u":"/python-sdk/docs/installation/linux","h":"#special-note-about-ubuntu-1804","p":137},{"i":156,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/linux","h":"#ready-to-go","p":137},{"i":158,"t":"This guide will help you install the Groundlight SDK on macOS. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on macOS","u":"/python-sdk/docs/installation/macos","h":"","p":157},{"i":160,"t":"Ensure that you have the following installed on your system: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/macos","h":"#prerequisites","p":157},{"i":162,"t":"Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/macos","h":"#basic-installation","p":157},{"i":164,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip install groundlight If you're also using python2 on your system, you might need to use pip3 instead: pip3 install groundlight The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#installing-groundlight-sdk","p":157},{"i":166,"t":"To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner: python -c \"import groundlight; print(groundlight.__version__)\"","s":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/macos","h":"#checking-groundlight-sdk-version","p":157},{"i":168,"t":"If you need to upgrade the Groundlight SDK to the latest version, use the following pip command: pip install --upgrade groundlight Or, if you're using pip3: pip3 install --upgrade groundlight After upgrading, you can use the Python one-liner mentioned in the \"Checking Groundlight SDK Version\" section to verify that the latest version is now installed.","s":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#upgrading-groundlight-sdk","p":157},{"i":170,"t":"To check your installed Python version, open a terminal and run: python --version If you see a version number starting with \"3.7\" or higher (e.g., \"3.7.5\" or \"3.9.0\"), you're good to go. If not, you might need to upgrade Python on your system.","s":"Getting the right Python Version","u":"/python-sdk/docs/installation/macos","h":"#getting-the-right-python-version","p":157},{"i":172,"t":"Download the latest Python installer from the official Python website and run it, or use Homebrew to install Python: brew install python After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.","s":"Upgrading Python on MacOS","u":"/python-sdk/docs/installation/macos","h":"#upgrading-python-on-macos","p":157},{"i":174,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/macos","h":"#ready-to-go","p":157},{"i":176,"t":"This is the easiest way to deploy your Groundlight detectors on a linux computer. All configuration is done through a web user interface, and no code development is required.","s":"Monitoring Notification Server","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"","p":175},{"i":178,"t":"Internet connected linux computer Video source (USB camera or RTSP stream) Groundlight API Key (available from groundlight.ai)","s":"Prerequisites","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#prerequisites","p":175},{"i":180,"t":"Install Docker on your computer. See Docker's installation instructions. Create a new file called docker-compose.yml in your project directory. Copy the following into it: services: frontend: image: docker.io/groundlight/monitoring-notification-server-frontend:latest ports: - \"3000:3000\" depends_on: - backend backend: image: docker.io/groundlight/monitoring-notification-server-backend:latest ports: - \"8000:8000\" devices: - /dev/video0:/dev/video0 - /dev/video1:/dev/video1 - /dev/video2:/dev/video2 - /dev/video3:/dev/video3 privileged: true volumes: - /dev/bus/usb:/dev/bus/usb Run the following command in your project directory: docker-compose up If installed locally, open http://localhost:3000 in your browser. If installed on a remote device, replace localhost with the IP address of your device. You should see the following page:","s":"Deployment","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#deployment","p":175},{"i":182,"t":"This guide will help you install the Groundlight SDK on NVIDIA Jetson devices. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on NVIDIA Jetson","u":"/python-sdk/docs/installation/nvidia-jetson","h":"","p":181},{"i":184,"t":"Ensure that you have the following installed on your NVIDIA Jetson: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#prerequisites","p":181},{"i":186,"t":"Assuming you have Python 3.7 or higher installed on your NVIDIA Jetson, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#basic-installation","p":181},{"i":188,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip3 install groundlight An ARM-compatible version will automatically get installed. The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#installing-groundlight-sdk","p":181},{"i":190,"t":"If you have docker installed on your NVIDIA Jetson, you can even just run docker run groundlight/stream as we publish an ARM version of our streaming application to Docker Hub.","s":"Using RTSP Streams","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#using-rtsp-streams","p":181},{"i":192,"t":"For a complete end-to-end example of running on an NVIDIA Jetson, see this GitHub repo.","s":"Sample application","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#sample-application","p":181},{"i":194,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and [Building Applications","s":"Ready to go!","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#ready-to-go","p":181},{"i":197,"t":"The Groundlight SDK is optimized to run on small edge devices. As such, you can use the Groundlight SDK without installing large libraries like numpy or OpenCV. But if you're already installing them, we'll use them. Our SDK detects if these libraries are installed and will make use of them if they're present. If not, we'll gracefully degrade, and tell you what's wrong if you try to use these features.","s":"Smaller is better!","u":"/python-sdk/docs/installation/optional-libraries","h":"#smaller-is-better","p":195},{"i":199,"t":"The PIL library offers a bunch of standard utilities for working with images in python. The Groundlight SDK can work without PIL. Because PIL is not very large, and is quite useful, we install it by default with the normal build of the Groundlight SDK. So when you pip3 install groundlight it comes with the pillow version of the PIL library already installed.","s":"PIL - optional but default installed","u":"/python-sdk/docs/installation/optional-libraries","h":"#pil---optional-but-default-installed","p":195},{"i":201,"t":"If you are extremely space constrained, you can install the Groundlight SDK from source without PIL and it will work properly, but with reduced functionality. Specifically, you will need to convert your images into JPEG format yourself. The SDK normally relies on PIL to do JPEG compression (which is a non-trivial algorithm), and the API requires images to be in JPEG format. However on space-constrained platforms, sometimes this conversion is done in hardware, and so we don't want to force you to install PIL if you don't need it.","s":"Working without PIL","u":"/python-sdk/docs/installation/optional-libraries","h":"#working-without-pil","p":195},{"i":203,"t":"These commonly-used libraries are not installed by default, because they are quite large, and their installation can often cause conflicts with other dependent libraries. If you want to use them, install them directly.","s":"Numpy, OpenCV - fully optional","u":"/python-sdk/docs/installation/optional-libraries","h":"#numpy-opencv---fully-optional","p":195},{"i":205,"t":"This guide will help you install the Groundlight SDK on Raspberry Pi. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on Raspberry Pi","u":"/python-sdk/docs/installation/raspberry-pi","h":"","p":204},{"i":207,"t":"Ensure that you have the following installed on your Raspberry Pi: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/raspberry-pi","h":"#prerequisites","p":204},{"i":209,"t":"Assuming you have Python 3.7 or higher installed on your Raspberry Pi, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/raspberry-pi","h":"#basic-installation","p":204},{"i":211,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip3 install groundlight An ARM-compatible version will automatically get installed. The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/raspberry-pi","h":"#installing-groundlight-sdk","p":204},{"i":213,"t":"If you have docker installed on your Raspberry Pi, you can even just run docker run groundlight/stream as we publish an ARM version of our streaming application to Docker Hub.","s":"Using RTSP Streams","u":"/python-sdk/docs/installation/raspberry-pi","h":"#using-rtsp-streams","p":204},{"i":215,"t":"For a complete end-to-end example of running on a Raspberry Pi, see this GitHub repo.","s":"Sample application","u":"/python-sdk/docs/installation/raspberry-pi","h":"#sample-application","p":204},{"i":217,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/raspberry-pi","h":"#ready-to-go","p":204},{"i":219,"t":"This guide will help you install the Groundlight SDK on Windows. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on Windows","u":"/python-sdk/docs/installation/windows","h":"","p":218},{"i":221,"t":"Ensure that you have the following installed on your system: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/windows","h":"#prerequisites","p":218},{"i":223,"t":"Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/windows","h":"#basic-installation","p":218},{"i":225,"t":"To install the Groundlight SDK using pip, run the following command in your Command Prompt: pip install groundlight If you're also using python2 on your system, you might need to use pip3 instead: pip3 install groundlight The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#installing-groundlight-sdk","p":218},{"i":227,"t":"To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner: python -c \"import groundlight; print(groundlight.__version__)\"","s":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/windows","h":"#checking-groundlight-sdk-version","p":218},{"i":229,"t":"If you need to upgrade the Groundlight SDK to the latest version, use the following pip command: pip install --upgrade groundlight Or, if you're using pip3: pip3 install --upgrade groundlight After upgrading, you can use the Python one-liner mentioned in the \"Checking Groundlight SDK Version\" section to verify that the latest version is now installed.","s":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#upgrading-groundlight-sdk","p":218},{"i":231,"t":"To check your installed Python version, open a Command Prompt and run: python --version If you see a version number starting with \"3.7\" or higher (e.g., \"3.7.5\" or \"3.9.0\"), you're good to go. If not, you might need to upgrade Python on your system.","s":"Getting the right Python Version","u":"/python-sdk/docs/installation/windows","h":"#getting-the-right-python-version","p":218},{"i":233,"t":"Download the latest Python installer from the official Python website and run it. After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.","s":"Upgrading Python on Windows","u":"/python-sdk/docs/installation/windows","h":"#upgrading-python-on-windows","p":218},{"i":235,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/windows","h":"#ready-to-go","p":218},{"i":237,"t":"Groundlight supplies a tool for no-code deployment of a detector to an ESP32 Camera board. You can find it at https://iot.groundlight.ai/espcam.","s":"No-Code IoT Deployment","u":"/python-sdk/docs/iot","h":"","p":236},{"i":239,"t":"This tool is designed to make it as easy as possible to deploy your Groundlight detector on an ESP32 Camera Board. You can deploy your detector in just a few clicks. Go to https://iot.groundlight.ai/espcam Plug your ESP32 Camera Board into your computer with a USB cable. Click through the steps to upload your detector to your ESP32 Camera Board. When prompted, allow your browser access to the serial port, so that it can program the device. If you don't see a prompt like this, try using a current version of Chrome or another browser that supports Web Serial.","s":"Easy Deployment","u":"/python-sdk/docs/iot","h":"#easy-deployment","p":236},{"i":241,"t":"The tool supports the following notification options for your deployed detector: Email SMS (With Twilio) Slack","s":"Notification Options","u":"/python-sdk/docs/iot","h":"#notification-options","p":236},{"i":243,"t":"Tested with the following boards. Many other ESP32 boards should work as well, but may require building the firmware from source and changing the IO pin definitions. M5Stack ESP32 PSRAM Timer Camera [purchase here] M5Stack ESP32 PSRAM Timer Camera X [purchase here] ESP32-CAM [purchase here] SeeedStudio ESP32S3 Sense [purchase here]","s":"Multiple Supported Boards","u":"/python-sdk/docs/iot","h":"#multiple-supported-boards","p":236},{"i":245,"t":"The source code is written as an Arduino-based PlatformIO project for ESP32, and is available on GitHub at https://github.com/groundlight/esp32cam If you need assistance or have questions about integrating Groundlight with Arduino, please consider opening an issue on the GitHub repository or reaching out to our support team.","s":"Source Code","u":"/python-sdk/docs/iot","h":"#source-code","p":236}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.803,1,4.803,2,4.265,3,5.662,4,4.509,5,1.209,6,4.509,7,5.662]],["t/4",[3,3.553,8,0.656,9,3.553,10,3.245,11,1.821,12,2.076,13,3.245,14,2.43,15,2.545,16,1.668,17,4.022,18,2.676,19,4.253,20,3.172,21,4.022,22,1.94,23,4.022,24,2.328,25,3.993,26,1.32,27,4.022,28,3.245,29,3.245,30,4.022,31,3.245,32,2.83,33,2.545,34,3.014,35,4.022,36,2.83,37,4.022,38,1.32,39,3.245,40,4.022,41,1.94,42,3.553,43,4.022]],["t/6",[8,0.64,13,5.17,20,3.091,44,5.662,45,4.803,46,5.662,47,2.902,48,5.662]],["t/8",[8,0.496,26,1.632,49,3.5,50,4.975,51,4.013,52,4.975,53,4.395,54,5.503,55,4.975,56,4.395,57,4.395,58,4.975,59,4.395,60,3.31,61,3.006,62,4.013,63,2.722,64,4.395,65,2.663,66,2.766,67,4.975,68,2.481]],["t/10",[10,4.122,12,3.448,16,2.119,18,3.4,24,2.957,36,3.595,38,1.676,49,3.595,69,4.514,70,2.464,71,5.11,72,3.087,73,5.901,74,2.735,75,5.11,76,5.11,77,2.637,78,4.514,79,5.11,80,3.829,81,5.11]],["t/12",[16,1.96,36,3.325,49,3.325,61,2.856,70,3.059,82,4.726,83,4.013,84,7.652,85,6.343,86,4.175,87,3.325,88,3.145,89,2.991,90,3.813,91,4.726,92,3.541,93,4.726,94,4.726,95,3.541,96,4.175,97,3.541,98,4.726,99,3.813]],["t/14",[8,0.599,11,2.718,12,3.098,14,3.626,15,3.798,20,2.895,61,3.626,100,4.223,101,6.003,102,5.303,103,4.498,104,4.223]],["t/16",[8,0.694,10,2.652,11,1.489,12,1.697,13,2.652,14,1.986,15,2.08,19,2.463,20,3.135,24,1.903,25,2.313,26,1.079,36,2.313,38,1.924,41,1.586,42,2.904,72,1.986,105,3.288,106,3.288,107,2.838,108,1.903,109,2.463,110,1.105,111,2.313,112,3.674,113,2.652,114,2.652,115,3.449,116,3.288,117,2.652,118,2.904,119,3.288,120,2.904,121,3.288,122,2.904,123,2.463,124,2.463,125,4.332,126,3.262,127,3.288,128,2.187,129,3.288,130,3.288,131,3.288,132,3.288,133,2.463,134,2.904,135,2.463,136,1.903,137,2.904]],["t/18",[5,0.982,6,2.509,8,0.675,22,1.72,26,1.17,66,1.983,78,3.151,87,2.509,88,2.373,114,2.877,115,5.059,123,2.673,138,2.673,139,4.2,140,3.567,141,3.567,142,2.509,143,3.567,144,3.567,145,3.151,146,3.567,147,1.015,148,2.673,149,3.465,150,3.567,151,3.567,152,3.567,153,2.257,154,1.438,155,1.666,156,1.363,157,3.567,158,3.567,159,3.567,160,2.877,161,3.151,162,3.567,163,0.925,164,3.567,165,2.673,166,2.877,167,2.373,168,3.567,169,3.567,170,3.567]],["t/20",[5,1.132,136,3.474,171,6.003,172,3.474,173,3.994,174,4.842,175,6.003,176,5.303,177,3.626,178,3.474,179,4.223,180,4.498]],["t/22",[5,0.881,8,0.76,153,2.954,154,2.537,155,2.18,156,2.718,172,2.702,177,3.8,181,4.124,182,3.284,183,3.765,184,2.702,185,2.251,186,3.765,187,4.668,188,5.074,189,2.954,190,4.668,191,6.29,192,4.668,193,4.668]],["t/24",[5,0.643,8,0.502,72,2.058,77,2.598,153,2.155,154,1.374,156,2.822,172,3.465,173,2.266,174,2.747,178,2.913,179,2.396,180,2.552,182,2.396,185,1.643,194,3.009,195,2.396,196,3.009,197,5.034,198,2.155,199,2.747,200,4.83,201,2.747,202,3.009,203,2.747,204,3.406,205,4.06,206,3.009,207,2.747,208,3.009,209,2.747,210,3.406,211,3.009,212,2.396,213,3.406,214,3.406,215,5.335,216,3.406,217,2.747,218,1.894,219,3.009,220,3.406,221,3.406]],["t/26",[5,0.673,8,0.356,22,1.72,24,2.064,36,2.509,97,2.673,154,1.438,156,1.989,172,2.064,178,2.064,179,4.326,180,2.673,181,3.151,183,2.877,185,1.72,198,2.257,199,4.2,200,4.2,201,2.877,211,3.151,219,3.151,222,3.567,223,2.877,224,3.151,225,3.567,226,3.151,227,3.567,228,3.567,229,3.567,230,3.567,231,3.567,232,3.567,233,3.567,234,2.509,235,3.567,236,3.567,237,3.567,238,3.567,239,3.567,240,3.567,241,3.567,242,5.207,243,3.567,244,3.567,245,3.567,246,3.567,247,3.567,248,3.151,249,3.567]],["t/28",[5,0.432,8,0.534,14,1.384,26,0.752,38,0.752,62,1.848,97,1.717,100,1.612,103,1.717,156,2.044,172,3.096,173,1.524,178,2.696,179,3.278,180,2.774,183,1.848,184,1.326,185,2.832,194,2.024,198,1.45,199,4.316,200,5.333,201,4.316,202,2.024,203,1.848,223,1.848,224,3.271,248,4.116,250,2.291,251,3.271,252,2.291,253,2.291,254,2.291,255,2.291,256,2.291,257,2.291,258,2.024,259,1.274,260,2.291,261,1.524,262,2.291,263,0.978,264,3.702,265,2.774,266,3.702,267,2.024,268,2.291,269,2.291,270,2.024,271,2.291,272,1.717,273,2.291,274,2.291,275,2.291,276,3.702,277,2.291,278,2.291,279,2.291,280,2.291,281,2.291,282,2.774,283,2.291,284,2.024,285,1.717,286,2.024,287,3.702,288,2.024,289,2.024,290,2.291,291,2.291,292,2.291,293,1.45,294,2.291,295,2.291]],["t/30",[9,3.671,47,1.881,60,2.765,62,5.4,64,3.671,72,2.51,167,2.765,173,4.454,176,3.671,185,3.496,195,2.923,296,4.155,297,4.684,298,4.684,299,5.807,300,6.694,301,6.694,302,3.113,303,3.671,304,4.155,305,3.671,306,3.671,307,3.671,308,3.671,309,5.807]],["t/32",[5,0.991,8,0.524,18,3.494,20,2.533,22,2.533,33,3.323,66,2.92,95,3.935,107,3.04,126,4.524,128,4.524,310,5.252,311,3.494,312,2.178,313,5.252,314,5.252,315,4.236,316,3.935,317,3.323]],["t/34",[2,2.488,5,0.438,8,0.469,22,1.803,59,2.049,95,1.738,125,4.15,154,1.508,155,1.083,156,2.963,173,1.543,298,1.871,311,2.488,312,1.55,318,4.037,319,1.871,320,2.319,321,4.15,322,2.319,323,1.632,324,3.739,325,1.632,326,1.871,327,1.871,328,3.739,329,2.319,330,2.319,331,2.319,332,1.871,333,2.319,334,2.319,335,1.738,336,1.871,337,1.871,338,2.319,339,2.049,340,2.319,341,3.739,342,3.739,343,2.319,344,2.319,345,1.871,346,2.319,347,3.739,348,4.698,349,2.319,350,2.319,351,2.319,352,2.049,353,4.698,354,3.739,355,2.319,356,2.319,357,2.319,358,1.871,359,2.319,360,2.319,361,2.319,362,2.319,363,2.049,364,2.319,365,2.319,366,2.319,367,3.739,368,2.319,369,2.049,370,2.319,371,1.871,372,2.049,373,2.049,374,2.319,375,2.319,376,2.319,377,2.319,378,2.319]],["t/36",[5,1.151,8,0.609,18,4.058,22,2.942,72,3.685,128,4.058,315,4.92,317,3.859,379,4.92,380,4.291,381,4.92]],["t/38",[66,3.047,317,4.421,321,4.841,323,3.855,339,4.841,382,4.841,383,3.855,384,5.48,385,5.48,386,4.841,387,5.48,388,5.48,389,3.855,390,5.48,391,5.48,392,5.48,393,4.106]],["t/40",[5,1.049,8,0.555,68,2.773,70,3.402,126,4.693,323,3.912,383,3.912,394,4.913,395,4.167,396,5.561,397,5.561,398,5.561,399,4.913,400,5.561,401,4.913]],["t/42",[41,2.533,68,2.618,70,2.533,317,3.323,318,3.935,393,3.935,402,4.524,403,5.252,404,5.252,405,3.494,406,5.252,407,5.252,408,4.236,409,5.252,410,4.64,411,3.173,412,5.252,413,5.252,414,5.252,415,5.252]],["t/44",[66,2.88,68,2.583,70,2.498,124,3.881,126,3.447,142,3.644,293,3.277,317,3.277,372,4.576,393,5.049,416,4.576,417,5.18,418,5.18,419,5.18,420,5.18,421,5.18,422,5.18,423,5.18,424,5.18,425,4.178,426,4.576]],["t/46",[70,2.569,126,3.544,128,3.544,212,3.747,316,3.991,317,3.37,318,3.991,408,4.296,427,5.326,428,5.326,429,3.082,430,5.326,431,5.326,432,5.326,433,5.326,434,5.326,435,5.326,436,5.326,437,4.705,438,4.705]],["t/48",[5,0.87,8,0.46,20,2.224,24,2.669,38,1.513,68,2.299,70,2.224,110,1.55,124,3.455,126,4.151,128,4.151,203,3.72,303,4.074,311,3.068,315,3.72,316,3.455,317,2.918,318,3.455,380,3.244,381,3.72,382,4.074,393,3.455,429,3.611,439,3.72,440,4.611,441,4.611,442,4.611,443,4.611]],["t/50",[8,0.449,11,2.779,12,3.168,14,2.719,15,2.848,20,2.171,25,3.167,41,2.171,61,2.719,102,3.977,103,4.598,104,3.167,115,3.167,444,4.501,445,3.631,446,4.501,447,4.501,448,3.977,449,3.373,450,3.977,451,4.501,452,2.848,453,4.501,454,3.977,455,3.631,456,4.501,457,4.501,458,4.501,459,3.977,460,3.167]],["t/52",[11,1.968,12,2.243,14,2.626,15,2.75,31,3.506,38,1.426,41,2.096,66,2.416,136,2.515,445,3.506,452,2.75,461,4.346,462,4.346,463,4.833,464,5.991,465,5.293,466,4.346,467,4.346,468,4.346,469,3.839,470,3.839,471,4.346,472,4.346,473,4.346,474,4.346,475,4.346,476,3.839,477,4.346,478,4.346,479,4.346,480,4.346,481,4.346,482,4.346]],["t/54",[11,2.088,12,2.38,14,2.786,15,2.918,68,2.299,136,2.669,167,3.068,425,3.72,426,4.074,448,4.074,449,4.674,452,2.918,465,4.074,483,4.074,484,4.074,485,3.72,486,4.611,487,4.074,488,4.611,489,4.611,490,6.238,491,4.074,492,4.611,493,4.611,494,4.611,495,4.611,496,4.611,497,4.611,498,4.074]],["t/56",[11,2.779,12,3.168,16,1.867,68,2.244,104,3.167,136,2.605,226,3.977,263,1.921,425,3.631,452,2.848,455,3.631,459,6.169,460,3.167,499,3.631,500,4.501,501,4.501,502,3.977,503,4.501,504,3.977,505,4.501,506,4.501,507,4.501,508,4.501,509,4.501,510,3.977,511,4.501,512,4.501,513,4.501,514,4.501]],["t/58",[11,1.945,12,2.218,38,1.41,66,2.389,104,3.023,136,2.487,137,3.796,149,2.859,174,3.466,297,3.466,399,3.796,452,3.761,454,5.251,460,3.023,469,3.796,470,3.796,476,5.251,491,3.796,515,3.466,516,4.297,517,4.297,518,4.297,519,4.297,520,3.023,521,4.297,522,4.297,523,4.297,524,3.466,525,3.219,526,4.297,527,4.297,528,4.297,529,4.297,530,4.297]],["t/60",[11,2.556,12,2.913,14,3.41,15,3.571,41,2.722,103,4.229,104,3.971,109,4.229,113,4.553,136,3.267,452,3.571,455,4.553,531,5.644,532,4.229,533,5.644,534,5.644]],["t/62",[8,0.399,16,0.603,22,1.219,28,1.173,31,1.173,32,1.778,39,1.173,41,1.616,47,0.658,74,0.778,87,2.357,88,0.967,90,1.173,123,2.511,135,1.893,139,2.703,148,2.511,154,1.351,155,0.679,156,2.041,166,1.173,177,0.878,182,1.023,184,0.841,185,2.577,189,0.92,234,1.023,259,0.808,265,1.089,289,1.284,302,1.089,326,1.173,335,1.089,371,1.173,380,1.023,460,1.023,515,1.173,520,1.023,535,1.454,536,1.454,537,2.232,538,4.004,539,1.284,540,4.006,541,1.599,542,2.533,543,2.232,544,1.284,545,4.012,546,1.173,547,3.23,548,1.454,549,1.284,550,1.173,551,1.089,552,1.284,553,1.454,554,0.967,555,3.23,556,1.023,557,1.284,558,1.089,559,2.038,560,1.284,561,3.351,562,4.621,563,3.351,564,1.173,565,1.454,566,1.454,567,1.454,568,2.527,569,2.232,570,1.681,571,2.527,572,0.658,573,1.454,574,2.232,575,2.527,576,1.454,577,1.284,578,1.454,579,1.454,580,1.454,581,1.454,582,1.284,583,1.284,584,1.454,585,1.284,586,1.173,587,1.454,588,1.454,589,1.454,590,1.454,591,1.681,592,2.232,593,2.232,594,1.893,595,1.173,596,1.284,597,1.454,598,1.284,599,1.38,600,1.284,601,0.878,602,1.173,603,1.454,604,1.454,605,1.454,606,1.454,607,1.454,608,1.284,609,2.527,610,1.454,611,1.454,612,1.454,613,1.454,614,1.173,615,1.454,616,1.454,617,1.454,618,1.454,619,2.527,620,1.284,621,1.284,622,1.454]],["t/65",[8,0.653,24,2.303,26,1.848,47,1.802,74,3.5,133,2.982,154,1.605,155,1.859,156,2.152,189,2.518,218,2.213,395,2.982,524,3.21,542,3.565,554,3.749,570,2.648,623,3.98,624,3.98,625,7.112,626,5.634,627,2.982,628,3.98,629,2.982,630,3.98,631,3.98,632,3.21,633,3.98,634,3.98,635,3.516,636,3.516,637,3.98,638,3.98]],["t/67",[8,0.818,74,3.373,154,2.542,155,2.944,156,2.912,639,6.303]],["t/69",[8,0.723,33,4.588,80,3.632,112,4.834,154,1.955,155,2.264,156,3.075,555,5.204,640,4.283,641,5.699,642,4.848,643,4.283,644,4.283,645,4.283,646,4.848,647,4.283]],["t/71",[8,0.728,26,1.611,108,2.842,154,1.98,155,2.294,156,2.486,182,3.455,184,3.766,319,3.961,542,4.117,554,3.267,570,3.267,591,3.267,602,3.961,620,4.338,648,4.338,649,4.911,650,4.338,651,4.911,652,4.911,653,4.911]],["t/73",[8,0.723,33,4.588,80,3.632,154,1.955,155,2.264,156,3.075,555,5.204,640,4.283,641,5.699,643,4.283,644,4.283,645,4.283,647,4.283,654,6.451,655,4.848,656,4.848]],["t/75",[8,0.6,22,1.361,38,0.926,128,1.877,148,2.114,153,1.785,154,2.153,155,1.318,156,2.483,177,1.705,182,1.985,185,2.575,189,1.785,198,1.785,259,1.568,285,2.114,302,2.114,326,2.276,363,2.492,371,2.276,408,2.276,524,2.276,537,2.492,542,1.785,543,2.492,545,2.276,547,2.276,559,2.276,562,2.114,564,3.521,577,2.492,582,2.492,583,2.492,591,2.904,592,2.492,593,2.492,598,2.492,602,3.521,629,2.114,635,2.492,657,1.785,658,2.821,659,1.985,660,2.114,661,2.821,662,2.492,663,2.821,664,3.856,665,2.821,666,2.492,667,2.821,668,2.821,669,2.821,670,2.492,671,2.821,672,2.821,673,2.276,674,2.492,675,1.985,676,2.276,677,2.276,678,1.785,679,2.821,680,2.821,681,2.821,682,2.904,683,2.821]],["t/78",[5,0.706,8,0.631,11,1.695,12,1.932,16,1.552,18,2.491,29,3.02,72,2.262,154,1.51,155,1.748,156,2.8,163,1.399,185,1.805,186,3.02,189,2.369,198,2.369,267,3.307,270,3.307,379,3.02,541,2.369,591,2.491,594,2.805,595,3.02,660,2.805,666,3.307,676,3.02,677,3.02,678,2.369,684,3.743,685,3.307,686,3.307,687,2.805,688,3.307,689,3.307,690,3.743,691,3.743,692,3.743,693,3.743,694,3.307,695,3.743,696,3.743,697,3.743,698,3.743]],["t/80",[7,2.83,11,1.451,12,1.654,16,1.329,32,2.254,41,1.545,72,1.936,88,2.132,113,2.584,123,2.401,148,4.326,172,2.784,185,1.545,234,2.254,259,2.674,263,1.367,293,2.027,369,2.83,401,2.83,437,2.83,449,2.401,463,2.584,520,2.254,541,2.027,545,3.88,546,2.584,549,2.83,550,2.584,551,2.401,556,2.254,557,2.83,559,3.88,560,2.83,562,3.604,569,2.83,599,1.104,659,4.062,662,2.83,664,2.83,699,3.204,700,2.83,701,4.81,702,2.83,703,3.204,704,3.204,705,4.81,706,3.204,707,3.204,708,2.83,709,2.584,710,3.204,711,3.204,712,3.204,713,2.584,714,2.401,715,3.204]],["t/82",[19,4.048,38,1.772,73,4.772,115,3.8,118,4.772,136,3.127,259,3.003,452,3.418,550,4.357,551,4.048,564,4.357,716,5.402,717,5.402,718,5.402,719,5.402,720,4.772,721,5.402,722,5.402,723,5.402]],["t/84",[2,2.187,5,0.62,8,0.728,24,2.838,29,2.652,47,1.489,63,1.363,87,2.313,149,2.187,154,1.326,155,1.535,156,2.656,160,2.652,161,2.904,163,1.686,185,1.586,186,2.652,189,2.08,263,1.403,312,2.033,358,2.652,541,2.08,591,2.187,594,2.463,595,2.652,599,1.133,601,1.986,676,2.652,677,2.652,678,2.08,685,2.904,686,2.904,687,2.463,688,2.904,689,2.904,714,2.463,724,1.533,725,1.29,726,1.223,727,3.288,728,1.759,729,3.288,730,2.652,731,3.288,732,1.903,733,3.288,734,2.652,735,4.903]],["t/87",[5,0.892,8,0.633,22,2.279,26,2.081,263,2.017,282,3.541,312,2.969,319,3.813,732,3.671,736,4.175,737,4.726,738,4.726,739,4.175,740,3.325,741,2.529,742,4.726,743,4.726,744,4.726,745,4.726,746,4.726,747,4.726,748,4.726,749,4.726,750,4.726]],["t/89",[1,2.485,2,2.207,8,0.331,22,1.599,26,1.619,66,1.844,70,1.599,108,1.919,124,2.485,149,2.207,153,2.098,312,3.228,373,2.93,380,3.472,381,3.981,460,2.333,532,2.485,539,2.93,552,2.93,586,2.675,713,2.675,714,2.485,732,1.919,736,2.93,740,2.333,741,4.055,751,3.316,752,3.316,753,3.316,754,3.316,755,3.316,756,3.316,757,3.316,758,3.981,759,3.316,760,3.316,761,3.316,762,3.316,763,3.316,764,3.316,765,2.485,766,3.316,767,3.316,768,2.93,769,2.93,770,3.316]],["t/91",[5,0.902,8,0.718,22,2.771,49,3.362,149,3.822,153,2.01,154,1.927,155,2.232,156,2.441,160,4.634,282,2.381,312,2.841,358,3.855,380,2.235,386,2.807,556,2.235,627,2.381,648,2.807,732,4.167,741,1.7,771,3.177,772,2.807,773,2.807,774,2.807,775,3.177,776,3.177,777,3.177,778,3.177,779,2.381,780,3.177,781,3.177,782,4.779,783,3.177,784,3.177,785,3.177,786,3.177,787,3.177,788,3.177,789,3.177]],["t/93",[8,0.64,312,2.658,741,4.121,790,6.41,791,5.17,792,6.41,793,6.41]],["t/95",[0,4.454,8,0.593,24,3.44,33,2.719,47,1.945,312,2.826,402,2.859,485,3.466,515,3.466,554,3.955,621,3.796,632,3.466,732,4.256,740,3.023,741,3.181,758,4.795,794,4.297,795,3.796,796,4.297,797,3.796,798,4.297,799,5.251,800,4.297,801,4.297,802,3.796]],["t/97",[33,2.918,47,2.088,100,4.389,110,1.55,259,2.563,312,1.912,395,3.455,411,2.786,632,5.032,720,4.074,732,4.384,741,3.339,797,4.074,803,3.72,804,4.074,805,4.611,806,4.611,807,4.611,808,4.611,809,4.611,810,4.611,811,4.611,812,6.238,813,4.611]],["t/99",[0,3.294,8,0.439,20,2.912,38,1.442,198,2.782,218,2.444,265,3.294,312,1.823,554,2.925,558,3.294,570,4.018,732,4.505,740,3.093,768,5.335,769,3.884,795,3.884,803,3.546,814,4.397,815,4.397,816,4.397,817,6.039,818,4.397,819,4.397,820,4.397,821,4.397,822,3.884,823,3.546]],["t/101",[1,3.294,8,0.439,26,1.442,70,2.912,184,2.545,395,3.294,499,3.546,714,3.294,822,3.884,824,4.397,825,4.397,826,4.397,827,5.99,828,5.564,829,4.397,830,2.656,831,3.546,832,3.546,833,3.546,834,3.546,835,3.546,836,3.546,837,4.397,838,4.397,839,4.397,840,4.397,841,4.397,842,4.397,843,4.397]],["t/103",[5,0.964,8,0.51,60,3.4,77,2.637,142,3.595,163,1.326,405,3.4,599,1.761,687,3.829,726,1.901,773,4.514,827,4.122,828,4.122,834,4.122,835,4.122,836,4.122,844,4.122,845,3.829,846,5.11,847,5.11,848,4.444,849,5.11]],["t/105",[5,1.049,8,0.704,147,1.582,163,1.83,178,4.082,195,3.912,429,3.219,599,1.917,724,2.205,726,2.069,850,2.597,851,4.486,852,4.913]],["t/107",[8,0.502,32,1.214,34,1.293,38,1.251,51,1.392,63,0.716,70,2.166,74,1.567,77,0.891,154,2.349,155,0.806,156,2.862,163,0.76,177,1.769,178,0.999,185,2.955,207,1.392,209,1.392,215,1.392,217,2.362,234,2.682,259,0.96,261,1.149,265,1.293,272,1.293,312,1.214,323,1.214,325,1.214,332,1.392,335,1.293,336,1.392,337,2.362,345,1.392,402,1.149,439,2.362,499,1.392,541,1.853,542,1.092,558,1.293,659,1.214,682,1.149,732,0.999,734,2.362,802,1.525,827,1.392,828,3.076,833,2.362,834,2.362,835,2.362,836,2.362,852,1.525,853,1.293,854,1.726,855,2.587,856,3.968,857,2.587,858,3.368,859,1.525,860,2.587,861,1.525,862,1.525,863,2.194,864,1.525,865,1.525,866,1.525,867,1.726,868,1.726,869,1.726,870,1.726,871,1.726,872,1.726,873,1.726,874,1.726,875,1.726,876,1.726,877,1.726,878,1.726,879,2.928,880,1.726,881,1.726,882,1.726,883,1.726,884,1.525,885,1.525,886,1.726,887,1.392,888,1.525,889,1.525,890,1.525,891,1.726,892,1.726,893,1.525,894,1.525,895,1.726,896,1.525,897,1.293,898,1.726,899,1.525,900,1.525,901,1.726,902,1.726,903,1.525,904,2.928]],["t/110",[6,1.055,8,0.259,11,0.679,25,1.055,26,1.126,39,1.21,44,1.325,56,1.325,61,0.906,66,0.834,68,0.748,70,2.23,74,1.389,77,1.34,86,1.325,90,1.21,95,1.124,99,1.21,100,1.055,109,1.124,145,1.325,184,0.868,188,1.21,234,1.055,259,0.834,263,0.64,383,1.055,389,1.826,402,1.727,411,1.568,416,1.325,438,1.325,445,1.21,485,2.094,487,1.325,498,1.325,502,2.294,504,1.325,510,1.325,520,1.826,540,2.294,599,0.517,673,1.21,702,1.325,724,0.469,758,4.38,772,1.325,844,1.21,845,1.124,848,0.998,863,1.124,896,1.325,905,3.432,906,3.432,907,2.596,908,3.614,909,5.313,910,5.074,911,4.091,912,1.5,913,3.032,914,1.5,915,1.5,916,1.5,917,1.5,918,4.797,919,1.5,920,1.325,921,1.325,922,1.325,923,1.325,924,1.325,925,2.094,926,1.5,927,2.596,928,2.596,929,2.596,930,1.5,931,2.596,932,1.5,933,1.5,934,3.432,935,2.596,936,1.5,937,1.5,938,1.5,939,1.5,940,1.5,941,1.5,942,1.5,943,1.5,944,1.5,945,1.5,946,2.596,947,1.5,948,1.5,949,3.432,950,1.5,951,1.5,952,1.5,953,1.5,954,2.596,955,1.5,956,2.596,957,1.5,958,1.5,959,1.5,960,2.596,961,2.596,962,1.325,963,1.5,964,1.5,965,1.5,966,1.5,967,1.5,968,1.5,969,2.596,970,1.5,971,1.5,972,1.5,973,1.5,974,1.5,975,1.5,976,0.998,977,1.5,978,1.5,979,1.325,980,1.124,981,1.5]],["t/112",[2,3.7,5,1.049,8,0.555,60,3.7,77,2.87,142,3.912,163,1.443,205,4.486,402,3.7,599,1.917,726,2.069,740,3.912,844,4.486,845,4.167,925,4.486,980,4.167,982,5.561]],["t/114",[5,1.034,8,0.697,147,1.559,163,1.813,178,4.045,195,3.855,261,3.646,429,3.172,599,1.889,724,2.184,726,2.039,850,2.56,851,4.421,853,4.106]],["t/116",[8,0.363,26,0.618,32,0.735,34,0.782,38,0.845,63,0.433,70,1.52,74,0.559,77,0.539,99,0.842,142,0.735,149,0.695,154,2.03,155,0.488,156,3.144,163,0.489,177,1.138,178,0.604,185,2.291,189,0.661,205,0.842,207,0.842,209,0.842,215,0.842,217,1.52,259,0.581,261,0.695,263,0.446,272,0.782,311,0.695,312,0.781,323,0.735,325,0.735,327,0.842,332,0.842,335,0.782,336,0.842,337,1.52,345,0.842,402,2.704,405,1.254,439,1.52,541,0.661,542,0.661,544,0.922,558,0.782,562,0.782,574,0.922,659,0.735,670,0.922,694,1.665,708,0.922,732,0.604,734,1.52,833,0.842,848,0.695,853,0.782,855,2.275,856,2.785,857,2.275,858,2.275,859,0.922,860,1.665,861,0.922,862,0.922,863,1.929,864,0.922,865,0.922,866,0.922,884,0.922,885,0.922,887,0.842,888,0.922,889,0.922,890,0.922,893,0.922,894,0.922,899,0.922,900,0.922,903,0.922,908,1.665,909,1.665,910,2.785,913,0.922,918,1.665,920,0.922,921,0.922,922,1.665,923,0.922,924,0.922,925,2.077,979,0.922,980,0.782,983,1.044,984,1.884,985,1.044,986,1.044,987,1.884,988,1.044,989,1.044,990,1.044,991,1.044,992,2.575,993,1.044,994,2.575,995,1.044,996,1.044,997,1.044,998,1.044,999,1.044,1000,1.044,1001,1.044,1002,1.044,1003,1.044,1004,1.044,1005,1.044,1006,1.884,1007,1.044,1008,1.044,1009,1.044,1010,1.044,1011,1.044,1012,1.884,1013,1.044,1014,1.044,1015,2.575,1016,1.044,1017,1.044,1018,1.884,1019,3.152,1020,1.884,1021,1.044,1022,1.044,1023,1.044,1024,1.044,1025,1.044,1026,1.044,1027,3.152,1028,2.575,1029,1.044,1030,1.884,1031,1.044,1032,1.884,1033,3.152,1034,2.575,1035,1.044,1036,1.044,1037,1.044,1038,1.044,1039,1.044,1040,1.044,1041,1.044,1042,1.044,1043,1.044,1044,1.884,1045,1.044,1046,1.044,1047,1.044,1048,1.044,1049,1.044,1050,1.044,1051,1.884,1052,1.044,1053,1.044,1054,1.044,1055,1.044,1056,1.044,1057,1.044,1058,1.044,1059,1.044,1060,1.044,1061,1.044,1062,1.044,1063,1.884]],["t/119",[5,0.679,48,3.181,74,1.927,112,2.698,136,2.084,156,3.044,172,2.084,282,2.698,327,2.905,352,3.181,541,3.317,546,4.229,547,2.905,591,2.396,594,2.698,660,2.698,673,2.905,682,3.489,863,2.698,1064,4.632,1065,2.698,1066,2.905,1067,3.601,1068,3.181,1069,3.181,1070,3.489,1071,3.601,1072,5.243,1073,5.243,1074,3.601,1075,3.601,1076,3.601,1077,3.601,1078,3.601,1079,3.601,1080,3.601,1081,3.929,1082,3.601,1083,3.601]],["t/122",[28,5.084,61,3.808,185,3.04,682,4.194,1065,4.723,1068,5.568,1070,4.194,1084,6.303,1085,6.303]],["t/124",[8,0.444,41,2.936,135,3.333,139,3.588,184,2.575,218,2.473,259,2.473,288,3.93,383,3.129,463,3.588,520,3.129,551,3.333,585,3.93,586,3.588,596,3.93,650,3.93,659,3.129,700,3.93,1066,4.911,1070,4.051,1086,4.448,1087,4.448,1088,4.448,1089,4.448,1090,4.448,1091,4.448,1092,3.93,1093,4.448,1094,4.448,1095,4.448,1096,4.448]],["t/126",[156,2.293,285,4.498,383,4.223,542,4.681,682,3.994,1097,6.003,1098,6.003,1099,6.003,1100,6.003,1101,5.303,1102,6.003]],["t/128",[47,2.634,298,5.853,713,4.693,1064,5.14,1069,5.14,1070,3.871,1103,5.14,1104,5.818,1105,5.818,1106,5.818,1107,4.359,1108,5.818,1109,5.818]],["t/130",[156,2.293,188,4.842,389,4.223,410,5.303,682,3.994,779,4.498,1065,4.498,1070,3.994,1110,5.303,1111,6.003,1112,6.003,1113,6.003]],["t/132",[120,5.303,725,2.355,1065,4.498,1070,3.994,1103,5.303,1114,6.003,1115,6.003,1116,6.003,1117,6.003,1118,6.003,1119,6.003,1120,6.003]],["t/134",[5,1.318,8,0.697,25,3.855,87,3.855,88,3.646,133,4.106,627,4.106,724,1.713,830,4.222,1121,5.48,1122,4.106,1123,6.988,1124,4.421,1125,4.841]],["t/136",[5,0.829,8,0.439,19,3.294,20,2.12,38,1.442,77,2.269,83,2.782,89,2.782,92,3.294,107,2.545,133,3.294,311,2.925,379,3.546,484,3.884,614,3.546,657,2.782,803,3.546,830,2.656,962,3.884,1122,3.294,1124,3.546,1126,4.397,1127,6.039,1128,4.397,1129,4.248,1130,3.884,1131,3.884,1132,2.925,1133,2.925,1134,3.093,1135,3.546,1136,4.397,1137,2.353]],["t/138",[5,1.396,8,0.738,68,2.993,163,1.557,599,2.069,601,3.626,724,1.876,726,2.233,830,3.626,1129,4.223]],["t/140",[16,2.529,110,2.051,147,1.735,163,1.938,429,3.53,599,2.102,726,2.269,850,2.849,1138,4.058,1139,3.859]],["t/142",[5,1.115,8,0.59,16,2.45,110,1.987,147,1.681,163,1.533,599,2.037,724,1.847,726,2.199,1140,4.157,1141,4.157,1142,3.931,1143,3.162]],["t/144",[5,1.197,8,0.763,16,1.96,26,2.081,38,2.081,63,1.96,65,2.529,110,1.589,147,1.345,263,2.017,572,2.14,724,2.238,728,3.395,850,2.963,1107,3.541,1137,2.529,1144,3.145,1145,3.813,1146,2.279]],["t/146",[5,1.065,8,0.71,26,1.852,108,3.267,110,1.898,147,1.606,154,2.276,163,1.847,218,3.138,725,2.215,1147,4.553,1148,3.755,1149,4.553,1150,4.553]],["t/148",[5,1.121,8,0.734,26,1.95,38,1.41,65,2.299,110,1.445,147,1.222,163,1.115,218,2.389,263,1.833,572,1.945,724,1.858,725,2.674,728,3.181,850,2.776,897,3.219,1143,3.647,1146,2.072,1148,2.859,1151,3.955,1152,2.859,1153,3.466,1154,3.466,1155,2.859]],["t/150",[16,2.063,47,2.253,63,2.063,108,2.88,138,3.728,147,1.415,163,1.905,263,2.123,405,3.31,572,2.253,599,1.715,678,3.148,725,2.882,726,1.851,765,3.728,1081,3.728,1143,2.663,1144,3.31,1156,4.013,1157,4.013,1158,3.5]],["t/152",[26,1.253,47,1.729,61,3.305,163,1.811,198,2.416,449,4.099,614,3.081,724,1.998,725,2.739,823,3.081,976,2.541,1129,2.687,1138,2.541,1151,2.541,1152,2.541,1155,2.541,1159,3.819,1160,3.819,1161,4.833,1162,3.819,1163,6.167,1164,4.833,1165,4.79,1166,3.374,1167,3.819,1168,3.819,1169,3.819,1170,3.819,1171,3.819,1172,3.081,1173,3.081]],["t/154",[8,0.392,26,0.811,38,0.811,46,2.183,63,1.631,80,2.947,114,3.173,147,0.703,156,2.604,163,1.45,165,1.851,166,1.993,206,2.183,212,2.767,251,2.183,293,1.563,302,1.851,532,1.851,724,2.279,725,0.97,728,2.623,774,2.183,823,3.953,848,1.644,1092,2.183,1146,1.192,1158,1.738,1161,4.329,1163,5.389,1164,3.475,1165,2.947,1166,3.475,1174,2.471,1175,2.471,1176,2.471,1177,2.471,1178,2.471,1179,2.183,1180,2.471,1181,2.471,1182,2.471,1183,2.471,1184,2.471,1185,2.471,1186,2.471,1187,2.471,1188,5.587,1189,2.471,1190,3.934,1191,3.934,1192,2.471,1193,2.471,1194,4.901,1195,2.471,1196,4.901,1197,3.934,1198,2.471]],["t/156",[4,3.8,5,1.306,8,0.539,20,2.605,38,2.272,41,2.605,107,3.127,111,3.8,312,2.24,411,3.264,572,2.446,657,3.418,741,2.891,1137,2.891,1146,2.605,1199,3.8,1200,3.8]],["t/158",[5,1.396,8,0.738,68,2.993,163,1.557,599,2.069,601,3.626,724,1.876,726,2.233,830,3.626,1130,5.303]],["t/160",[16,2.529,110,2.051,147,1.735,163,1.938,429,3.53,599,2.102,726,2.269,850,2.849,1138,4.058,1139,3.859]],["t/162",[5,1.115,8,0.59,16,2.45,110,1.987,147,1.681,163,1.533,599,2.037,724,1.847,726,2.199,1140,4.157,1141,4.157,1142,3.931,1143,3.162]],["t/164",[5,1.197,8,0.763,16,1.96,26,2.081,38,2.081,63,1.96,65,2.529,110,1.589,147,1.345,263,2.017,572,2.14,724,2.238,728,3.395,850,2.963,1107,3.541,1137,2.529,1144,3.145,1145,3.813,1146,2.279]],["t/166",[5,1.065,8,0.71,26,1.852,108,3.267,110,1.898,147,1.606,154,2.276,163,1.847,218,3.138,725,2.215,1147,4.553,1148,3.755,1149,4.553,1150,4.553]],["t/168",[5,1.121,8,0.734,26,1.95,38,1.41,65,2.299,110,1.445,147,1.222,163,1.115,218,2.389,263,1.833,572,1.945,724,1.858,725,2.674,728,3.181,850,2.776,897,3.219,1143,3.647,1146,2.072,1148,2.859,1151,3.955,1152,2.859,1153,3.466,1154,3.466,1155,2.859]],["t/170",[16,2.063,47,2.253,63,2.063,108,2.88,138,3.728,147,1.415,163,1.905,263,2.123,405,3.31,572,2.253,599,1.715,678,3.148,725,2.882,726,1.851,765,3.728,1081,3.728,1143,2.663,1144,3.31,1156,4.013,1157,4.013,1158,3.5]],["t/172",[26,1.611,63,2.036,163,2.155,165,3.68,724,2.034,725,2.863,791,3.961,976,3.267,1139,3.107,1151,3.267,1152,3.267,1155,3.267,1165,3.68,1172,3.961,1173,3.961,1201,4.338,1202,4.911,1203,4.911]],["t/174",[4,3.8,5,1.306,8,0.539,20,2.605,38,2.272,41,2.605,107,3.127,111,3.8,312,2.24,411,3.264,572,2.446,657,3.418,741,2.891,1137,2.891,1146,2.605,1199,3.8,1200,3.8]],["t/176",[8,0.563,11,2.556,22,2.722,112,4.229,117,4.553,135,4.229,297,4.553,730,4.553,831,4.553,853,4.229,1129,3.971,1179,4.986,1204,5.644,1205,4.986,1206,5.644,1207,5.644]],["t/178",[6,4.031,8,0.572,11,2.594,51,4.622,57,5.062,60,3.812,77,2.957,308,5.062,312,2.376,675,4.031,845,4.293,1129,4.031,1208,5.73,1209,5.73,1210,5.73]],["t/180",[11,1.427,24,1.823,33,1.993,47,2.15,54,4.283,63,1.306,65,1.686,88,2.096,92,3.558,110,1.922,147,1.351,185,2.29,307,2.783,311,3.16,525,2.361,554,2.096,678,1.993,687,2.361,724,0.985,739,2.783,799,2.783,887,2.541,1122,2.361,1124,2.541,1135,3.831,1211,3.151,1212,3.151,1213,3.151,1214,4.195,1215,4.749,1216,3.151,1217,4.749,1218,3.151,1219,4.749,1220,3.151,1221,3.151,1222,4.749,1223,3.151,1224,3.151,1225,3.151,1226,3.151,1227,3.151,1228,3.151,1229,3.151,1230,3.151,1231,3.151,1232,3.151,1233,3.151,1234,3.151,1235,2.783,1236,3.151,1237,3.151,1238,3.151,1239,3.151]],["t/182",[5,1.369,8,0.724,68,2.901,163,1.509,525,4.359,599,2.005,601,3.515,724,1.819,726,2.165,830,3.515,1132,3.871,1133,3.871]],["t/184",[110,2.018,147,1.708,163,1.919,429,3.474,599,2.069,726,2.233,850,2.804,1132,3.994,1133,3.994,1138,3.994,1139,3.798]],["t/186",[5,1.098,8,0.58,110,1.956,147,1.655,163,1.509,599,2.005,724,1.819,726,2.165,1132,3.871,1133,3.871,1140,4.093,1141,4.093,1142,3.871,1143,3.113]],["t/188",[5,1.26,8,0.742,26,1.676,38,1.676,63,2.119,65,2.735,110,1.718,147,1.9,556,3.595,724,2.088,725,2.005,728,2.735,850,2.387,1137,2.735,1144,3.4,1146,2.464,1240,3.829,1241,4.514]],["t/190",[54,5.844,63,2.952,70,2.722,147,1.606,709,4.553,725,2.215,1132,3.755,1133,3.755,1240,4.229,1242,4.986,1243,4.986,1244,4.986,1245,4.986]],["t/192",[45,4.645,47,2.807,184,3.588,832,5.001,848,5.021,976,4.125,1132,4.125,1133,4.125,1246,5.477]],["t/194",[5,1.331,8,0.555,20,2.682,38,2.314,41,2.682,107,3.219,312,2.306,411,3.36,572,2.518,657,3.519,741,2.976,1137,2.976,1146,2.682,1199,3.912,1200,3.912]],["t/197",[5,1.27,8,0.584,26,2.389,34,4.385,63,1.742,66,2.336,115,2.955,147,1.195,178,2.431,179,2.955,261,3.894,286,3.711,293,2.658,306,3.711,316,3.148,325,2.955,389,2.955,525,3.148,572,1.902,629,3.148,1247,4.201,1248,4.201,1249,5.852,1250,3.389,1251,4.201,1252,4.201,1253,4.201,1254,4.201,1255,4.201,1256,4.201]],["t/199",[5,1.139,8,0.688,18,2.925,72,2.656,97,3.294,147,1.251,163,1.141,167,2.925,172,2.545,177,4.487,195,4.248,196,3.884,212,3.093,285,3.294,293,2.782,305,3.884,450,3.884,629,3.294,724,1.888,725,1.725,728,2.353,851,3.546,1250,3.546,1257,4.397,1258,3.884,1259,4.397,1260,4.397]],["t/201",[5,1.032,8,0.381,96,3.374,122,3.374,167,2.541,172,3.166,177,3.862,223,4.413,258,3.374,263,2.334,272,2.862,284,3.374,293,2.416,312,1.584,570,2.541,601,2.307,636,3.374,675,2.687,724,1.71,779,4.099,1125,3.374,1205,3.374,1261,3.819,1262,5.471,1263,5.471,1264,3.819,1265,3.819,1266,3.819,1267,6.392,1268,3.819,1269,3.819,1270,3.819,1271,3.819,1272,3.819,1273,3.819,1274,3.819]],["t/203",[26,1.852,100,3.971,147,1.606,153,3.571,212,3.971,261,4.737,570,3.755,724,1.764,1122,4.229,1250,4.553,1258,4.986,1275,5.644,1276,5.644,1277,5.644,1278,5.644]],["t/205",[5,1.382,8,0.731,68,2.946,83,3.739,89,3.739,163,1.533,599,2.037,601,3.57,724,1.847,726,2.199,830,3.57]],["t/207",[83,3.798,89,3.798,110,2.018,147,1.708,163,1.919,429,3.474,599,2.069,726,2.233,850,2.804,1138,3.994,1139,3.798]],["t/209",[5,1.098,8,0.58,83,3.681,89,3.681,110,1.956,147,1.655,163,1.509,599,2.005,724,1.819,726,2.165,1140,4.093,1141,4.093,1142,3.871,1143,3.113]],["t/211",[5,1.26,8,0.742,26,1.676,38,1.676,63,2.119,65,2.735,110,1.718,147,1.9,556,3.595,724,2.088,725,2.005,728,2.735,850,2.387,1137,2.735,1144,3.4,1146,2.464,1240,3.829,1241,4.514]],["t/213",[54,5.844,63,2.952,70,2.722,83,3.571,89,3.571,147,1.606,709,4.553,725,2.215,1240,4.229,1242,4.986,1243,4.986,1244,4.986,1245,4.986]],["t/215",[45,4.645,47,2.807,83,3.922,89,3.922,184,3.588,832,5.001,848,5.021,976,4.125,1246,5.477]],["t/217",[4,3.8,5,1.306,8,0.539,20,2.605,38,2.272,41,2.605,107,3.127,111,3.8,312,2.24,411,3.264,572,2.446,657,3.418,741,2.891,1137,2.891,1146,2.605,1199,3.8,1200,3.8]],["t/219",[5,1.396,8,0.738,68,2.993,163,1.557,599,2.069,601,3.626,724,1.876,726,2.233,830,3.626,1131,5.303]],["t/221",[16,2.529,110,2.051,147,1.735,163,1.938,429,3.53,599,2.102,726,2.269,850,2.849,1138,4.058,1139,3.859]],["t/223",[5,1.115,8,0.59,16,2.45,110,1.987,147,1.681,163,1.533,599,2.037,724,1.847,726,2.199,1140,4.157,1141,4.157,1142,3.931,1143,3.162]],["t/225",[5,1.187,8,0.76,16,1.936,26,2.064,38,2.064,63,1.936,65,3.366,110,1.569,147,1.328,263,1.992,572,2.114,724,2.224,728,3.366,850,2.938,1107,3.498,1137,2.498,1145,3.765,1146,2.251,1279,3.765]],["t/227",[5,1.065,8,0.71,26,1.852,108,3.267,110,1.898,147,1.606,154,2.276,163,1.847,218,3.138,725,2.215,1147,4.553,1148,3.755,1149,4.553,1150,4.553]],["t/229",[5,1.121,8,0.734,26,1.95,38,1.41,65,2.299,110,1.445,147,1.222,163,1.115,218,2.389,263,1.833,572,1.945,724,1.858,725,2.674,728,3.181,850,2.776,897,3.219,1143,3.647,1146,2.072,1148,2.859,1151,3.955,1152,2.859,1153,3.466,1154,3.466,1155,2.859]],["t/231",[16,2.036,47,2.224,63,2.036,65,2.628,108,2.842,138,3.68,147,1.397,163,1.893,263,2.095,405,3.267,572,2.224,599,1.693,678,3.107,725,2.863,726,1.827,765,3.68,1081,3.68,1143,2.628,1156,3.961,1157,3.961,1158,3.455,1279,3.961]],["t/233",[63,2.24,163,2.091,165,4.048,725,2.999,791,4.357,976,3.594,1139,3.418,1151,3.594,1152,3.594,1155,3.594,1165,4.048,1172,4.357,1173,4.357,1201,4.772]],["t/235",[4,3.8,5,1.306,8,0.539,20,2.605,38,2.272,41,2.605,107,3.127,111,3.8,312,2.24,411,3.264,572,2.446,657,3.418,741,2.891,1137,2.891,1146,2.605,1199,3.8,1200,3.8]],["t/237",[8,0.609,22,2.942,74,3.264,77,3.148,627,4.57,1134,4.291,1280,6.099,1281,4.92,1282,6.099,1283,5.388,1284,5.388]],["t/239",[0,2.724,2,2.419,8,0.363,11,1.646,38,1.193,47,1.646,53,3.212,60,2.419,74,3.327,77,3.209,117,4.259,325,2.558,389,2.558,608,3.212,660,2.724,674,3.212,725,1.426,730,2.932,779,2.724,804,3.212,831,2.932,1134,4.374,1135,2.932,1142,2.419,1158,2.558,1235,4.664,1279,2.932,1281,2.932,1283,5.492,1284,3.212,1285,3.635,1286,3.635,1287,3.635,1288,3.635,1289,3.635,1290,3.635,1291,3.635,1292,5.28,1293,3.635,1294,3.635,1295,3.635,1296,3.212]],["t/241",[74,3.264,92,4.57,110,2.051,980,4.57,1281,4.92,1296,5.388,1297,6.099,1298,6.099,1299,6.099,1300,6.099,1301,6.099]],["t/243",[1,5.431,77,2.997,107,2.405,110,1.397,134,3.671,167,2.765,173,2.765,208,3.671,600,3.671,675,2.923,1110,3.671,1134,5.099,1302,4.155,1303,5.807,1304,4.155,1305,4.155,1306,4.155,1307,4.155,1308,4.155,1309,5.807,1310,5.807,1311,5.807,1312,7.248,1313,4.155,1314,4.155,1315,4.155]],["t/245",[6,3.41,8,0.484,22,2.338,45,4.834,49,3.41,61,2.929,69,4.283,109,3.632,263,2.068,394,4.283,483,4.283,532,3.632,675,3.41,1066,3.91,1101,4.283,1134,3.41,1214,4.283,1316,4.848,1317,6.451,1318,4.848,1319,4.848,1320,4.848,1321,4.848,1322,4.848,1323,4.848]]],"invertedIndex":[["",{"_index":156,"t":{"18":{"position":[[379,1]]},"22":{"position":[[154,1],[174,1],[257,1]]},"24":{"position":[[330,1],[352,1],[406,1],[419,1],[478,1],[524,1]]},"26":{"position":[[348,1],[422,1]]},"28":{"position":[[724,1],[788,1],[801,2],[804,2]]},"34":{"position":[[207,1],[230,1],[314,1],[389,1],[445,1],[535,1],[615,1],[643,1],[699,1],[768,1],[844,1],[898,1],[968,1]]},"62":{"position":[[972,1],[998,1],[1101,1],[1158,1],[1259,1],[1355,1],[2107,1]]},"65":{"position":[[349,1],[374,1]]},"67":{"position":[[39,1],[64,1]]},"69":{"position":[[39,1],[55,1],[99,1],[121,1],[176,1]]},"71":{"position":[[248,1],[276,1]]},"73":{"position":[[39,1],[55,1],[103,1],[129,1],[188,1]]},"75":{"position":[[654,1],[672,1],[835,1],[902,1],[984,1]]},"78":{"position":[[109,1],[129,1],[207,1],[241,1],[294,1]]},"84":{"position":[[384,1],[404,1],[482,1],[516,1],[569,1]]},"91":{"position":[[417,1],[488,1],[716,1],[754,1]]},"107":{"position":[[356,1],[389,1],[424,1],[611,1],[621,1],[652,1],[679,1],[809,1],[868,1],[977,1],[1002,1],[1063,1],[1099,1],[1171,1],[1199,2],[1383,1]]},"116":{"position":[[469,1],[502,1],[537,1],[818,1],[848,1],[867,1],[893,1],[946,1],[1047,1],[1186,1],[1190,1],[1217,1],[1222,1],[1278,1],[1325,2],[1341,1],[1395,1],[1420,1],[1525,1],[1630,1],[1639,1],[1641,2],[1654,1],[1656,2],[1677,1],[1737,1],[1838,1],[1938,1],[2104,1],[2159,2],[2199,2],[2236,1],[2256,1],[2268,1],[2287,1],[2371,1],[2403,1],[2418,1],[2534,1],[2536,2],[2552,1],[2590,2],[2627,2],[2630,3],[2648,1],[2705,2],[2889,1],[2891,2]]},"119":{"position":[[72,1],[211,1],[328,1],[342,1],[403,1],[560,2],[572,3],[584,1]]},"126":{"position":[[87,1]]},"130":{"position":[[30,1]]},"154":{"position":[[312,1],[367,1],[447,1],[579,1],[651,1],[700,1],[806,1]]}}}],["0",{"_index":211,"t":{"24":{"position":[[372,2]]},"26":{"position":[[172,1]]}}}],["0.0",{"_index":230,"t":{"26":{"position":[[183,3]]}}}],["0.95",{"_index":571,"t":{"62":{"position":[[811,5],[1338,4]]}}}],["1",{"_index":275,"t":{"28":{"position":[[807,2]]}}}],["1.0",{"_index":231,"t":{"26":{"position":[[187,3]]}}}],["10",{"_index":80,"t":{"10":{"position":[[180,4]]},"69":{"position":[[69,2]]},"73":{"position":[[69,2]]},"154":{"position":[[576,2],[803,2]]}}}],["100",{"_index":1040,"t":{"116":{"position":[[2270,3]]}}}],["1024",{"_index":869,"t":{"107":{"position":[[613,4]]}}}],["17",{"_index":1016,"t":{"116":{"position":[[1219,2]]}}}],["18.04",{"_index":1166,"t":{"152":{"position":[[167,5]]},"154":{"position":[[7,5],[218,5]]}}}],["1st",{"_index":644,"t":{"69":{"position":[[135,3]]},"73":{"position":[[143,3]]}}}],["255",{"_index":229,"t":{"26":{"position":[[174,3]]}}}],["3",{"_index":1180,"t":{"154":{"position":[[197,1]]}}}],["3)).astype(np.uint8",{"_index":247,"t":{"26":{"position":[[401,20]]}}}],["3.10",{"_index":1176,"t":{"154":{"position":[[105,5]]}}}],["3.6",{"_index":1174,"t":{"154":{"position":[[31,3]]}}}],["3.7",{"_index":726,"t":{"84":{"position":[[53,3]]},"103":{"position":[[28,3]]},"105":{"position":[[23,3]]},"112":{"position":[[28,3]]},"114":{"position":[[23,3]]},"138":{"position":[[99,3]]},"140":{"position":[[68,3]]},"142":{"position":[[25,3]]},"150":{"position":[[124,5]]},"158":{"position":[[99,3]]},"160":{"position":[[68,3]]},"162":{"position":[[25,3]]},"170":{"position":[[124,5]]},"182":{"position":[[115,3]]},"184":{"position":[[75,3]]},"186":{"position":[[25,3]]},"205":{"position":[[106,3]]},"207":{"position":[[74,3]]},"209":{"position":[[25,3]]},"219":{"position":[[101,3]]},"221":{"position":[[68,3]]},"223":{"position":[[25,3]]},"231":{"position":[[130,5]]}}}],["3.7.5",{"_index":1156,"t":{"150":{"position":[[147,7]]},"170":{"position":[[147,7]]},"231":{"position":[[153,7]]}}}],["3.8",{"_index":1181,"t":{"154":{"position":[[234,4]]}}}],["3.9.0",{"_index":1157,"t":{"150":{"position":[[158,9]]},"170":{"position":[[158,9]]},"231":{"position":[[164,9]]}}}],["3000:3000",{"_index":1220,"t":{"180":{"position":[[277,11]]}}}],["3pm",{"_index":1046,"t":{"116":{"position":[[2410,3]]}}}],["400",{"_index":351,"t":{"34":{"position":[[645,3]]}}}],["401",{"_index":356,"t":{"34":{"position":[[701,3]]}}}],["403",{"_index":360,"t":{"34":{"position":[[770,3]]}}}],["404",{"_index":366,"t":{"34":{"position":[[846,3]]}}}],["429",{"_index":370,"t":{"34":{"position":[[900,3]]}}}],["5",{"_index":645,"t":{"69":{"position":[[147,1]]},"73":{"position":[[155,1]]}}}],["500",{"_index":375,"t":{"34":{"position":[[970,3]]}}}],["587",{"_index":1002,"t":{"116":{"position":[[981,4]]}}}],["5pm",{"_index":1017,"t":{"116":{"position":[[1229,3]]}}}],["60",{"_index":574,"t":{"62":{"position":[[855,2],[1289,2]]},"116":{"position":[[1632,2]]}}}],["80",{"_index":1089,"t":{"124":{"position":[[117,3]]}}}],["800",{"_index":246,"t":{"26":{"position":[[396,4]]}}}],["8000:8000",{"_index":1224,"t":{"180":{"position":[[404,11]]}}}],["800x600",{"_index":239,"t":{"26":{"position":[[291,7]]}}}],["9",{"_index":1013,"t":{"116":{"position":[[1188,1]]}}}],["9am",{"_index":1014,"t":{"116":{"position":[[1197,3]]}}}],["_",{"_index":214,"t":{"24":{"position":[[397,2]]}}}],["above",{"_index":652,"t":{"71":{"position":[[176,5]]}}}],["accept",{"_index":181,"t":{"22":{"position":[[24,6]]},"26":{"position":[[24,6]]}}}],["accepts",{"_index":171,"t":{"20":{"position":[[18,7]]}}}],["access",{"_index":2,"t":{"2":{"position":[[14,6]]},"34":{"position":[[90,6],[288,6]]},"84":{"position":[[244,6]]},"89":{"position":[[511,6]]},"112":{"position":[[113,6]]},"239":{"position":[[382,6]]}}}],["accessible",{"_index":481,"t":{"52":{"position":[[309,10]]}}}],["accessing",{"_index":821,"t":{"99":{"position":[[239,9]]}}}],["accidentally",{"_index":777,"t":{"91":{"position":[[216,12]]}}}],["according",{"_index":1098,"t":{"126":{"position":[[51,9]]}}}],["account",{"_index":740,"t":{"87":{"position":[[177,8]]},"89":{"position":[[249,8]]},"95":{"position":[[27,7]]},"99":{"position":[[266,8]]},"112":{"position":[[95,7]]}}}],["account/api",{"_index":793,"t":{"93":{"position":[[98,11]]}}}],["accuracy",{"_index":538,"t":{"62":{"position":[[79,9],[159,8],[1497,8],[1557,9]]}}}],["add",{"_index":668,"t":{"75":{"position":[[401,3]]}}}],["adding",{"_index":1182,"t":{"154":{"position":[[281,6]]}}}],["addition",{"_index":427,"t":{"46":{"position":[[3,8]]}}}],["additionally",{"_index":523,"t":{"58":{"position":[[208,13]]}}}],["address",{"_index":1239,"t":{"180":{"position":[[783,7]]}}}],["addressing",{"_index":964,"t":{"110":{"position":[[1501,10]]}}}],["affordable",{"_index":81,"t":{"10":{"position":[[215,10]]}}}],["again",{"_index":802,"t":{"95":{"position":[[290,6]]},"107":{"position":[[1420,5]]}}}],["against",{"_index":537,"t":{"62":{"position":[[71,7],[1506,7]]},"75":{"position":[[58,7]]}}}],["aggregating",{"_index":1024,"t":{"116":{"position":[[1586,11]]}}}],["ago",{"_index":256,"t":{"28":{"position":[[181,3]]}}}],["ahead",{"_index":1178,"t":{"154":{"position":[[156,6]]}}}],["ai",{"_index":73,"t":{"10":{"position":[[106,2],[226,2]]},"82":{"position":[[69,2]]}}}],["algorithm",{"_index":1273,"t":{"201":{"position":[[315,11]]}}}],["allocation",{"_index":928,"t":{"110":{"position":[[534,10],[651,10]]}}}],["allow",{"_index":1291,"t":{"239":{"position":[[363,5]]}}}],["allowed",{"_index":362,"t":{"34":{"position":[[804,7]]}}}],["allowing",{"_index":527,"t":{"58":{"position":[[327,8]]}}}],["allows",{"_index":71,"t":{"10":{"position":[[76,6]]}}}],["along",{"_index":720,"t":{"82":{"position":[[94,5]]},"97":{"position":[[67,5]]}}}],["already",{"_index":629,"t":{"65":{"position":[[114,7]]},"75":{"position":[[451,7]]},"197":{"position":[[175,7]]},"199":{"position":[[342,7]]}}}],["alternatively",{"_index":784,"t":{"91":{"position":[[526,14]]}}}],["alternatives",{"_index":1191,"t":{"154":{"position":[[509,12],[745,12]]}}}],["ambiguous",{"_index":1069,"t":{"119":{"position":[[144,9]]},"128":{"position":[[26,10]]}}}],["analysis",{"_index":32,"t":{"4":{"position":[[274,9]]},"62":{"position":[[299,8],[1961,9]]},"80":{"position":[[275,8]]},"107":{"position":[[1553,9]]},"116":{"position":[[3024,9]]}}}],["analytics",{"_index":906,"t":{"110":{"position":[[69,9],[471,9],[1706,9]]}}}],["analyzed",{"_index":699,"t":{"80":{"position":[[22,8]]}}}],["analyzing",{"_index":56,"t":{"8":{"position":[[122,9]]},"110":{"position":[[564,9]]}}}],["another",{"_index":674,"t":{"75":{"position":[[561,7]]},"239":{"position":[[522,7]]}}}],["answer",{"_index":541,"t":{"62":{"position":[[120,6],[1425,6]]},"78":{"position":[[355,6]]},"80":{"position":[[166,7]]},"84":{"position":[[630,6]]},"107":{"position":[[1164,6],[1192,6]]},"116":{"position":[[2097,6]]},"119":{"position":[[84,6],[464,6]]}}}],["answered",{"_index":1084,"t":{"122":{"position":[[35,8]]}}}],["anybody",{"_index":755,"t":{"89":{"position":[[168,7]]}}}],["api",{"_index":312,"t":{"32":{"position":[[92,3]]},"34":{"position":[[36,3],[946,3]]},"84":{"position":[[162,3],[255,4]]},"87":{"position":[[30,4],[78,4],[186,3]]},"89":{"position":[[17,3],[145,3],[186,3],[300,3],[318,3],[414,3],[521,3],[540,3]]},"91":{"position":[[49,3],[137,3],[315,3],[429,3],[558,3]]},"93":{"position":[[20,3]]},"95":{"position":[[55,3],[94,3],[339,3]]},"97":{"position":[[7,3]]},"99":{"position":[[155,3]]},"107":{"position":[[56,3],[1545,3]]},"116":{"position":[[56,3],[3016,3]]},"156":{"position":[[122,3]]},"174":{"position":[[122,3]]},"178":{"position":[[87,3]]},"194":{"position":[[122,3]]},"201":{"position":[[335,3]]},"217":{"position":[[122,3]]},"235":{"position":[[122,3]]}}}],["api_2gdxmflhj",{"_index":742,"t":{"87":{"position":[[207,16]]}}}],["apiexception",{"_index":321,"t":{"34":{"position":[[68,13],[178,13],[370,12]]},"38":{"position":[[73,13]]}}}],["app",{"_index":731,"t":{"84":{"position":[[145,3]]}}}],["application",{"_index":70,"t":{"10":{"position":[[64,11]]},"12":{"position":[[78,11],[160,11]]},"40":{"position":[[52,11],[185,12]]},"42":{"position":[[194,12]]},"44":{"position":[[155,11]]},"46":{"position":[[78,11]]},"48":{"position":[[124,11]]},"89":{"position":[[462,12]]},"101":{"position":[[163,12],[217,11]]},"107":{"position":[[33,11],[111,12],[956,11],[1446,11]]},"110":{"position":[[30,11],[172,11],[481,11],[804,11],[1915,12]]},"116":{"position":[[33,11],[111,12],[1374,11],[2917,11]]},"190":{"position":[[150,11]]},"213":{"position":[[149,11]]}}}],["applications",{"_index":20,"t":{"4":{"position":[[118,12],[191,12],[333,12]]},"6":{"position":[[73,13]]},"14":{"position":[[111,13]]},"16":{"position":[[56,12],[220,13],[533,13],[602,12]]},"32":{"position":[[14,12]]},"48":{"position":[[251,12]]},"50":{"position":[[91,12]]},"99":{"position":[[212,12],[298,12]]},"136":{"position":[[308,12]]},"156":{"position":[[146,12]]},"174":{"position":[[146,12]]},"194":{"position":[[147,12]]},"217":{"position":[[146,12]]},"235":{"position":[[146,12]]}}}],["apply",{"_index":101,"t":{"14":{"position":[[27,5]]}}}],["appropriate",{"_index":403,"t":{"42":{"position":[[20,11]]}}}],["apt",{"_index":1164,"t":{"152":{"position":[[119,3],[135,3]]},"154":{"position":[[352,3],[393,3]]}}}],["arch",{"_index":1169,"t":{"152":{"position":[[245,4]]}}}],["arduino",{"_index":1317,"t":{"245":{"position":[[33,7],[223,8]]}}}],["area",{"_index":975,"t":{"110":{"position":[[1830,5]]}}}],["areas",{"_index":960,"t":{"110":{"position":[[1395,5],[1539,6]]}}}],["argument",{"_index":783,"t":{"91":{"position":[[516,9]]}}}],["arm",{"_index":1240,"t":{"188":{"position":[[114,3]]},"190":{"position":[[121,3]]},"211":{"position":[[114,3]]},"213":{"position":[[120,3]]}}}],["arms",{"_index":517,"t":{"58":{"position":[[93,5]]}}}],["array",{"_index":271,"t":{"28":{"position":[[642,6]]}}}],["arrays",{"_index":180,"t":{"20":{"position":[[91,7]]},"24":{"position":[[125,7]]},"26":{"position":[[47,7]]},"28":{"position":[[95,6],[388,6]]}}}],["ask",{"_index":1064,"t":{"119":{"position":[[38,3],[137,3]]},"128":{"position":[[126,3]]}}}],["ask.py",{"_index":735,"t":{"84":{"position":[[338,6],[678,6]]}}}],["aspects",{"_index":106,"t":{"16":{"position":[[36,7]]}}}],["assembly",{"_index":494,"t":{"54":{"position":[[251,9]]}}}],["assigned",{"_index":805,"t":{"97":{"position":[[142,8]]}}}],["assist",{"_index":461,"t":{"52":{"position":[[45,6]]}}}],["assistance",{"_index":1319,"t":{"245":{"position":[[159,10]]}}}],["assuming",{"_index":1140,"t":{"142":{"position":[[0,8]]},"162":{"position":[[0,8]]},"186":{"position":[[0,8]]},"209":{"position":[[0,8]]},"223":{"position":[[0,8]]}}}],["attention",{"_index":843,"t":{"101":{"position":[[387,9]]}}}],["audit",{"_index":671,"t":{"75":{"position":[[511,5]]}}}],["authenticate",{"_index":737,"t":{"87":{"position":[[97,12]]}}}],["authorize",{"_index":738,"t":{"87":{"position":[[133,9]]}}}],["automatically",{"_index":556,"t":{"62":{"position":[[460,13]]},"80":{"position":[[73,13]]},"91":{"position":[[288,13]]},"188":{"position":[[142,13]]},"211":{"position":[[142,13]]}}}],["automating",{"_index":462,"t":{"52":{"position":[[55,10]]}}}],["automation",{"_index":448,"t":{"50":{"position":[[148,10]]},"54":{"position":[[60,10]]}}}],["available",{"_index":6,"t":{"2":{"position":[[66,9]]},"18":{"position":[[604,10]]},"110":{"position":[[713,9]]},"178":{"position":[[95,10]]},"245":{"position":[[84,9]]}}}],["avoid",{"_index":386,"t":{"38":{"position":[[87,5]]},"91":{"position":[[210,5]]}}}],["away",{"_index":708,"t":{"80":{"position":[[392,4]]},"116":{"position":[[1538,4]]}}}],["back",{"_index":437,"t":{"46":{"position":[[192,4]]},"80":{"position":[[617,4]]}}}],["backend",{"_index":1222,"t":{"180":{"position":[[303,7],[311,8]]}}}],["backend:latest",{"_index":1223,"t":{"180":{"position":[[380,14]]}}}],["backoff",{"_index":420,"t":{"44":{"position":[[65,7]]}}}],["bad",{"_index":352,"t":{"34":{"position":[[649,3]]},"119":{"position":[[580,3]]}}}],["balance",{"_index":289,"t":{"28":{"position":[[1031,7]]},"62":{"position":[[1489,7]]}}}],["bandwidth",{"_index":143,"t":{"18":{"position":[[75,10]]}}}],["based",{"_index":61,"t":{"8":{"position":[[159,5]]},"12":{"position":[[132,5]]},"14":{"position":[[57,5]]},"50":{"position":[[24,5]]},"110":{"position":[[1909,5]]},"122":{"position":[[86,5]]},"152":{"position":[[99,5],[201,5]]},"245":{"position":[[41,5]]}}}],["basics",{"_index":1186,"t":{"154":{"position":[[381,6]]}}}],["become",{"_index":480,"t":{"52":{"position":[[297,6]]}}}],["before",{"_index":265,"t":{"28":{"position":[[476,6],[684,6]]},"62":{"position":[[708,6]]},"99":{"position":[[328,6]]},"107":{"position":[[1404,6]]}}}],["behavior",{"_index":438,"t":{"46":{"position":[[210,9]]},"110":{"position":[[853,9]]}}}],["being",{"_index":916,"t":{"110":{"position":[[240,5]]}}}],["below",{"_index":614,"t":{"62":{"position":[[1890,5]]},"136":{"position":[[35,5]]},"152":{"position":[[182,7]]}}}],["belt",{"_index":1072,"t":{"119":{"position":[[255,4],[321,6]]}}}],["beneficial",{"_index":926,"t":{"110":{"position":[[500,10]]}}}],["best",{"_index":380,"t":{"36":{"position":[[52,4]]},"48":{"position":[[199,4]]},"62":{"position":[[231,4]]},"89":{"position":[[111,4],[272,4]]},"91":{"position":[[101,4]]}}}],["beta",{"_index":691,"t":{"78":{"position":[[418,6]]}}}],["better",{"_index":543,"t":{"62":{"position":[[152,6],[529,6]]},"75":{"position":[[285,6]]}}}],["between",{"_index":399,"t":{"40":{"position":[[113,7]]},"58":{"position":[[181,7]]}}}],["bgr",{"_index":199,"t":{"24":{"position":[[158,3]]},"26":{"position":[[100,3],[463,3]]},"28":{"position":[[30,3],[133,3],[212,3],[770,3]]}}}],["bgr_img",{"_index":273,"t":{"28":{"position":[[780,7]]}}}],["binary",{"_index":1065,"t":{"119":{"position":[[42,6]]},"122":{"position":[[17,6]]},"130":{"position":[[14,6]]},"132":{"position":[[23,7]]}}}],["black",{"_index":1088,"t":{"124":{"position":[[91,5]]}}}],["blocked",{"_index":331,"t":{"34":{"position":[[300,10]]}}}],["blue",{"_index":280,"t":{"28":{"position":[[865,4]]}}}],["board",{"_index":1283,"t":{"237":{"position":[[84,6]]},"239":{"position":[[108,6],[229,5],[341,6]]}}}],["boards",{"_index":1303,"t":{"243":{"position":[[26,7],[51,6]]}}}],["body",{"_index":993,"t":{"116":{"position":[[807,6]]}}}],["body=daily_summary",{"_index":1058,"t":{"116":{"position":[[2859,19]]}}}],["bottlenecks",{"_index":486,"t":{"54":{"position":[[97,12]]}}}],["boxes",{"_index":1073,"t":{"119":{"position":[[260,7],[299,5]]}}}],["breaking",{"_index":697,"t":{"78":{"position":[[521,8]]}}}],["brew",{"_index":1203,"t":{"172":{"position":[[117,4]]}}}],["broad",{"_index":388,"t":{"38":{"position":[[102,5]]}}}],["browser",{"_index":1235,"t":{"180":{"position":[[711,8]]},"239":{"position":[[374,7],[530,7]]}}}],["build",{"_index":18,"t":{"4":{"position":[[105,5]]},"10":{"position":[[90,5]]},"32":{"position":[[150,5]]},"36":{"position":[[92,5]]},"78":{"position":[[0,5]]},"199":{"position":[[223,5]]}}}],["building",{"_index":107,"t":{"16":{"position":[[47,8],[577,8]]},"32":{"position":[[5,8]]},"136":{"position":[[292,8]]},"156":{"position":[[137,8]]},"174":{"position":[[137,8]]},"194":{"position":[[137,9]]},"217":{"position":[[137,8]]},"235":{"position":[[137,8]]},"243":{"position":[[95,8]]}}}],["built",{"_index":37,"t":{"4":{"position":[[346,5]]}}}],["bunch",{"_index":1257,"t":{"199":{"position":[[25,5]]}}}],["busier",{"_index":936,"t":{"110":{"position":[[871,6]]}}}],["business",{"_index":98,"t":{"12":{"position":[[272,8]]}}}],["business's",{"_index":1010,"t":{"116":{"position":[[1136,10]]}}}],["button",{"_index":795,"t":{"95":{"position":[[105,7]]},"99":{"position":[[68,6]]}}}],["c",{"_index":1149,"t":{"146":{"position":[[125,1]]},"166":{"position":[[125,1]]},"227":{"position":[[125,1]]}}}],["cable",{"_index":1288,"t":{"239":{"position":[[265,6]]}}}],["call",{"_index":319,"t":{"34":{"position":[[40,5]]},"71":{"position":[[203,5]]},"87":{"position":[[70,4]]}}}],["called",{"_index":1212,"t":{"180":{"position":[[91,6]]}}}],["calls",{"_index":313,"t":{"32":{"position":[[96,6]]}}}],["cam",{"_index":208,"t":{"24":{"position":[[326,3]]},"243":{"position":[[272,3]]}}}],["cam.read",{"_index":216,"t":{"24":{"position":[[408,10]]}}}],["cam.release",{"_index":220,"t":{"24":{"position":[[510,13]]}}}],["camera",{"_index":77,"t":{"10":{"position":[[151,7]]},"24":{"position":[[365,6],[538,6]]},"103":{"position":[[79,6]]},"107":{"position":[[310,6]]},"110":{"position":[[1768,6],[1840,6]]},"112":{"position":[[79,6]]},"116":{"position":[[423,6]]},"136":{"position":[[192,6]]},"178":{"position":[[52,6]]},"237":{"position":[[77,6]]},"239":{"position":[[101,6],[222,6],[334,6]]},"243":{"position":[[192,6],[241,6]]}}}],["cameras",{"_index":62,"t":{"8":{"position":[[165,8]]},"28":{"position":[[242,7]]},"30":{"position":[[185,7],[314,7],[325,7]]}}}],["campaigns",{"_index":943,"t":{"110":{"position":[[1001,9]]}}}],["cap",{"_index":859,"t":{"107":{"position":[[352,3]]},"116":{"position":[[465,3]]}}}],["cap.read",{"_index":861,"t":{"107":{"position":[[391,10]]},"116":{"position":[[504,10]]}}}],["cap.release",{"_index":862,"t":{"107":{"position":[[402,13]]},"116":{"position":[[515,13]]}}}],["capabilities",{"_index":137,"t":{"16":{"position":[[672,13]]},"58":{"position":[[142,12]]}}}],["capture",{"_index":217,"t":{"24":{"position":[[421,7]]},"107":{"position":[[284,7],[1367,7]]},"116":{"position":[[397,7],[1887,7]]}}}],["capture_image",{"_index":858,"t":{"107":{"position":[[335,16],[1065,15],[1486,13]]},"116":{"position":[[448,16],[1840,15],[2957,13]]}}}],["captures",{"_index":899,"t":{"107":{"position":[[1458,8]]},"116":{"position":[[2929,8]]}}}],["cardboard",{"_index":1075,"t":{"119":{"position":[[289,9]]}}}],["cases",{"_index":27,"t":{"4":{"position":[[220,6]]}}}],["catch",{"_index":382,"t":{"38":{"position":[[0,5]]},"48":{"position":[[84,5]]}}}],["catching",{"_index":387,"t":{"38":{"position":[[93,8]]}}}],["cause",{"_index":1276,"t":{"203":{"position":[[123,5]]}}}],["cautious",{"_index":786,"t":{"91":{"position":[[621,8]]}}}],["centers",{"_index":472,"t":{"52":{"position":[[154,8]]}}}],["change",{"_index":267,"t":{"28":{"position":[[528,6]]},"78":{"position":[[458,6]]}}}],["changes",{"_index":698,"t":{"78":{"position":[[530,8]]}}}],["changing",{"_index":1305,"t":{"243":{"position":[[133,8]]}}}],["channel",{"_index":248,"t":{"26":{"position":[[430,7]]},"28":{"position":[[462,7],[670,7],[753,7]]}}}],["channels=wf.getnchannels",{"_index":876,"t":{"107":{"position":[[739,27]]}}}],["check",{"_index":108,"t":{"16":{"position":[[87,5]]},"71":{"position":[[29,5]]},"89":{"position":[[50,5]]},"146":{"position":[[3,5]]},"150":{"position":[[3,5]]},"166":{"position":[[3,5]]},"170":{"position":[[3,5]]},"227":{"position":[[3,5]]},"231":{"position":[[3,5]]}}}],["checker",{"_index":329,"t":{"34":{"position":[[265,9]]}}}],["checking",{"_index":897,"t":{"107":{"position":[[1411,8]]},"148":{"position":[[259,9]]},"168":{"position":[[259,9]]},"229":{"position":[[259,9]]}}}],["checks",{"_index":919,"t":{"110":{"position":[[273,6]]}}}],["choose",{"_index":1126,"t":{"136":{"position":[[0,6]]}}}],["chrome",{"_index":1295,"t":{"239":{"position":[[512,6]]}}}],["chunk",{"_index":868,"t":{"107":{"position":[[605,5]]}}}],["classes",{"_index":397,"t":{"40":{"position":[[35,7]]}}}],["cleanliness",{"_index":1114,"t":{"132":{"position":[[31,13]]}}}],["clear",{"_index":188,"t":{"22":{"position":[[213,7],[240,8]]},"110":{"position":[[1812,5]]},"130":{"position":[[96,5]]}}}],["click",{"_index":0,"t":{"2":{"position":[[0,5]]},"95":{"position":[[72,5],[189,5]]},"99":{"position":[[49,5]]},"239":{"position":[[272,5]]}}}],["clicks",{"_index":1286,"t":{"239":{"position":[[158,7]]}}}],["cloud",{"_index":649,"t":{"71":{"position":[[88,5]]}}}],["clouds",{"_index":1108,"t":{"128":{"position":[[147,6]]}}}],["clutter",{"_index":1118,"t":{"132":{"position":[[136,7]]}}}],["cnc",{"_index":469,"t":{"52":{"position":[[132,3]]},"58":{"position":[[269,3]]}}}],["cobot",{"_index":516,"t":{"58":{"position":[[79,5]]}}}],["code",{"_index":22,"t":{"4":{"position":[[144,5]]},"18":{"position":[[326,4]]},"26":{"position":[[273,4]]},"32":{"position":[[163,4]]},"34":{"position":[[571,4],[596,5]]},"36":{"position":[[105,5]]},"62":{"position":[[378,4],[2056,4]]},"75":{"position":[[245,4]]},"87":{"position":[[148,4]]},"89":{"position":[[80,4]]},"91":{"position":[[258,4],[368,4],[649,4]]},"176":{"position":[[145,4]]},"237":{"position":[[35,4]]},"245":{"position":[[11,4]]}}}],["codes",{"_index":350,"t":{"34":{"position":[[636,6]]}}}],["collaboration",{"_index":521,"t":{"58":{"position":[[167,13]]}}}],["color",{"_index":224,"t":{"26":{"position":[[104,5]]},"28":{"position":[[216,5],[1025,5]]}}}],["combines",{"_index":716,"t":{"82":{"position":[[36,8]]}}}],["come",{"_index":715,"t":{"80":{"position":[[612,4]]}}}],["comes",{"_index":1260,"t":{"199":{"position":[[293,5]]}}}],["command",{"_index":65,"t":{"8":{"position":[[210,8]]},"144":{"position":[[60,7]]},"148":{"position":[[88,8]]},"164":{"position":[[60,7]]},"168":{"position":[[88,8]]},"180":{"position":[[601,7]]},"188":{"position":[[60,7]]},"211":{"position":[[60,7]]},"225":{"position":[[60,7],[76,7]]},"229":{"position":[[88,8]]},"231":{"position":[[47,7]]}}}],["commands",{"_index":496,"t":{"54":{"position":[[301,8]]}}}],["commit",{"_index":787,"t":{"91":{"position":[[637,6]]}}}],["committing",{"_index":778,"t":{"91":{"position":[[229,10]]}}}],["common",{"_index":59,"t":{"8":{"position":[[148,6]]},"34":{"position":[[617,6]]}}}],["commonly",{"_index":1275,"t":{"203":{"position":[[6,8]]}}}],["communication",{"_index":529,"t":{"58":{"position":[[349,13]]}}}],["compatibility",{"_index":257,"t":{"28":{"position":[[189,13]]}}}],["compatible",{"_index":1241,"t":{"188":{"position":[[118,10]]},"211":{"position":[[118,10]]}}}],["complete",{"_index":832,"t":{"101":{"position":[[154,8]]},"192":{"position":[[6,8]]},"215":{"position":[[6,8]]}}}],["completing",{"_index":1136,"t":{"136":{"position":[[212,10]]}}}],["complex",{"_index":31,"t":{"4":{"position":[[259,7]]},"52":{"position":[[267,7]]},"62":{"position":[[318,7]]}}}],["compose",{"_index":1232,"t":{"180":{"position":[[643,7]]}}}],["compose.yml",{"_index":1213,"t":{"180":{"position":[[105,11]]}}}],["compress/2174925f24362c479b2.jpg",{"_index":680,"t":{"75":{"position":[[795,33]]}}}],["compression",{"_index":1271,"t":{"201":{"position":[[279,11]]}}}],["computer",{"_index":11,"t":{"4":{"position":[[32,9]]},"14":{"position":[[63,8]]},"16":{"position":[[635,8]]},"50":{"position":[[30,8],[200,8]]},"52":{"position":[[14,8]]},"54":{"position":[[26,8]]},"56":{"position":[[14,8],[196,8]]},"58":{"position":[[14,8]]},"60":{"position":[[55,8]]},"78":{"position":[[16,8]]},"80":{"position":[[343,8]]},"110":{"position":[[1876,8]]},"176":{"position":[[72,9]]},"178":{"position":[[25,8]]},"180":{"position":[[23,9]]},"239":{"position":[[245,8]]}}}],["computer's",{"_index":837,"t":{"101":{"position":[[269,10]]}}}],["computing",{"_index":118,"t":{"16":{"position":[[308,9]]},"82":{"position":[[123,10]]}}}],["confidence",{"_index":562,"t":{"62":{"position":[[564,10],[662,10],[791,10],[1319,10],[1469,10],[1530,10],[1617,10],[1908,10],[2235,10],[2294,10]]},"75":{"position":[[497,10]]},"80":{"position":[[142,11],[641,11]]},"116":{"position":[[1563,10]]}}}],["confidence_threshold=0.8",{"_index":1025,"t":{"116":{"position":[[1598,25]]}}}],["confidence_threshold=0.95",{"_index":587,"t":{"62":{"position":[[1232,26]]}}}],["confident",{"_index":576,"t":{"62":{"position":[[875,9]]}}}],["configuration",{"_index":1204,"t":{"176":{"position":[[86,13]]}}}],["configure",{"_index":114,"t":{"16":{"position":[[163,10]]},"18":{"position":[[175,9]]},"154":{"position":[[449,9],[702,9]]}}}],["configuring",{"_index":150,"t":{"18":{"position":[[237,11]]}}}],["confirm",{"_index":816,"t":{"99":{"position":[[94,7]]}}}],["conflicts",{"_index":1277,"t":{"203":{"position":[[129,9]]}}}],["connected",{"_index":845,"t":{"103":{"position":[[69,9]]},"110":{"position":[[1861,9]]},"112":{"position":[[69,9]]},"178":{"position":[[9,9]]}}}],["connects",{"_index":152,"t":{"18":{"position":[[278,8]]}}}],["consider",{"_index":394,"t":{"40":{"position":[[0,8]]},"245":{"position":[[239,8]]}}}],["considered",{"_index":1102,"t":{"126":{"position":[[114,10]]}}}],["consist",{"_index":743,"t":{"87":{"position":[[228,7]]}}}],["constrained",{"_index":1263,"t":{"201":{"position":[[27,12],[394,11]]}}}],["constructor",{"_index":782,"t":{"91":{"position":[[504,11],[596,12]]}}}],["container",{"_index":55,"t":{"8":{"position":[[108,9]]}}}],["contains",{"_index":342,"t":{"34":{"position":[[456,8],[546,8]]}}}],["content",{"_index":1085,"t":{"122":{"position":[[105,8]]}}}],["content/uploads/2010/11/over_flowing_garbage_can.jpg",{"_index":581,"t":{"62":{"position":[[1041,53]]}}}],["context",{"_index":410,"t":{"42":{"position":[[93,7]]},"130":{"position":[[72,8]]}}}],["continue",{"_index":1034,"t":{"116":{"position":[[1823,8],[1921,8],[2088,8]]}}}],["control",{"_index":460,"t":{"50":{"position":[[344,8]]},"56":{"position":[[252,8]]},"58":{"position":[[367,7]]},"62":{"position":[[38,7]]},"89":{"position":[[219,7]]}}}],["conversion",{"_index":1274,"t":{"201":{"position":[[432,10]]}}}],["convert",{"_index":272,"t":{"28":{"position":[[726,7]]},"107":{"position":[[426,7]]},"116":{"position":[[539,7]]},"201":{"position":[[190,7]]}}}],["convey",{"_index":1096,"t":{"124":{"position":[[372,8]]}}}],["conveyor",{"_index":1076,"t":{"119":{"position":[[312,8]]}}}],["copy",{"_index":799,"t":{"95":{"position":[[211,4],[326,4]]},"180":{"position":[[144,4]]}}}],["corresponding",{"_index":1128,"t":{"136":{"position":[[76,13]]}}}],["cost",{"_index":78,"t":{"10":{"position":[[166,4]]},"18":{"position":[[61,5]]}}}],["costs",{"_index":605,"t":{"62":{"position":[[1677,6]]}}}],["couch",{"_index":828,"t":{"101":{"position":[[99,6],[206,6],[325,6]]},"103":{"position":[[140,5]]},"107":{"position":[[1028,5],[1236,8],[1593,6]]}}}],["counter",{"_index":910,"t":{"110":{"position":[[127,7],[392,7],[608,8],[1151,7],[1370,7],[1477,7],[1792,8],[1989,7]]},"116":{"position":[[1514,10],[2481,7],[2839,7],[3067,8]]}}}],["counter's",{"_index":1061,"t":{"116":{"position":[[3134,9]]}}}],["couple",{"_index":771,"t":{"91":{"position":[[12,6]]}}}],["covers",{"_index":314,"t":{"32":{"position":[[113,6]]}}}],["create",{"_index":24,"t":{"4":{"position":[[184,6]]},"10":{"position":[[193,6]]},"16":{"position":[[155,7]]},"26":{"position":[[281,6]]},"48":{"position":[[223,6]]},"65":{"position":[[153,6]]},"84":{"position":[[152,6],[314,6]]},"95":{"position":[[82,7],[195,7]]},"180":{"position":[[73,6]]}}}],["create_detector(name",{"_index":637,"t":{"65":{"position":[[264,21]]}}}],["created",{"_index":630,"t":{"65":{"position":[[122,7]]}}}],["creates",{"_index":914,"t":{"110":{"position":[[184,7]]}}}],["creating",{"_index":395,"t":{"40":{"position":[[9,8]]},"65":{"position":[[219,8]]},"97":{"position":[[156,8]]},"101":{"position":[[143,8]]}}}],["creation",{"_index":260,"t":{"28":{"position":[[299,10]]}}}],["crowded",{"_index":966,"t":{"110":{"position":[[1531,7]]}}}],["curl",{"_index":1190,"t":{"154":{"position":[[442,4],[609,4]]}}}],["current",{"_index":804,"t":{"97":{"position":[[51,7]]},"239":{"position":[[493,7]]}}}],["current_hour",{"_index":1019,"t":{"116":{"position":[[1265,12],[1328,12],[2539,12],[2577,12]]}}}],["current_time",{"_index":1041,"t":{"116":{"position":[[2274,12]]}}}],["current_time.strftime(\"%i%p",{"_index":1045,"t":{"116":{"position":[[2373,29]]}}}],["currently",{"_index":690,"t":{"78":{"position":[[405,9]]}}}],["custom",{"_index":396,"t":{"40":{"position":[[18,6]]}}}],["customer",{"_index":918,"t":{"110":{"position":[[260,9],[844,8],[1047,8],[1415,8],[1568,8],[1614,8],[2103,8]]},"116":{"position":[[1490,8],[3039,8]]}}}],["customers",{"_index":911,"t":{"110":{"position":[[138,9],[769,10],[1125,9],[1339,9]]}}}],["customize",{"_index":990,"t":{"116":{"position":[[709,9]]}}}],["cutting",{"_index":451,"t":{"50":{"position":[[187,7]]}}}],["cv2",{"_index":207,"t":{"24":{"position":[[322,3]]},"107":{"position":[[174,3]]},"116":{"position":[[174,3]]}}}],["cv2.color_bgr2rgb",{"_index":865,"t":{"107":{"position":[[490,19]]},"116":{"position":[[603,19]]}}}],["cv2.videocapture(0",{"_index":209,"t":{"24":{"position":[[332,19]]},"107":{"position":[[358,19]]},"116":{"position":[[471,19]]}}}],["d",{"_index":326,"t":{"34":{"position":[[228,1]]},"62":{"position":[[1156,1]]},"75":{"position":[[670,1]]}}}],["daily",{"_index":925,"t":{"110":{"position":[[448,5],[2009,5]]},"112":{"position":[[132,5]]},"116":{"position":[[671,5],[2650,6],[3203,5]]}}}],["daily_log",{"_index":1027,"t":{"116":{"position":[[1644,9],[2617,9],[2680,10],[2879,9]]}}}],["daily_log.append(msg",{"_index":1050,"t":{"116":{"position":[[2508,21]]}}}],["daily_summary",{"_index":1051,"t":{"116":{"position":[[2634,13],[2691,13]]}}}],["data",{"_index":234,"t":{"26":{"position":[[212,4]]},"62":{"position":[[2016,4]]},"80":{"position":[[103,5]]},"107":{"position":[[804,4],[838,5],[863,4]]},"110":{"position":[[1269,4]]}}}],["dataset",{"_index":662,"t":{"75":{"position":[[160,8]]},"80":{"position":[[446,8]]}}}],["date",{"_index":813,"t":{"97":{"position":[[250,4]]}}}],["datetime",{"_index":984,"t":{"116":{"position":[[256,8],[272,9]]}}}],["datetime.now",{"_index":1036,"t":{"116":{"position":[[2144,14]]}}}],["datetime.now().hour",{"_index":1020,"t":{"116":{"position":[[1280,19],[2554,19]]}}}],["datetime.now().replace(hour=start_of_business",{"_index":1042,"t":{"116":{"position":[[2289,46]]}}}],["datetime.now().replace(minute=0",{"_index":1029,"t":{"116":{"position":[[1679,32]]}}}],["day",{"_index":913,"t":{"110":{"position":[[163,4],[429,4],[891,3]]},"116":{"position":[[3184,4]]}}}],["days",{"_index":937,"t":{"110":{"position":[[907,4]]}}}],["debian",{"_index":1162,"t":{"152":{"position":[[92,6]]}}}],["debug",{"_index":412,"t":{"42":{"position":[[133,5]]}}}],["debugging",{"_index":339,"t":{"34":{"position":[[413,9]]},"38":{"position":[[150,9]]}}}],["decades",{"_index":255,"t":{"28":{"position":[[173,7]]}}}],["decisions",{"_index":956,"t":{"110":{"position":[[1281,9],[2061,9]]}}}],["def",{"_index":857,"t":{"107":{"position":[[331,3],[578,3]]},"116":{"position":[[444,3],[765,3],[1233,3]]}}}],["default",{"_index":212,"t":{"24":{"position":[[382,7]]},"46":{"position":[[202,7]]},"154":{"position":[[38,8],[489,7]]},"199":{"position":[[199,7]]},"203":{"position":[[51,8]]}}}],["defaults",{"_index":640,"t":{"69":{"position":[[57,8]]},"73":{"position":[[57,8]]}}}],["defects",{"_index":505,"t":{"56":{"position":[[153,7]]}}}],["define",{"_index":855,"t":{"107":{"position":[[263,6],[528,6]]},"116":{"position":[[376,6],[641,6],[1119,6]]}}}],["definitions",{"_index":1308,"t":{"243":{"position":[[153,12]]}}}],["degrade",{"_index":1254,"t":{"197":{"position":[[336,8]]}}}],["delay",{"_index":1026,"t":{"116":{"position":[[1624,5]]}}}],["delayed",{"_index":553,"t":{"62":{"position":[[408,7]]}}}],["delete",{"_index":815,"t":{"99":{"position":[[59,8]]}}}],["demonstrates",{"_index":86,"t":{"12":{"position":[[90,12]]},"110":{"position":[[13,12]]}}}],["dependent",{"_index":1278,"t":{"203":{"position":[[150,9]]}}}],["depends_on",{"_index":1221,"t":{"180":{"position":[[289,11]]}}}],["deploy",{"_index":117,"t":{"16":{"position":[[281,6]]},"176":{"position":[[27,6]]},"239":{"position":[[56,6],[123,6]]}}}],["deployed",{"_index":1298,"t":{"241":{"position":[[62,8]]}}}],["deployment",{"_index":1282,"t":{"237":{"position":[[40,10]]}}}],["depth",{"_index":105,"t":{"16":{"position":[[12,5]]}}}],["described",{"_index":1172,"t":{"152":{"position":[[375,9]]},"172":{"position":[[233,9]]},"233":{"position":[[178,9]]}}}],["description",{"_index":344,"t":{"34":{"position":[[475,11]]}}}],["descriptive",{"_index":797,"t":{"95":{"position":[[134,11]]},"97":{"position":[[121,11]]}}}],["designed",{"_index":1285,"t":{"239":{"position":[[13,8]]}}}],["desired",{"_index":561,"t":{"62":{"position":[[556,7],[783,7],[1900,7]]}}}],["desk",{"_index":915,"t":{"110":{"position":[[232,4]]}}}],["despite",{"_index":432,"t":{"46":{"position":[[109,7]]}}}],["det",{"_index":186,"t":{"22":{"position":[[170,3]]},"78":{"position":[[125,3]]},"84":{"position":[[400,3]]}}}],["detailed",{"_index":3,"t":{"2":{"position":[[23,8]]},"4":{"position":[[396,8]]}}}],["detect",{"_index":292,"t":{"28":{"position":[[1119,6]]}}}],["detected",{"_index":833,"t":{"101":{"position":[[190,8]]},"107":{"position":[[1220,8],[1577,8]]},"116":{"position":[[3051,8]]}}}],["detection",{"_index":30,"t":{"4":{"position":[[246,9]]}}}],["detector",{"_index":74,"t":{"10":{"position":[[116,8]]},"62":{"position":[[624,9]]},"65":{"position":[[98,8],[234,8],[365,8]]},"67":{"position":[[55,8]]},"107":{"position":[[993,8],[1034,10]]},"110":{"position":[[194,8],[284,8]]},"116":{"position":[[1411,8]]},"119":{"position":[[202,8]]},"237":{"position":[[56,8]]},"239":{"position":[[80,8],[135,8],[311,8]]},"241":{"position":[[71,9]]}}}],["detector=detector",{"_index":889,"t":{"107":{"position":[[1136,18]]},"116":{"position":[[1975,18]]}}}],["detectors",{"_index":112,"t":{"16":{"position":[[131,10],[182,9]]},"69":{"position":[[89,9],[166,9]]},"119":{"position":[[19,10]]},"176":{"position":[[51,9]]}}}],["detects",{"_index":1251,"t":{"197":{"position":[[224,7]]}}}],["determines",{"_index":566,"t":{"62":{"position":[[639,10]]}}}],["dev/bus/usb:/dev/bus/usb",{"_index":1231,"t":{"180":{"position":[[557,25]]}}}],["dev/video0:/dev/video0",{"_index":1225,"t":{"180":{"position":[[427,23]]}}}],["dev/video1:/dev/video1",{"_index":1226,"t":{"180":{"position":[[453,23]]}}}],["dev/video2:/dev/video2",{"_index":1227,"t":{"180":{"position":[[479,23]]}}}],["dev/video3:/dev/video3",{"_index":1228,"t":{"180":{"position":[[505,23]]}}}],["developed",{"_index":254,"t":{"28":{"position":[[163,9]]}}}],["development",{"_index":1207,"t":{"176":{"position":[[150,11]]}}}],["device",{"_index":1135,"t":{"136":{"position":[[199,6]]},"180":{"position":[[745,7],[799,7]]},"239":{"position":[[436,7]]}}}],["devices",{"_index":525,"t":{"58":{"position":[[291,7]]},"180":{"position":[[416,8]]},"182":{"position":[[70,8]]},"197":{"position":[[54,8]]}}}],["difference",{"_index":276,"t":{"28":{"position":[[814,10],[1080,10]]}}}],["different",{"_index":298,"t":{"30":{"position":[[32,9],[265,9]]},"34":{"position":[[97,9]]},"128":{"position":[[37,9],[63,9]]}}}],["differentiate",{"_index":398,"t":{"40":{"position":[[99,13]]}}}],["difficult",{"_index":390,"t":{"38":{"position":[[160,9]]}}}],["directly",{"_index":153,"t":{"18":{"position":[[314,8]]},"22":{"position":[[42,8]]},"24":{"position":[[272,8]]},"75":{"position":[[415,9]]},"89":{"position":[[61,8]]},"91":{"position":[[568,8]]},"203":{"position":[[209,9]]}}}],["directory",{"_index":1215,"t":{"180":{"position":[[133,10],[625,10]]}}}],["discover",{"_index":116,"t":{"16":{"position":[[265,8]]}}}],["display",{"_index":1147,"t":{"146":{"position":[[52,7]]},"166":{"position":[[52,7]]},"227":{"position":[[52,7]]}}}],["displaying",{"_index":433,"t":{"46":{"position":[[144,10]]}}}],["distribution's",{"_index":1159,"t":{"152":{"position":[[9,14]]}}}],["distutils",{"_index":1189,"t":{"154":{"position":[[432,9]]}}}],["dnf",{"_index":1168,"t":{"152":{"position":[[221,3]]}}}],["docker",{"_index":54,"t":{"8":{"position":[[101,6],[203,6],[228,6]]},"180":{"position":[[8,6],[98,6],[636,6]]},"190":{"position":[[12,6],[74,6],[165,6]]},"213":{"position":[[12,6],[73,6],[164,6]]}}}],["docker's",{"_index":1211,"t":{"180":{"position":[[37,8]]}}}],["docker.io/groundlight/monitoring",{"_index":1217,"t":{"180":{"position":[[199,32],[327,32]]}}}],["docs/static/img/doorway.jpg",{"_index":686,"t":{"78":{"position":[[209,31]]},"84":{"position":[[484,31]]}}}],["document",{"_index":829,"t":{"101":{"position":[[111,8]]}}}],["documentation",{"_index":4,"t":{"2":{"position":[[32,13]]},"156":{"position":[[159,13]]},"174":{"position":[[159,13]]},"217":{"position":[[159,13]]},"235":{"position":[[159,13]]}}}],["doesn't",{"_index":633,"t":{"65":{"position":[[176,7]]}}}],["dog",{"_index":827,"t":{"101":{"position":[[87,3],[183,3],[306,3],[378,3]]},"103":{"position":[[152,3]]},"107":{"position":[[1570,3]]}}}],["dog_on_couch_detector.py",{"_index":904,"t":{"107":{"position":[[1682,24],[1726,24]]}}}],["domain.com/wp",{"_index":580,"t":{"62":{"position":[[1027,13]]}}}],["don't",{"_index":779,"t":{"91":{"position":[[339,5]]},"130":{"position":[[47,5]]},"201":{"position":[[474,5],[520,5]]},"239":{"position":[[451,5]]}}}],["done",{"_index":1205,"t":{"176":{"position":[[103,4]]},"201":{"position":[[446,4]]}}}],["door",{"_index":84,"t":{"12":{"position":[[56,4],[138,4],[183,4],[220,4]]}}}],["doorway",{"_index":677,"t":{"75":{"position":[[730,7]]},"78":{"position":[[187,7]]},"84":{"position":[[462,7]]}}}],["download",{"_index":165,"t":{"18":{"position":[[574,8]]},"154":{"position":[[581,8]]},"172":{"position":[[0,8]]},"233":{"position":[[0,8]]}}}],["downloaded",{"_index":146,"t":{"18":{"position":[[112,10]]}}}],["driven",{"_index":955,"t":{"110":{"position":[[1274,6]]}}}],["due",{"_index":363,"t":{"34":{"position":[[812,3]]},"75":{"position":[[483,3]]}}}],["during",{"_index":95,"t":{"12":{"position":[[252,6]]},"32":{"position":[[85,6]]},"34":{"position":[[26,6]]},"110":{"position":[[723,6]]}}}],["e",{"_index":337,"t":{"34":{"position":[[386,2]]},"107":{"position":[[1297,2],[1338,5]]},"116":{"position":[[2023,2],[2064,5]]}}}],["e.g",{"_index":405,"t":{"42":{"position":[[43,6]]},"103":{"position":[[112,6]]},"116":{"position":[[1192,4],[1224,4]]},"150":{"position":[[140,6]]},"170":{"position":[[140,6]]},"231":{"position":[[146,6]]}}}],["e.reason",{"_index":341,"t":{"34":{"position":[[447,8],[522,12]]}}}],["e.status",{"_index":347,"t":{"34":{"position":[[537,8],[602,12]]}}}],["each",{"_index":811,"t":{"97":{"position":[[224,4]]}}}],["earlier",{"_index":1173,"t":{"152":{"position":[[385,8]]},"172":{"position":[[243,8]]},"233":{"position":[[188,8]]}}}],["early",{"_index":303,"t":{"30":{"position":[[115,5]]},"48":{"position":[[97,5]]}}}],["easiest",{"_index":1179,"t":{"154":{"position":[[171,7]]},"176":{"position":[[12,7]]}}}],["easily",{"_index":515,"t":{"58":{"position":[[48,6]]},"62":{"position":[[387,6]]},"95":{"position":[[163,6]]}}}],["easy",{"_index":53,"t":{"8":{"position":[[89,4]]},"239":{"position":[[36,4]]}}}],["edge",{"_index":115,"t":{"16":{"position":[[259,5],[303,4]]},"18":{"position":[[39,4],[154,4],[217,4],[562,5],[659,4]]},"50":{"position":[[195,4]]},"82":{"position":[[118,4]]},"197":{"position":[[49,4]]}}}],["effectively",{"_index":413,"t":{"42":{"position":[[151,11]]}}}],["effectiveness",{"_index":952,"t":{"110":{"position":[[1189,13]]}}}],["efficiency",{"_index":457,"t":{"50":{"position":[[306,11]]}}}],["efficient",{"_index":482,"t":{"52":{"position":[[324,10]]}}}],["email",{"_index":980,"t":{"110":{"position":[[2023,6]]},"112":{"position":[[89,5]]},"116":{"position":[[685,6]]},"241":{"position":[[81,5]]}}}],["email.mime.multipart",{"_index":986,"t":{"116":{"position":[[297,20]]}}}],["email.mime.text",{"_index":988,"t":{"116":{"position":[[344,15]]}}}],["emails",{"_index":924,"t":{"110":{"position":[[437,6]]},"116":{"position":[[3192,6]]}}}],["employees",{"_index":932,"t":{"110":{"position":[[699,9]]}}}],["enables",{"_index":17,"t":{"4":{"position":[[90,7]]}}}],["enabling",{"_index":445,"t":{"50":{"position":[[107,8]]},"52":{"position":[[198,8]]},"110":{"position":[[2030,8]]}}}],["encounter",{"_index":310,"t":{"32":{"position":[[61,9]]}}}],["encourage",{"_index":958,"t":{"110":{"position":[[1329,9]]}}}],["encrypted",{"_index":761,"t":{"89":{"position":[[362,9]]}}}],["end",{"_index":848,"t":{"103":{"position":[[183,3],[190,3]]},"110":{"position":[[418,3]]},"116":{"position":[[3173,3]]},"154":{"position":[[56,3]]},"192":{"position":[[15,3],[22,3]]},"215":{"position":[[15,3],[22,3]]}}}],["end_of_business",{"_index":1015,"t":{"116":{"position":[[1201,15],[1343,15],[2593,15]]}}}],["endpoint",{"_index":151,"t":{"18":{"position":[[253,10]]}}}],["energy",{"_index":144,"t":{"18":{"position":[[90,7]]}}}],["engagement",{"_index":947,"t":{"110":{"position":[[1056,11]]}}}],["engineer",{"_index":169,"t":{"18":{"position":[[640,8]]}}}],["enhance",{"_index":519,"t":{"58":{"position":[[128,7]]}}}],["enhancing",{"_index":456,"t":{"50":{"position":[[296,9]]}}}],["enough",{"_index":702,"t":{"80":{"position":[[135,6]]},"110":{"position":[[692,6]]}}}],["ensure",{"_index":429,"t":{"46":{"position":[[61,6]]},"48":{"position":[[15,6],[107,6]]},"105":{"position":[[0,6]]},"114":{"position":[[0,6]]},"140":{"position":[[0,6]]},"160":{"position":[[0,6]]},"184":{"position":[[0,6]]},"207":{"position":[[0,6]]},"221":{"position":[[0,6]]}}}],["ensuring",{"_index":502,"t":{"56":{"position":[[66,8]]},"110":{"position":[[678,8],[1801,8]]}}}],["environment",{"_index":149,"t":{"18":{"position":[[222,11],[466,11]]},"58":{"position":[[401,12]]},"84":{"position":[[220,11]]},"89":{"position":[[383,11]]},"91":{"position":[[60,11],[155,11],[442,11]]},"116":{"position":[[752,12]]}}}],["environments",{"_index":119,"t":{"16":{"position":[[318,12]]}}}],["equipment",{"_index":475,"t":{"52":{"position":[[184,10]]}}}],["error",{"_index":318,"t":{"34":{"position":[[20,5],[494,5],[990,6],[1000,5]]},"42":{"position":[[50,6]]},"46":{"position":[[158,5]]},"48":{"position":[[32,5]]}}}],["errors",{"_index":126,"t":{"16":{"position":[[391,7],[446,6]]},"32":{"position":[[78,6],[139,6]]},"40":{"position":[[73,7],[121,6]]},"44":{"position":[[87,7]]},"46":{"position":[[117,7]]},"48":{"position":[[147,6],[287,6]]}}}],["escalate",{"_index":548,"t":{"62":{"position":[[256,8]]}}}],["escalated",{"_index":569,"t":{"62":{"position":[[734,10],[1939,9]]},"80":{"position":[[238,9]]}}}],["escalation",{"_index":564,"t":{"62":{"position":[[595,10]]},"75":{"position":[[197,10],[466,10]]},"82":{"position":[[14,10]]}}}],["esp32",{"_index":1134,"t":{"136":{"position":[[186,5]]},"237":{"position":[[71,5]]},"239":{"position":[[95,5],[216,5],[328,5]]},"243":{"position":[[45,5],[174,5],[223,5],[266,5]]},"245":{"position":[[70,6]]}}}],["esp32s3",{"_index":1315,"t":{"243":{"position":[[304,7]]}}}],["etc",{"_index":407,"t":{"42":{"position":[[66,5]]}}}],["evaluations",{"_index":140,"t":{"18":{"position":[[20,11]]}}}],["even",{"_index":709,"t":{"80":{"position":[[405,4]]},"190":{"position":[[60,4]]},"213":{"position":[[59,4]]}}}],["event",{"_index":1060,"t":{"116":{"position":[[3088,6]]}}}],["example",{"_index":184,"t":{"22":{"position":[[84,8]]},"28":{"position":[[966,7]]},"62":{"position":[[749,8]]},"71":{"position":[[71,8],[126,8]]},"101":{"position":[[20,7]]},"110":{"position":[[5,7]]},"124":{"position":[[74,8]]},"192":{"position":[[26,7]]},"215":{"position":[[26,7]]}}}],["examples",{"_index":48,"t":{"6":{"position":[[41,8]]},"119":{"position":[[586,9]]}}}],["exceeded",{"_index":374,"t":{"34":{"position":[[959,8]]}}}],["except",{"_index":336,"t":{"34":{"position":[[363,6]]},"107":{"position":[[1277,6]]},"116":{"position":[[2003,6]]}}}],["exception",{"_index":323,"t":{"34":{"position":[[126,10]]},"38":{"position":[[124,10]]},"40":{"position":[[25,9]]},"107":{"position":[[1284,9]]},"116":{"position":[[2010,9]]}}}],["exceptions",{"_index":317,"t":{"32":{"position":[[195,11]]},"36":{"position":[[77,10]]},"38":{"position":[[24,10],[108,10]]},"42":{"position":[[4,10]]},"44":{"position":[[14,11]]},"46":{"position":[[23,11]]},"48":{"position":[[304,10]]}}}],["execute",{"_index":606,"t":{"62":{"position":[[1702,7]]}}}],["executing",{"_index":613,"t":{"62":{"position":[[1855,10]]}}}],["existing",{"_index":524,"t":{"58":{"position":[[260,8]]},"65":{"position":[[89,8]]},"75":{"position":[[151,8]]}}}],["exists",{"_index":634,"t":{"65":{"position":[[184,7]]}}}],["expect",{"_index":384,"t":{"38":{"position":[[44,6]]}}}],["expected",{"_index":203,"t":{"24":{"position":[[227,8]]},"28":{"position":[[613,9]]},"48":{"position":[[56,9]]}}}],["expects",{"_index":250,"t":{"28":{"position":[[12,7]]}}}],["experience",{"_index":969,"t":{"110":{"position":[[1623,10],[2112,11]]}}}],["explore",{"_index":44,"t":{"6":{"position":[[0,7]]},"110":{"position":[[1381,7]]}}}],["exploring",{"_index":131,"t":{"16":{"position":[[496,9]]}}}],["exponential",{"_index":419,"t":{"44":{"position":[[53,11]]}}}],["export",{"_index":161,"t":{"18":{"position":[[493,6]]},"84":{"position":[[260,6]]}}}],["extra",{"_index":1183,"t":{"154":{"position":[[292,5]]}}}],["extremely",{"_index":1261,"t":{"201":{"position":[[11,9]]}}}],["f\"hourly",{"_index":1047,"t":{"116":{"position":[[2420,8]]}}}],["f\"{msg}\\n",{"_index":1053,"t":{"116":{"position":[[2708,10]]}}}],["factory",{"_index":1119,"t":{"132":{"position":[[151,7]]}}}],["falling",{"_index":436,"t":{"46":{"position":[[184,7]]}}}],["fast",{"_index":607,"t":{"62":{"position":[[1732,4]]}}}],["faster",{"_index":560,"t":{"62":{"position":[[544,7]]},"80":{"position":[[622,6]]}}}],["features",{"_index":306,"t":{"30":{"position":[[159,8]]},"197":{"position":[[395,9]]}}}],["fedora",{"_index":1167,"t":{"152":{"position":[[194,6]]}}}],["few",{"_index":660,"t":{"75":{"position":[[105,3]]},"78":{"position":[[49,3]]},"119":{"position":[[551,3]]},"239":{"position":[[154,3]]}}}],["file",{"_index":687,"t":{"78":{"position":[[258,4]]},"84":{"position":[[533,4]]},"103":{"position":[[107,4]]},"180":{"position":[[86,4]]}}}],["files",{"_index":309,"t":{"30":{"position":[[339,5],[351,5]]}}}],["find",{"_index":627,"t":{"65":{"position":[[81,4]]},"91":{"position":[[39,4]]},"134":{"position":[[73,4]]},"237":{"position":[[99,4]]}}}],["finished",{"_index":612,"t":{"62":{"position":[[1846,8]]}}}],["firmware",{"_index":1304,"t":{"243":{"position":[[108,8]]}}}],["first",{"_index":659,"t":{"75":{"position":[[76,5]]},"80":{"position":[[16,5],[421,5],[458,5]]},"107":{"position":[[0,6]]},"116":{"position":[[0,6]]},"124":{"position":[[307,5]]}}}],["floats",{"_index":232,"t":{"26":{"position":[[194,8]]}}}],["floor",{"_index":1120,"t":{"132":{"position":[[159,7]]}}}],["follow",{"_index":379,"t":{"36":{"position":[[39,6]]},"78":{"position":[[493,6]]},"136":{"position":[[45,6]]}}}],["followed",{"_index":748,"t":{"87":{"position":[[273,8]]}}}],["following",{"_index":110,"t":{"16":{"position":[[101,9]]},"48":{"position":[[183,9]]},"97":{"position":[[82,9]]},"140":{"position":[[25,9]]},"142":{"position":[[90,9]]},"144":{"position":[[50,9]]},"146":{"position":[[89,9]]},"148":{"position":[[74,9]]},"160":{"position":[[25,9]]},"162":{"position":[[90,9]]},"164":{"position":[[50,9]]},"166":{"position":[[89,9]]},"168":{"position":[[74,9]]},"180":{"position":[[153,9],[591,9],[826,9]]},"184":{"position":[[25,9]]},"186":{"position":[[97,9]]},"188":{"position":[[50,9]]},"207":{"position":[[25,9]]},"209":{"position":[[96,9]]},"211":{"position":[[50,9]]},"221":{"position":[[25,9]]},"223":{"position":[[90,9]]},"225":{"position":[[50,9]]},"227":{"position":[[89,9]]},"229":{"position":[[74,9]]},"241":{"position":[[22,9]]},"243":{"position":[[16,9]]}}}],["follows",{"_index":206,"t":{"24":{"position":[[306,8]]},"154":{"position":[[265,7]]}}}],["forbidden",{"_index":361,"t":{"34":{"position":[[774,10]]}}}],["force",{"_index":636,"t":{"65":{"position":[[213,5]]},"201":{"position":[[488,5]]}}}],["format",{"_index":223,"t":{"26":{"position":[[90,6]]},"28":{"position":[[222,6]]},"201":{"position":[[220,6],[369,7]]}}}],["formats",{"_index":175,"t":{"20":{"position":[[49,8]]}}}],["formatted_time",{"_index":1044,"t":{"116":{"position":[[2356,14],[2441,17]]}}}],["found",{"_index":367,"t":{"34":{"position":[[854,6],[892,5]]}}}],["frame",{"_index":215,"t":{"24":{"position":[[400,5],[433,5],[471,6],[489,5]]},"107":{"position":[[383,5]]},"116":{"position":[[496,5]]}}}],["framegrab",{"_index":301,"t":{"30":{"position":[[74,9],[93,9],[218,9]]}}}],["frontend",{"_index":1216,"t":{"180":{"position":[[182,9]]}}}],["frontend:latest",{"_index":1218,"t":{"180":{"position":[[252,15]]}}}],["full",{"_index":586,"t":{"62":{"position":[[1224,7]]},"89":{"position":[[214,4]]},"124":{"position":[[121,6]]}}}],["function",{"_index":856,"t":{"107":{"position":[[272,8],[537,8],[1500,9],[1653,9]]},"116":{"position":[[385,8],[650,8],[2971,9],[3234,9]]}}}],["functional",{"_index":431,"t":{"46":{"position":[[98,10]]}}}],["functionality",{"_index":1265,"t":{"201":{"position":[[144,14]]}}}],["further",{"_index":615,"t":{"62":{"position":[[1953,7]]}}}],["future",{"_index":666,"t":{"75":{"position":[[309,7]]},"78":{"position":[[468,6]]}}}],["gather",{"_index":711,"t":{"80":{"position":[[427,6]]}}}],["generally",{"_index":166,"t":{"18":{"position":[[594,9]]},"62":{"position":[[1576,9]]},"154":{"position":[[72,9]]}}}],["generated",{"_index":621,"t":{"62":{"position":[[2191,9]]},"95":{"position":[[220,9]]}}}],["generative",{"_index":718,"t":{"82":{"position":[[58,10]]}}}],["get_image",{"_index":334,"t":{"34":{"position":[[341,12]]}}}],["get_image_query",{"_index":667,"t":{"75":{"position":[[375,17]]}}}],["get_off_couch.mp3",{"_index":846,"t":{"103":{"position":[[119,18]]}}}],["get_or_create_detector(name",{"_index":624,"t":{"65":{"position":[[25,28]]}}}],["get_token_from_secure_location",{"_index":788,"t":{"91":{"position":[[718,32]]}}}],["gets",{"_index":756,"t":{"89":{"position":[[176,4]]}}}],["github",{"_index":45,"t":{"6":{"position":[[14,6]]},"192":{"position":[[75,6]]},"215":{"position":[[73,6]]},"245":{"position":[[97,6],[272,6]]}}}],["give",{"_index":796,"t":{"95":{"position":[[113,4]]}}}],["gives",{"_index":535,"t":{"62":{"position":[[12,5]]}}}],["gl",{"_index":155,"t":{"18":{"position":[[376,2]]},"22":{"position":[[151,2]]},"34":{"position":[[204,2]]},"62":{"position":[[969,2]]},"65":{"position":[[346,2]]},"67":{"position":[[36,2]]},"69":{"position":[[36,2]]},"71":{"position":[[245,2]]},"73":{"position":[[36,2]]},"75":{"position":[[651,2]]},"78":{"position":[[106,2]]},"84":{"position":[[381,2]]},"91":{"position":[[485,2],[751,2]]},"107":{"position":[[974,2]]},"116":{"position":[[1392,2]]}}}],["gl.add_label(image_query",{"_index":681,"t":{"75":{"position":[[951,25]]}}}],["gl.create_detector(name=\"your_detector_name",{"_index":638,"t":{"65":{"position":[[376,45]]}}}],["gl.get_detector(\"dog",{"_index":886,"t":{"107":{"position":[[1004,20]]}}}],["gl.get_detector(id=\"your_detector_id",{"_index":639,"t":{"67":{"position":[[66,38]]}}}],["gl.get_image_query(id=\"iq_your_image_query_id",{"_index":653,"t":{"71":{"position":[[278,47]]}}}],["gl.get_or_create_detector",{"_index":327,"t":{"34":{"position":[[232,26]]},"116":{"position":[[1422,26]]},"119":{"position":[[213,26]]}}}],["gl.get_or_create_detector(name=\"doorway",{"_index":676,"t":{"75":{"position":[[674,41]]},"78":{"position":[[131,41]]},"84":{"position":[[406,41]]}}}],["gl.get_or_create_detector(name=\"path",{"_index":187,"t":{"22":{"position":[[176,36]]}}}],["gl.get_or_create_detector(name=\"trash",{"_index":584,"t":{"62":{"position":[[1160,39]]}}}],["gl.list_detectors",{"_index":642,"t":{"69":{"position":[[101,19]]}}}],["gl.list_detectors(page=1",{"_index":646,"t":{"69":{"position":[[178,25]]}}}],["gl.list_image_queries",{"_index":655,"t":{"73":{"position":[[105,23]]}}}],["gl.list_image_queries(page=1",{"_index":656,"t":{"73":{"position":[[190,29]]}}}],["gl.submit_image_query(d",{"_index":333,"t":{"34":{"position":[[316,24]]}}}],["gl.submit_image_query(det",{"_index":193,"t":{"22":{"position":[[303,26]]}}}],["gl.submit_image_query(detector",{"_index":219,"t":{"24":{"position":[[439,31]]},"26":{"position":[[475,31]]}}}],["gl.submit_image_query(detector=d",{"_index":592,"t":{"62":{"position":[[1357,33],[2109,33]]},"75":{"position":[[904,33]]}}}],["gl.submit_image_query(detector=det",{"_index":688,"t":{"78":{"position":[[296,35]]},"84":{"position":[[571,35]]}}}],["gl.submit_image_query(detector=detector",{"_index":1077,"t":{"119":{"position":[[344,40]]}}}],["gl.submit_image_query(image=image",{"_index":888,"t":{"107":{"position":[[1101,34]]},"116":{"position":[[1940,34]]}}}],["go",{"_index":1158,"t":{"150":{"position":[[183,3]]},"154":{"position":[[153,2]]},"170":{"position":[[183,3]]},"231":{"position":[[189,3]]},"239":{"position":[[166,2]]}}}],["good",{"_index":1081,"t":{"119":{"position":[[520,4],[555,4]]},"150":{"position":[[175,4]]},"170":{"position":[[175,4]]},"231":{"position":[[181,4]]}}}],["gracefully",{"_index":316,"t":{"32":{"position":[[177,10]]},"46":{"position":[[47,10]]},"48":{"position":[[154,10]]},"197":{"position":[[325,10]]}}}],["groundlight",{"_index":8,"t":{"4":{"position":[[0,11],[155,12],[358,11]]},"6":{"position":[[53,11]]},"8":{"position":[[54,11]]},"14":{"position":[[0,11]]},"16":{"position":[[74,12],[200,11],[240,11],[288,11],[480,12]]},"18":{"position":[[142,11],[189,11],[345,11],[364,11]]},"22":{"position":[[4,11],[98,11],[117,11],[156,13]]},"24":{"position":[[194,11],[498,11]]},"26":{"position":[[4,11]]},"28":{"position":[[0,11],[505,12],[559,11],[705,12]]},"32":{"position":[[36,11]]},"34":{"position":[[159,11],[192,11],[209,13]]},"36":{"position":[[22,11]]},"40":{"position":[[149,11]]},"48":{"position":[[330,11]]},"50":{"position":[[168,11]]},"62":{"position":[[0,11],[900,11],[919,11],[974,13]]},"65":{"position":[[315,11],[334,11],[351,13]]},"67":{"position":[[5,11],[24,11],[41,13]]},"69":{"position":[[5,11],[24,11],[41,13]]},"71":{"position":[[214,11],[233,11],[250,13]]},"73":{"position":[[5,11],[24,11],[41,13]]},"75":{"position":[[0,11],[582,11],[601,11],[656,13]]},"78":{"position":[[75,11],[94,11],[111,13]]},"84":{"position":[[12,11],[100,11],[129,11],[350,11],[369,11],[386,13]]},"87":{"position":[[11,11],[117,11]]},"89":{"position":[[237,11]]},"91":{"position":[[386,11],[405,11],[490,13],[584,11],[679,11],[698,11]]},"93":{"position":[[40,11]]},"95":{"position":[[15,11],[297,11]]},"99":{"position":[[254,11]]},"101":{"position":[[49,11]]},"103":{"position":[[0,11]]},"105":{"position":[[69,11],[117,11]]},"107":{"position":[[21,11],[183,11],[202,11],[979,13],[1533,11]]},"110":{"position":[[45,11],[1897,11]]},"112":{"position":[[0,11]]},"114":{"position":[[69,11],[144,11]]},"116":{"position":[[21,11],[198,11],[217,11],[1397,13],[3004,11]]},"124":{"position":[[137,12]]},"134":{"position":[[15,11],[137,11]]},"136":{"position":[[331,11]]},"138":{"position":[[37,11],[67,11]]},"142":{"position":[[132,11]]},"144":{"position":[[15,11],[98,11],[204,11],[220,11]]},"146":{"position":[[16,11],[135,12]]},"148":{"position":[[27,11],[119,11],[180,11],[269,11]]},"154":{"position":[[827,12],[853,11]]},"156":{"position":[[36,11]]},"158":{"position":[[37,11],[67,11]]},"162":{"position":[[132,11]]},"164":{"position":[[15,11],[98,11],[204,11],[220,11]]},"166":{"position":[[16,11],[135,12]]},"168":{"position":[[27,11],[119,11],[180,11],[269,11]]},"174":{"position":[[36,11]]},"176":{"position":[[39,11]]},"178":{"position":[[75,11]]},"182":{"position":[[37,11],[83,11]]},"186":{"position":[[139,11]]},"188":{"position":[[15,11],[99,11],[175,11]]},"194":{"position":[[36,11]]},"197":{"position":[[4,11],[88,11]]},"199":{"position":[[92,11],[236,11],[278,11]]},"201":{"position":[[60,11]]},"205":{"position":[[37,11],[74,11]]},"209":{"position":[[138,11]]},"211":{"position":[[15,11],[99,11],[175,11]]},"217":{"position":[[36,11]]},"219":{"position":[[37,11],[69,11]]},"223":{"position":[[132,11]]},"225":{"position":[[15,11],[104,11],[210,11],[226,11]]},"227":{"position":[[16,11],[135,12]]},"229":{"position":[[27,11],[119,11],[180,11],[269,11]]},"235":{"position":[[36,11]]},"237":{"position":[[0,11]]},"239":{"position":[[68,11]]},"245":{"position":[[206,11]]}}}],["groundlight's",{"_index":136,"t":{"16":{"position":[[621,13]]},"20":{"position":[[0,13]]},"52":{"position":[[0,13]]},"54":{"position":[[12,13]]},"56":{"position":[[0,13]]},"58":{"position":[[0,13]]},"60":{"position":[[24,13]]},"82":{"position":[[0,13]]},"119":{"position":[[5,13]]}}}],["groundlight(api_token=token",{"_index":789,"t":{"91":{"position":[[756,28]]}}}],["groundlight(endpoint=\"http://localhost:6717",{"_index":157,"t":{"18":{"position":[[381,45]]}}}],["groundlight.ai",{"_index":1210,"t":{"178":{"position":[[111,15]]}}}],["groundlight/stream",{"_index":1242,"t":{"190":{"position":[[85,18]]},"213":{"position":[[84,18]]}}}],["groundlight_api_token",{"_index":358,"t":{"34":{"position":[[724,21]]},"84":{"position":[[198,21]]},"91":{"position":[[176,22],[463,21]]}}}],["groundlight_api_token=api_2gdxmflhji6l_example",{"_index":733,"t":{"84":{"position":[[267,46]]}}}],["groundlight_endpoint",{"_index":159,"t":{"18":{"position":[[445,20]]}}}],["groundlight_endpoint=http://localhost:6717",{"_index":162,"t":{"18":{"position":[[500,42]]}}}],["guide",{"_index":830,"t":{"101":{"position":[[125,5]]},"134":{"position":[[44,6],[59,6]]},"136":{"position":[[90,6]]},"138":{"position":[[5,5]]},"158":{"position":[[5,5]]},"182":{"position":[[5,5]]},"205":{"position":[[5,5]]},"219":{"position":[[5,5]]}}}],["guides",{"_index":42,"t":{"4":{"position":[[405,6]]},"16":{"position":[[18,6]]}}}],["hand",{"_index":490,"t":{"54":{"position":[[186,4],[194,4]]}}}],["handle",{"_index":128,"t":{"16":{"position":[[417,6]]},"32":{"position":[[127,6],[188,6]]},"36":{"position":[[70,6]]},"46":{"position":[[35,6]]},"48":{"position":[[140,6],[273,6]]},"75":{"position":[[186,6]]}}}],["handling",{"_index":124,"t":{"16":{"position":[[377,8]]},"44":{"position":[[5,8]]},"48":{"position":[[38,8]]},"89":{"position":[[291,8]]}}}],["happen",{"_index":618,"t":{"62":{"position":[[2087,7]]}}}],["hardcoding",{"_index":764,"t":{"89":{"position":[[438,10]]}}}],["hardware",{"_index":258,"t":{"28":{"position":[[271,8]]},"201":{"position":[[454,9]]}}}],["hasn't",{"_index":611,"t":{"62":{"position":[[1839,6]]}}}],["head",{"_index":729,"t":{"84":{"position":[[112,4]]}}}],["health",{"_index":415,"t":{"42":{"position":[[179,6]]}}}],["help",{"_index":68,"t":{"8":{"position":[[254,4]]},"40":{"position":[[90,4]]},"42":{"position":[[124,4]]},"44":{"position":[[145,4]]},"48":{"position":[[75,4]]},"54":{"position":[[83,4]]},"56":{"position":[[223,4]]},"110":{"position":[[820,4]]},"138":{"position":[[16,4]]},"158":{"position":[[16,4]]},"182":{"position":[[16,4]]},"205":{"position":[[16,4]]},"219":{"position":[[16,4]]}}}],["helps",{"_index":776,"t":{"91":{"position":[[204,5]]}}}],["here",{"_index":1,"t":{"2":{"position":[[6,4]]},"89":{"position":[[258,4]]},"101":{"position":[[0,4]]},"243":{"position":[[209,5],[260,5],[286,5],[328,5]]}}}],["here's",{"_index":183,"t":{"22":{"position":[[74,6]]},"26":{"position":[[259,6]]},"28":{"position":[[956,6]]}}}],["high",{"_index":701,"t":{"80":{"position":[[130,4],[485,4]]}}}],["high=255",{"_index":244,"t":{"26":{"position":[[375,9]]}}}],["higher",{"_index":599,"t":{"62":{"position":[[1523,6],[1550,6],[1594,6],[1610,6]]},"80":{"position":[[634,6]]},"84":{"position":[[60,7]]},"103":{"position":[[35,6]]},"105":{"position":[[30,6]]},"110":{"position":[[929,6]]},"112":{"position":[[35,6]]},"114":{"position":[[30,6]]},"138":{"position":[[106,7]]},"140":{"position":[[75,6]]},"142":{"position":[[32,6]]},"150":{"position":[[133,6]]},"158":{"position":[[106,7]]},"160":{"position":[[75,6]]},"162":{"position":[[32,6]]},"170":{"position":[[133,6]]},"182":{"position":[[122,7]]},"184":{"position":[[82,6]]},"186":{"position":[[32,6]]},"205":{"position":[[113,7]]},"207":{"position":[[81,6]]},"209":{"position":[[32,6]]},"219":{"position":[[108,7]]},"221":{"position":[[75,6]]},"223":{"position":[[32,6]]},"231":{"position":[[139,6]]}}}],["highest",{"_index":503,"t":{"56":{"position":[[79,7]]}}}],["home",{"_index":825,"t":{"101":{"position":[[69,4]]}}}],["homebrew",{"_index":1202,"t":{"172":{"position":[[89,8]]}}}],["hour",{"_index":920,"t":{"110":{"position":[[319,5]]},"116":{"position":[[3101,5]]}}}],["hourly",{"_index":977,"t":{"110":{"position":[[1957,6]]}}}],["hours",{"_index":99,"t":{"12":{"position":[[281,6]]},"110":{"position":[[735,5]]},"116":{"position":[[1157,5]]}}}],["http",{"_index":125,"t":{"16":{"position":[[386,4],[441,4]]},"34":{"position":[[15,4],[559,4],[624,4]]}}}],["http://localhost:3000",{"_index":1234,"t":{"180":{"position":[[681,21]]}}}],["https://app.groundlight.ai/reef/my",{"_index":792,"t":{"93":{"position":[[63,34]]}}}],["https://bootstrap.pypa.io/get",{"_index":1195,"t":{"154":{"position":[[614,29]]}}}],["https://github.com/groundlight/esp32cam",{"_index":69,"t":{"10":{"position":[[12,39]]},"245":{"position":[[107,39]]}}}],["https://github.com/groundlight/raspberry",{"_index":82,"t":{"12":{"position":[[12,40]]}}}],["https://github.com/groundlight/stream",{"_index":50,"t":{"8":{"position":[[12,37]]}}}],["https://images.selfstorage.com/large",{"_index":679,"t":{"75":{"position":[[757,37]]}}}],["https://iot.groundlight.ai/espcam",{"_index":1284,"t":{"237":{"position":[[110,34]]},"239":{"position":[[172,33]]}}}],["https://www.photos",{"_index":578,"t":{"62":{"position":[[1000,19]]}}}],["hub",{"_index":1245,"t":{"190":{"position":[[172,4]]},"213":{"position":[[171,4]]}}}],["human",{"_index":551,"t":{"62":{"position":[[347,5]]},"80":{"position":[[308,5]]},"82":{"position":[[167,5]]},"124":{"position":[[212,5]]}}}],["humans",{"_index":522,"t":{"58":{"position":[[189,6]]}}}],["hwn",{"_index":222,"t":{"26":{"position":[[86,3]]}}}],["i.e",{"_index":1067,"t":{"119":{"position":[[74,5]]}}}],["identifier",{"_index":810,"t":{"97":{"position":[[209,10]]}}}],["identify",{"_index":485,"t":{"54":{"position":[[88,8]]},"95":{"position":[[170,8]]},"110":{"position":[[206,8],[825,8]]}}}],["identifying",{"_index":504,"t":{"56":{"position":[[141,11]]},"110":{"position":[[780,11]]}}}],["image",{"_index":185,"t":{"22":{"position":[[145,5]]},"24":{"position":[[20,5]]},"26":{"position":[[306,5]]},"28":{"position":[[105,5],[254,5],[321,5],[740,5],[993,5]]},"30":{"position":[[51,5],[203,5],[284,5],[345,5]]},"62":{"position":[[135,5],[269,5],[719,5],[947,5],[1095,5],[1866,5],[2269,5]]},"75":{"position":[[82,6],[629,5],[829,5]]},"78":{"position":[[243,5]]},"80":{"position":[[533,5]]},"84":{"position":[[518,5]]},"107":{"position":[[230,5],[295,5],[441,5],[1057,5],[1084,6],[1325,5],[1375,7],[1470,5]]},"116":{"position":[[245,5],[408,5],[554,5],[1832,5],[1863,6],[1895,7],[2051,5],[2941,5]]},"122":{"position":[[99,5]]},"180":{"position":[[192,6],[320,6]]}}}],["image.fromarray(cv2.cvtcolor(frame",{"_index":864,"t":{"107":{"position":[[454,35]]},"116":{"position":[[567,35]]}}}],["image.open(\"./docs/static/img/doorway.jpg",{"_index":192,"t":{"22":{"position":[[259,43]]}}}],["image.open(requests.get(image_url",{"_index":582,"t":{"62":{"position":[[1103,34]]},"75":{"position":[[837,34]]}}}],["image=image",{"_index":593,"t":{"62":{"position":[[1391,12],[2143,12]]},"75":{"position":[[938,12]]}}}],["image=img",{"_index":689,"t":{"78":{"position":[[332,10]]},"84":{"position":[[607,10]]}}}],["image=some_image",{"_index":1078,"t":{"119":{"position":[[385,17]]}}}],["image_queries",{"_index":654,"t":{"73":{"position":[[89,13],[174,13]]}}}],["image_query",{"_index":591,"t":{"62":{"position":[[1343,11],[2095,11]]},"71":{"position":[[264,11]]},"75":{"position":[[327,11],[890,11]]},"78":{"position":[[282,11]]},"84":{"position":[[557,11]]},"119":{"position":[[330,11]]}}}],["image_query.id",{"_index":651,"t":{"71":{"position":[[151,14]]}}}],["image_query.result",{"_index":595,"t":{"62":{"position":[[1435,22]]},"78":{"position":[[365,22]]},"84":{"position":[[640,22]]}}}],["image_query.result.confidence",{"_index":622,"t":{"62":{"position":[[2308,33]]}}}],["image_query.result.label",{"_index":1079,"t":{"119":{"position":[[474,28]]}}}],["image_url",{"_index":577,"t":{"62":{"position":[[988,9]]},"75":{"position":[[746,10]]}}}],["images",{"_index":172,"t":{"20":{"position":[[26,6]]},"22":{"position":[[35,6]]},"24":{"position":[[83,7],[98,6],[253,6]]},"26":{"position":[[31,6]]},"28":{"position":[[20,6],[372,6],[495,6],[889,6]]},"80":{"position":[[5,6],[213,6]]},"119":{"position":[[65,6]]},"199":{"position":[[70,6]]},"201":{"position":[[203,6],[348,6]]}}}],["img",{"_index":685,"t":{"78":{"position":[[203,3]]},"84":{"position":[[478,3]]}}}],["immediately",{"_index":818,"t":{"99":{"position":[[170,11]]}}}],["implement",{"_index":416,"t":{"44":{"position":[[26,9]]},"110":{"position":[[1684,9]]}}}],["import",{"_index":154,"t":{"18":{"position":[[357,6]]},"22":{"position":[[110,6],[138,6]]},"24":{"position":[[315,6]]},"26":{"position":[[322,6]]},"34":{"position":[[137,6],[171,6]]},"62":{"position":[[912,6],[940,6],[953,6]]},"65":{"position":[[327,6]]},"67":{"position":[[17,6]]},"69":{"position":[[17,6]]},"71":{"position":[[226,6]]},"73":{"position":[[17,6]]},"75":{"position":[[594,6],[622,6],[635,6]]},"78":{"position":[[87,6]]},"84":{"position":[[362,6]]},"91":{"position":[[398,6],[691,6]]},"107":{"position":[[124,6],[155,6],[167,6],[195,6],[223,6],[236,6],[251,6]]},"116":{"position":[[124,6],[155,6],[167,6],[178,6],[210,6],[238,6],[265,6],[318,6],[360,6]]},"146":{"position":[[127,7]]},"166":{"position":[[127,7]]},"227":{"position":[[127,7]]}}}],["impossible",{"_index":291,"t":{"28":{"position":[[1105,10]]}}}],["improve",{"_index":520,"t":{"58":{"position":[[159,7]]},"62":{"position":[[2024,7]]},"80":{"position":[[593,7]]},"110":{"position":[[1560,7],[2074,7]]},"124":{"position":[[239,7]]}}}],["improved",{"_index":120,"t":{"16":{"position":[[335,8]]},"132":{"position":[[76,8]]}}}],["improving",{"_index":948,"t":{"110":{"position":[[1068,9]]}}}],["include",{"_index":408,"t":{"42":{"position":[[76,7]]},"46":{"position":[[136,7]]},"75":{"position":[[260,7]]}}}],["including",{"_index":176,"t":{"20":{"position":[[58,9]]},"30":{"position":[[299,10]]}}}],["incorporated",{"_index":616,"t":{"62":{"position":[[1991,12]]}}}],["increase",{"_index":945,"t":{"110":{"position":[[1028,8]]}}}],["increased",{"_index":971,"t":{"110":{"position":[[1646,9]]}}}],["increases",{"_index":603,"t":{"62":{"position":[[1661,9]]}}}],["increasing",{"_index":512,"t":{"56":{"position":[[306,10]]}}}],["index",{"_index":213,"t":{"24":{"position":[[390,6]]}}}],["industrial",{"_index":103,"t":{"14":{"position":[[82,10]]},"28":{"position":[[1055,10]]},"50":{"position":[[62,10],[274,10]]},"60":{"position":[[105,10]]}}}],["inexpensive",{"_index":75,"t":{"10":{"position":[[134,11]]}}}],["inference",{"_index":170,"t":{"18":{"position":[[664,11]]}}}],["info@groundlight.ai",{"_index":534,"t":{"60":{"position":[[171,20]]}}}],["information",{"_index":411,"t":{"42":{"position":[[101,12]]},"97":{"position":[[92,12]]},"110":{"position":[[950,11],[1249,11]]},"156":{"position":[[79,11]]},"174":{"position":[[79,11]]},"194":{"position":[[79,11]]},"217":{"position":[[79,11]]},"235":{"position":[[79,11]]}}}],["informed",{"_index":981,"t":{"110":{"position":[[2052,8]]}}}],["initialize",{"_index":210,"t":{"24":{"position":[[354,10]]}}}],["injection",{"_index":473,"t":{"52":{"position":[[166,9]]}}}],["insights",{"_index":951,"t":{"110":{"position":[[1171,8]]}}}],["inspections",{"_index":511,"t":{"56":{"position":[[290,11]]}}}],["install",{"_index":724,"t":{"84":{"position":[[0,7],[92,7]]},"105":{"position":[[57,7],[109,7]]},"110":{"position":[[1748,7]]},"114":{"position":[[57,7],[136,7]]},"134":{"position":[[114,7]]},"138":{"position":[[25,7]]},"142":{"position":[[109,7]]},"144":{"position":[[3,7],[90,7],[196,7]]},"148":{"position":[[101,7],[162,7]]},"152":{"position":[[43,7],[139,7],[225,7]]},"154":{"position":[[130,7],[332,7],[369,7],[401,7],[524,7],[594,7],[760,7],[819,7],[845,7]]},"158":{"position":[[25,7]]},"162":{"position":[[109,7]]},"164":{"position":[[3,7],[90,7],[196,7]]},"168":{"position":[[101,7],[162,7]]},"172":{"position":[[101,7],[122,7]]},"180":{"position":[[0,7]]},"182":{"position":[[25,7]]},"186":{"position":[[116,7]]},"188":{"position":[[3,7],[91,7]]},"199":{"position":[[185,7],[270,7]]},"201":{"position":[[48,7],[501,7]]},"203":{"position":[[196,7]]},"205":{"position":[[25,7]]},"209":{"position":[[115,7]]},"211":{"position":[[3,7],[91,7]]},"219":{"position":[[25,7]]},"223":{"position":[[109,7]]},"225":{"position":[[3,7],[96,7],[202,7]]},"229":{"position":[[101,7],[162,7]]}}}],["installation",{"_index":1122,"t":{"134":{"position":[[31,12]]},"136":{"position":[[227,12]]},"180":{"position":[[46,12]]},"203":{"position":[[100,12]]}}}],["installed",{"_index":147,"t":{"18":{"position":[[127,9]]},"105":{"position":[[37,10]]},"114":{"position":[[37,10]]},"140":{"position":[[35,9]]},"142":{"position":[[39,9]]},"144":{"position":[[243,9]]},"146":{"position":[[35,9]]},"148":{"position":[[343,10]]},"150":{"position":[[14,9]]},"154":{"position":[[252,9]]},"160":{"position":[[35,9]]},"162":{"position":[[39,9]]},"164":{"position":[[243,9]]},"166":{"position":[[35,9]]},"168":{"position":[[343,10]]},"170":{"position":[[14,9]]},"180":{"position":[[657,9],[723,9]]},"184":{"position":[[35,9]]},"186":{"position":[[39,9]]},"188":{"position":[[160,10],[198,9]]},"190":{"position":[[19,9]]},"197":{"position":[[255,9]]},"199":{"position":[[350,10]]},"203":{"position":[[38,9]]},"207":{"position":[[35,9]]},"209":{"position":[[39,9]]},"211":{"position":[[160,10],[198,9]]},"213":{"position":[[19,9]]},"221":{"position":[[35,9]]},"223":{"position":[[39,9]]},"225":{"position":[[249,9]]},"227":{"position":[[35,9]]},"229":{"position":[[343,10]]},"231":{"position":[[14,9]]}}}],["installer",{"_index":1139,"t":{"140":{"position":[[102,10]]},"160":{"position":[[102,10]]},"172":{"position":[[27,9]]},"184":{"position":[[109,10]]},"207":{"position":[[108,10]]},"221":{"position":[[102,10]]},"233":{"position":[[27,9]]}}}],["installing",{"_index":1249,"t":{"197":{"position":[[112,10],[183,10]]}}}],["instead",{"_index":1107,"t":{"128":{"position":[[107,8]]},"144":{"position":[[182,8]]},"164":{"position":[[182,8]]},"225":{"position":[[188,8]]}}}],["instructing",{"_index":839,"t":{"101":{"position":[[290,11]]}}}],["instructions",{"_index":1124,"t":{"134":{"position":[[91,12]]},"136":{"position":[[56,12]]},"180":{"position":[[59,13]]}}}],["insufficient",{"_index":364,"t":{"34":{"position":[[819,12]]}}}],["integrated",{"_index":454,"t":{"50":{"position":[[250,10]]},"58":{"position":[[55,10],[244,10]]}}}],["integrating",{"_index":483,"t":{"54":{"position":[[0,11]]},"245":{"position":[[194,11]]}}}],["intensive",{"_index":549,"t":{"62":{"position":[[289,9]]},"80":{"position":[[265,9]]}}}],["interaction",{"_index":447,"t":{"50":{"position":[[131,11]]}}}],["interface",{"_index":297,"t":{"30":{"position":[[14,9],[246,9]]},"58":{"position":[[316,10]]},"176":{"position":[[127,10]]}}}],["interfaces",{"_index":693,"t":{"78":{"position":[[432,10]]}}}],["internal",{"_index":376,"t":{"34":{"position":[[974,8]]}}}],["internet",{"_index":1208,"t":{"178":{"position":[[0,8]]}}}],["interpreting",{"_index":495,"t":{"54":{"position":[[271,12]]}}}],["interpretted",{"_index":249,"t":{"26":{"position":[[447,12]]}}}],["intervention",{"_index":426,"t":{"44":{"position":[[212,13]]},"54":{"position":[[148,13]]}}}],["introduce",{"_index":35,"t":{"4":{"position":[[304,9]]}}}],["intuitive",{"_index":446,"t":{"50":{"position":[[121,9]]}}}],["invalid",{"_index":354,"t":{"34":{"position":[[678,7],[760,7]]}}}],["invalidate",{"_index":819,"t":{"99":{"position":[[182,10]]}}}],["io",{"_index":1306,"t":{"243":{"position":[[146,2]]}}}],["ip",{"_index":307,"t":{"30":{"position":[[322,2]]},"180":{"position":[[780,2]]}}}],["iq",{"_index":332,"t":{"34":{"position":[[311,2]]},"107":{"position":[[1096,2]]},"116":{"position":[[1935,2]]}}}],["iq.result.label",{"_index":890,"t":{"107":{"position":[[1173,15]]},"116":{"position":[[2106,15]]}}}],["irregularities",{"_index":506,"t":{"56":{"position":[[164,14]]}}}],["is_within_business_hours",{"_index":1018,"t":{"116":{"position":[[1237,27],[1777,27]]}}}],["issue",{"_index":1320,"t":{"245":{"position":[[259,5]]}}}],["issues",{"_index":393,"t":{"38":{"position":[[198,7]]},"42":{"position":[[139,6]]},"44":{"position":[[111,6],[190,6]]},"48":{"position":[[90,6]]}}}],["it's",{"_index":1111,"t":{"130":{"position":[[87,4]]}}}],["jetson",{"_index":1133,"t":{"136":{"position":[[137,6]]},"182":{"position":[[63,6]]},"184":{"position":[[60,7]]},"186":{"position":[[64,7]]},"190":{"position":[[44,7]]},"192":{"position":[[58,7]]}}}],["jpeg",{"_index":1267,"t":{"201":{"position":[[215,4],[274,4],[364,4]]}}}],["keep",{"_index":826,"t":{"101":{"position":[[77,4]]}}}],["key",{"_index":1209,"t":{"178":{"position":[[91,3]]}}}],["kind",{"_index":745,"t":{"87":{"position":[[250,4]]}}}],["kinds",{"_index":299,"t":{"30":{"position":[[42,5],[275,5]]}}}],["know",{"_index":1092,"t":{"124":{"position":[[327,4]]},"154":{"position":[[118,4]]}}}],["knowledge",{"_index":295,"t":{"28":{"position":[[1140,9]]}}}],["ksuid",{"_index":744,"t":{"87":{"position":[[241,5]]}}}],["label",{"_index":664,"t":{"75":{"position":[[272,5],[409,5]]},"80":{"position":[[438,5]]}}}],["labels",{"_index":602,"t":{"62":{"position":[[1647,7]]},"71":{"position":[[103,6]]},"75":{"position":[[549,6],[1009,6]]}}}],["labor",{"_index":604,"t":{"62":{"position":[[1671,5]]}}}],["language",{"_index":15,"t":{"4":{"position":[[68,9]]},"14":{"position":[[48,8]]},"16":{"position":[[663,8]]},"50":{"position":[[15,8]]},"52":{"position":[[257,9]]},"54":{"position":[[292,8]]},"60":{"position":[[46,8]]}}}],["large",{"_index":1250,"t":{"197":{"position":[[123,5]]},"199":{"position":[[154,6]]},"203":{"position":[[83,6]]}}}],["last",{"_index":812,"t":{"97":{"position":[[235,4],[278,4]]}}}],["latency",{"_index":123,"t":{"16":{"position":[[368,8]]},"18":{"position":[[52,8]]},"62":{"position":[[63,7],[1514,8],[1601,8]]},"80":{"position":[[490,8]]}}}],["later",{"_index":798,"t":{"95":{"position":[[182,6]]}}}],["latest",{"_index":1151,"t":{"148":{"position":[[50,6],[321,6]]},"152":{"position":[[55,6]]},"168":{"position":[[50,6],[321,6]]},"172":{"position":[[13,6]]},"229":{"position":[[50,6],[321,6]]},"233":{"position":[[13,6]]}}}],["layout",{"_index":949,"t":{"110":{"position":[[1084,7],[1218,7],[1319,6]]}}}],["lead",{"_index":970,"t":{"110":{"position":[[1638,4]]}}}],["learn",{"_index":113,"t":{"16":{"position":[[142,5]]},"60":{"position":[[3,5]]},"80":{"position":[[583,5]]}}}],["learning",{"_index":700,"t":{"80":{"position":[[42,8]]},"124":{"position":[[192,8]]}}}],["len(log",{"_index":1039,"t":{"116":{"position":[[2258,9]]}}}],["let's",{"_index":1082,"t":{"119":{"position":[[535,5]]}}}],["lets",{"_index":598,"t":{"62":{"position":[[1480,4]]},"75":{"position":[[12,4]]}}}],["level",{"_index":563,"t":{"62":{"position":[[575,5],[802,5],[1919,5]]}}}],["levels",{"_index":404,"t":{"42":{"position":[[36,6]]}}}],["libraries",{"_index":261,"t":{"28":{"position":[[327,9]]},"107":{"position":[[144,10]]},"114":{"position":[[121,10]]},"116":{"position":[[144,10]]},"197":{"position":[[129,9],[241,9]]},"203":{"position":[[20,9],[160,10]]}}}],["library",{"_index":195,"t":{"24":{"position":[[37,8]]},"30":{"position":[[84,8]]},"105":{"position":[[96,8]]},"114":{"position":[[93,8]]},"199":{"position":[[8,7],[334,7]]}}}],["life",{"_index":1175,"t":{"154":{"position":[[63,5]]}}}],["limit",{"_index":373,"t":{"34":{"position":[[932,5]]},"89":{"position":[[475,5]]}}}],["limiting",{"_index":422,"t":{"44":{"position":[[126,9]]}}}],["liner",{"_index":1148,"t":{"146":{"position":[[110,6]]},"148":{"position":[[236,5]]},"166":{"position":[[110,6]]},"168":{"position":[[236,5]]},"227":{"position":[[110,6]]},"229":{"position":[[236,5]]}}}],["lines",{"_index":684,"t":{"78":{"position":[[53,5]]}}}],["links",{"_index":40,"t":{"4":{"position":[[382,5]]}}}],["linux",{"_index":1129,"t":{"136":{"position":[[97,5],[144,5]]},"138":{"position":[[56,6]]},"152":{"position":[[250,6]]},"176":{"position":[[66,5]]},"178":{"position":[[19,5]]}}}],["list",{"_index":803,"t":{"97":{"position":[[38,4]]},"99":{"position":[[43,5]]},"136":{"position":[[30,4]]}}}],["little",{"_index":283,"t":{"28":{"position":[[908,6]]}}}],["llm",{"_index":719,"t":{"82":{"position":[[89,4]]}}}],["loading",{"_index":466,"t":{"52":{"position":[[97,7]]}}}],["localhost",{"_index":1238,"t":{"180":{"position":[[761,9]]}}}],["locally",{"_index":1233,"t":{"180":{"position":[[667,8]]}}}],["locate",{"_index":814,"t":{"99":{"position":[[0,6]]}}}],["location",{"_index":760,"t":{"89":{"position":[[341,9]]}}}],["lock",{"_index":85,"t":{"12":{"position":[[61,4],[143,4]]}}}],["log",{"_index":402,"t":{"42":{"position":[[0,3],[32,3]]},"95":{"position":[[0,3]]},"107":{"position":[[7,3]]},"110":{"position":[[454,4],[2015,3]]},"112":{"position":[[138,3]]},"116":{"position":[[7,3],[677,3],[1635,3],[2530,3],[2853,5],[3209,3]]}}}],["log.append(answer",{"_index":1035,"t":{"116":{"position":[[2122,18]]}}}],["log.count(\"yes",{"_index":1038,"t":{"116":{"position":[[2238,17]]}}}],["logging",{"_index":428,"t":{"46":{"position":[[15,7]]}}}],["logic",{"_index":418,"t":{"44":{"position":[[42,5]]}}}],["logs",{"_index":1059,"t":{"116":{"position":[[3079,4]]}}}],["long",{"_index":965,"t":{"110":{"position":[[1512,4]]}}}],["longer",{"_index":539,"t":{"62":{"position":[[93,6]]},"89":{"position":[[598,6]]}}}],["look",{"_index":282,"t":{"28":{"position":[[901,4],[939,4]]},"87":{"position":[[197,4]]},"91":{"position":[[302,4]]},"119":{"position":[[541,4]]}}}],["looks",{"_index":781,"t":{"91":{"position":[[419,5]]}}}],["loop",{"_index":885,"t":{"107":{"position":[[968,5]]},"116":{"position":[[1386,5]]}}}],["low",{"_index":670,"t":{"75":{"position":[[490,3]]},"116":{"position":[[1559,3]]}}}],["loyalty",{"_index":967,"t":{"110":{"position":[[1594,8]]}}}],["m5stack",{"_index":1309,"t":{"243":{"position":[[166,7],[215,7]]}}}],["machine",{"_index":463,"t":{"52":{"position":[[66,7],[275,7]]},"80":{"position":[[34,7]]},"124":{"position":[[184,7]]}}}],["machines",{"_index":470,"t":{"52":{"position":[[136,9]]},"58":{"position":[[273,8]]}}}],["macos",{"_index":1130,"t":{"136":{"position":[[103,5]]},"158":{"position":[[56,6]]}}}],["made",{"_index":268,"t":{"28":{"position":[[539,4]]}}}],["main",{"_index":884,"t":{"107":{"position":[[951,4]]},"116":{"position":[[1369,4]]}}}],["maintain",{"_index":508,"t":{"56":{"position":[[228,8]]}}}],["make",{"_index":389,"t":{"38":{"position":[[145,4]]},"110":{"position":[[1264,4],[2047,4]]},"130":{"position":[[53,4]]},"197":{"position":[[274,4]]},"239":{"position":[[25,4]]}}}],["makes",{"_index":1080,"t":{"119":{"position":[[512,5]]}}}],["making",{"_index":658,"t":{"75":{"position":[[43,6]]}}}],["malformed",{"_index":355,"t":{"34":{"position":[[689,9]]}}}],["manage",{"_index":790,"t":{"93":{"position":[[8,6]]}}}],["manager",{"_index":1160,"t":{"152":{"position":[[32,7]]}}}],["managers",{"_index":931,"t":{"110":{"position":[[623,8],[1934,8]]}}}],["manual",{"_index":425,"t":{"44":{"position":[[205,6]]},"54":{"position":[[141,6]]},"56":{"position":[[283,6]]}}}],["manufacturing",{"_index":104,"t":{"14":{"position":[[97,13]]},"50":{"position":[[77,13]]},"56":{"position":[[113,13]]},"58":{"position":[[387,13]]},"60":{"position":[[120,13]]}}}],["many",{"_index":173,"t":{"20":{"position":[[36,4]]},"24":{"position":[[51,4]]},"28":{"position":[[237,4]]},"30":{"position":[[27,4],[147,4],[260,4]]},"34":{"position":[[908,4]]},"243":{"position":[[34,4]]}}}],["marketing",{"_index":942,"t":{"110":{"position":[[991,9]]}}}],["matching",{"_index":225,"t":{"26":{"position":[[117,8]]}}}],["materials",{"_index":468,"t":{"52":{"position":[[119,9]]}}}],["means",{"_index":1097,"t":{"126":{"position":[[44,6]]}}}],["memory",{"_index":238,"t":{"26":{"position":[[251,7]]}}}],["mentioned",{"_index":1153,"t":{"148":{"position":[[242,9]]},"168":{"position":[[242,9]]},"229":{"position":[[242,9]]}}}],["message",{"_index":434,"t":{"46":{"position":[[164,7]]}}}],["metadata",{"_index":322,"t":{"34":{"position":[[107,8]]}}}],["method",{"_index":626,"t":{"65":{"position":[[71,6],[303,6]]}}}],["methods",{"_index":7,"t":{"2":{"position":[[76,8]]},"80":{"position":[[284,7]]}}}],["microsecond=0",{"_index":1031,"t":{"116":{"position":[[1722,14]]}}}],["milling",{"_index":471,"t":{"52":{"position":[[146,7]]}}}],["mimemultipart",{"_index":987,"t":{"116":{"position":[[325,13],[820,15]]}}}],["mimetext",{"_index":989,"t":{"116":{"position":[[367,8]]}}}],["minimal",{"_index":21,"t":{"4":{"position":[[136,7]]}}}],["minimum",{"_index":567,"t":{"62":{"position":[[654,7]]}}}],["minute",{"_index":896,"t":{"107":{"position":[[1397,6]]},"110":{"position":[[299,7]]}}}],["minute=0",{"_index":1043,"t":{"116":{"position":[[2336,9]]}}}],["missing",{"_index":359,"t":{"34":{"position":[[749,7]]}}}],["ml",{"_index":545,"t":{"62":{"position":[[203,2],[687,2],[1786,2],[1830,2],[2037,2],[2209,2]]},"75":{"position":[[494,2]]},"80":{"position":[[51,4],[567,2]]}}}],["modbus",{"_index":526,"t":{"58":{"position":[[309,6]]}}}],["model",{"_index":139,"t":{"18":{"position":[[14,5],[568,5]]},"62":{"position":[[1833,5],[2040,6],[2212,6]]},"124":{"position":[[201,5]]}}}],["models",{"_index":148,"t":{"18":{"position":[[159,7]]},"62":{"position":[[206,6],[326,6],[492,6]]},"75":{"position":[[33,6]]},"80":{"position":[[56,6],[118,6],[185,6]]}}}],["moderate",{"_index":1083,"t":{"119":{"position":[[563,8]]}}}],["modern",{"_index":102,"t":{"14":{"position":[[33,6]]},"50":{"position":[[0,6]]}}}],["molding",{"_index":474,"t":{"52":{"position":[[176,7]]}}}],["monitor",{"_index":414,"t":{"42":{"position":[[167,7]]}}}],["monitoring",{"_index":962,"t":{"110":{"position":[[1441,10]]},"136":{"position":[[155,10]]}}}],["monitors",{"_index":90,"t":{"12":{"position":[[172,8]]},"62":{"position":[[353,8]]},"110":{"position":[[95,8]]}}}],["more",{"_index":41,"t":{"4":{"position":[[391,4]]},"16":{"position":[[4,4]]},"42":{"position":[[146,4]]},"50":{"position":[[116,4]]},"52":{"position":[[304,4]]},"60":{"position":[[9,4]]},"62":{"position":[[284,4],[313,4],[1642,4]]},"80":{"position":[[251,4]]},"124":{"position":[[55,4],[107,4]]},"156":{"position":[[74,4]]},"174":{"position":[[74,4]]},"194":{"position":[[74,4]]},"217":{"position":[[74,4]]},"235":{"position":[[74,4]]}}}],["msg",{"_index":994,"t":{"116":{"position":[[814,3],[2414,3],[2673,3]]}}}],["msg.as_string",{"_index":1007,"t":{"116":{"position":[[1049,15]]}}}],["msg.attach(mimetext(body",{"_index":999,"t":{"116":{"position":[[903,25]]}}}],["msg['from",{"_index":995,"t":{"116":{"position":[[836,11]]}}}],["msg['subject",{"_index":998,"t":{"116":{"position":[[878,14]]}}}],["msg['to",{"_index":997,"t":{"116":{"position":[[857,9]]}}}],["name",{"_index":632,"t":{"65":{"position":[[144,5]]},"95":{"position":[[146,5]]},"97":{"position":[[111,5],[133,4]]}}}],["name=\"conveyor",{"_index":1071,"t":{"119":{"position":[[240,14]]}}}],["name=\"counter",{"_index":1021,"t":{"116":{"position":[[1449,13]]}}}],["natural",{"_index":14,"t":{"4":{"position":[[60,7]]},"14":{"position":[[40,7]]},"16":{"position":[[655,7]]},"28":{"position":[[979,7]]},"50":{"position":[[7,7]]},"52":{"position":[[249,7]]},"54":{"position":[[284,7]]},"60":{"position":[[38,7]]}}}],["navigate",{"_index":794,"t":{"95":{"position":[[39,8]]}}}],["near",{"_index":973,"t":{"110":{"position":[[1775,4]]}}}],["nearly",{"_index":757,"t":{"89":{"position":[[207,6]]}}}],["need",{"_index":263,"t":{"28":{"position":[[442,4]]},"56":{"position":[[274,4]]},"80":{"position":[[514,4]]},"84":{"position":[[182,4]]},"87":{"position":[[39,4]]},"110":{"position":[[1740,4]]},"116":{"position":[[701,4]]},"144":{"position":[[165,4]]},"148":{"position":[[7,4]]},"150":{"position":[[205,4]]},"164":{"position":[[165,4]]},"168":{"position":[[7,4]]},"170":{"position":[[205,4]]},"201":{"position":[[182,4],[526,4]]},"225":{"position":[[171,4]]},"229":{"position":[[7,4]]},"231":{"position":[[211,4]]},"245":{"position":[[154,4]]}}}],["needed",{"_index":552,"t":{"62":{"position":[[365,7]]},"89":{"position":[[605,7]]}}}],["needing",{"_index":710,"t":{"80":{"position":[[410,7]]}}}],["network",{"_index":142,"t":{"18":{"position":[[67,7]]},"44":{"position":[[103,7]]},"103":{"position":[[61,7]]},"112":{"position":[[61,7]]},"116":{"position":[[744,7]]}}}],["never",{"_index":753,"t":{"89":{"position":[[44,5]]}}}],["new",{"_index":554,"t":{"62":{"position":[[444,3]]},"65":{"position":[[162,3],[230,3]]},"71":{"position":[[41,3]]},"95":{"position":[[90,3],[122,3]]},"99":{"position":[[318,3]]},"180":{"position":[[82,3]]}}}],["next",{"_index":558,"t":{"62":{"position":[[507,4]]},"99":{"position":[[75,4]]},"107":{"position":[[67,5]]},"116":{"position":[[67,5]]}}}],["next_hourly_start",{"_index":1028,"t":{"116":{"position":[[1659,17],[2162,18],[2181,17]]}}}],["nice",{"_index":1105,"t":{"128":{"position":[[93,4]]}}}],["non",{"_index":96,"t":{"12":{"position":[[259,3]]},"201":{"position":[[303,3]]}}}],["none",{"_index":866,"t":{"107":{"position":[[523,4]]},"116":{"position":[[636,4]]}}}],["normal",{"_index":1259,"t":{"199":{"position":[[216,6]]}}}],["normally",{"_index":1269,"t":{"201":{"position":[[245,8]]}}}],["note",{"_index":198,"t":{"24":{"position":[[133,5]]},"26":{"position":[[424,5]]},"28":{"position":[[518,4]]},"75":{"position":[[425,4]]},"78":{"position":[[388,5]]},"99":{"position":[[137,5]]},"152":{"position":[[177,4]]}}}],["notification",{"_index":92,"t":{"12":{"position":[[200,12]]},"136":{"position":[[166,12]]},"180":{"position":[[232,12],[360,12]]},"241":{"position":[[32,12]]}}}],["now",{"_index":1146,"t":{"144":{"position":[[239,3]]},"148":{"position":[[339,3]]},"154":{"position":[[808,3]]},"156":{"position":[[7,3]]},"164":{"position":[[239,3]]},"168":{"position":[[339,3]]},"174":{"position":[[7,3]]},"188":{"position":[[194,3]]},"194":{"position":[[7,3]]},"211":{"position":[[194,3]]},"217":{"position":[[7,3]]},"225":{"position":[[245,3]]},"229":{"position":[[339,3]]},"235":{"position":[[7,3]]}}}],["np",{"_index":241,"t":{"26":{"position":[[338,2]]}}}],["np.random.uniform(low=0",{"_index":243,"t":{"26":{"position":[[350,24]]}}}],["np_img",{"_index":242,"t":{"26":{"position":[[341,6],[507,7]]}}}],["number",{"_index":765,"t":{"89":{"position":[[485,6]]},"150":{"position":[[103,6]]},"170":{"position":[[103,6]]},"231":{"position":[[109,6]]}}}],["numpy",{"_index":179,"t":{"20":{"position":[[85,5]]},"24":{"position":[[119,5]]},"26":{"position":[[41,5],[315,6],[329,5]]},"28":{"position":[[89,5],[382,5],[734,5]]},"197":{"position":[[144,5]]}}}],["nvidia",{"_index":1132,"t":{"136":{"position":[[130,6]]},"182":{"position":[[56,6]]},"184":{"position":[[53,6]]},"186":{"position":[[57,6]]},"190":{"position":[[37,6]]},"192":{"position":[[51,6]]}}}],["object",{"_index":29,"t":{"4":{"position":[[239,6]]},"78":{"position":[[275,6]]},"84":{"position":[[550,6]]}}}],["obscure",{"_index":391,"t":{"38":{"position":[[174,7]]}}}],["observed",{"_index":93,"t":{"12":{"position":[[228,8]]}}}],["occur",{"_index":130,"t":{"16":{"position":[[462,5]]}}}],["occurred",{"_index":377,"t":{"34":{"position":[[1006,8]]}}}],["offers",{"_index":450,"t":{"50":{"position":[[180,6]]},"199":{"position":[[16,6]]}}}],["official",{"_index":1201,"t":{"172":{"position":[[46,8]]},"233":{"position":[[46,8]]}}}],["okay",{"_index":1086,"t":{"124":{"position":[[17,5]]}}}],["old",{"_index":769,"t":{"89":{"position":[[572,3]]},"99":{"position":[[347,3]]}}}],["once",{"_index":145,"t":{"18":{"position":[[98,4]]},"110":{"position":[[311,4]]}}}],["one",{"_index":218,"t":{"24":{"position":[[429,3]]},"65":{"position":[[166,3]]},"99":{"position":[[351,4]]},"124":{"position":[[228,3]]},"146":{"position":[[106,3]]},"148":{"position":[[232,3]]},"166":{"position":[[106,3]]},"168":{"position":[[232,3]]},"227":{"position":[[106,3]]},"229":{"position":[[232,3]]}}}],["ones",{"_index":770,"t":{"89":{"position":[[576,4]]}}}],["open",{"_index":678,"t":{"75":{"position":[[738,7]]},"78":{"position":[[195,7]]},"84":{"position":[[470,7]]},"150":{"position":[[40,4]]},"170":{"position":[[40,4]]},"180":{"position":[[676,4]]},"231":{"position":[[40,4]]}}}],["opencv",{"_index":178,"t":{"20":{"position":[[73,7]]},"24":{"position":[[0,6],[91,6]]},"26":{"position":[[126,6]]},"28":{"position":[[70,7],[120,7],[424,6]]},"105":{"position":[[89,6],[129,6]]},"107":{"position":[[323,7]]},"114":{"position":[[86,6],[156,6]]},"116":{"position":[[436,7]]},"197":{"position":[[153,7]]}}}],["opencv's",{"_index":204,"t":{"24":{"position":[[244,8]]}}}],["opening",{"_index":1101,"t":{"126":{"position":[[97,7]]},"245":{"position":[[248,7]]}}}],["operate",{"_index":712,"t":{"80":{"position":[[472,7]]}}}],["operating",{"_index":1011,"t":{"116":{"position":[[1147,9]]}}}],["operations",{"_index":498,"t":{"54":{"position":[[324,11]]},"110":{"position":[[2088,10]]}}}],["opinions",{"_index":1104,"t":{"128":{"position":[[73,8]]}}}],["optimize",{"_index":487,"t":{"54":{"position":[[110,8]]},"110":{"position":[[636,8]]}}}],["optimized",{"_index":1247,"t":{"197":{"position":[[23,9]]}}}],["options",{"_index":1297,"t":{"241":{"position":[[45,7]]}}}],["order",{"_index":200,"t":{"24":{"position":[[162,6],[177,6],[236,7]]},"26":{"position":[[110,6],[438,5]]},"28":{"position":[[34,6],[345,6],[470,5],[603,5],[678,5],[761,5],[774,5]]}}}],["originally",{"_index":253,"t":{"28":{"position":[[152,10]]}}}],["originate",{"_index":262,"t":{"28":{"position":[[409,9]]}}}],["originating",{"_index":400,"t":{"40":{"position":[[128,11]]}}}],["out",{"_index":109,"t":{"16":{"position":[[93,3]]},"60":{"position":[[158,3]]},"110":{"position":[[335,3]]},"245":{"position":[[302,3]]}}}],["output=true",{"_index":878,"t":{"107":{"position":[[791,12]]}}}],["over",{"_index":714,"t":{"80":{"position":[[552,4]]},"84":{"position":[[117,4]]},"89":{"position":[[227,4]]},"101":{"position":[[260,4]]}}}],["overall",{"_index":513,"t":{"56":{"position":[[317,7]]}}}],["oversight",{"_index":723,"t":{"82":{"position":[[173,10]]}}}],["p",{"_index":873,"t":{"107":{"position":[[650,1]]}}}],["p.open(format=p.get_format_from_width(wf.getsampwidth",{"_index":875,"t":{"107":{"position":[[681,57]]}}}],["p.terminate",{"_index":883,"t":{"107":{"position":[[927,13]]}}}],["package",{"_index":1138,"t":{"140":{"position":[[94,7]]},"152":{"position":[[24,7]]},"160":{"position":[[94,7]]},"184":{"position":[[101,7]]},"207":{"position":[[100,7]]},"221":{"position":[[94,7]]}}}],["pacman",{"_index":1170,"t":{"152":{"position":[[262,6]]}}}],["page",{"_index":33,"t":{"4":{"position":[[292,5]]},"32":{"position":[[108,4]]},"69":{"position":[[84,4],[139,4],[161,4]]},"73":{"position":[[84,4],[147,4],[169,4]]},"95":{"position":[[66,5]]},"97":{"position":[[18,5]]},"180":{"position":[[836,5]]}}}],["page_size=5",{"_index":647,"t":{"69":{"position":[[204,12]]},"73":{"position":[[220,12]]}}}],["pages",{"_index":111,"t":{"16":{"position":[[111,6]]},"156":{"position":[[173,6]]},"174":{"position":[[173,6]]},"217":{"position":[[173,6]]},"235":{"position":[[173,6]]}}}],["pagination",{"_index":643,"t":{"69":{"position":[[123,11]]},"73":{"position":[[131,11]]}}}],["partial",{"_index":1100,"t":{"126":{"position":[[89,7]]}}}],["particular",{"_index":544,"t":{"62":{"position":[[184,11]]},"116":{"position":[[733,10]]}}}],["parts",{"_index":478,"t":{"52":{"position":[[227,5]]}}}],["pass",{"_index":785,"t":{"91":{"position":[[549,4]]}}}],["passed",{"_index":589,"t":{"62":{"position":[[1305,6]]}}}],["password",{"_index":1005,"t":{"116":{"position":[[1031,10]]}}}],["passwords",{"_index":752,"t":{"89":{"position":[[33,10]]}}}],["path",{"_index":190,"t":{"22":{"position":[[235,4]]}}}],["patterns",{"_index":930,"t":{"110":{"position":[[584,8]]}}}],["pays",{"_index":842,"t":{"101":{"position":[[382,4]]}}}],["peak",{"_index":933,"t":{"110":{"position":[[730,4]]}}}],["people",{"_index":713,"t":{"80":{"position":[[507,6]]},"89":{"position":[[495,6]]},"128":{"position":[[47,6]]}}}],["per",{"_index":641,"t":{"69":{"position":[[80,3],[157,3]]},"73":{"position":[[80,3],[165,3]]}}}],["percent_in_use",{"_index":1037,"t":{"116":{"position":[[2221,14]]}}}],["percent_in_use:.0f",{"_index":1048,"t":{"116":{"position":[[2459,21]]}}}],["percentage",{"_index":923,"t":{"110":{"position":[[356,10]]},"116":{"position":[[3150,11]]}}}],["perform",{"_index":492,"t":{"54":{"position":[[223,7]]}}}],["performance",{"_index":121,"t":{"16":{"position":[[344,11]]}}}],["permissions",{"_index":365,"t":{"34":{"position":[[832,11]]}}}],["person",{"_index":1094,"t":{"124":{"position":[[351,6]]}}}],["phase",{"_index":692,"t":{"78":{"position":[[425,6]]}}}],["pi",{"_index":83,"t":{"12":{"position":[[53,2],[129,2]]},"136":{"position":[[127,2]]},"205":{"position":[[66,3]]},"207":{"position":[[63,3]]},"209":{"position":[[67,3]]},"213":{"position":[[47,3]]},"215":{"position":[[60,3]]}}}],["pil",{"_index":177,"t":{"20":{"position":[[68,4]]},"22":{"position":[[31,3],[134,3]]},"62":{"position":[[936,3]]},"75":{"position":[[618,3]]},"107":{"position":[[219,3],[437,3]]},"116":{"position":[[234,3],[550,3]]},"199":{"position":[[4,3],[125,4],[138,3],[330,3]]},"201":{"position":[[96,3],[264,3],[509,3]]}}}],["pil_img",{"_index":191,"t":{"22":{"position":[[249,7],[330,8]]}}}],["pillow",{"_index":851,"t":{"105":{"position":[[143,6]]},"114":{"position":[[170,6]]},"199":{"position":[[308,6]]}}}],["pin",{"_index":1307,"t":{"243":{"position":[[149,3]]}}}],["pip",{"_index":850,"t":{"105":{"position":[[105,3]]},"114":{"position":[[132,3]]},"140":{"position":[[82,3]]},"144":{"position":[[37,4],[86,3]]},"148":{"position":[[84,3],[97,3]]},"160":{"position":[[82,3]]},"164":{"position":[[37,4],[86,3]]},"168":{"position":[[84,3],[97,3]]},"184":{"position":[[89,3]]},"188":{"position":[[37,4]]},"207":{"position":[[88,3]]},"211":{"position":[[37,4]]},"221":{"position":[[82,3]]},"225":{"position":[[37,4],[92,3]]},"229":{"position":[[84,3],[97,3]]}}}],["pip.py",{"_index":1196,"t":{"154":{"position":[[644,6],[662,6],[693,6]]}}}],["pip3",{"_index":728,"t":{"84":{"position":[[87,4]]},"144":{"position":[[177,4],[191,4]]},"148":{"position":[[151,5],[157,4]]},"154":{"position":[[712,6],[782,4],[840,4]]},"164":{"position":[[177,4],[191,4]]},"168":{"position":[[151,5],[157,4]]},"188":{"position":[[86,4]]},"199":{"position":[[265,4]]},"211":{"position":[[86,4]]},"225":{"position":[[183,4],[197,4]]},"229":{"position":[[151,5],[157,4]]}}}],["pip3.8",{"_index":1194,"t":{"154":{"position":[[602,6],[726,6],[795,7]]}}}],["pixel",{"_index":227,"t":{"26":{"position":[[144,5]]}}}],["placeholder",{"_index":610,"t":{"62":{"position":[[1802,11]]}}}],["plain",{"_index":1000,"t":{"116":{"position":[[929,9]]}}}],["plan",{"_index":940,"t":{"110":{"position":[[977,4]]}}}],["platform",{"_index":1127,"t":{"136":{"position":[[12,8],[257,9]]}}}],["platformio",{"_index":1318,"t":{"245":{"position":[[47,10]]}}}],["platforms",{"_index":1125,"t":{"134":{"position":[[164,10]]},"201":{"position":[[406,10]]}}}],["play",{"_index":499,"t":{"56":{"position":[[45,4]]},"101":{"position":[[234,4]]},"107":{"position":[[549,4]]}}}],["play_sound",{"_index":902,"t":{"107":{"position":[[1642,10]]}}}],["play_sound(\"get_off_couch.mp3",{"_index":892,"t":{"107":{"position":[[1245,31]]}}}],["play_sound(file_path",{"_index":867,"t":{"107":{"position":[[582,22]]}}}],["plays",{"_index":901,"t":{"107":{"position":[[1603,5]]}}}],["please",{"_index":532,"t":{"60":{"position":[[145,6]]},"89":{"position":[[100,6]]},"154":{"position":[[146,6]]},"245":{"position":[[232,6]]}}}],["plug",{"_index":1287,"t":{"239":{"position":[[206,4]]}}}],["popular",{"_index":174,"t":{"20":{"position":[[41,7]]},"24":{"position":[[12,7]]},"58":{"position":[[71,7]]}}}],["port",{"_index":1293,"t":{"239":{"position":[[403,5]]}}}],["ports",{"_index":1219,"t":{"180":{"position":[[268,6],[395,6]]}}}],["positive",{"_index":968,"t":{"110":{"position":[[1605,8]]}}}],["possible",{"_index":608,"t":{"62":{"position":[[1740,9]]},"239":{"position":[[44,8]]}}}],["power",{"_index":717,"t":{"82":{"position":[[49,5]]}}}],["powered",{"_index":13,"t":{"4":{"position":[[49,7]]},"6":{"position":[[65,7]]},"16":{"position":[[212,7]]}}}],["powerful",{"_index":10,"t":{"4":{"position":[[23,8]]},"10":{"position":[[202,8]]},"16":{"position":[[586,8]]}}}],["practice",{"_index":648,"t":{"71":{"position":[[3,9]]},"91":{"position":[[106,9]]}}}],["practices",{"_index":381,"t":{"36":{"position":[[57,9]]},"48":{"position":[[204,10]]},"89":{"position":[[125,9],[277,9]]}}}],["pre",{"_index":834,"t":{"101":{"position":[[241,3]]},"103":{"position":[[88,3]]},"107":{"position":[[558,3],[1613,3]]}}}],["precisely",{"_index":1093,"t":{"124":{"position":[[332,9]]}}}],["preferable",{"_index":236,"t":{"26":{"position":[[225,10]]}}}],["prefix",{"_index":807,"t":{"97":{"position":[[183,9]]}}}],["prepare",{"_index":1184,"t":{"154":{"position":[[314,7]]}}}],["prerequisites",{"_index":727,"t":{"84":{"position":[[72,14]]}}}],["present",{"_index":1253,"t":{"197":{"position":[[302,8]]}}}],["prevent",{"_index":820,"t":{"99":{"position":[[200,7]]}}}],["previous",{"_index":269,"t":{"28":{"position":[[580,8]]}}}],["print",{"_index":338,"t":{"34":{"position":[[391,5]]}}}],["print(\"dog",{"_index":891,"t":{"107":{"position":[[1209,10]]}}}],["print(\"failed",{"_index":894,"t":{"107":{"position":[[1350,13]]},"116":{"position":[[1870,13]]}}}],["print(daily_summary",{"_index":1054,"t":{"116":{"position":[[2719,20]]}}}],["print(f\"error",{"_index":345,"t":{"34":{"position":[[500,13]]},"107":{"position":[[1300,13]]},"116":{"position":[[2026,13]]}}}],["print(f\"http",{"_index":349,"t":{"34":{"position":[[576,12]]}}}],["print(f\"the",{"_index":594,"t":{"62":{"position":[[1413,11],[2282,11]]},"78":{"position":[[343,11]]},"84":{"position":[[618,11]]},"119":{"position":[[452,11]]}}}],["print(groundlight.__version__",{"_index":1150,"t":{"146":{"position":[[148,31]]},"166":{"position":[[148,31]]},"227":{"position":[[148,31]]}}}],["print(msg",{"_index":1049,"t":{"116":{"position":[[2497,10]]}}}],["prints",{"_index":921,"t":{"110":{"position":[[328,6]]},"116":{"position":[[3110,6]]}}}],["prior",{"_index":294,"t":{"28":{"position":[[1134,5]]}}}],["privileged",{"_index":1229,"t":{"180":{"position":[[529,11]]}}}],["proactively",{"_index":963,"t":{"110":{"position":[[1489,11]]}}}],["proceed",{"_index":1141,"t":{"142":{"position":[[73,7]]},"162":{"position":[[73,7]]},"186":{"position":[[80,7]]},"209":{"position":[[79,7]]},"223":{"position":[[73,7]]}}}],["process",{"_index":484,"t":{"54":{"position":[[52,7]]},"136":{"position":[[240,7]]}}}],["processes",{"_index":455,"t":{"50":{"position":[[285,10]]},"56":{"position":[[127,10]]},"60":{"position":[[134,10]]}}}],["processing",{"_index":194,"t":{"24":{"position":[[26,10]]},"28":{"position":[[260,10]]}}}],["processor",{"_index":52,"t":{"8":{"position":[[73,9]]}}}],["product",{"_index":514,"t":{"56":{"position":[[325,7]]}}}],["production",{"_index":442,"t":{"48":{"position":[[168,11]]}}}],["productivity",{"_index":458,"t":{"50":{"position":[[318,13]]}}}],["products",{"_index":507,"t":{"56":{"position":[[182,9]]}}}],["program",{"_index":1294,"t":{"239":{"position":[[424,7]]}}}],["programatically",{"_index":663,"t":{"75":{"position":[[217,15]]}}}],["progress",{"_index":304,"t":{"30":{"position":[[129,9]]}}}],["progressively",{"_index":704,"t":{"80":{"position":[[224,13]]}}}],["project",{"_index":1214,"t":{"180":{"position":[[125,7],[617,7]]},"245":{"position":[[58,7]]}}}],["projects",{"_index":1199,"t":{"156":{"position":[[60,9]]},"174":{"position":[[60,9]]},"194":{"position":[[60,9]]},"217":{"position":[[60,9]]},"235":{"position":[[60,9]]}}}],["promotions",{"_index":944,"t":{"110":{"position":[[1014,10]]}}}],["prompt",{"_index":1279,"t":{"225":{"position":[[84,7]]},"231":{"position":[[55,6]]},"239":{"position":[[463,6]]}}}],["prompted",{"_index":1290,"t":{"239":{"position":[[353,9]]}}}],["proper",{"_index":847,"t":{"103":{"position":[[176,6]]}}}],["properly",{"_index":1264,"t":{"201":{"position":[[117,9]]}}}],["provide",{"_index":39,"t":{"4":{"position":[[374,7]]},"62":{"position":[[700,7]]},"110":{"position":[[1163,7]]}}}],["provides",{"_index":9,"t":{"4":{"position":[[12,8]]},"30":{"position":[[228,8]]}}}],["psram",{"_index":1310,"t":{"243":{"position":[[180,5],[229,5]]}}}],["public",{"_index":579,"t":{"62":{"position":[[1020,6]]}}}],["publish",{"_index":1243,"t":{"190":{"position":[[110,7]]},"213":{"position":[[109,7]]}}}],["purchase",{"_index":1312,"t":{"243":{"position":[[199,9],[250,9],[276,9],[318,9]]}}}],["put",{"_index":780,"t":{"91":{"position":[[353,3]]}}}],["py3.10",{"_index":1177,"t":{"154":{"position":[[138,7]]}}}],["pyaudio",{"_index":852,"t":{"105":{"position":[[150,7]]},"107":{"position":[[243,7]]}}}],["pyaudio.pyaudio",{"_index":874,"t":{"107":{"position":[[654,17]]}}}],["python",{"_index":163,"t":{"18":{"position":[[543,6]]},"78":{"position":[[62,7],[268,6]]},"84":{"position":[[38,6],[323,6],[543,6],[671,6]]},"103":{"position":[[21,6]]},"105":{"position":[[16,6],[136,6]]},"107":{"position":[[89,6],[1719,6]]},"112":{"position":[[21,6]]},"114":{"position":[[16,6],[163,6]]},"116":{"position":[[89,6],[3302,6]]},"138":{"position":[[92,6]]},"140":{"position":[[61,6],[86,7]]},"142":{"position":[[18,6]]},"146":{"position":[[99,6],[117,6]]},"148":{"position":[[225,6]]},"150":{"position":[[24,6],[65,6],[221,6]]},"152":{"position":[[62,6],[272,6],[307,6],[333,6]]},"154":{"position":[[24,6],[98,6],[190,6],[227,6]]},"158":{"position":[[92,6]]},"160":{"position":[[61,6],[86,7]]},"162":{"position":[[18,6]]},"166":{"position":[[99,6],[117,6]]},"168":{"position":[[225,6]]},"170":{"position":[[24,6],[65,6],[221,6]]},"172":{"position":[[20,6],[55,6],[109,7],[130,6],[165,6],[191,6]]},"182":{"position":[[108,6]]},"184":{"position":[[68,6],[93,7]]},"186":{"position":[[18,6]]},"199":{"position":[[80,7]]},"205":{"position":[[99,6]]},"207":{"position":[[67,6],[92,7]]},"209":{"position":[[18,6]]},"219":{"position":[[94,6]]},"221":{"position":[[61,6],[86,7]]},"223":{"position":[[18,6]]},"227":{"position":[[99,6],[117,6]]},"229":{"position":[[225,6]]},"231":{"position":[[24,6],[71,6],[227,6]]},"233":{"position":[[20,6],[55,6],[110,6],[136,6]]}}}],["python2",{"_index":1145,"t":{"144":{"position":[[131,7]]},"164":{"position":[[131,7]]},"225":{"position":[[137,7]]}}}],["python3",{"_index":1165,"t":{"152":{"position":[[147,7],[233,7],[353,7]]},"154":{"position":[[459,9],[549,7]]},"172":{"position":[[211,7]]},"233":{"position":[[156,7]]}}}],["python3.8",{"_index":1188,"t":{"154":{"position":[[412,9],[422,9],[476,9],[674,9]]}}}],["quality",{"_index":459,"t":{"50":{"position":[[336,7]]},"56":{"position":[[87,7],[244,7],[333,8]]}}}],["queries",{"_index":559,"t":{"62":{"position":[[512,7],[1872,7]]},"75":{"position":[[50,7]]},"80":{"position":[[539,8],[604,7]]}}}],["query",{"_index":542,"t":{"62":{"position":[[141,6],[275,5],[725,5],[2275,6]]},"65":{"position":[[59,6],[291,6]]},"71":{"position":[[60,6],[115,6]]},"75":{"position":[[442,5]]},"107":{"position":[[1331,6]]},"116":{"position":[[2057,6]]},"126":{"position":[[4,5],[69,6]]}}}],["query=\"are",{"_index":1074,"t":{"119":{"position":[[268,10]]}}}],["query=\"is",{"_index":189,"t":{"22":{"position":[[221,9]]},"62":{"position":[[1200,9]]},"65":{"position":[[422,9]]},"75":{"position":[[716,9]]},"78":{"position":[[173,9]]},"84":{"position":[[448,9]]},"116":{"position":[[1472,9]]}}}],["question",{"_index":1070,"t":{"119":{"position":[[154,9],[525,9]]},"122":{"position":[[5,8]]},"124":{"position":[[5,8],[290,8]]},"128":{"position":[[5,8]]},"130":{"position":[[21,8]]},"132":{"position":[[11,8]]}}}],["questions",{"_index":1066,"t":{"119":{"position":[[49,9]]},"124":{"position":[[155,9],[252,9]]},"245":{"position":[[178,9]]}}}],["queue",{"_index":669,"t":{"75":{"position":[[477,5]]}}}],["quickly",{"_index":23,"t":{"4":{"position":[[176,7]]}}}],["quite",{"_index":1258,"t":{"199":{"position":[[168,5]]},"203":{"position":[[77,5]]}}}],["raise",{"_index":320,"t":{"34":{"position":[[59,5]]}}}],["raised",{"_index":385,"t":{"38":{"position":[[57,7]]}}}],["random",{"_index":240,"t":{"26":{"position":[[299,6]]}}}],["raspberry",{"_index":89,"t":{"12":{"position":[[119,9]]},"136":{"position":[[117,9]]},"205":{"position":[[56,9]]},"207":{"position":[[53,9]]},"209":{"position":[[57,9]]},"213":{"position":[[37,9]]},"215":{"position":[[50,9]]}}}],["rate",{"_index":372,"t":{"34":{"position":[[927,4]]},"44":{"position":[[121,4]]}}}],["rate=wf.getframerate",{"_index":877,"t":{"107":{"position":[[767,23]]}}}],["rb",{"_index":872,"t":{"107":{"position":[[644,5]]}}}],["reach",{"_index":533,"t":{"60":{"position":[[152,5]]}}}],["reaches",{"_index":590,"t":{"62":{"position":[[1330,7]]}}}],["reaching",{"_index":1321,"t":{"245":{"position":[[293,8]]}}}],["ready",{"_index":1137,"t":{"136":{"position":[[277,5]]},"144":{"position":[[257,5]]},"156":{"position":[[11,5]]},"164":{"position":[[257,5]]},"174":{"position":[[11,5]]},"188":{"position":[[212,5]]},"194":{"position":[[11,5]]},"211":{"position":[[212,5]]},"217":{"position":[[11,5]]},"225":{"position":[[263,5]]},"235":{"position":[[11,5]]}}}],["real",{"_index":550,"t":{"62":{"position":[[337,4]]},"80":{"position":[[298,4]]},"82":{"position":[[157,4]]}}}],["rearranging",{"_index":957,"t":{"110":{"position":[[1297,11]]}}}],["reason",{"_index":346,"t":{"34":{"position":[[514,7]]}}}],["receive",{"_index":673,"t":{"75":{"position":[[541,7]]},"110":{"position":[[1949,7]]},"119":{"position":[[172,7]]}}}],["receiver",{"_index":992,"t":{"116":{"position":[[788,9],[869,8],[1089,9]]}}}],["receiver=\"manager@example.com",{"_index":1056,"t":{"116":{"position":[[2784,31]]}}}],["recognize",{"_index":477,"t":{"52":{"position":[[217,9]]}}}],["recommend",{"_index":774,"t":{"91":{"position":[[119,9]]},"154":{"position":[[82,9]]}}}],["recommended",{"_index":773,"t":{"91":{"position":[[81,14]]},"103":{"position":[[160,11]]}}}],["record",{"_index":840,"t":{"101":{"position":[[343,6]]}}}],["recorded",{"_index":835,"t":{"101":{"position":[[245,8]]},"103":{"position":[[92,8]]},"107":{"position":[[562,8],[1617,8]]}}}],["recover",{"_index":423,"t":{"44":{"position":[[167,7]]}}}],["red",{"_index":279,"t":{"28":{"position":[[857,3]]}}}],["reduce",{"_index":489,"t":{"54":{"position":[[134,6]]}}}],["reduced",{"_index":122,"t":{"16":{"position":[[360,7]]},"201":{"position":[[136,7]]}}}],["reduces",{"_index":141,"t":{"18":{"position":[[44,7]]}}}],["reducing",{"_index":510,"t":{"56":{"position":[[261,8]]},"110":{"position":[[745,8]]}}}],["refer",{"_index":1200,"t":{"156":{"position":[[109,5]]},"174":{"position":[[109,5]]},"194":{"position":[[109,5]]},"217":{"position":[[109,5]]},"235":{"position":[[109,5]]}}}],["refers",{"_index":1113,"t":{"130":{"position":[[119,6]]}}}],["regularly",{"_index":767,"t":{"89":{"position":[[551,9]]}}}],["relatively",{"_index":1022,"t":{"116":{"position":[[1548,10]]}}}],["release",{"_index":221,"t":{"24":{"position":[[526,7]]}}}],["relevant",{"_index":409,"t":{"42":{"position":[[84,8]]}}}],["reliability",{"_index":722,"t":{"82":{"position":[[142,11]]}}}],["relies",{"_index":1270,"t":{"201":{"position":[[254,6]]}}}],["remains",{"_index":430,"t":{"46":{"position":[[90,7]]}}}],["remote",{"_index":1236,"t":{"180":{"position":[[738,6]]}}}],["rephrased",{"_index":1087,"t":{"124":{"position":[[39,9]]}}}],["replace",{"_index":1237,"t":{"180":{"position":[[753,7]]}}}],["repo",{"_index":1246,"t":{"192":{"position":[[82,5]]},"215":{"position":[[80,5]]}}}],["repositories",{"_index":46,"t":{"6":{"position":[[21,12]]},"154":{"position":[[298,13]]}}}],["repository",{"_index":49,"t":{"8":{"position":[[0,11]]},"10":{"position":[[0,11]]},"12":{"position":[[0,11]]},"91":{"position":[[263,11],[662,11]]},"245":{"position":[[279,10]]}}}],["request",{"_index":353,"t":{"34":{"position":[[653,8],[666,7],[789,7]]}}}],["requested",{"_index":368,"t":{"34":{"position":[[865,9]]}}}],["requests",{"_index":371,"t":{"34":{"position":[[913,9]]},"62":{"position":[[960,8]]},"75":{"position":[[642,8]]}}}],["require",{"_index":600,"t":{"62":{"position":[[1586,7]]},"243":{"position":[[87,7]]}}}],["required",{"_index":853,"t":{"107":{"position":[[135,8]]},"114":{"position":[[112,8]]},"116":{"position":[[135,8]]},"176":{"position":[[165,9]]}}}],["requires",{"_index":601,"t":{"62":{"position":[[1633,8]]},"84":{"position":[[29,8]]},"138":{"position":[[83,8]]},"158":{"position":[[83,8]]},"182":{"position":[[99,8]]},"201":{"position":[[339,8]]},"205":{"position":[[90,8]]},"219":{"position":[[85,8]]}}}],["resilient",{"_index":443,"t":{"48":{"position":[[241,9]]}}}],["resource",{"_index":369,"t":{"34":{"position":[[875,8]]},"80":{"position":[[256,8]]}}}],["resources",{"_index":132,"t":{"16":{"position":[[512,9]]}}}],["response",{"_index":547,"t":{"62":{"position":[[236,9],[416,9],[885,9],[1814,8]]},"75":{"position":[[208,8]]},"119":{"position":[[192,9]]}}}],["responses",{"_index":665,"t":{"75":{"position":[[292,9]]}}}],["result",{"_index":620,"t":{"62":{"position":[[2180,6]]},"71":{"position":[[45,6]]}}}],["results",{"_index":555,"t":{"62":{"position":[[448,7],[536,7],[1789,7],[1979,7]]},"69":{"position":[[72,7],[149,7]]},"73":{"position":[[72,7],[157,7]]}}}],["ret",{"_index":860,"t":{"107":{"position":[[378,4],[419,4]]},"116":{"position":[[491,4],[532,4]]}}}],["retail",{"_index":905,"t":{"110":{"position":[[62,6],[464,6],[1699,6]]}}}],["retailers",{"_index":954,"t":{"110":{"position":[[1226,9],[1546,9]]}}}],["retry",{"_index":417,"t":{"44":{"position":[[36,5]]}}}],["return",{"_index":863,"t":{"107":{"position":[[447,6],[516,6]]},"110":{"position":[[1666,6]]},"116":{"position":[[560,6],[629,6],[1300,6]]},"119":{"position":[[417,6]]}}}],["returned",{"_index":619,"t":{"62":{"position":[[2171,8],[2252,8]]}}}],["reverse",{"_index":264,"t":{"28":{"position":[[450,7],[658,7]]}}}],["review",{"_index":705,"t":{"80":{"position":[[314,7],[522,6]]}}}],["reviewer",{"_index":650,"t":{"71":{"position":[[94,8]]},"124":{"position":[[218,9]]}}}],["revoke",{"_index":768,"t":{"89":{"position":[[565,6]]},"99":{"position":[[29,6],[119,6]]}}}],["revoking",{"_index":817,"t":{"99":{"position":[[143,8],[335,8]]}}}],["revolutionize",{"_index":531,"t":{"60":{"position":[[86,13]]}}}],["rgb",{"_index":201,"t":{"24":{"position":[[173,3]]},"26":{"position":[[471,3]]},"28":{"position":[[341,3],[599,3],[638,3],[749,3]]}}}],["rgb_img",{"_index":274,"t":{"28":{"position":[[790,10]]}}}],["right",{"_index":707,"t":{"80":{"position":[[386,5]]}}}],["road",{"_index":328,"t":{"34":{"position":[[259,5],[295,4]]}}}],["robotic",{"_index":491,"t":{"54":{"position":[[204,7]]},"58":{"position":[[85,7]]}}}],["robots",{"_index":476,"t":{"52":{"position":[[207,6]]},"58":{"position":[[117,7],[200,7]]}}}],["robust",{"_index":315,"t":{"32":{"position":[[156,6]]},"36":{"position":[[98,6]]},"48":{"position":[[230,6]]}}}],["role",{"_index":501,"t":{"56":{"position":[[58,4]]}}}],["rotate",{"_index":766,"t":{"89":{"position":[[533,6]]}}}],["routed",{"_index":1090,"t":{"124":{"position":[[172,6]]}}}],["rtsp",{"_index":57,"t":{"8":{"position":[[132,4]]},"178":{"position":[[62,4]]}}}],["run",{"_index":63,"t":{"8":{"position":[[182,3],[235,3]]},"84":{"position":[[663,3]]},"107":{"position":[[1711,3]]},"116":{"position":[[3294,3]]},"144":{"position":[[42,3]]},"150":{"position":[[60,4]]},"154":{"position":[[472,3],[722,3]]},"164":{"position":[[42,3]]},"170":{"position":[[60,4]]},"172":{"position":[[74,3]]},"180":{"position":[[583,3]]},"188":{"position":[[42,3]]},"190":{"position":[[70,3],[81,3]]},"197":{"position":[[36,3]]},"211":{"position":[[42,3]]},"213":{"position":[[69,3],[80,3]]},"225":{"position":[[42,3]]},"231":{"position":[[66,4]]},"233":{"position":[[74,3]]}}}],["running",{"_index":976,"t":{"110":{"position":[[1885,7]]},"152":{"position":[[325,7]]},"172":{"position":[[183,7]]},"192":{"position":[[37,7]]},"215":{"position":[[37,7]]},"233":{"position":[[128,7]]}}}],["s",{"_index":1171,"t":{"152":{"position":[[270,1]]}}}],["sales",{"_index":946,"t":{"110":{"position":[[1037,5],[1656,5]]}}}],["same",{"_index":631,"t":{"65":{"position":[[139,4]]}}}],["sample",{"_index":36,"t":{"4":{"position":[[326,6]]},"10":{"position":[[57,6]]},"12":{"position":[[71,6]]},"16":{"position":[[526,6]]},"26":{"position":[[266,6]]}}}],["satisfaction",{"_index":961,"t":{"110":{"position":[[1424,13],[1577,12]]}}}],["save",{"_index":903,"t":{"107":{"position":[[1663,4]]},"116":{"position":[[3244,4]]}}}],["saves",{"_index":237,"t":{"26":{"position":[[245,5]]}}}],["saw",{"_index":1091,"t":{"124":{"position":[[281,3]]}}}],["scene",{"_index":287,"t":{"28":{"position":[[987,5],[1157,6]]}}}],["scheduling",{"_index":929,"t":{"110":{"position":[[549,11],[666,11]]}}}],["score",{"_index":568,"t":{"62":{"position":[[673,5],[2246,5]]}}}],["script",{"_index":734,"t":{"84":{"position":[[330,7]]},"107":{"position":[[96,6],[1672,6]]},"116":{"position":[[96,6],[3253,6]]}}}],["sdk",{"_index":5,"t":{"2":{"position":[[53,3]]},"18":{"position":[[201,3],[274,3]]},"20":{"position":[[14,3]]},"22":{"position":[[16,3]]},"24":{"position":[[206,3]]},"26":{"position":[[16,3]]},"28":{"position":[[571,3]]},"32":{"position":[[48,4]]},"34":{"position":[[50,3]]},"36":{"position":[[34,4]]},"40":{"position":[[161,3]]},"48":{"position":[[342,4]]},"78":{"position":[[398,3]]},"84":{"position":[[24,4]]},"87":{"position":[[23,3]]},"91":{"position":[[31,3],[279,3]]},"103":{"position":[[12,3]]},"105":{"position":[[81,3]]},"112":{"position":[[12,3]]},"114":{"position":[[81,4]]},"119":{"position":[[409,3]]},"134":{"position":[[27,3],[149,3]]},"136":{"position":[[343,4]]},"138":{"position":[[49,3],[79,3]]},"142":{"position":[[144,4]]},"144":{"position":[[27,3],[232,3]]},"146":{"position":[[28,3]]},"148":{"position":[[39,3],[281,3]]},"156":{"position":[[48,3],[104,4]]},"158":{"position":[[49,3],[79,3]]},"162":{"position":[[144,4]]},"164":{"position":[[27,3],[232,3]]},"166":{"position":[[28,3]]},"168":{"position":[[39,3],[281,3]]},"174":{"position":[[48,3],[104,4]]},"182":{"position":[[49,3],[95,3]]},"186":{"position":[[151,4]]},"188":{"position":[[27,3],[187,3]]},"194":{"position":[[48,3],[104,4]]},"197":{"position":[[16,3],[100,3],[220,3]]},"199":{"position":[[104,3],[248,4]]},"201":{"position":[[72,3],[241,3]]},"205":{"position":[[49,3],[86,3]]},"209":{"position":[[150,4]]},"211":{"position":[[27,3],[187,3]]},"217":{"position":[[48,3],[104,4]]},"219":{"position":[[49,3],[81,3]]},"223":{"position":[[144,4]]},"225":{"position":[[27,3],[238,3]]},"227":{"position":[[28,3]]},"229":{"position":[[39,3],[281,3]]},"235":{"position":[[48,3],[104,4]]}}}],["seamless",{"_index":528,"t":{"58":{"position":[[340,8]]}}}],["seamlessly",{"_index":453,"t":{"50":{"position":[[239,10]]}}}],["second=0",{"_index":1030,"t":{"116":{"position":[[1712,9],[2346,9]]}}}],["seconds",{"_index":575,"t":{"62":{"position":[[858,7],[1292,7]]}}}],["secret",{"_index":749,"t":{"87":{"position":[[287,6]]}}}],["section",{"_index":1154,"t":{"148":{"position":[[294,7]]},"168":{"position":[[294,7]]},"229":{"position":[[294,7]]}}}],["secure",{"_index":759,"t":{"89":{"position":[[334,6]]}}}],["securely",{"_index":800,"t":{"95":{"position":[[249,9]]}}}],["security",{"_index":736,"t":{"87":{"position":[[46,8]]},"89":{"position":[[116,8]]}}}],["see",{"_index":47,"t":{"6":{"position":[[37,3]]},"30":{"position":[[66,3]]},"62":{"position":[[2227,3]]},"65":{"position":[[453,6]]},"84":{"position":[[68,3]]},"95":{"position":[[283,3]]},"97":{"position":[[32,3]]},"128":{"position":[[139,3]]},"150":{"position":[[89,3]]},"152":{"position":[[173,3]]},"170":{"position":[[89,3]]},"180":{"position":[[33,3],[818,3]]},"192":{"position":[[66,3]]},"215":{"position":[[64,3]]},"231":{"position":[[95,3]]},"239":{"position":[[457,3]]}}}],["seeedstudio",{"_index":1314,"t":{"243":{"position":[[292,11]]}}}],["semantics",{"_index":696,"t":{"78":{"position":[[507,9]]}}}],["semver",{"_index":695,"t":{"78":{"position":[[500,6]]}}}],["send",{"_index":205,"t":{"24":{"position":[[267,4],[480,4]]},"112":{"position":[[123,4]]},"116":{"position":[[662,4]]}}}],["send_email",{"_index":1062,"t":{"116":{"position":[[3223,10]]}}}],["send_email(sender",{"_index":991,"t":{"116":{"position":[[769,18]]}}}],["send_email(sender=\"counterbot@example.com",{"_index":1055,"t":{"116":{"position":[[2740,43]]}}}],["sender",{"_index":996,"t":{"116":{"position":[[850,6]]}}}],["sending",{"_index":266,"t":{"28":{"position":[[483,7],[691,7]]}}}],["sends",{"_index":91,"t":{"12":{"position":[[192,5]]}}}],["sense",{"_index":1110,"t":{"130":{"position":[[58,5]]},"243":{"position":[[312,5]]}}}],["serial",{"_index":1292,"t":{"239":{"position":[[396,6],[556,7]]}}}],["server",{"_index":311,"t":{"32":{"position":[[71,6]]},"34":{"position":[[983,6],[1022,6]]},"48":{"position":[[280,6]]},"116":{"position":[[939,6]]},"136":{"position":[[179,6]]},"180":{"position":[[245,6],[373,6]]}}}],["server.login(sender",{"_index":1004,"t":{"116":{"position":[[1004,20]]}}}],["server.quit",{"_index":1009,"t":{"116":{"position":[[1105,13]]}}}],["server.sendmail(sender",{"_index":1008,"t":{"116":{"position":[[1065,23]]}}}],["server.starttls",{"_index":1003,"t":{"116":{"position":[[986,17]]}}}],["service",{"_index":909,"t":{"110":{"position":[[119,7],[224,7],[384,7],[600,7],[1143,7],[1362,7],[1469,7],[1784,7],[1981,7]]},"116":{"position":[[1506,7],[2831,7]]}}}],["service_counter_monitor.py",{"_index":1063,"t":{"116":{"position":[[3263,26],[3309,26]]}}}],["services",{"_index":739,"t":{"87":{"position":[[160,8]]},"180":{"position":[[172,9]]}}}],["set",{"_index":87,"t":{"12":{"position":[[110,3]]},"18":{"position":[[652,3]]},"62":{"position":[[584,3],[774,3],[1750,3]]},"84":{"position":[[190,3]]},"134":{"position":[[126,3]]}}}],["setting",{"_index":158,"t":{"18":{"position":[[433,7]]}}}],["settings",{"_index":290,"t":{"28":{"position":[[1066,9]]}}}],["share",{"_index":754,"t":{"89":{"position":[[88,5]]}}}],["short",{"_index":808,"t":{"97":{"position":[[195,6]]}}}],["side",{"_index":378,"t":{"34":{"position":[[1029,4]]}}}],["simple",{"_index":28,"t":{"4":{"position":[[232,6]]},"62":{"position":[[24,6]]},"122":{"position":[[65,6]]}}}],["single",{"_index":64,"t":{"8":{"position":[[196,6]]},"30":{"position":[[239,6]]}}}],["site",{"_index":330,"t":{"34":{"position":[[283,4]]}}}],["situations",{"_index":661,"t":{"75":{"position":[[109,10]]}}}],["size=(600",{"_index":245,"t":{"26":{"position":[[385,10]]}}}],["sky",{"_index":1109,"t":{"128":{"position":[[161,5]]}}}],["slack",{"_index":1301,"t":{"241":{"position":[[105,5]]}}}],["sleep",{"_index":895,"t":{"107":{"position":[[1385,5]]}}}],["slight",{"_index":1099,"t":{"126":{"position":[[80,6]]}}}],["small",{"_index":1248,"t":{"197":{"position":[[43,5]]}}}],["sms",{"_index":1299,"t":{"241":{"position":[[87,3]]}}}],["smtp",{"_index":982,"t":{"112":{"position":[[108,4]]}}}],["smtplib",{"_index":983,"t":{"116":{"position":[[185,7]]}}}],["smtplib.smtp('smtp.example.com",{"_index":1001,"t":{"116":{"position":[[948,32]]}}}],["snippet",{"_index":806,"t":{"97":{"position":[[175,7]]}}}],["solution",{"_index":907,"t":{"110":{"position":[[79,9],[1716,9]]}}}],["solutions",{"_index":168,"t":{"18":{"position":[[630,9]]}}}],["sometimes",{"_index":284,"t":{"28":{"position":[[924,9]]},"201":{"position":[[417,9]]}}}],["somewhat",{"_index":1103,"t":{"128":{"position":[[17,8]]},"132":{"position":[[52,8]]}}}],["sortable",{"_index":746,"t":{"87":{"position":[[258,8]]}}}],["sorting",{"_index":493,"t":{"54":{"position":[[242,8]]}}}],["sound",{"_index":836,"t":{"101":{"position":[[254,5]]},"103":{"position":[[101,5]]},"107":{"position":[[571,6],[1626,5]]}}}],["source",{"_index":675,"t":{"75":{"position":[[569,7]]},"178":{"position":[[40,6]]},"201":{"position":[[81,6]]},"243":{"position":[[122,6]]},"245":{"position":[[4,6]]}}}],["sources",{"_index":300,"t":{"30":{"position":[[57,8],[209,8],[290,8]]}}}],["space",{"_index":1262,"t":{"201":{"position":[[21,5],[388,5]]}}}],["speakers",{"_index":838,"t":{"101":{"position":[[280,9]]}}}],["specific",{"_index":383,"t":{"38":{"position":[[15,8]]},"40":{"position":[[64,8]]},"110":{"position":[[898,8]]},"124":{"position":[[60,9]]},"126":{"position":[[18,8]]}}}],["specifically",{"_index":1266,"t":{"201":{"position":[[159,13]]}}}],["speed",{"_index":721,"t":{"82":{"position":[[109,5]]}}}],["spills",{"_index":1117,"t":{"132":{"position":[[126,6]]}}}],["staff",{"_index":927,"t":{"110":{"position":[[528,5],[645,5]]}}}],["standard",{"_index":97,"t":{"12":{"position":[[263,8]]},"26":{"position":[[77,8]]},"28":{"position":[[57,8]]},"199":{"position":[[34,8]]}}}],["standards",{"_index":226,"t":{"26":{"position":[[133,10]]},"56":{"position":[[95,9]]}}}],["start",{"_index":657,"t":{"75":{"position":[[21,5]]},"136":{"position":[[286,5]]},"156":{"position":[[20,5]]},"174":{"position":[[20,5]]},"194":{"position":[[20,5]]},"217":{"position":[[20,5]]},"235":{"position":[[20,5]]}}}],["start_of_business",{"_index":1012,"t":{"116":{"position":[[1168,17],[1307,17]]}}}],["starting",{"_index":138,"t":{"18":{"position":[[0,8]]},"150":{"position":[[110,8]]},"170":{"position":[[110,8]]},"231":{"position":[[116,8]]}}}],["starts",{"_index":706,"t":{"80":{"position":[[371,6]]}}}],["status",{"_index":348,"t":{"34":{"position":[[564,6],[589,6],[629,6]]}}}],["step",{"_index":1123,"t":{"134":{"position":[[78,4],[86,4]]}}}],["steps",{"_index":1142,"t":{"142":{"position":[[100,5]]},"162":{"position":[[100,5]]},"186":{"position":[[107,5]]},"209":{"position":[[106,5]]},"223":{"position":[[100,5]]},"239":{"position":[[290,5]]}}}],["still",{"_index":302,"t":{"30":{"position":[[106,5]]},"62":{"position":[[1930,5]]},"75":{"position":[[254,5]]},"154":{"position":[[13,5]]}}}],["storage",{"_index":252,"t":{"28":{"position":[[111,8]]}}}],["store",{"_index":758,"t":{"89":{"position":[[312,5],[408,5]]},"95":{"position":[[240,5],[318,5]]},"110":{"position":[[617,5],[1078,5],[1313,5],[1408,6],[1728,5],[1928,5],[2082,5]]}}}],["store's",{"_index":953,"t":{"110":{"position":[[1210,7]]}}}],["stored",{"_index":197,"t":{"24":{"position":[[109,6],[148,6]]}}}],["storing",{"_index":775,"t":{"91":{"position":[[129,7]]}}}],["str",{"_index":625,"t":{"65":{"position":[[54,4],[66,4],[286,4],[298,4]]}}}],["stream",{"_index":51,"t":{"8":{"position":[[66,6]]},"107":{"position":[[672,6]]},"178":{"position":[[67,7]]}}}],["stream.close",{"_index":882,"t":{"107":{"position":[[912,14]]}}}],["stream.stop_stream",{"_index":881,"t":{"107":{"position":[[891,20]]}}}],["stream.write(data",{"_index":880,"t":{"107":{"position":[[844,18]]}}}],["stream:local",{"_index":67,"t":{"8":{"position":[[239,12]]}}}],["stream=true).raw",{"_index":583,"t":{"62":{"position":[[1138,17]]},"75":{"position":[[872,17]]}}}],["streaming",{"_index":1244,"t":{"190":{"position":[[140,9]]},"213":{"position":[[139,9]]}}}],["streamline",{"_index":497,"t":{"54":{"position":[[313,10]]}}}],["streams",{"_index":58,"t":{"8":{"position":[[137,7]]}}}],["strict",{"_index":509,"t":{"56":{"position":[[237,6]]}}}],["string",{"_index":750,"t":{"87":{"position":[[294,7]]}}}],["subject",{"_index":694,"t":{"78":{"position":[[447,7]]},"116":{"position":[[798,8],[895,7]]}}}],["subject=\"daily",{"_index":1057,"t":{"116":{"position":[[2816,14]]}}}],["subjective",{"_index":1115,"t":{"132":{"position":[[61,11]]}}}],["submit_image_query",{"_index":182,"t":{"22":{"position":[[54,19]]},"24":{"position":[[284,18]]},"62":{"position":[[1710,18]]},"71":{"position":[[182,20]]},"75":{"position":[[351,20]]}}}],["submits",{"_index":900,"t":{"107":{"position":[[1515,7]]},"116":{"position":[[2986,7]]}}}],["submitting",{"_index":893,"t":{"107":{"position":[[1314,10]]},"116":{"position":[[2040,10]]}}}],["subtle",{"_index":278,"t":{"28":{"position":[[845,6]]}}}],["such",{"_index":66,"t":{"8":{"position":[[219,4]]},"18":{"position":[[334,5]]},"32":{"position":[[134,4]]},"38":{"position":[[65,4]]},"44":{"position":[[95,4]]},"52":{"position":[[89,4]]},"58":{"position":[[99,4]]},"89":{"position":[[351,4]]},"110":{"position":[[863,4]]},"197":{"position":[[66,5]]}}}],["sudo",{"_index":1163,"t":{"152":{"position":[[114,4],[130,4],[216,4],[257,4]]},"154":{"position":[[347,4],[388,4],[497,4],[669,4],[733,4]]}}}],["summaries",{"_index":978,"t":{"110":{"position":[[1964,9]]}}}],["summary",{"_index":922,"t":{"110":{"position":[[341,7]]},"116":{"position":[[2429,7],[3119,7]]}}}],["summary:\\n",{"_index":1052,"t":{"116":{"position":[[2657,11]]}}}],["supplies",{"_index":1280,"t":{"237":{"position":[[12,8]]}}}],["support",{"_index":1322,"t":{"245":{"position":[[313,7]]}}}],["supported",{"_index":844,"t":{"103":{"position":[[44,9]]},"110":{"position":[[1758,9]]},"112":{"position":[[44,9]]}}}],["supports",{"_index":1296,"t":{"239":{"position":[[543,8]]},"241":{"position":[[9,8]]}}}],["sure",{"_index":822,"t":{"99":{"position":[[278,4]]},"101":{"position":[[335,4]]}}}],["surprisingly",{"_index":277,"t":{"28":{"position":[[832,12]]}}}],["swapped",{"_index":281,"t":{"28":{"position":[[874,8]]}}}],["system",{"_index":16,"t":{"4":{"position":[[78,6]]},"10":{"position":[[236,7]]},"12":{"position":[[148,7]]},"56":{"position":[[212,6]]},"62":{"position":[[690,6]]},"78":{"position":[[32,6]]},"80":{"position":[[359,6]]},"140":{"position":[[53,7]]},"142":{"position":[[57,7]]},"144":{"position":[[147,7]]},"150":{"position":[[236,7]]},"160":{"position":[[53,7]]},"162":{"position":[[57,7]]},"164":{"position":[[147,7]]},"170":{"position":[[236,7]]},"221":{"position":[[53,7]]},"223":{"position":[[57,7]]},"225":{"position":[[153,7]]},"231":{"position":[[242,7]]}}}],["systems",{"_index":449,"t":{"50":{"position":[[159,8]]},"54":{"position":[[71,7],[212,7]]},"80":{"position":[[570,7]]},"152":{"position":[[105,8],[207,8]]}}}],["targeted",{"_index":941,"t":{"110":{"position":[[982,8]]}}}],["tasks",{"_index":465,"t":{"52":{"position":[[82,6],[291,5]]},"54":{"position":[[231,5]]}}}],["team",{"_index":1323,"t":{"245":{"position":[[321,5]]}}}],["technology",{"_index":452,"t":{"50":{"position":[[216,10]]},"52":{"position":[[30,10]]},"54":{"position":[[166,10]]},"56":{"position":[[30,10]]},"58":{"position":[[30,10],[226,10]]},"60":{"position":[[71,10]]},"82":{"position":[[25,10]]}}}],["tell",{"_index":1255,"t":{"197":{"position":[[349,4]]}}}],["temporary",{"_index":424,"t":{"44":{"position":[[180,9]]}}}],["tending",{"_index":464,"t":{"52":{"position":[[74,7],[283,7]]}}}],["terminal",{"_index":1144,"t":{"144":{"position":[[76,9]]},"150":{"position":[[47,8]]},"164":{"position":[[76,9]]},"170":{"position":[[47,8]]},"188":{"position":[[76,9]]},"211":{"position":[[76,9]]}}}],["tested",{"_index":1302,"t":{"243":{"position":[[0,6]]}}}],["testing",{"_index":849,"t":{"103":{"position":[[194,8]]}}}],["tests",{"_index":440,"t":{"48":{"position":[[6,5]]}}}],["text",{"_index":1006,"t":{"116":{"position":[[1042,4],[1099,5]]}}}],["textual",{"_index":343,"t":{"34":{"position":[[467,7]]}}}],["that's",{"_index":703,"t":{"80":{"position":[[154,6]]}}}],["they're",{"_index":1252,"t":{"197":{"position":[[294,7]]}}}],["thing",{"_index":1112,"t":{"130":{"position":[[111,7]]}}}],["things",{"_index":1185,"t":{"154":{"position":[[340,6]]}}}],["think",{"_index":288,"t":{"28":{"position":[[1015,5]]},"124":{"position":[[268,6]]}}}],["those",{"_index":401,"t":{"40":{"position":[[169,5]]},"80":{"position":[[112,5]]}}}],["threshold",{"_index":565,"t":{"62":{"position":[[606,9]]}}}],["thresholds",{"_index":672,"t":{"75":{"position":[[517,11]]}}}],["through",{"_index":831,"t":{"101":{"position":[[135,7]]},"176":{"position":[[108,7]]},"239":{"position":[[278,7]]}}}],["throughout",{"_index":912,"t":{"110":{"position":[[148,10]]}}}],["time",{"_index":259,"t":{"28":{"position":[[287,4]]},"62":{"position":[[342,4]]},"75":{"position":[[1024,4]]},"80":{"position":[[303,4],[557,5]]},"82":{"position":[[162,4]]},"97":{"position":[[259,4]]},"107":{"position":[[162,4]]},"110":{"position":[[370,4]]},"116":{"position":[[162,4]]},"124":{"position":[[313,5]]}}}],["time.sleep(60",{"_index":898,"t":{"107":{"position":[[1426,14]]}}}],["time.sleep(delay",{"_index":1033,"t":{"116":{"position":[[1805,17],[1903,17],[2070,17],[2894,17]]}}}],["timedelta",{"_index":985,"t":{"116":{"position":[[282,9]]}}}],["timedelta(hours=1",{"_index":1032,"t":{"116":{"position":[[1739,18],[2202,18]]}}}],["timer",{"_index":1311,"t":{"243":{"position":[[186,5],[235,5]]}}}],["times",{"_index":934,"t":{"110":{"position":[[759,5],[878,5],[1522,5]]}}}],["tip",{"_index":596,"t":{"62":{"position":[[1458,3]]},"124":{"position":[[128,3]]}}}],["tmp/get",{"_index":1197,"t":{"154":{"position":[[653,8],[684,8]]}}}],["token",{"_index":732,"t":{"84":{"position":[[166,6]]},"87":{"position":[[55,5],[83,7]]},"89":{"position":[[190,6]]},"91":{"position":[[53,6],[244,5],[319,5],[433,5],[562,5],[710,5]]},"95":{"position":[[98,6],[126,5],[203,7],[230,5]]},"97":{"position":[[105,5],[169,5],[229,5],[268,5]]},"99":{"position":[[11,5],[87,6],[130,6],[159,5],[322,5]]},"107":{"position":[[60,6]]},"116":{"position":[[60,6]]}}}],["tokens",{"_index":741,"t":{"87":{"position":[[190,6]]},"89":{"position":[[21,6],[149,7],[304,7],[322,6],[418,7],[525,7],[544,6]]},"91":{"position":[[141,6]]},"93":{"position":[[24,6],[110,7]]},"95":{"position":[[59,6],[343,7]]},"97":{"position":[[11,6],[59,7]]},"156":{"position":[[126,6]]},"174":{"position":[[126,6]]},"194":{"position":[[126,6]]},"217":{"position":[[126,6]]},"235":{"position":[[126,6]]}}}],["tool",{"_index":1281,"t":{"237":{"position":[[23,4]]},"239":{"position":[[5,4]]},"241":{"position":[[4,4]]}}}],["tools",{"_index":479,"t":{"52":{"position":[[237,5]]}}}],["topics",{"_index":43,"t":{"4":{"position":[[423,7]]}}}],["traceback",{"_index":324,"t":{"34":{"position":[[144,9],[399,9]]}}}],["traceback.print_exc",{"_index":340,"t":{"34":{"position":[[423,21]]}}}],["trade",{"_index":536,"t":{"62":{"position":[[50,5]]}}}],["traffic",{"_index":939,"t":{"110":{"position":[[936,8]]}}}],["trained",{"_index":557,"t":{"62":{"position":[[474,7]]},"80":{"position":[[87,7]]}}}],["training",{"_index":617,"t":{"62":{"position":[[2007,8]]}}}],["transforming",{"_index":444,"t":{"50":{"position":[[49,12]]}}}],["transient",{"_index":421,"t":{"44":{"position":[[77,9]]}}}],["trash",{"_index":585,"t":{"62":{"position":[[1214,5]]},"124":{"position":[[97,5]]}}}],["treat",{"_index":751,"t":{"89":{"position":[[11,5]]}}}],["trends",{"_index":935,"t":{"110":{"position":[[792,7],[834,6]]}}}],["trivial",{"_index":1272,"t":{"201":{"position":[[307,7]]}}}],["troubleshoot",{"_index":129,"t":{"16":{"position":[[428,12]]}}}],["true",{"_index":887,"t":{"107":{"position":[[1051,5]]},"116":{"position":[[1764,5]]},"180":{"position":[[541,4]]}}}],["try",{"_index":325,"t":{"34":{"position":[[223,4]]},"107":{"position":[[1091,4]]},"116":{"position":[[1930,4]]},"197":{"position":[[378,3]]},"239":{"position":[[481,3]]}}}],["trying",{"_index":1095,"t":{"124":{"position":[[362,6]]}}}],["tuning",{"_index":597,"t":{"62":{"position":[[1462,6]]}}}],["twilio",{"_index":1300,"t":{"241":{"position":[[97,7]]}}}],["type",{"_index":235,"t":{"26":{"position":[[217,4]]}}}],["typically",{"_index":623,"t":{"65":{"position":[[0,9]]}}}],["ubuntu",{"_index":1161,"t":{"152":{"position":[[82,6],[160,6]]},"154":{"position":[[0,6],[211,6],[322,6]]}}}],["uint8",{"_index":233,"t":{"26":{"position":[[206,5]]}}}],["unambiguously",{"_index":1068,"t":{"119":{"position":[[101,13]]},"122":{"position":[[44,13]]}}}],["unauthorized",{"_index":357,"t":{"34":{"position":[[705,13]]}}}],["under",{"_index":79,"t":{"10":{"position":[[174,5]]}}}],["understand",{"_index":127,"t":{"16":{"position":[[399,10]]}}}],["understanding",{"_index":950,"t":{"110":{"position":[[1092,13]]}}}],["unified",{"_index":296,"t":{"30":{"position":[[6,7]]}}}],["unique",{"_index":809,"t":{"97":{"position":[[202,6]]}}}],["universal",{"_index":518,"t":{"58":{"position":[[107,9]]}}}],["unloading",{"_index":467,"t":{"52":{"position":[[109,9]]}}}],["unlocked",{"_index":94,"t":{"12":{"position":[[243,8]]}}}],["unrelated",{"_index":392,"t":{"38":{"position":[[188,9]]}}}],["unsure",{"_index":546,"t":{"62":{"position":[[217,6]]},"80":{"position":[[196,7]]},"119":{"position":[[183,8],[442,9]]}}}],["until",{"_index":588,"t":{"62":{"position":[[1276,5]]}}}],["up",{"_index":88,"t":{"12":{"position":[[114,2]]},"18":{"position":[[656,2]]},"62":{"position":[[849,2]]},"80":{"position":[[292,2]]},"134":{"position":[[130,2]]},"180":{"position":[[651,2]]}}}],["update",{"_index":823,"t":{"99":{"position":[[286,6]]},"152":{"position":[[123,6]]},"154":{"position":[[360,6],[502,6],[738,6]]}}}],["upgrade",{"_index":1143,"t":{"142":{"position":[[120,7]]},"148":{"position":[[15,7],[111,7],[172,7]]},"150":{"position":[[213,7]]},"162":{"position":[[120,7]]},"168":{"position":[[15,7],[111,7],[172,7]]},"170":{"position":[[213,7]]},"186":{"position":[[127,7]]},"209":{"position":[[126,7]]},"223":{"position":[[120,7]]},"229":{"position":[[15,7],[111,7],[172,7]]},"231":{"position":[[219,7]]}}}],["upgrading",{"_index":1152,"t":{"148":{"position":[[198,10]]},"152":{"position":[[285,10]]},"168":{"position":[[198,10]]},"172":{"position":[[143,10]]},"229":{"position":[[198,10]]},"233":{"position":[[88,10]]}}}],["upload",{"_index":1289,"t":{"239":{"position":[[299,6]]}}}],["usage",{"_index":908,"t":{"110":{"position":[[108,5],[578,5],[1456,5],[1997,5]]},"116":{"position":[[2847,5],[3144,5]]}}}],["usb",{"_index":60,"t":{"8":{"position":[[155,3]]},"30":{"position":[[310,3]]},"103":{"position":[[54,3]]},"112":{"position":[[54,3]]},"178":{"position":[[47,4]]},"239":{"position":[[261,3]]}}}],["use",{"_index":26,"t":{"4":{"position":[[216,3]]},"8":{"position":[[97,3]]},"16":{"position":[[178,3]]},"18":{"position":[[208,3]]},"28":{"position":[[337,3]]},"65":{"position":[[17,3],[256,3]]},"71":{"position":[[143,3]]},"87":{"position":[[3,3],[156,3]]},"89":{"position":[[107,3],[379,3]]},"101":{"position":[[45,3]]},"110":{"position":[[406,4],[1135,3],[1240,3]]},"116":{"position":[[1466,5],[2492,4]]},"144":{"position":[[173,3],[267,4]]},"146":{"position":[[81,3]]},"148":{"position":[[66,3],[217,3]]},"152":{"position":[[0,3]]},"154":{"position":[[202,3]]},"164":{"position":[[173,3],[267,4]]},"166":{"position":[[81,3]]},"168":{"position":[[66,3],[217,3]]},"172":{"position":[[85,3]]},"188":{"position":[[222,4]]},"197":{"position":[[80,3],[206,3],[279,3],[385,3]]},"203":{"position":[[186,3]]},"211":{"position":[[222,4]]},"225":{"position":[[179,3],[273,4]]},"227":{"position":[[81,3]]},"229":{"position":[[66,3],[217,3]]}}}],["used",{"_index":100,"t":{"14":{"position":[[19,4]]},"28":{"position":[[229,4]]},"97":{"position":[[240,5],[283,4]]},"110":{"position":[[969,4]]},"203":{"position":[[15,4]]}}}],["useful",{"_index":305,"t":{"30":{"position":[[152,6]]},"199":{"position":[[174,7]]}}}],["user",{"_index":1206,"t":{"176":{"position":[[122,4]]}}}],["users",{"_index":435,"t":{"46":{"position":[[175,5]]}}}],["uses",{"_index":251,"t":{"28":{"position":[[84,4],[128,4]]},"154":{"position":[[19,4]]}}}],["using",{"_index":38,"t":{"4":{"position":[[352,5]]},"10":{"position":[[125,5]]},"16":{"position":[[234,5],[474,5],[615,5]]},"28":{"position":[[366,5]]},"48":{"position":[[320,5]]},"52":{"position":[[243,5]]},"58":{"position":[[299,5]]},"75":{"position":[[27,5]]},"82":{"position":[[72,5]]},"99":{"position":[[225,5]]},"107":{"position":[[317,5],[1476,5],[1632,5]]},"116":{"position":[[430,5],[2947,5],[3213,5]]},"136":{"position":[[321,5]]},"144":{"position":[[31,5],[125,5]]},"148":{"position":[[145,5]]},"154":{"position":[[92,5]]},"156":{"position":[[26,5],[94,5]]},"164":{"position":[[31,5],[125,5]]},"168":{"position":[[145,5]]},"174":{"position":[[26,5],[94,5]]},"188":{"position":[[31,5]]},"194":{"position":[[26,5],[94,5]]},"211":{"position":[[31,5]]},"217":{"position":[[26,5],[94,5]]},"225":{"position":[[31,5],[131,5]]},"229":{"position":[[145,5]]},"235":{"position":[[26,5],[94,5]]},"239":{"position":[[485,5]]}}}],["usr/bin/pip3",{"_index":1198,"t":{"154":{"position":[[768,13]]}}}],["usr/bin/python3",{"_index":1192,"t":{"154":{"position":[[532,16]]}}}],["usr/bin/python3.8",{"_index":1193,"t":{"154":{"position":[[557,18]]}}}],["utilities",{"_index":196,"t":{"24":{"position":[[56,9]]},"199":{"position":[[43,9]]}}}],["utilized",{"_index":917,"t":{"110":{"position":[[246,8]]}}}],["uuid",{"_index":747,"t":{"87":{"position":[[267,5]]}}}],["v0.8",{"_index":202,"t":{"24":{"position":[[210,4]]},"28":{"position":[[547,4]]}}}],["valid",{"_index":683,"t":{"75":{"position":[[1003,5]]}}}],["values",{"_index":228,"t":{"26":{"position":[[150,6]]}}}],["variable",{"_index":160,"t":{"18":{"position":[[478,8]]},"84":{"position":[[232,8]]},"91":{"position":[[72,8],[167,8],[454,8]]}}}],["variables",{"_index":763,"t":{"89":{"position":[[395,9]]}}}],["various",{"_index":25,"t":{"4":{"position":[[208,7],[415,7]]},"16":{"position":[[28,7]]},"50":{"position":[[266,7]]},"110":{"position":[[514,7]]},"134":{"position":[[156,7]]}}}],["vault",{"_index":762,"t":{"89":{"position":[[372,6]]}}}],["verify",{"_index":1155,"t":{"148":{"position":[[305,6]]},"152":{"position":[[296,6]]},"168":{"position":[[305,6]]},"172":{"position":[[154,6]]},"229":{"position":[[305,6]]},"233":{"position":[[99,6]]}}}],["version",{"_index":725,"t":{"84":{"position":[[45,7]]},"132":{"position":[[85,7]]},"146":{"position":[[64,8]]},"148":{"position":[[57,8],[285,8],[328,7]]},"150":{"position":[[31,8],[74,7],[95,7]]},"152":{"position":[[69,8],[314,7],[342,7],[363,8]]},"154":{"position":[[179,7]]},"166":{"position":[[64,8]]},"168":{"position":[[57,8],[285,8],[328,7]]},"170":{"position":[[31,8],[74,7],[95,7]]},"172":{"position":[[172,7],[200,7],[221,8]]},"188":{"position":[[129,7]]},"190":{"position":[[125,7]]},"199":{"position":[[315,7]]},"211":{"position":[[129,7]]},"213":{"position":[[124,7]]},"227":{"position":[[64,8]]},"229":{"position":[[57,8],[285,8],[328,7]]},"231":{"position":[[31,8],[80,7],[101,7]]},"233":{"position":[[117,7],[145,7],[166,8]]},"239":{"position":[[501,7]]}}}],["versions",{"_index":270,"t":{"28":{"position":[[589,9]]},"78":{"position":[[475,9]]}}}],["very",{"_index":285,"t":{"28":{"position":[[944,4]]},"75":{"position":[[71,4]]},"126":{"position":[[13,4]]},"199":{"position":[[149,4]]}}}],["via",{"_index":979,"t":{"110":{"position":[[2019,3]]},"116":{"position":[[681,3]]}}}],["video",{"_index":308,"t":{"30":{"position":[[333,5]]},"178":{"position":[[34,5]]}}}],["view",{"_index":974,"t":{"110":{"position":[[1818,4]]}}}],["visible",{"_index":1116,"t":{"132":{"position":[[118,7]]}}}],["vision",{"_index":12,"t":{"4":{"position":[[42,6]]},"10":{"position":[[109,6],[229,6]]},"14":{"position":[[72,6]]},"16":{"position":[[644,6]]},"50":{"position":[[39,6],[209,6]]},"52":{"position":[[23,6]]},"54":{"position":[[35,6]]},"56":{"position":[[23,6],[205,6]]},"58":{"position":[[23,6]]},"60":{"position":[[64,6]]},"78":{"position":[[25,6]]},"80":{"position":[[352,6]]}}}],["visit",{"_index":959,"t":{"110":{"position":[[1352,5]]}}}],["visits",{"_index":972,"t":{"110":{"position":[[1673,7]]}}}],["visual",{"_index":19,"t":{"4":{"position":[[111,6],[267,6]]},"16":{"position":[[595,6]]},"82":{"position":[[82,6]]},"136":{"position":[[301,6]]}}}],["vital",{"_index":500,"t":{"56":{"position":[[52,5]]}}}],["voice",{"_index":841,"t":{"101":{"position":[[359,5]]}}}],["volumes",{"_index":1230,"t":{"180":{"position":[[546,8]]}}}],["wait",{"_index":540,"t":{"62":{"position":[[108,4],[394,4],[844,4],[1271,4],[2070,4]]},"110":{"position":[[754,4],[1517,4]]}}}],["wait=0",{"_index":609,"t":{"62":{"position":[[1754,7],[2156,7]]}}}],["wait=60",{"_index":335,"t":{"34":{"position":[[354,8]]},"62":{"position":[[1404,8]]},"107":{"position":[[1155,8]]},"116":{"position":[[1994,8]]}}}],["want",{"_index":570,"t":{"62":{"position":[[766,4],[1694,4]]},"65":{"position":[[445,4]]},"71":{"position":[[21,4]]},"99":{"position":[[21,4],[111,4]]},"201":{"position":[[480,4]]},"203":{"position":[[178,4]]}}}],["warning",{"_index":406,"t":{"42":{"position":[[57,8]]}}}],["wave",{"_index":854,"t":{"107":{"position":[[258,4]]}}}],["wave.open(file_path",{"_index":871,"t":{"107":{"position":[[623,20]]}}}],["way",{"_index":135,"t":{"16":{"position":[[570,3]]},"62":{"position":[[31,3],[433,4]]},"124":{"position":[[232,3]]},"176":{"position":[[20,3]]}}}],["ways",{"_index":772,"t":{"91":{"position":[[22,4]]},"110":{"position":[[522,5]]}}}],["we'll",{"_index":34,"t":{"4":{"position":[[298,5]]},"107":{"position":[[73,5]]},"116":{"position":[[73,5]]},"197":{"position":[[200,5],[319,5]]}}}],["we're",{"_index":1023,"t":{"116":{"position":[[1580,5]]}}}],["weather",{"_index":1106,"t":{"128":{"position":[[98,8]]}}}],["web",{"_index":730,"t":{"84":{"position":[[141,3]]},"176":{"position":[[118,3]]},"239":{"position":[[552,3]]}}}],["website",{"_index":791,"t":{"93":{"position":[[52,7]]},"172":{"position":[[62,7]]},"233":{"position":[[62,7]]}}}],["week",{"_index":938,"t":{"110":{"position":[[919,4]]}}}],["welcome",{"_index":1121,"t":{"134":{"position":[[0,7]]}}}],["well",{"_index":134,"t":{"16":{"position":[[557,4]]},"243":{"position":[[73,5]]}}}],["wf",{"_index":870,"t":{"107":{"position":[[618,2]]}}}],["wf.readframes(chunk",{"_index":879,"t":{"107":{"position":[[811,20],[870,20]]}}}],["what's",{"_index":1256,"t":{"197":{"position":[[358,6]]}}}],["whimsical",{"_index":824,"t":{"101":{"position":[[10,9]]}}}],["wifi",{"_index":76,"t":{"10":{"position":[[146,4]]}}}],["willing",{"_index":573,"t":{"62":{"position":[[833,7]]}}}],["windows",{"_index":1131,"t":{"136":{"position":[[109,7]]},"219":{"position":[[56,8]]}}}],["within",{"_index":530,"t":{"58":{"position":[[375,6]]}}}],["without",{"_index":293,"t":{"28":{"position":[[1126,7]]},"44":{"position":[[197,7]]},"80":{"position":[[397,7]]},"154":{"position":[[273,7]]},"197":{"position":[[104,7]]},"199":{"position":[[117,7]]},"201":{"position":[[88,7]]}}}],["won't",{"_index":801,"t":{"95":{"position":[[266,5]]}}}],["work",{"_index":167,"t":{"18":{"position":[[615,4]]},"30":{"position":[[121,4]]},"54":{"position":[[181,4]]},"199":{"position":[[112,4]]},"201":{"position":[[112,4]]},"243":{"position":[[65,4]]}}}],["workflows",{"_index":488,"t":{"54":{"position":[[119,10]]}}}],["working",{"_index":72,"t":{"10":{"position":[[98,7]]},"16":{"position":[[118,7]]},"24":{"position":[[70,7]]},"30":{"position":[[172,7]]},"36":{"position":[[5,7]]},"78":{"position":[[8,7]]},"80":{"position":[[378,7]]},"199":{"position":[[57,7]]}}}],["works",{"_index":441,"t":{"48":{"position":[[47,5]]}}}],["write",{"_index":439,"t":{"48":{"position":[[0,5]]},"107":{"position":[[79,5],[941,5]]},"116":{"position":[[79,5],[1359,5]]}}}],["written",{"_index":1316,"t":{"245":{"position":[[19,7]]}}}],["wrong",{"_index":286,"t":{"28":{"position":[[949,6]]},"197":{"position":[[365,5]]}}}],["x",{"_index":1313,"t":{"243":{"position":[[248,1]]}}}],["y",{"_index":1187,"t":{"154":{"position":[[410,1]]}}}],["yes",{"_index":682,"t":{"75":{"position":[[977,6],[1033,5]]},"107":{"position":[[1202,6]]},"119":{"position":[[115,5],[424,5]]},"122":{"position":[[72,5]]},"126":{"position":[[38,5]]},"130":{"position":[[32,5]]}}}],["you'd",{"_index":635,"t":{"65":{"position":[[199,5]]},"75":{"position":[[172,5]]}}}],["you'll",{"_index":133,"t":{"16":{"position":[[547,6]]},"65":{"position":[[10,6]]},"134":{"position":[[66,6]]},"136":{"position":[[267,6]]}}}],["you're",{"_index":572,"t":{"62":{"position":[[826,6]]},"144":{"position":[[113,6]]},"148":{"position":[[138,6]]},"150":{"position":[[168,6]]},"156":{"position":[[0,6]]},"164":{"position":[[113,6]]},"168":{"position":[[138,6]]},"170":{"position":[[168,6]]},"174":{"position":[[0,6]]},"194":{"position":[[0,6]]},"197":{"position":[[168,6]]},"217":{"position":[[0,6]]},"225":{"position":[[119,6]]},"229":{"position":[[138,6]]},"231":{"position":[[174,6]]},"235":{"position":[[0,6]]}}}],["you've",{"_index":628,"t":{"65":{"position":[[107,6]]}}}],["your_app.py",{"_index":164,"t":{"18":{"position":[[550,11]]}}}],["yourself",{"_index":1268,"t":{"201":{"position":[[227,9]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file +[{"documents":[{"i":1,"t":"","u":"/python-sdk/docs/api-reference","b":["Docs"]},{"i":2,"t":"Building Applications","u":"/python-sdk/docs/building-applications","b":["Docs","Building Applications"]},{"i":16,"t":"Using Groundlight on the edge","u":"/python-sdk/docs/building-applications/edge","b":["Docs","Building Applications"]},{"i":22,"t":"Grabbing Images","u":"/python-sdk/docs/building-applications/grabbing-images","b":["Docs","Building Applications"]},{"i":34,"t":"Handling Server Errors","u":"/python-sdk/docs/building-applications/handling-errors","b":["Docs","Building Applications"]},{"i":52,"t":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications/industrial","b":["Docs","Building Applications"]},{"i":64,"t":"Confidence Levels","u":"/python-sdk/docs/building-applications/managing-confidence","b":["Docs","Building Applications"]},{"i":66,"t":"Working with Detectors","u":"/python-sdk/docs/building-applications/working-with-detectors","b":["Docs","Building Applications"]},{"i":79,"t":"Getting Started","u":"/python-sdk/docs/getting-started","b":["Docs","Getting Started"]},{"i":88,"t":"API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","b":["Docs","Getting Started"]},{"i":103,"t":"A Fun Example: Dog-on-Couch Detector","u":"/python-sdk/docs/getting-started/dog-on-couch","b":["Docs","Getting Started"]},{"i":111,"t":"A Serious Example: Retail Analytics","u":"/python-sdk/docs/getting-started/retail-analytics","b":["Docs","Getting Started"]},{"i":120,"t":"Writing Queries","u":"/python-sdk/docs/getting-started/writing-queries","b":["Docs","Getting Started"]},{"i":136,"t":"Installation","u":"/python-sdk/docs/installation","b":["Docs","Installation"]},{"i":140,"t":"Installing on Linux","u":"/python-sdk/docs/installation/linux","b":["Docs","Installation"]},{"i":160,"t":"Installing on macOS","u":"/python-sdk/docs/installation/macos","b":["Docs","Installation"]},{"i":178,"t":"Monitoring Notification Server","u":"/python-sdk/docs/installation/monitoring-notification-server","b":["Docs","Installation"]},{"i":184,"t":"Installing on NVIDIA Jetson","u":"/python-sdk/docs/installation/nvidia-jetson","b":["Docs","Installation"]},{"i":198,"t":"Optional libraries","u":"/python-sdk/docs/installation/optional-libraries","b":["Docs","Installation"]},{"i":207,"t":"Installing on Raspberry Pi","u":"/python-sdk/docs/installation/raspberry-pi","b":["Docs","Installation"]},{"i":221,"t":"Installing on Windows","u":"/python-sdk/docs/installation/windows","b":["Docs","Installation"]},{"i":239,"t":"No-Code IoT Deployment","u":"/python-sdk/docs/iot","b":["Docs"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[]],["t/2",[0,2.934,1,2.385]],["t/16",[2,2.481,3,2.481,4,2.481]],["t/22",[5,2.934,6,2.934]],["t/34",[7,2.481,8,2.017,9,2.481]],["t/52",[1,2.017,10,2.481,11,2.481]],["t/64",[12,2.934,13,2.934]],["t/66",[14,2.934,15,2.934]],["t/79",[16,2.934,17,2.934]],["t/88",[18,2.934,19,2.934]],["t/103",[20,1.896,21,1.541,22,1.896,23,1.896,24,1.896]],["t/111",[21,1.747,25,2.149,26,2.149,27,2.149]],["t/120",[28,2.934,29,2.934]],["t/136",[30,3.589]],["t/140",[31,1.538,32,2.934]],["t/160",[31,1.538,33,2.934]],["t/178",[8,2.017,34,2.481,35,2.481]],["t/184",[31,1.3,36,2.481,37,2.481]],["t/198",[38,2.934,39,2.934]],["t/207",[31,1.3,40,2.481,41,2.481]],["t/221",[31,1.538,42,2.934]],["t/239",[43,2.481,44,2.481,45,2.481]]],"invertedIndex":[["analytics",{"_index":27,"t":{"111":{"position":[[26,9]]}}}],["api",{"_index":18,"t":{"88":{"position":[[0,3]]}}}],["applications",{"_index":1,"t":{"2":{"position":[[9,12]]},"52":{"position":[[29,12]]}}}],["building",{"_index":0,"t":{"2":{"position":[[0,8]]}}}],["code",{"_index":43,"t":{"239":{"position":[[3,4]]}}}],["confidence",{"_index":12,"t":{"64":{"position":[[0,10]]}}}],["couch",{"_index":23,"t":{"103":{"position":[[22,5]]}}}],["deployment",{"_index":45,"t":{"239":{"position":[[12,10]]}}}],["detector",{"_index":24,"t":{"103":{"position":[[28,8]]}}}],["detectors",{"_index":15,"t":{"66":{"position":[[13,9]]}}}],["dog",{"_index":22,"t":{"103":{"position":[[15,3]]}}}],["edge",{"_index":4,"t":{"16":{"position":[[25,4]]}}}],["errors",{"_index":9,"t":{"34":{"position":[[16,6]]}}}],["example",{"_index":21,"t":{"103":{"position":[[6,8]]},"111":{"position":[[10,8]]}}}],["fun",{"_index":20,"t":{"103":{"position":[[2,3]]}}}],["getting",{"_index":16,"t":{"79":{"position":[[0,7]]}}}],["grabbing",{"_index":5,"t":{"22":{"position":[[0,8]]}}}],["groundlight",{"_index":3,"t":{"16":{"position":[[6,11]]}}}],["handling",{"_index":7,"t":{"34":{"position":[[0,8]]}}}],["images",{"_index":6,"t":{"22":{"position":[[9,6]]}}}],["industrial",{"_index":10,"t":{"52":{"position":[[0,10]]}}}],["installation",{"_index":30,"t":{"136":{"position":[[0,12]]}}}],["installing",{"_index":31,"t":{"140":{"position":[[0,10]]},"160":{"position":[[0,10]]},"184":{"position":[[0,10]]},"207":{"position":[[0,10]]},"221":{"position":[[0,10]]}}}],["iot",{"_index":44,"t":{"239":{"position":[[8,3]]}}}],["jetson",{"_index":37,"t":{"184":{"position":[[21,6]]}}}],["levels",{"_index":13,"t":{"64":{"position":[[11,6]]}}}],["libraries",{"_index":39,"t":{"198":{"position":[[9,9]]}}}],["linux",{"_index":32,"t":{"140":{"position":[[14,5]]}}}],["macos",{"_index":33,"t":{"160":{"position":[[14,5]]}}}],["manufacturing",{"_index":11,"t":{"52":{"position":[[15,13]]}}}],["monitoring",{"_index":34,"t":{"178":{"position":[[0,10]]}}}],["notification",{"_index":35,"t":{"178":{"position":[[11,12]]}}}],["nvidia",{"_index":36,"t":{"184":{"position":[[14,6]]}}}],["optional",{"_index":38,"t":{"198":{"position":[[0,8]]}}}],["pi",{"_index":41,"t":{"207":{"position":[[24,2]]}}}],["queries",{"_index":29,"t":{"120":{"position":[[8,7]]}}}],["raspberry",{"_index":40,"t":{"207":{"position":[[14,9]]}}}],["retail",{"_index":26,"t":{"111":{"position":[[19,6]]}}}],["serious",{"_index":25,"t":{"111":{"position":[[2,7]]}}}],["server",{"_index":8,"t":{"34":{"position":[[9,6]]},"178":{"position":[[24,6]]}}}],["started",{"_index":17,"t":{"79":{"position":[[8,7]]}}}],["tokens",{"_index":19,"t":{"88":{"position":[[4,6]]}}}],["using",{"_index":2,"t":{"16":{"position":[[0,5]]}}}],["windows",{"_index":42,"t":{"221":{"position":[[14,7]]}}}],["working",{"_index":14,"t":{"66":{"position":[[0,7]]}}}],["writing",{"_index":28,"t":{"120":{"position":[[0,7]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":4,"t":"Sample Applications","u":"/python-sdk/docs/building-applications","h":"#sample-applications","p":2},{"i":6,"t":"Groundlight Stream Processor","u":"/python-sdk/docs/building-applications","h":"#groundlight-stream-processor","p":2},{"i":8,"t":"Arduino ESP32 Camera Sample App","u":"/python-sdk/docs/building-applications","h":"#arduino-esp32-camera-sample-app","p":2},{"i":10,"t":"Raspberry Pi","u":"/python-sdk/docs/building-applications","h":"#raspberry-pi","p":2},{"i":12,"t":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications","h":"#industrial-and-manufacturing-applications","p":2},{"i":14,"t":"Further Reading","u":"/python-sdk/docs/building-applications","h":"#further-reading","p":2},{"i":18,"t":"How the Edge Endpoint works","u":"/python-sdk/docs/building-applications/edge","h":"#how-the-edge-endpoint-works","p":16},{"i":20,"t":"Configuring the Edge Endpoint","u":"/python-sdk/docs/building-applications/edge","h":"#configuring-the-edge-endpoint","p":16},{"i":24,"t":"PIL","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#pil","p":22},{"i":26,"t":"OpenCV","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#opencv","p":22},{"i":28,"t":"Numpy","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#numpy","p":22},{"i":30,"t":"Channel order: BGR vs RGB","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#channel-order-bgr-vs-rgb","p":22},{"i":32,"t":"Framegrab","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#framegrab","p":22},{"i":36,"t":"Handling ApiException","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handling-apiexception","p":34},{"i":38,"t":"Best Practices for Handling Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#best-practices-for-handling-exceptions","p":34},{"i":40,"t":"Catch Specific Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#catch-specific-exceptions","p":34},{"i":42,"t":"Use Custom Exception Classes","u":"/python-sdk/docs/building-applications/handling-errors","h":"#use-custom-exception-classes","p":34},{"i":44,"t":"Log Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#log-exceptions","p":34},{"i":46,"t":"Implement Retry Logic","u":"/python-sdk/docs/building-applications/handling-errors","h":"#implement-retry-logic","p":34},{"i":48,"t":"Handle Exceptions Gracefully","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handle-exceptions-gracefully","p":34},{"i":50,"t":"Test Your Error Handling","u":"/python-sdk/docs/building-applications/handling-errors","h":"#test-your-error-handling","p":34},{"i":54,"t":"Machine Tending","u":"/python-sdk/docs/building-applications/industrial","h":"#machine-tending","p":52},{"i":56,"t":"Process Automation","u":"/python-sdk/docs/building-applications/industrial","h":"#process-automation","p":52},{"i":58,"t":"Quality Control","u":"/python-sdk/docs/building-applications/industrial","h":"#quality-control","p":52},{"i":60,"t":"Integration with Cobots and CNC Machines","u":"/python-sdk/docs/building-applications/industrial","h":"#integration-with-cobots-and-cnc-machines","p":52},{"i":62,"t":"Contact Sales","u":"/python-sdk/docs/building-applications/industrial","h":"","p":52},{"i":67,"t":"Explicitly create a new detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#explicitly-create-a-new-detector","p":66},{"i":69,"t":"Retrieve an existing detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-existing-detector","p":66},{"i":71,"t":"List your detectors","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-detectors","p":66},{"i":73,"t":"Retrieve an image query","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-image-query","p":66},{"i":75,"t":"List your previous image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-previous-image-queries","p":66},{"i":77,"t":"Adding labels to existing image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#adding-labels-to-existing-image-queries","p":66},{"i":80,"t":"Computer Vision powered by Natural Language","u":"/python-sdk/docs/getting-started","h":"#computer-vision-powered-by-natural-language","p":79},{"i":82,"t":"How does it work?","u":"/python-sdk/docs/getting-started","h":"#how-does-it-work","p":79},{"i":84,"t":"Escalation Technology","u":"/python-sdk/docs/getting-started","h":"#escalation-technology","p":79},{"i":86,"t":"Building a simple visual application","u":"/python-sdk/docs/getting-started","h":"#building-a-simple-visual-application","p":79},{"i":89,"t":"About API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#about-api-tokens","p":88},{"i":91,"t":"Handling API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#handling-api-tokens","p":88},{"i":93,"t":"Using API Tokens with the SDK","u":"/python-sdk/docs/getting-started/api-tokens","h":"#using-api-tokens-with-the-sdk","p":88},{"i":95,"t":"Creating and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-and-revoking-api-tokens","p":88},{"i":97,"t":"Creating API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-api-tokens","p":88},{"i":99,"t":"Viewing and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#viewing-and-revoking-api-tokens","p":88},{"i":101,"t":"To revoke an API token","u":"/python-sdk/docs/getting-started/api-tokens","h":"#to-revoke-an-api-token","p":88},{"i":105,"t":"Requirements","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#requirements","p":103},{"i":107,"t":"Installation","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#installation","p":103},{"i":109,"t":"Creating the Application","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#creating-the-application","p":103},{"i":112,"t":"Tracking utilization of a customer service counter","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#tracking-utilization-of-a-customer-service-counter","p":111},{"i":114,"t":"Requirements","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#requirements","p":111},{"i":116,"t":"Installation","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#installation","p":111},{"i":118,"t":"Creating the Application","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#creating-the-application","p":111},{"i":121,"t":"Introduction","u":"/python-sdk/docs/getting-started/writing-queries","h":"#introduction","p":120},{"i":123,"t":"Examples","u":"/python-sdk/docs/getting-started/writing-queries","h":"#examples","p":120},{"i":124,"t":"✅ Are there any cardboard boxes on the conveyor belt?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-are-there-any-cardboard-boxes-on-the-conveyor-belt","p":120},{"i":126,"t":"🟡 Is the trash can full?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-trash-can-full","p":120},{"i":128,"t":"✅ Is the garage door completely closed?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-garage-door-completely-closed","p":120},{"i":130,"t":"🟡 Is the weather nice out?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-weather-nice-out","p":120},{"i":132,"t":"❌ Where is the thing?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-where-is-the-thing","p":120},{"i":134,"t":"🟡 Is the factory floor clean and organized?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-factory-floor-clean-and-organized","p":120},{"i":138,"t":"Platform-specific Installation Guides","u":"/python-sdk/docs/installation","h":"#platform-specific-installation-guides","p":136},{"i":142,"t":"Prerequisites","u":"/python-sdk/docs/installation/linux","h":"#prerequisites","p":140},{"i":144,"t":"Basic Installation","u":"/python-sdk/docs/installation/linux","h":"#basic-installation","p":140},{"i":146,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#installing-groundlight-sdk","p":140},{"i":148,"t":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/linux","h":"#checking-groundlight-sdk-version","p":140},{"i":150,"t":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#upgrading-groundlight-sdk","p":140},{"i":152,"t":"Getting the right Python Version","u":"/python-sdk/docs/installation/linux","h":"#getting-the-right-python-version","p":140},{"i":154,"t":"Upgrading Python on Linux","u":"/python-sdk/docs/installation/linux","h":"#upgrading-python-on-linux","p":140},{"i":156,"t":"Special note about Ubuntu 18.04","u":"/python-sdk/docs/installation/linux","h":"#special-note-about-ubuntu-1804","p":140},{"i":158,"t":"Ready to go!","u":"/python-sdk/docs/installation/linux","h":"#ready-to-go","p":140},{"i":162,"t":"Prerequisites","u":"/python-sdk/docs/installation/macos","h":"#prerequisites","p":160},{"i":164,"t":"Basic Installation","u":"/python-sdk/docs/installation/macos","h":"#basic-installation","p":160},{"i":166,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#installing-groundlight-sdk","p":160},{"i":168,"t":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/macos","h":"#checking-groundlight-sdk-version","p":160},{"i":170,"t":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#upgrading-groundlight-sdk","p":160},{"i":172,"t":"Getting the right Python Version","u":"/python-sdk/docs/installation/macos","h":"#getting-the-right-python-version","p":160},{"i":174,"t":"Upgrading Python on MacOS","u":"/python-sdk/docs/installation/macos","h":"#upgrading-python-on-macos","p":160},{"i":176,"t":"Ready to go!","u":"/python-sdk/docs/installation/macos","h":"#ready-to-go","p":160},{"i":180,"t":"Prerequisites","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#prerequisites","p":178},{"i":182,"t":"Deployment","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#deployment","p":178},{"i":186,"t":"Prerequisites","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#prerequisites","p":184},{"i":188,"t":"Basic Installation","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#basic-installation","p":184},{"i":190,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#installing-groundlight-sdk","p":184},{"i":192,"t":"Using RTSP Streams","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#using-rtsp-streams","p":184},{"i":194,"t":"Sample application","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#sample-application","p":184},{"i":196,"t":"Ready to go!","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#ready-to-go","p":184},{"i":199,"t":"Smaller is better!","u":"/python-sdk/docs/installation/optional-libraries","h":"#smaller-is-better","p":198},{"i":201,"t":"PIL - optional but default installed","u":"/python-sdk/docs/installation/optional-libraries","h":"#pil---optional-but-default-installed","p":198},{"i":203,"t":"Working without PIL","u":"/python-sdk/docs/installation/optional-libraries","h":"#working-without-pil","p":198},{"i":205,"t":"Numpy, OpenCV - fully optional","u":"/python-sdk/docs/installation/optional-libraries","h":"#numpy-opencv---fully-optional","p":198},{"i":209,"t":"Prerequisites","u":"/python-sdk/docs/installation/raspberry-pi","h":"#prerequisites","p":207},{"i":211,"t":"Basic Installation","u":"/python-sdk/docs/installation/raspberry-pi","h":"#basic-installation","p":207},{"i":213,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/raspberry-pi","h":"#installing-groundlight-sdk","p":207},{"i":215,"t":"Using RTSP Streams","u":"/python-sdk/docs/installation/raspberry-pi","h":"#using-rtsp-streams","p":207},{"i":217,"t":"Sample application","u":"/python-sdk/docs/installation/raspberry-pi","h":"#sample-application","p":207},{"i":219,"t":"Ready to go!","u":"/python-sdk/docs/installation/raspberry-pi","h":"#ready-to-go","p":207},{"i":223,"t":"Prerequisites","u":"/python-sdk/docs/installation/windows","h":"#prerequisites","p":221},{"i":225,"t":"Basic Installation","u":"/python-sdk/docs/installation/windows","h":"#basic-installation","p":221},{"i":227,"t":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#installing-groundlight-sdk","p":221},{"i":229,"t":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/windows","h":"#checking-groundlight-sdk-version","p":221},{"i":231,"t":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#upgrading-groundlight-sdk","p":221},{"i":233,"t":"Getting the right Python Version","u":"/python-sdk/docs/installation/windows","h":"#getting-the-right-python-version","p":221},{"i":235,"t":"Upgrading Python on Windows","u":"/python-sdk/docs/installation/windows","h":"#upgrading-python-on-windows","p":221},{"i":237,"t":"Ready to go!","u":"/python-sdk/docs/installation/windows","h":"#ready-to-go","p":221},{"i":241,"t":"Easy Deployment","u":"/python-sdk/docs/iot","h":"#easy-deployment","p":239},{"i":243,"t":"Notification Options","u":"/python-sdk/docs/iot","h":"#notification-options","p":239},{"i":245,"t":"Multiple Supported Boards","u":"/python-sdk/docs/iot","h":"#multiple-supported-boards","p":239},{"i":247,"t":"Source Code","u":"/python-sdk/docs/iot","h":"#source-code","p":239}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/4",[0,3.548,1,4.206]],["t/6",[2,2.056,3,4.087,4,4.087]],["t/8",[0,2.354,5,3.17,6,3.17,7,3.17,8,3.17]],["t/10",[9,4.778,10,4.778]],["t/12",[1,3.598,11,4.087,12,4.087]],["t/14",[13,4.778,14,4.778]],["t/18",[15,3.598,16,3.598,17,4.087]],["t/20",[15,3.598,16,3.598,18,4.087]],["t/24",[19,4.609]],["t/26",[20,5.063]],["t/28",[21,5.063]],["t/30",[22,3.17,23,3.17,24,3.17,25,3.17,26,3.17]],["t/32",[27,5.751]],["t/36",[28,3.548,29,4.778]],["t/38",[28,2.651,30,3.57,31,3.57,32,2.651]],["t/40",[32,3.035,33,4.087,34,3.598]],["t/42",[35,3.57,36,3.57,37,3.57,38,3.57]],["t/44",[32,3.548,39,4.778]],["t/46",[40,4.087,41,4.087,42,4.087]],["t/48",[32,3.035,43,4.087,44,4.087]],["t/50",[28,3.035,45,4.087,46,4.087]],["t/54",[47,4.778,48,4.778]],["t/56",[49,4.778,50,4.778]],["t/58",[51,4.778,52,4.778]],["t/60",[53,3.57,54,3.57,55,3.57,56,3.57]],["t/62",[57,4.778,58,4.778]],["t/67",[59,3.57,60,3.57,61,3.57,62,3.143]],["t/69",[62,3.598,63,3.598,64,3.598]],["t/71",[65,4.206,66,4.778]],["t/73",[63,3.598,67,3.275,68,4.087]],["t/75",[65,3.143,67,2.861,69,3.57,70,3.143]],["t/77",[64,2.79,67,2.54,70,2.79,71,3.17,72,3.17]],["t/80",[73,3.17,74,3.17,75,3.17,76,3.17,77,3.17]],["t/82",[78,5.751]],["t/84",[79,4.778,80,4.778]],["t/86",[81,3.57,82,3.57,83,3.57,84,2.483]],["t/89",[85,2.976,86,3.136]],["t/91",[28,3.035,85,2.545,86,2.682]],["t/93",[85,2.224,86,2.343,87,2.861,88,1.796]],["t/95",[85,2.224,86,2.343,89,2.651,90,3.143]],["t/97",[85,2.545,86,2.682,89,3.035]],["t/99",[85,2.224,86,2.343,90,3.143,91,3.57]],["t/101",[85,2.545,92,4.087,93,4.087]],["t/105",[94,5.063]],["t/107",[95,3.413]],["t/109",[84,3.323,89,3.548]],["t/112",[96,3.17,97,3.17,98,3.17,99,3.17,100,3.17]],["t/114",[94,5.063]],["t/116",[95,3.413]],["t/118",[84,3.323,89,3.548]],["t/121",[101,5.751]],["t/123",[102,5.751]],["t/124",[103,2.08,104,3.17,105,3.17,106,3.17,107,3.17]],["t/126",[103,2.682,108,4.087,109,4.087]],["t/128",[103,2.08,110,3.17,111,3.17,112,3.17,113,3.17]],["t/130",[103,2.343,114,3.57,115,3.57,116,3.57]],["t/132",[103,3.136,117,4.778]],["t/134",[103,2.08,118,3.17,119,3.17,120,3.17,121,3.17]],["t/138",[34,3.143,95,2.119,122,3.57,123,3.57]],["t/142",[124,3.775]],["t/144",[95,2.836,125,3.323]],["t/146",[2,2.056,88,2.056,126,2.842]],["t/148",[2,1.796,88,1.796,127,2.861,128,2.343]],["t/150",[2,2.056,88,2.056,129,2.682]],["t/152",[128,2.343,130,2.861,131,2.861,132,2.343]],["t/154",[129,2.682,132,2.682,133,4.087]],["t/156",[134,3.57,135,3.57,136,3.57,137,3.57]],["t/158",[138,3.323,139,3.323]],["t/162",[124,3.775]],["t/164",[95,2.836,125,3.323]],["t/166",[2,2.056,88,2.056,126,2.842]],["t/168",[2,1.796,88,1.796,127,2.861,128,2.343]],["t/170",[2,2.056,88,2.056,129,2.682]],["t/172",[128,2.343,130,2.861,131,2.861,132,2.343]],["t/174",[129,2.682,132,2.682,140,4.087]],["t/176",[138,3.323,139,3.323]],["t/180",[124,3.775]],["t/182",[141,5.063]],["t/186",[124,3.775]],["t/188",[95,2.836,125,3.323]],["t/190",[2,2.056,88,2.056,126,2.842]],["t/192",[87,3.275,142,3.598,143,3.598]],["t/194",[0,3.548,84,3.323]],["t/196",[138,3.323,139,3.323]],["t/199",[144,4.778,145,4.778]],["t/201",[19,2.861,146,3.143,147,3.57,148,3.57]],["t/203",[19,3.275,149,4.087,150,4.087]],["t/205",[20,3.143,21,3.143,146,3.143,151,3.57]],["t/209",[124,3.775]],["t/211",[95,2.836,125,3.323]],["t/213",[2,2.056,88,2.056,126,2.842]],["t/215",[87,3.275,142,3.598,143,3.598]],["t/217",[0,3.548,84,3.323]],["t/219",[138,3.323,139,3.323]],["t/223",[124,3.775]],["t/225",[95,2.836,125,3.323]],["t/227",[2,2.056,88,2.056,126,2.842]],["t/229",[2,1.796,88,1.796,127,2.861,128,2.343]],["t/231",[2,2.056,88,2.056,129,2.682]],["t/233",[128,2.343,130,2.861,131,2.861,132,2.343]],["t/235",[129,2.682,132,2.682,152,4.087]],["t/237",[138,3.323,139,3.323]],["t/241",[141,4.206,153,4.778]],["t/243",[154,4.778,155,4.778]],["t/245",[156,4.087,157,4.087,158,4.087]],["t/247",[159,4.778,160,4.778]]],"invertedIndex":[["",{"_index":103,"t":{"124":{"position":[[0,1]]},"126":{"position":[[0,2]]},"128":{"position":[[0,1]]},"130":{"position":[[0,2]]},"132":{"position":[[0,1]]},"134":{"position":[[0,2]]}}}],["18.04",{"_index":137,"t":{"156":{"position":[[26,5]]}}}],["adding",{"_index":71,"t":{"77":{"position":[[0,6]]}}}],["api",{"_index":85,"t":{"89":{"position":[[6,3]]},"91":{"position":[[9,3]]},"93":{"position":[[6,3]]},"95":{"position":[[22,3]]},"97":{"position":[[9,3]]},"99":{"position":[[21,3]]},"101":{"position":[[13,3]]}}}],["apiexception",{"_index":29,"t":{"36":{"position":[[9,12]]}}}],["app",{"_index":8,"t":{"8":{"position":[[28,3]]}}}],["application",{"_index":84,"t":{"86":{"position":[[25,11]]},"109":{"position":[[13,11]]},"118":{"position":[[13,11]]},"194":{"position":[[7,11]]},"217":{"position":[[7,11]]}}}],["applications",{"_index":1,"t":{"4":{"position":[[7,12]]},"12":{"position":[[29,12]]}}}],["arduino",{"_index":5,"t":{"8":{"position":[[0,7]]}}}],["automation",{"_index":50,"t":{"56":{"position":[[8,10]]}}}],["basic",{"_index":125,"t":{"144":{"position":[[0,5]]},"164":{"position":[[0,5]]},"188":{"position":[[0,5]]},"211":{"position":[[0,5]]},"225":{"position":[[0,5]]}}}],["belt",{"_index":107,"t":{"124":{"position":[[48,5]]}}}],["best",{"_index":30,"t":{"38":{"position":[[0,4]]}}}],["better",{"_index":145,"t":{"199":{"position":[[11,7]]}}}],["bgr",{"_index":24,"t":{"30":{"position":[[15,3]]}}}],["boards",{"_index":158,"t":{"245":{"position":[[19,6]]}}}],["boxes",{"_index":105,"t":{"124":{"position":[[26,5]]}}}],["building",{"_index":81,"t":{"86":{"position":[[0,8]]}}}],["camera",{"_index":7,"t":{"8":{"position":[[14,6]]}}}],["cardboard",{"_index":104,"t":{"124":{"position":[[16,9]]}}}],["catch",{"_index":33,"t":{"40":{"position":[[0,5]]}}}],["channel",{"_index":22,"t":{"30":{"position":[[0,7]]}}}],["checking",{"_index":127,"t":{"148":{"position":[[0,8]]},"168":{"position":[[0,8]]},"229":{"position":[[0,8]]}}}],["classes",{"_index":38,"t":{"42":{"position":[[21,7]]}}}],["clean",{"_index":120,"t":{"134":{"position":[[24,5]]}}}],["closed",{"_index":113,"t":{"128":{"position":[[32,7]]}}}],["cnc",{"_index":55,"t":{"60":{"position":[[28,3]]}}}],["cobots",{"_index":54,"t":{"60":{"position":[[17,6]]}}}],["code",{"_index":160,"t":{"247":{"position":[[7,4]]}}}],["completely",{"_index":112,"t":{"128":{"position":[[21,10]]}}}],["computer",{"_index":73,"t":{"80":{"position":[[0,8]]}}}],["configuring",{"_index":18,"t":{"20":{"position":[[0,11]]}}}],["contact",{"_index":57,"t":{"62":{"position":[[0,7]]}}}],["control",{"_index":52,"t":{"58":{"position":[[8,7]]}}}],["conveyor",{"_index":106,"t":{"124":{"position":[[39,8]]}}}],["counter",{"_index":100,"t":{"112":{"position":[[43,7]]}}}],["create",{"_index":60,"t":{"67":{"position":[[11,6]]}}}],["creating",{"_index":89,"t":{"95":{"position":[[0,8]]},"97":{"position":[[0,8]]},"109":{"position":[[0,8]]},"118":{"position":[[0,8]]}}}],["custom",{"_index":36,"t":{"42":{"position":[[4,6]]}}}],["customer",{"_index":98,"t":{"112":{"position":[[26,8]]}}}],["default",{"_index":147,"t":{"201":{"position":[[19,7]]}}}],["deployment",{"_index":141,"t":{"182":{"position":[[0,10]]},"241":{"position":[[5,10]]}}}],["detector",{"_index":62,"t":{"67":{"position":[[24,8]]},"69":{"position":[[21,8]]}}}],["detectors",{"_index":66,"t":{"71":{"position":[[10,9]]}}}],["door",{"_index":111,"t":{"128":{"position":[[16,4]]}}}],["easy",{"_index":153,"t":{"241":{"position":[[0,4]]}}}],["edge",{"_index":15,"t":{"18":{"position":[[8,4]]},"20":{"position":[[16,4]]}}}],["endpoint",{"_index":16,"t":{"18":{"position":[[13,8]]},"20":{"position":[[21,8]]}}}],["error",{"_index":46,"t":{"50":{"position":[[10,5]]}}}],["escalation",{"_index":79,"t":{"84":{"position":[[0,10]]}}}],["esp32",{"_index":6,"t":{"8":{"position":[[8,5]]}}}],["examples",{"_index":102,"t":{"123":{"position":[[0,8]]}}}],["exception",{"_index":37,"t":{"42":{"position":[[11,9]]}}}],["exceptions",{"_index":32,"t":{"38":{"position":[[28,10]]},"40":{"position":[[15,10]]},"44":{"position":[[4,10]]},"48":{"position":[[7,10]]}}}],["existing",{"_index":64,"t":{"69":{"position":[[12,8]]},"77":{"position":[[17,8]]}}}],["explicitly",{"_index":59,"t":{"67":{"position":[[0,10]]}}}],["factory",{"_index":118,"t":{"134":{"position":[[10,7]]}}}],["floor",{"_index":119,"t":{"134":{"position":[[18,5]]}}}],["framegrab",{"_index":27,"t":{"32":{"position":[[0,9]]}}}],["full",{"_index":109,"t":{"126":{"position":[[20,5]]}}}],["fully",{"_index":151,"t":{"205":{"position":[[16,5]]}}}],["further",{"_index":13,"t":{"14":{"position":[[0,7]]}}}],["garage",{"_index":110,"t":{"128":{"position":[[9,6]]}}}],["getting",{"_index":130,"t":{"152":{"position":[[0,7]]},"172":{"position":[[0,7]]},"233":{"position":[[0,7]]}}}],["go",{"_index":139,"t":{"158":{"position":[[9,3]]},"176":{"position":[[9,3]]},"196":{"position":[[9,3]]},"219":{"position":[[9,3]]},"237":{"position":[[9,3]]}}}],["gracefully",{"_index":44,"t":{"48":{"position":[[18,10]]}}}],["groundlight",{"_index":2,"t":{"6":{"position":[[0,11]]},"146":{"position":[[11,11]]},"148":{"position":[[9,11]]},"150":{"position":[[10,11]]},"166":{"position":[[11,11]]},"168":{"position":[[9,11]]},"170":{"position":[[10,11]]},"190":{"position":[[11,11]]},"213":{"position":[[11,11]]},"227":{"position":[[11,11]]},"229":{"position":[[9,11]]},"231":{"position":[[10,11]]}}}],["guides",{"_index":123,"t":{"138":{"position":[[31,6]]}}}],["handle",{"_index":43,"t":{"48":{"position":[[0,6]]}}}],["handling",{"_index":28,"t":{"36":{"position":[[0,8]]},"38":{"position":[[19,8]]},"50":{"position":[[16,8]]},"91":{"position":[[0,8]]}}}],["image",{"_index":67,"t":{"73":{"position":[[12,5]]},"75":{"position":[[19,5]]},"77":{"position":[[26,5]]}}}],["implement",{"_index":40,"t":{"46":{"position":[[0,9]]}}}],["industrial",{"_index":11,"t":{"12":{"position":[[0,10]]}}}],["installation",{"_index":95,"t":{"107":{"position":[[0,12]]},"116":{"position":[[0,12]]},"138":{"position":[[18,12]]},"144":{"position":[[6,12]]},"164":{"position":[[6,12]]},"188":{"position":[[6,12]]},"211":{"position":[[6,12]]},"225":{"position":[[6,12]]}}}],["installed",{"_index":148,"t":{"201":{"position":[[27,9]]}}}],["installing",{"_index":126,"t":{"146":{"position":[[0,10]]},"166":{"position":[[0,10]]},"190":{"position":[[0,10]]},"213":{"position":[[0,10]]},"227":{"position":[[0,10]]}}}],["integration",{"_index":53,"t":{"60":{"position":[[0,11]]}}}],["introduction",{"_index":101,"t":{"121":{"position":[[0,12]]}}}],["labels",{"_index":72,"t":{"77":{"position":[[7,6]]}}}],["language",{"_index":77,"t":{"80":{"position":[[35,8]]}}}],["linux",{"_index":133,"t":{"154":{"position":[[20,5]]}}}],["list",{"_index":65,"t":{"71":{"position":[[0,4]]},"75":{"position":[[0,4]]}}}],["log",{"_index":39,"t":{"44":{"position":[[0,3]]}}}],["logic",{"_index":42,"t":{"46":{"position":[[16,5]]}}}],["machine",{"_index":47,"t":{"54":{"position":[[0,7]]}}}],["machines",{"_index":56,"t":{"60":{"position":[[32,8]]}}}],["macos",{"_index":140,"t":{"174":{"position":[[20,5]]}}}],["manufacturing",{"_index":12,"t":{"12":{"position":[[15,13]]}}}],["multiple",{"_index":156,"t":{"245":{"position":[[0,8]]}}}],["natural",{"_index":76,"t":{"80":{"position":[[27,7]]}}}],["new",{"_index":61,"t":{"67":{"position":[[20,3]]}}}],["nice",{"_index":115,"t":{"130":{"position":[[18,4]]}}}],["note",{"_index":135,"t":{"156":{"position":[[8,4]]}}}],["notification",{"_index":154,"t":{"243":{"position":[[0,12]]}}}],["numpy",{"_index":21,"t":{"28":{"position":[[0,5]]},"205":{"position":[[0,6]]}}}],["opencv",{"_index":20,"t":{"26":{"position":[[0,6]]},"205":{"position":[[7,6]]}}}],["optional",{"_index":146,"t":{"201":{"position":[[6,8]]},"205":{"position":[[22,8]]}}}],["options",{"_index":155,"t":{"243":{"position":[[13,7]]}}}],["order",{"_index":23,"t":{"30":{"position":[[8,6]]}}}],["organized",{"_index":121,"t":{"134":{"position":[[34,10]]}}}],["out",{"_index":116,"t":{"130":{"position":[[23,4]]}}}],["pi",{"_index":10,"t":{"10":{"position":[[10,2]]}}}],["pil",{"_index":19,"t":{"24":{"position":[[0,3]]},"201":{"position":[[0,3]]},"203":{"position":[[16,3]]}}}],["platform",{"_index":122,"t":{"138":{"position":[[0,8]]}}}],["powered",{"_index":75,"t":{"80":{"position":[[16,7]]}}}],["practices",{"_index":31,"t":{"38":{"position":[[5,9]]}}}],["prerequisites",{"_index":124,"t":{"142":{"position":[[0,13]]},"162":{"position":[[0,13]]},"180":{"position":[[0,13]]},"186":{"position":[[0,13]]},"209":{"position":[[0,13]]},"223":{"position":[[0,13]]}}}],["previous",{"_index":69,"t":{"75":{"position":[[10,8]]}}}],["process",{"_index":49,"t":{"56":{"position":[[0,7]]}}}],["processor",{"_index":4,"t":{"6":{"position":[[19,9]]}}}],["python",{"_index":132,"t":{"152":{"position":[[18,6]]},"154":{"position":[[10,6]]},"172":{"position":[[18,6]]},"174":{"position":[[10,6]]},"233":{"position":[[18,6]]},"235":{"position":[[10,6]]}}}],["quality",{"_index":51,"t":{"58":{"position":[[0,7]]}}}],["queries",{"_index":70,"t":{"75":{"position":[[25,7]]},"77":{"position":[[32,7]]}}}],["query",{"_index":68,"t":{"73":{"position":[[18,5]]}}}],["raspberry",{"_index":9,"t":{"10":{"position":[[0,9]]}}}],["reading",{"_index":14,"t":{"14":{"position":[[8,7]]}}}],["ready",{"_index":138,"t":{"158":{"position":[[0,5]]},"176":{"position":[[0,5]]},"196":{"position":[[0,5]]},"219":{"position":[[0,5]]},"237":{"position":[[0,5]]}}}],["requirements",{"_index":94,"t":{"105":{"position":[[0,12]]},"114":{"position":[[0,12]]}}}],["retrieve",{"_index":63,"t":{"69":{"position":[[0,8]]},"73":{"position":[[0,8]]}}}],["retry",{"_index":41,"t":{"46":{"position":[[10,5]]}}}],["revoke",{"_index":92,"t":{"101":{"position":[[3,6]]}}}],["revoking",{"_index":90,"t":{"95":{"position":[[13,8]]},"99":{"position":[[12,8]]}}}],["rgb",{"_index":26,"t":{"30":{"position":[[22,3]]}}}],["right",{"_index":131,"t":{"152":{"position":[[12,5]]},"172":{"position":[[12,5]]},"233":{"position":[[12,5]]}}}],["rtsp",{"_index":142,"t":{"192":{"position":[[6,4]]},"215":{"position":[[6,4]]}}}],["sales",{"_index":58,"t":{"62":{"position":[[8,5]]}}}],["sample",{"_index":0,"t":{"4":{"position":[[0,6]]},"8":{"position":[[21,6]]},"194":{"position":[[0,6]]},"217":{"position":[[0,6]]}}}],["sdk",{"_index":88,"t":{"93":{"position":[[26,3]]},"146":{"position":[[23,3]]},"148":{"position":[[21,3]]},"150":{"position":[[22,3]]},"166":{"position":[[23,3]]},"168":{"position":[[21,3]]},"170":{"position":[[22,3]]},"190":{"position":[[23,3]]},"213":{"position":[[23,3]]},"227":{"position":[[23,3]]},"229":{"position":[[21,3]]},"231":{"position":[[22,3]]}}}],["service",{"_index":99,"t":{"112":{"position":[[35,7]]}}}],["simple",{"_index":82,"t":{"86":{"position":[[11,6]]}}}],["smaller",{"_index":144,"t":{"199":{"position":[[0,7]]}}}],["source",{"_index":159,"t":{"247":{"position":[[0,6]]}}}],["special",{"_index":134,"t":{"156":{"position":[[0,7]]}}}],["specific",{"_index":34,"t":{"40":{"position":[[6,8]]},"138":{"position":[[9,8]]}}}],["stream",{"_index":3,"t":{"6":{"position":[[12,6]]}}}],["streams",{"_index":143,"t":{"192":{"position":[[11,7]]},"215":{"position":[[11,7]]}}}],["supported",{"_index":157,"t":{"245":{"position":[[9,9]]}}}],["technology",{"_index":80,"t":{"84":{"position":[[11,10]]}}}],["tending",{"_index":48,"t":{"54":{"position":[[8,7]]}}}],["test",{"_index":45,"t":{"50":{"position":[[0,4]]}}}],["thing",{"_index":117,"t":{"132":{"position":[[15,6]]}}}],["token",{"_index":93,"t":{"101":{"position":[[17,5]]}}}],["tokens",{"_index":86,"t":{"89":{"position":[[10,6]]},"91":{"position":[[13,6]]},"93":{"position":[[10,6]]},"95":{"position":[[26,6]]},"97":{"position":[[13,6]]},"99":{"position":[[25,6]]}}}],["tracking",{"_index":96,"t":{"112":{"position":[[0,8]]}}}],["trash",{"_index":108,"t":{"126":{"position":[[10,5]]}}}],["ubuntu",{"_index":136,"t":{"156":{"position":[[19,6]]}}}],["upgrading",{"_index":129,"t":{"150":{"position":[[0,9]]},"154":{"position":[[0,9]]},"170":{"position":[[0,9]]},"174":{"position":[[0,9]]},"231":{"position":[[0,9]]},"235":{"position":[[0,9]]}}}],["use",{"_index":35,"t":{"42":{"position":[[0,3]]}}}],["using",{"_index":87,"t":{"93":{"position":[[0,5]]},"192":{"position":[[0,5]]},"215":{"position":[[0,5]]}}}],["utilization",{"_index":97,"t":{"112":{"position":[[9,11]]}}}],["version",{"_index":128,"t":{"148":{"position":[[25,7]]},"152":{"position":[[25,7]]},"168":{"position":[[25,7]]},"172":{"position":[[25,7]]},"229":{"position":[[25,7]]},"233":{"position":[[25,7]]}}}],["viewing",{"_index":91,"t":{"99":{"position":[[0,7]]}}}],["vision",{"_index":74,"t":{"80":{"position":[[9,6]]}}}],["visual",{"_index":83,"t":{"86":{"position":[[18,6]]}}}],["vs",{"_index":25,"t":{"30":{"position":[[19,2]]}}}],["weather",{"_index":114,"t":{"130":{"position":[[10,7]]}}}],["windows",{"_index":152,"t":{"235":{"position":[[20,7]]}}}],["without",{"_index":150,"t":{"203":{"position":[[8,7]]}}}],["work",{"_index":78,"t":{"82":{"position":[[12,5]]}}}],["working",{"_index":149,"t":{"203":{"position":[[0,7]]}}}],["works",{"_index":17,"t":{"18":{"position":[[22,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Groundlight provides a powerful \"computer vision powered by natural language\" system that enables you to build visual applications with minimal code. With Groundlight, you can quickly create applications for various use cases, from simple object detection to complex visual analysis. In this page, we'll introduce you to some sample applications built using Groundlight and provide links to more detailed guides on various topics.","s":"Building Applications","u":"/python-sdk/docs/building-applications","h":"","p":2},{"i":5,"t":"Explore these GitHub repositories to see examples of Groundlight-powered applications:","s":"Sample Applications","u":"/python-sdk/docs/building-applications","h":"#sample-applications","p":2},{"i":7,"t":"Repository: https://github.com/groundlight/stream The Groundlight Stream Processor is an easy-to-use Docker container for analyzing RTSP streams or common USB-based cameras. You can run it with a single Docker command, such as: docker run stream:local --help","s":"Groundlight Stream Processor","u":"/python-sdk/docs/building-applications","h":"#groundlight-stream-processor","p":2},{"i":9,"t":"Repository: https://github.com/groundlight/esp32cam This sample application allows you to build a working AI vision detector using an inexpensive WiFi camera. With a cost of under $10, you can create a powerful and affordable AI vision system.","s":"Arduino ESP32 Camera Sample App","u":"/python-sdk/docs/building-applications","h":"#arduino-esp32-camera-sample-app","p":2},{"i":11,"t":"Repository: https://github.com/groundlight/raspberry-pi-door-lock This sample application demonstrates how to set up a Raspberry Pi-based door lock system. The application monitors a door and sends a notification if the door is observed to be unlocked during non-standard business hours.","s":"Raspberry Pi","u":"/python-sdk/docs/building-applications","h":"#raspberry-pi","p":2},{"i":13,"t":"Groundlight can be used to apply modern natural-language-based computer vision to industrial and manufacturing applications.","s":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications","h":"#industrial-and-manufacturing-applications","p":2},{"i":15,"t":"For more in-depth guides on various aspects of building applications with Groundlight, check out the following pages: Working with Detectors: Learn how to create, configure, and use detectors in your Groundlight-powered applications. Using Groundlight on the edge: Discover how to deploy Groundlight in edge computing environments for improved performance and reduced latency. Handling HTTP errors: Understand how to handle and troubleshoot HTTP errors that may occur while using Groundlight. By exploring these resources and sample applications, you'll be well on your way to building powerful visual applications using Groundlight's computer vision and natural language capabilities.","s":"Further Reading","u":"/python-sdk/docs/building-applications","h":"#further-reading","p":2},{"i":17,"t":"If your account has access to edge models, you can download and install them to your edge devices. This allows you to run your model evaluations on the edge, reducing latency, cost, network bandwidth, and energy.","s":"Using Groundlight on the edge","u":"/python-sdk/docs/building-applications/edge","h":"","p":16},{"i":19,"t":"The Edge Endpoint runs as a set of docker containers on an \"edge device\". This edge device can be an NVIDIA Jetson device, rack-mounted server, or even a Raspberry Pi. The Edge Endpoint is responsible for downloading and running the models, and for communicating with the Groundlight cloud service. To use the edge endpoint, simply configure the Groundlight SDK to use the edge endpoint's URL instead of the cloud endpoint. All application logic will work seamlessly and unchanged with the Groundlight Edge Endpoint, except some ML answers will return much faster locally. The only visible difference is that image queries answered at the edge endpoint will have the prefix iqe_ instead of iq_ for image queries answered in the cloud. iqe_ stands for \"image query edge\". Edge-originated image queries will not appear in the cloud dashboard.","s":"How the Edge Endpoint works","u":"/python-sdk/docs/building-applications/edge","h":"#how-the-edge-endpoint-works","p":16},{"i":21,"t":"To configure the Groundlight SDK to use the edge endpoint, you can either pass the endpoint URL to the Groundlight constructor like: from groundlight import Groundlight gl = Groundlight(endpoint=\"http://localhost:6717\") or by setting the GROUNDLIGHT_ENDPOINT environment variable like: export GROUNDLIGHT_ENDPOINT=http://localhost:6717 python your_app.py","s":"Configuring the Edge Endpoint","u":"/python-sdk/docs/building-applications/edge","h":"#configuring-the-edge-endpoint","p":16},{"i":23,"t":"Groundlight's SDK accepts images in many popular formats, including PIL, OpenCV, and numpy arrays.","s":"Grabbing Images","u":"/python-sdk/docs/building-applications/grabbing-images","h":"","p":22},{"i":25,"t":"The Groundlight SDK can accept PIL images directly in submit_image_query. Here's an example: from groundlight import Groundlight from PIL import Image gl = Groundlight() det = gl.get_or_create_detector(name=\"path-clear\", query=\"Is the path clear?\") pil_img = Image.open(\"./docs/static/img/doorway.jpg\") gl.submit_image_query(det, pil_img)","s":"PIL","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#pil","p":22},{"i":27,"t":"OpenCV is a popular image processing library, with many utilities for working with images. OpenCV images are stored as numpy arrays. (Note they are stored in BGR order, not RGB order, but as of Groundlight SDK v0.8 this is the expected order.) OpenCV's images can be send directly to submit_image_query as follows: import cv2 cam = cv2.VideoCapture(0) # Initialize camera (0 is the default index) _, frame = cam.read() # Capture one frame gl.submit_image_query(detector, frame) # Send the frame to Groundlight cam.release() # Release the camera","s":"OpenCV","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#opencv","p":22},{"i":29,"t":"The Groundlight SDK can accept images as numpy arrays. They should be in the standard HWN format in BGR color order, matching OpenCV standards. Pixel values should be from 0-255 (not 0.0-1.0 as floats). So uint8 data type is preferable since it saves memory. Here's sample code to create an 800x600 random image in numpy: import numpy as np np_img = np.random.uniform(low=0, high=255, size=(600, 800, 3)).astype(np.uint8) # Note: channel order is interpretted as BGR not RGB gl.submit_image_query(detector, np_img)","s":"Numpy","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#numpy","p":22},{"i":31,"t":"Groundlight expects images in BGR order, because this is standard for OpenCV, which uses numpy arrays as image storage. (OpenCV uses BGR because it was originally developed decades ago for compatibility with the BGR color format used by many cameras and image processing hardware at the time of its creation.) Most other image libraries use RGB order, so if you are using images as numpy arrays which did not originate from OpenCV you likely need to reverse the channel order before sending the images to Groundlight. Note this change was made in v0.8 of the Groundlight SDK - in previous versions, RGB order was expected. If you have an RGB array, you must reverse the channel order before sending it to Groundlight, like: # Convert numpy image in RGB channel order to BGR order bgr_img = rgb_img[:, :, ::-1] The difference can be surprisingly subtle when red and blue get swapped. Often images just look a little off, but sometimes they look very wrong. Here's an example of a natural-scene image where you might think the color balance is just off: In industrial settings, the difference can be almost impossible to detect without prior knowledge of the scene:","s":"Channel order: BGR vs RGB","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#channel-order-bgr-vs-rgb","p":22},{"i":33,"t":"For a unified interface to many different kinds of image sources, see the framegrab library. Framegrab is still an early work in progress, but has many useful features for working with cameras and other image sources. Framegrab provides a single interface for many different kinds of image sources, including: USB cameras IP cameras Video files Image files","s":"Framegrab","u":"/python-sdk/docs/building-applications/grabbing-images","h":"#framegrab","p":22},{"i":35,"t":"When building applications with the Groundlight SDK, you may encounter server errors during API calls. This page covers how to handle such errors and build robust code that can gracefully handle exceptions.","s":"Handling Server Errors","u":"/python-sdk/docs/building-applications/handling-errors","h":"","p":34},{"i":37,"t":"If there is an HTTP error during an API call, the SDK will raise an ApiException. You can access different metadata from that exception: import traceback from groundlight import ApiException, Groundlight gl = Groundlight() try: d = gl.get_or_create_detector( \"Road Checker\", \"Is the site access road blocked?\") iq = gl.submit_image_query(d, get_image(), wait=60) except ApiException as e: # Print a traceback for debugging traceback.print_exc() # e.reason contains a textual description of the error print(f\"Error reason: {e.reason}\") # e.status contains the HTTP status code print(f\"HTTP status code: {e.status}\") # Common HTTP status codes: # 400 Bad Request: The request was invalid or malformed # 401 Unauthorized: Your GROUNDLIGHT_API_TOKEN is missing or invalid # 403 Forbidden: The request is not allowed due to insufficient permissions # 404 Not Found: The requested resource was not found # 429 Too Many Requests: The rate limit for the API has been exceeded # 500 Internal Server Error: An error occurred on the server side","s":"Handling ApiException","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handling-apiexception","p":34},{"i":39,"t":"When working with the Groundlight SDK, follow these best practices to handle exceptions and build robust code:","s":"Best Practices for Handling Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#best-practices-for-handling-exceptions","p":34},{"i":41,"t":"Catch only the specific exceptions that you expect to be raised, such as ApiException. Avoid catching broad exceptions like Exception, as it may make debugging difficult and obscure other unrelated issues.","s":"Catch Specific Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#catch-specific-exceptions","p":34},{"i":43,"t":"Consider creating custom exception classes for your application-specific errors. This can help you differentiate between errors originating from the Groundlight SDK and those from your application.","s":"Use Custom Exception Classes","u":"/python-sdk/docs/building-applications/handling-errors","h":"#use-custom-exception-classes","p":34},{"i":45,"t":"Log exceptions with appropriate log levels (e.g., error, warning, etc.) and include relevant context information. This will help you debug issues more effectively and monitor the health of your application.","s":"Log Exceptions","u":"/python-sdk/docs/building-applications/handling-errors","h":"#log-exceptions","p":34},{"i":47,"t":"When handling exceptions, implement retry logic with exponential backoff for transient errors, such as network issues or rate-limiting. This can help your application recover from temporary issues without manual intervention.","s":"Implement Retry Logic","u":"/python-sdk/docs/building-applications/handling-errors","h":"#implement-retry-logic","p":34},{"i":49,"t":"In addition to logging exceptions, handle them gracefully to ensure that your application remains functional despite errors. This might include displaying an error message to users or falling back to a default behavior.","s":"Handle Exceptions Gracefully","u":"/python-sdk/docs/building-applications/handling-errors","h":"#handle-exceptions-gracefully","p":34},{"i":51,"t":"Write tests to ensure that your error handling works as expected. This can help you catch issues early and ensure that your application can handle errors gracefully in production. By following these best practices, you can create robust and resilient applications that can handle server errors and other exceptions when using the Groundlight SDK.","s":"Test Your Error Handling","u":"/python-sdk/docs/building-applications/handling-errors","h":"#test-your-error-handling","p":34},{"i":53,"t":"Modern natural language-based computer vision is transforming industrial and manufacturing applications by enabling more intuitive interaction with automation systems. Groundlight offers cutting-edge computer vision technology that can be seamlessly integrated into various industrial processes, enhancing efficiency, productivity, and quality control.","s":"Industrial and Manufacturing Applications","u":"/python-sdk/docs/building-applications/industrial","h":"","p":52},{"i":55,"t":"Groundlight's computer vision technology can assist in automating machine-tending tasks, such as loading and unloading materials in CNC machines, milling centers, or injection molding equipment. By enabling robots to recognize parts and tools using natural language, complex machine-tending tasks become more accessible and efficient.","s":"Machine Tending","u":"/python-sdk/docs/building-applications/industrial","h":"#machine-tending","p":52},{"i":57,"t":"Integrating Groundlight's computer vision into your process automation systems can help identify bottlenecks, optimize workflows, and reduce manual intervention. Our technology can work hand-in-hand with robotic systems to perform tasks like sorting, assembly, all while interpreting natural language commands to streamline operations.","s":"Process Automation","u":"/python-sdk/docs/building-applications/industrial","h":"#process-automation","p":52},{"i":59,"t":"Groundlight's computer vision technology can play a vital role in ensuring the highest quality standards in your manufacturing processes. By identifying defects or irregularities in products, our computer vision system can help maintain strict quality control, reducing the need for manual inspections and increasing overall product quality.","s":"Quality Control","u":"/python-sdk/docs/building-applications/industrial","h":"#quality-control","p":52},{"i":61,"t":"Groundlight's computer vision technology can be easily integrated with popular cobot robotic arms, such as Universal Robots, to enhance their capabilities and improve collaboration between humans and robots. Additionally, our technology can be integrated into existing CNC machines or other devices using the Modbus interface, allowing for seamless communication and control within your manufacturing environment.","s":"Integration with Cobots and CNC Machines","u":"/python-sdk/docs/building-applications/industrial","h":"#integration-with-cobots-and-cnc-machines","p":52},{"i":63,"t":"To learn more about how Groundlight's natural language computer vision technology can revolutionize your industrial and manufacturing processes, please reach out to us at info@groundlight.ai.","s":"Contact Sales","u":"/python-sdk/docs/building-applications/industrial","h":"","p":52},{"i":65,"t":"Groundlight gives you a simple way to control the trade-off of latency against accuracy. The longer you can wait for an answer to your image query, the better accuracy you can get. In particular, if the ML models are unsure of the best response, they will escalate the image query to more intensive analysis with more complex models and real-time human monitors as needed. Your code can easily wait for this delayed response. Either way, these new results are automatically trained into your models so your next queries will get better results faster. The desired confidence level is set as the escalation threshold on your detector. This determines the minimum confidence score for the ML system to provide before the image query is escalated. For example, say you want to set your desired confidence level to 0.95, but that you're willing to wait up to 60 seconds to get a confident response. from groundlight import Groundlight from PIL import Image import requests gl = Groundlight() image_url = \"https://www.photos-public-domain.com/wp-content/uploads/2010/11/over_flowing_garbage_can.jpg\" image = Image.open(requests.get(image_url, stream=True).raw) d = gl.get_or_create_detector(name=\"trash\", query=\"Is the trash can full?\", confidence_threshold=0.95) # This will wait until either 60 seconds have passed or the confidence reaches 0.95 image_query = gl.submit_image_query(detector=d, image=image, wait=60) print(f\"The answer is {image_query.result}\") tip Tuning confidence lets you balance accuracy against latency. Higher confidence will get higher accuracy, but will generally require higher latency. Higher confidence also requires more labels, which increases labor costs. Or if you want to execute submit_image_query as fast as possible, set wait=0. You will either get the ML results or a placeholder response if the ML model hasn't finished executing. Image queries which are below the desired confidence level will still be escalated for further analysis, and the results are incorporated as training data to improve your ML model, but your code will not wait for that to happen. image_query = gl.submit_image_query(detector=d, image=image, wait=0) If the returned result was generated from an ML model, you can see the confidence score returned for the image query: print(f\"The confidence is {image_query.result.confidence}\")","s":"Confidence Levels","u":"/python-sdk/docs/building-applications/managing-confidence","h":"","p":64},{"i":68,"t":"Typically you'll use the get_or_create_detector(name: str, query: str) method to find an existing detector you've already created with the same name, or create a new one if it doesn't exists. But if you'd like to force creating a new detector you can also use the create_detector(name: str, query: str) method from groundlight import Groundlight gl = Groundlight() detector = gl.create_detector(name=\"your_detector_name\", query=\"is this what we want to see?\")","s":"Explicitly create a new detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#explicitly-create-a-new-detector","p":66},{"i":70,"t":"from groundlight import Groundlight gl = Groundlight() detector = gl.get_detector(id=\"YOUR_DETECTOR_ID\")","s":"Retrieve an existing detector","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-existing-detector","p":66},{"i":72,"t":"from groundlight import Groundlight gl = Groundlight() # Defaults to 10 results per page detectors = gl.list_detectors() # Pagination: 1st page of 5 results per page detectors = gl.list_detectors(page=1, page_size=5)","s":"List your detectors","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-detectors","p":66},{"i":74,"t":"In practice, you may want to check for a new result on your query. For example, after a cloud reviewer labels your query. For example, you can use the image_query.id after the above submit_image_query() call. from groundlight import Groundlight gl = Groundlight() image_query = gl.get_image_query(id=\"iq_YOUR_IMAGE_QUERY_ID\")","s":"Retrieve an image query","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#retrieve-an-image-query","p":66},{"i":76,"t":"from groundlight import Groundlight gl = Groundlight() # Defaults to 10 results per page image_queries = gl.list_image_queries() # Pagination: 1st page of 5 results per page image_queries = gl.list_image_queries(page=1, page_size=5)","s":"List your previous image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#list-your-previous-image-queries","p":66},{"i":78,"t":"Groundlight lets you start using models by making queries against your very first image, but there are a few situations where you might either have an existing dataset, or you'd like to handle the escalation response programatically in your own code but still include the label to get better responses in the future. With your image_query from either submit_image_query() or get_image_query() you can add the label directly. Note that if the query is already in the escalation queue due to low ML confidence or audit thresholds, it may also receive labels from another source. from groundlight import Groundlight from PIL import Image import requests gl = Groundlight() d = gl.get_or_create_detector(name=\"doorway\", query=\"Is the doorway open?\") image_url= \"https://images.selfstorage.com/large-compress/2174925f24362c479b2.jpg\" image = Image.open(requests.get(image_url, stream=True).raw) image_query = gl.submit_image_query(detector=d, image=image) gl.add_label(image_query, 'YES') # or 'NO' The only valid labels at this time are 'YES' and 'NO'.","s":"Adding labels to existing image queries","u":"/python-sdk/docs/building-applications/working-with-detectors","h":"#adding-labels-to-existing-image-queries","p":66},{"i":81,"t":"Build a working computer vision system in just a few lines of python: from groundlight import Groundlight gl = Groundlight() det = gl.get_or_create_detector(name=\"doorway\", query=\"Is the doorway open?\") img = \"./docs/static/img/doorway.jpg\" # Image can be a file or a Python object image_query = gl.submit_image_query(detector=det, image=img) print(f\"The answer is {image_query.result}\") Note: The SDK is currently in \"beta\" phase. Interfaces are subject to change in future versions. We will follow semver semantics for breaking changes.","s":"Computer Vision powered by Natural Language","u":"/python-sdk/docs/getting-started","h":"#computer-vision-powered-by-natural-language","p":79},{"i":83,"t":"Your images are first analyzed by machine learning (ML) models which are automatically trained on your data. If those models have high enough confidence, that's your answer. But if the models are unsure, then the images are progressively escalated to more resource-intensive analysis methods up to real-time human review. So what you get is a computer vision system that starts working right away without even needing to first gather and label a dataset. At first it will operate with high latency, because people need to review the image queries. But over time, the ML systems will learn and improve so queries come back faster with higher confidence.","s":"How does it work?","u":"/python-sdk/docs/getting-started","h":"#how-does-it-work","p":79},{"i":85,"t":"Groundlight's Escalation Technology combines the power of generative AI using our Visual LLM, along with the speed of edge computing, and the reliability of real-time human oversight.","s":"Escalation Technology","u":"/python-sdk/docs/getting-started","h":"#escalation-technology","p":79},{"i":87,"t":"Install the groundlight SDK. Requires python version 3.7 or higher. See prerequisites. pip3 install groundlight Head over to the groundlight web app to create an API token. You will need to set the GROUNDLIGHT_API_TOKEN environment variable to access the API. export GROUNDLIGHT_API_TOKEN=api_2GdXMflhJi6L_example Create a python script. ask.py from groundlight import Groundlight gl = Groundlight() det = gl.get_or_create_detector(name=\"doorway\", query=\"Is the doorway open?\") img = \"./docs/static/img/doorway.jpg\" # Image can be a file or a Python object image_query = gl.submit_image_query(detector=det, image=img) print(f\"The answer is {image_query.result}\") Run it! python ask.py","s":"Building a simple visual application","u":"/python-sdk/docs/getting-started","h":"#building-a-simple-visual-application","p":79},{"i":90,"t":"To use the Groundlight SDK or API, you need a security token which we call an \"API Token.\" These authenticate you to Groundlight and authorize your code to use services in your account. API tokens look like api_2GdXMflhJ... and consist of a ksuid (a kind of sortable UUID) followed by a secret string.","s":"About API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#about-api-tokens","p":88},{"i":92,"t":"You should treat API tokens like passwords. Never check them directly into your code or share them. Please use best security practices with your API tokens, because if anybody gets your API token, they have nearly full control over your Groundlight account. Here are some best practices for handling API tokens: Store API tokens in a secure location, such as an encrypted vault. Use environment variables to store API tokens, rather than hardcoding them in your application. Limit the number of people who have access to API tokens. Rotate API tokens regularly and revoke old ones when they are no longer needed.","s":"Handling API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#handling-api-tokens","p":88},{"i":94,"t":"There are a couple of ways the SDK can find your API token: Environment variable (recommended): As a best practice, we recommend storing API tokens in the environment variable GROUNDLIGHT_API_TOKEN. This helps avoid accidentally committing the token to your code repository. The SDK will automatically look for the API token there, so you don't have to put it in your code at all. from groundlight import Groundlight # looks for API token in environment variable GROUNDLIGHT_API_TOKEN gl = Groundlight() Constructor argument: Alternatively, you can pass the API token directly to the Groundlight constructor. However, be cautious not to commit this code to your repository. from groundlight import Groundlight token = get_token_from_secure_location() gl = Groundlight(api_token=token)","s":"Using API Tokens with the SDK","u":"/python-sdk/docs/getting-started/api-tokens","h":"#using-api-tokens-with-the-sdk","p":88},{"i":96,"t":"You can manage your API tokens from the Groundlight website at https://app.groundlight.ai/reef/my-account/api-tokens.","s":"Creating and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-and-revoking-api-tokens","p":88},{"i":98,"t":"Log in to your Groundlight account and navigate to the API tokens page. Click the \"Create New API Token\" button. Give the new token a descriptive name, so you can easily identify it later. Click \"Create Token.\" Copy the generated token and store it securely, as you won't be able to see it again. Groundlight does not store a copy of your API tokens.","s":"Creating API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#creating-api-tokens","p":88},{"i":100,"t":"On the API tokens page, you can see a list of your current tokens, along with the following information: Token Name: The descriptive name you assigned when creating the token Snippet (prefix): A short, unique identifier for each token Last used: The date and time the token was last used","s":"Viewing and Revoking API Tokens","u":"/python-sdk/docs/getting-started/api-tokens","h":"#viewing-and-revoking-api-tokens","p":88},{"i":102,"t":"Locate the token you want to revoke in the list. Click the \"Delete\" button next to the token. Confirm that you want to revoke the token. Note: Revoking an API token will immediately invalidate it and prevent any applications using it from accessing your Groundlight account. Be sure to update your applications with a new token before revoking an old one.","s":"To revoke an API token","u":"/python-sdk/docs/getting-started/api-tokens","h":"#to-revoke-an-api-token","p":88},{"i":104,"t":"Here is a whimsical example of how you could use Groundlight in your home to keep your dog off the couch. This document will guide you through creating a complete application. If the dog is detected on the couch, the application will play a pre-recorded sound over the computer's speakers, instructing the dog to get off the couch. Be sure to record your own voice so that your dog pays attention to you.","s":"A Fun Example: Dog-on-Couch Detector","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"","p":103},{"i":106,"t":"Groundlight SDK with Python 3.7 or higher A supported USB or network-connected camera A pre-recorded sound file (e.g., get_off_couch.mp3) A couch and a dog are recommended for proper end-to-end testing.","s":"Requirements","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#requirements","p":103},{"i":108,"t":"Ensure you have Python 3.7 or higher installed, and then install the Groundlight SDK and OpenCV library: pip install groundlight opencv-python pillow pyaudio","s":"Installation","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#installation","p":103},{"i":110,"t":"First, log in to the Groundlight application and get an API Token. Next, we'll write the Python script for the application. Import the required libraries: import time import cv2 from groundlight import Groundlight from PIL import Image import pyaudio import wave Define a function to capture an image from the camera using OpenCV: def capture_image(): cap = cv2.VideoCapture(0) ret, frame = cap.read() cap.release() if ret: # Convert to PIL image return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) else: return None Define a function to play the pre-recorded sound: def play_sound(file_path): CHUNK = 1024 wf = wave.open(file_path, 'rb') p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(), rate=wf.getframerate(), output=True) data = wf.readframes(CHUNK) while data: stream.write(data) data = wf.readframes(CHUNK) stream.stop_stream() stream.close() p.terminate() Write the main application loop: gl = Groundlight() detector = gl.get_detector(\"Dog on Couch Detector\") while True: image = capture_image() if image: try: iq = gl.submit_image_query(image=image, detector=detector, wait=60) answer = iq.result.label if answer == \"YES\": print(\"Dog detected on the couch!\") play_sound(\"get_off_couch.mp3\") except Exception as e: print(f\"Error submitting image query: {e}\") else: print(\"Failed to capture image\") # Sleep for a minute before checking again time.sleep(60) This application captures an image using the capture_image function, then submits it to the Groundlight API for analysis. If the dog is detected on the couch, it plays the pre-recorded sound using the play_sound function. Save the script as dog_on_couch_detector.py and run it: python dog_on_couch_detector.py","s":"Creating the Application","u":"/python-sdk/docs/getting-started/dog-on-couch","h":"#creating-the-application","p":103},{"i":113,"t":"This example demonstrates the application of Groundlight to a retail analytics solution, which monitors the usage of a service counter by customers throughout the day. The application creates a detector to identify when the service desk is being utilized by a customer. It checks the detector every minute, and once an hour, it prints out a summary of the percentage of time that the service counter is in use. At the end of the day, it emails the daily log. This retail analytics application can be beneficial in various ways: Staff allocation and scheduling: By analyzing the usage patterns of the service counter, store managers can optimize staff allocation and scheduling, ensuring that enough employees are available during peak hours and reducing wait times for customers. Identifying trends: The application can help identify trends in customer behavior, such as busier times of the day or specific days of the week with higher traffic. This information can be used to plan targeted marketing campaigns or promotions to increase sales and customer engagement. Improving store layout: Understanding when and how often customers use the service counter can provide insights into the effectiveness of the store's layout. Retailers can use this information to make data-driven decisions about rearranging the store layout to encourage customers to visit the service counter or explore other areas of the store. Customer satisfaction: By monitoring the usage of the service counter and proactively addressing long wait times or crowded areas, retailers can improve customer satisfaction and loyalty. A positive customer experience can lead to increased sales and return visits. To implement this retail analytics solution, a store would need to install a supported camera near the service counter, ensuring a clear view of the area. The camera would then be connected to a computer running the Groundlight-based application. Store managers would receive hourly summaries of the service counter usage and a daily log via email, enabling them to make informed decisions to improve store operations and customer experience.","s":"Tracking utilization of a customer service counter","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#tracking-utilization-of-a-customer-service-counter","p":111},{"i":115,"t":"Groundlight SDK with Python 3.7 or higher A supported USB or network-connected camera An email account with SMTP access to send the daily log","s":"Requirements","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#requirements","p":111},{"i":117,"t":"Ensure you have Python 3.7 or higher installed, and then install the Groundlight SDK, OpenCV library, and other required libraries: pip install groundlight opencv-python pillow","s":"Installation","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#installation","p":111},{"i":119,"t":"First, log in to the Groundlight application and get an API Token. Next, we'll write the Python script for the application. Import the required libraries: import time import cv2 import smtplib from groundlight import Groundlight from PIL import Image from datetime import datetime, timedelta from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText Define a function to capture an image from the camera using OpenCV: def capture_image(): cap = cv2.VideoCapture(0) ret, frame = cap.read() cap.release() if ret: # Convert to PIL image return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) else: return None Define a function to send the daily log via email. You will need to customize this for your particular network environment. def send_email(sender, receiver, subject, body): msg = MIMEMultipart() msg['From'] = sender msg['To'] = receiver msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) server = smtplib.SMTP('smtp.example.com', 587) server.starttls() server.login(sender, \"your-password\") text = msg.as_string() server.sendmail(sender, receiver, text) server.quit() Define when your business's operating hours are: START_OF_BUSINESS = 9 # e.g. 9am END_OF_BUSINESS = 17 # e.g. 5pm def is_within_business_hours(): current_hour = datetime.now().hour return START_OF_BUSINESS <= current_hour < END_OF_BUSINESS Write the main application loop: gl = Groundlight() detector = gl.get_or_create_detector( name=\"counter-in-use\", query=\"Is there a customer at the service counter?\", # We can get away with relatively low confidence since we're aggregating confidence_threshold=0.8) DELAY = 60 log = [] daily_log = [] next_hourly_start = datetime.now().replace(minute=0, second=0, microsecond=0) + timedelta(hours=1) while True: if not is_within_business_hours(): time.sleep(DELAY) continue image = capture_image() if not image: print(\"Failed to capture image\") time.sleep(DELAY) continue try: iq = gl.submit_image_query(image=image, detector=detector, wait=60) except Exception as e: print(f\"Error submitting image query: {e}\") time.sleep(DELAY) continue answer = iq.result.label log.append(answer) if datetime.now() >= next_hourly_start: next_hourly_start += timedelta(hours=1) percent_in_use = (log.count(\"YES\") / len(log)) * 100 current_time = datetime.now().replace(hour=START_OF_BUSINESS, minute=0, second=0) formatted_time = current_time.strftime(\"%I%p\") # like 3pm msg = f\"Hourly summary for {formatted_time}: {percent_in_use:.0f}% counter in use\" print(msg) daily_log.append(msg) log = [] current_hour = datetime.now().hour if current_hour == END_OF_BUSINESS and not daily_log == []: daily_summary = \"Daily summary:\\n\" for msg in daily_log: daily_summary += f\"{msg}\\n\" print(daily_summary) send_email(sender=\"counterbot@example.com\", receiver=\"manager@example.com\", subject=\"Daily Service Counter Usage Log\", body=daily_summary) daily_log = [] time.sleep(DELAY) This application captures an image using the capture_image function, then submits it to the Groundlight API for analysis. If a customer is detected at the counter, it logs the event. Every hour, it prints a summary of the counter's usage percentage, and at the end of the day, it emails the daily log using the send_email function. Save the script as service_counter_monitor.py and run it: python service_counter_monitor.py","s":"Creating the Application","u":"/python-sdk/docs/getting-started/retail-analytics","h":"#creating-the-application","p":111},{"i":122,"t":"With Groundlight's detectors, you can ask binary questions about images — i.e., the answer should be unambiguously \"YES\" or \"NO\". If you ask an ambiguous question, you may receive an \"UNSURE\" response. detector = gl.get_or_create_detector( name=\"Conveyor belt boxes\", query=\"Are there any cardboard boxes on the conveyor belt?\" ) image_query = gl.submit_image_query(detector=detector, image=some_image) # The SDK can return \"YES\" or \"NO\" (or \"UNSURE\") print(f\"The answer is {image_query.result.label}\") So, what makes a good question? Let's look at a few good ✅, moderate 🟡, and bad ❌ examples!","s":"Introduction","u":"/python-sdk/docs/getting-started/writing-queries","h":"#introduction","p":120},{"i":125,"t":"This question is binary and can be answered unambiguously with a simple \"YES\" or \"NO\" based on the image content.","s":"✅ Are there any cardboard boxes on the conveyor belt?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-are-there-any-cardboard-boxes-on-the-conveyor-belt","p":120},{"i":127,"t":"This question is okay, but it could be rephrased to be more specific. For example, \"Is the black trash can more than 80% full?\" tip With Groundlight, your questions may be routed to a machine learning model or a human reviewer. One way to improve your questions is to think, \"If I saw this question for the first time, would I know precisely what the person was trying to convey?\"","s":"🟡 Is the trash can full?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-trash-can-full","p":120},{"i":129,"t":"The query is very specific about what \"YES\" means. According to this query, any slight / partial opening would be considered \"NO\".","s":"✅ Is the garage door completely closed?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-garage-door-completely-closed","p":120},{"i":131,"t":"This question is somewhat ambiguous. Different people may have different opinions on what is nice weather. Instead, you might ask \"Can you see any clouds in the sky?\"","s":"🟡 Is the weather nice out?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-weather-nice-out","p":120},{"i":133,"t":"This is not a binary question — \"YES\" and \"NO\" don't make sense in this context. Also, it's not clear what the \"thing\" refers to.","s":"❌ Where is the thing?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-where-is-the-thing","p":120},{"i":135,"t":"While this question is binary, \"cleanliness\" can be somewhat subjective. An improved version could be: \"Are there any visible spills or clutter on the factory floor?\"","s":"🟡 Is the factory floor clean and organized?","u":"/python-sdk/docs/getting-started/writing-queries","h":"#-is-the-factory-floor-clean-and-organized","p":120},{"i":137,"t":"Welcome to the Groundlight SDK installation guide. In this guide, you'll find step-by-step instructions on how to install and set up the Groundlight SDK on various platforms.","s":"Installation","u":"/python-sdk/docs/installation","h":"","p":136},{"i":139,"t":"Choose your platform from the list below and follow the instructions in the corresponding guide: Linux macOS Windows Raspberry Pi NVIDIA Jetson Linux with Monitoring Notification Server ESP32 Camera Device After completing the installation process for your platform, you'll be ready to start building visual applications using the Groundlight SDK.","s":"Platform-specific Installation Guides","u":"/python-sdk/docs/installation","h":"#platform-specific-installation-guides","p":136},{"i":141,"t":"This guide will help you install the Groundlight SDK on Linux. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on Linux","u":"/python-sdk/docs/installation/linux","h":"","p":140},{"i":143,"t":"Ensure that you have the following installed on your system: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/linux","h":"#prerequisites","p":140},{"i":145,"t":"Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/linux","h":"#basic-installation","p":140},{"i":147,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip install groundlight If you're also using python2 on your system, you might need to use pip3 instead: pip3 install groundlight The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#installing-groundlight-sdk","p":140},{"i":149,"t":"To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner: python -c \"import groundlight; print(groundlight.__version__)\"","s":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/linux","h":"#checking-groundlight-sdk-version","p":140},{"i":151,"t":"If you need to upgrade the Groundlight SDK to the latest version, use the following pip command: pip install --upgrade groundlight Or, if you're using pip3: pip3 install --upgrade groundlight After upgrading, you can use the Python one-liner mentioned in the \"Checking Groundlight SDK Version\" section to verify that the latest version is now installed.","s":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/linux","h":"#upgrading-groundlight-sdk","p":140},{"i":153,"t":"To check your installed Python version, open a terminal and run: python --version If you see a version number starting with \"3.7\" or higher (e.g., \"3.7.5\" or \"3.9.0\"), you're good to go. If not, you might need to upgrade Python on your system.","s":"Getting the right Python Version","u":"/python-sdk/docs/installation/linux","h":"#getting-the-right-python-version","p":140},{"i":155,"t":"Use your distribution's package manager to install the latest Python version: For Ubuntu or Debian-based systems: sudo apt update sudo apt install python3 (For Ubuntu 18.04 see note below.) For Fedora-based systems: sudo dnf install python3 For Arch Linux: sudo pacman -S python After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.","s":"Upgrading Python on Linux","u":"/python-sdk/docs/installation/linux","h":"#upgrading-python-on-linux","p":140},{"i":157,"t":"Ubuntu 18.04 still uses python 3.6 by default, which is end-of-life. We generally recommend using python 3.10. If you know how to install py3.10, please go ahead. But the easiest version of python 3 to use with Ubuntu 18.04 is python 3.8, which can be installed as follows without adding any extra repositories: # Prepare Ubuntu to install things sudo apt-get update # Install the basics sudo apt-get install -y python3.8 python3.8-distutils curl # Configure `python3` to run python3.8 by default sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 10 # Download and install pip3.8 curl https://bootstrap.pypa.io/get-pip.py > /tmp/get-pip.py sudo python3.8 /tmp/get-pip.py # Configure `pip3` to run pip3.8 sudo update-alternatives --install /usr/bin/pip3 pip3 $(which pip3.8) 10 # Now we can install Groundlight! pip3 install groundlight","s":"Special note about Ubuntu 18.04","u":"/python-sdk/docs/installation/linux","h":"#special-note-about-ubuntu-1804","p":140},{"i":159,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/linux","h":"#ready-to-go","p":140},{"i":161,"t":"This guide will help you install the Groundlight SDK on macOS. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on macOS","u":"/python-sdk/docs/installation/macos","h":"","p":160},{"i":163,"t":"Ensure that you have the following installed on your system: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/macos","h":"#prerequisites","p":160},{"i":165,"t":"Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/macos","h":"#basic-installation","p":160},{"i":167,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip install groundlight If you're also using python2 on your system, you might need to use pip3 instead: pip3 install groundlight The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#installing-groundlight-sdk","p":160},{"i":169,"t":"To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner: python -c \"import groundlight; print(groundlight.__version__)\"","s":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/macos","h":"#checking-groundlight-sdk-version","p":160},{"i":171,"t":"If you need to upgrade the Groundlight SDK to the latest version, use the following pip command: pip install --upgrade groundlight Or, if you're using pip3: pip3 install --upgrade groundlight After upgrading, you can use the Python one-liner mentioned in the \"Checking Groundlight SDK Version\" section to verify that the latest version is now installed.","s":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/macos","h":"#upgrading-groundlight-sdk","p":160},{"i":173,"t":"To check your installed Python version, open a terminal and run: python --version If you see a version number starting with \"3.7\" or higher (e.g., \"3.7.5\" or \"3.9.0\"), you're good to go. If not, you might need to upgrade Python on your system.","s":"Getting the right Python Version","u":"/python-sdk/docs/installation/macos","h":"#getting-the-right-python-version","p":160},{"i":175,"t":"Download the latest Python installer from the official Python website and run it, or use Homebrew to install Python: brew install python After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.","s":"Upgrading Python on MacOS","u":"/python-sdk/docs/installation/macos","h":"#upgrading-python-on-macos","p":160},{"i":177,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/macos","h":"#ready-to-go","p":160},{"i":179,"t":"This is the easiest way to deploy your Groundlight detectors on a linux computer. All configuration is done through a web user interface, and no code development is required.","s":"Monitoring Notification Server","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"","p":178},{"i":181,"t":"Internet connected linux computer Video source (USB camera or RTSP stream) Groundlight API Key (available from groundlight.ai)","s":"Prerequisites","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#prerequisites","p":178},{"i":183,"t":"Install Docker on your computer. See Docker's installation instructions. Create a new file called docker-compose.yml in your project directory. Copy the following into it: services: frontend: image: docker.io/groundlight/monitoring-notification-server-frontend:latest ports: - \"3000:3000\" depends_on: - backend backend: image: docker.io/groundlight/monitoring-notification-server-backend:latest ports: - \"8000:8000\" devices: - /dev/video0:/dev/video0 - /dev/video1:/dev/video1 - /dev/video2:/dev/video2 - /dev/video3:/dev/video3 privileged: true volumes: - /dev/bus/usb:/dev/bus/usb Run the following command in your project directory: docker-compose up If installed locally, open http://localhost:3000 in your browser. If installed on a remote device, replace localhost with the IP address of your device. You should see the following page:","s":"Deployment","u":"/python-sdk/docs/installation/monitoring-notification-server","h":"#deployment","p":178},{"i":185,"t":"This guide will help you install the Groundlight SDK on NVIDIA Jetson devices. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on NVIDIA Jetson","u":"/python-sdk/docs/installation/nvidia-jetson","h":"","p":184},{"i":187,"t":"Ensure that you have the following installed on your NVIDIA Jetson: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#prerequisites","p":184},{"i":189,"t":"Assuming you have Python 3.7 or higher installed on your NVIDIA Jetson, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#basic-installation","p":184},{"i":191,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip3 install groundlight An ARM-compatible version will automatically get installed. The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#installing-groundlight-sdk","p":184},{"i":193,"t":"If you have docker installed on your NVIDIA Jetson, you can even just run docker run groundlight/stream as we publish an ARM version of our streaming application to Docker Hub.","s":"Using RTSP Streams","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#using-rtsp-streams","p":184},{"i":195,"t":"For a complete end-to-end example of running on an NVIDIA Jetson, see this GitHub repo.","s":"Sample application","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#sample-application","p":184},{"i":197,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and [Building Applications","s":"Ready to go!","u":"/python-sdk/docs/installation/nvidia-jetson","h":"#ready-to-go","p":184},{"i":200,"t":"The Groundlight SDK is optimized to run on small edge devices. As such, you can use the Groundlight SDK without installing large libraries like numpy or OpenCV. But if you're already installing them, we'll use them. Our SDK detects if these libraries are installed and will make use of them if they're present. If not, we'll gracefully degrade, and tell you what's wrong if you try to use these features.","s":"Smaller is better!","u":"/python-sdk/docs/installation/optional-libraries","h":"#smaller-is-better","p":198},{"i":202,"t":"The PIL library offers a bunch of standard utilities for working with images in python. The Groundlight SDK can work without PIL. Because PIL is not very large, and is quite useful, we install it by default with the normal build of the Groundlight SDK. So when you pip3 install groundlight it comes with the pillow version of the PIL library already installed.","s":"PIL - optional but default installed","u":"/python-sdk/docs/installation/optional-libraries","h":"#pil---optional-but-default-installed","p":198},{"i":204,"t":"If you are extremely space constrained, you can install the Groundlight SDK from source without PIL and it will work properly, but with reduced functionality. Specifically, you will need to convert your images into JPEG format yourself. The SDK normally relies on PIL to do JPEG compression (which is a non-trivial algorithm), and the API requires images to be in JPEG format. However on space-constrained platforms, sometimes this conversion is done in hardware, and so we don't want to force you to install PIL if you don't need it.","s":"Working without PIL","u":"/python-sdk/docs/installation/optional-libraries","h":"#working-without-pil","p":198},{"i":206,"t":"These commonly-used libraries are not installed by default, because they are quite large, and their installation can often cause conflicts with other dependent libraries. If you want to use them, install them directly.","s":"Numpy, OpenCV - fully optional","u":"/python-sdk/docs/installation/optional-libraries","h":"#numpy-opencv---fully-optional","p":198},{"i":208,"t":"This guide will help you install the Groundlight SDK on Raspberry Pi. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on Raspberry Pi","u":"/python-sdk/docs/installation/raspberry-pi","h":"","p":207},{"i":210,"t":"Ensure that you have the following installed on your Raspberry Pi: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/raspberry-pi","h":"#prerequisites","p":207},{"i":212,"t":"Assuming you have Python 3.7 or higher installed on your Raspberry Pi, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/raspberry-pi","h":"#basic-installation","p":207},{"i":214,"t":"To install the Groundlight SDK using pip, run the following command in your terminal: pip3 install groundlight An ARM-compatible version will automatically get installed. The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/raspberry-pi","h":"#installing-groundlight-sdk","p":207},{"i":216,"t":"If you have docker installed on your Raspberry Pi, you can even just run docker run groundlight/stream as we publish an ARM version of our streaming application to Docker Hub.","s":"Using RTSP Streams","u":"/python-sdk/docs/installation/raspberry-pi","h":"#using-rtsp-streams","p":207},{"i":218,"t":"For a complete end-to-end example of running on a Raspberry Pi, see this GitHub repo.","s":"Sample application","u":"/python-sdk/docs/installation/raspberry-pi","h":"#sample-application","p":207},{"i":220,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/raspberry-pi","h":"#ready-to-go","p":207},{"i":222,"t":"This guide will help you install the Groundlight SDK on Windows. The Groundlight SDK requires Python 3.7 or higher.","s":"Installing on Windows","u":"/python-sdk/docs/installation/windows","h":"","p":221},{"i":224,"t":"Ensure that you have the following installed on your system: Python 3.7 or higher pip (Python package installer)","s":"Prerequisites","u":"/python-sdk/docs/installation/windows","h":"#prerequisites","p":221},{"i":226,"t":"Assuming you have Python 3.7 or higher installed on your system, you can proceed with the following steps to install or upgrade the Groundlight SDK:","s":"Basic Installation","u":"/python-sdk/docs/installation/windows","h":"#basic-installation","p":221},{"i":228,"t":"To install the Groundlight SDK using pip, run the following command in your Command Prompt: pip install groundlight If you're also using python2 on your system, you might need to use pip3 instead: pip3 install groundlight The Groundlight SDK is now installed and ready for use.","s":"Installing Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#installing-groundlight-sdk","p":221},{"i":230,"t":"To check if the Groundlight SDK is installed and to display its version, you can use the following Python one-liner: python -c \"import groundlight; print(groundlight.__version__)\"","s":"Checking Groundlight SDK Version","u":"/python-sdk/docs/installation/windows","h":"#checking-groundlight-sdk-version","p":221},{"i":232,"t":"If you need to upgrade the Groundlight SDK to the latest version, use the following pip command: pip install --upgrade groundlight Or, if you're using pip3: pip3 install --upgrade groundlight After upgrading, you can use the Python one-liner mentioned in the \"Checking Groundlight SDK Version\" section to verify that the latest version is now installed.","s":"Upgrading Groundlight SDK","u":"/python-sdk/docs/installation/windows","h":"#upgrading-groundlight-sdk","p":221},{"i":234,"t":"To check your installed Python version, open a Command Prompt and run: python --version If you see a version number starting with \"3.7\" or higher (e.g., \"3.7.5\" or \"3.9.0\"), you're good to go. If not, you might need to upgrade Python on your system.","s":"Getting the right Python Version","u":"/python-sdk/docs/installation/windows","h":"#getting-the-right-python-version","p":221},{"i":236,"t":"Download the latest Python installer from the official Python website and run it. After upgrading, verify the Python version by running python --version or python3 --version, as described earlier.","s":"Upgrading Python on Windows","u":"/python-sdk/docs/installation/windows","h":"#upgrading-python-on-windows","p":221},{"i":238,"t":"You're now ready to start using the Groundlight SDK in your projects. For more information on using the SDK, refer to the API Tokens and Building Applications documentation pages.","s":"Ready to go!","u":"/python-sdk/docs/installation/windows","h":"#ready-to-go","p":221},{"i":240,"t":"Groundlight supplies a tool for no-code deployment of a detector to an ESP32 Camera board. You can find it at https://iot.groundlight.ai/espcam.","s":"No-Code IoT Deployment","u":"/python-sdk/docs/iot","h":"","p":239},{"i":242,"t":"This tool is designed to make it as easy as possible to deploy your Groundlight detector on an ESP32 Camera Board. You can deploy your detector in just a few clicks. Go to https://iot.groundlight.ai/espcam Plug your ESP32 Camera Board into your computer with a USB cable. Click through the steps to upload your detector to your ESP32 Camera Board. When prompted, allow your browser access to the serial port, so that it can program the device. If you don't see a prompt like this, try using a current version of Chrome or another browser that supports Web Serial.","s":"Easy Deployment","u":"/python-sdk/docs/iot","h":"#easy-deployment","p":239},{"i":244,"t":"The tool supports the following notification options for your deployed detector: Email SMS (With Twilio) Slack","s":"Notification Options","u":"/python-sdk/docs/iot","h":"#notification-options","p":239},{"i":246,"t":"Tested with the following boards. Many other ESP32 boards should work as well, but may require building the firmware from source and changing the IO pin definitions. M5Stack ESP32 PSRAM Timer Camera [purchase here] M5Stack ESP32 PSRAM Timer Camera X [purchase here] ESP32-CAM [purchase here] SeeedStudio ESP32S3 Sense [purchase here]","s":"Multiple Supported Boards","u":"/python-sdk/docs/iot","h":"#multiple-supported-boards","p":239},{"i":248,"t":"The source code is written as an Arduino-based PlatformIO project for ESP32, and is available on GitHub at https://github.com/groundlight/esp32cam If you need assistance or have questions about integrating Groundlight with Arduino, please consider opening an issue on the GitHub repository or reaching out to our support team.","s":"Source Code","u":"/python-sdk/docs/iot","h":"#source-code","p":239}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,0.651,1,3.573,2,3.263,3,1.835,4,2.091,5,3.263,6,2.446,7,2.561,8,1.681,9,4.043,10,2.693,11,4.274,12,3.191,13,4.043,14,2.02,15,4.043,16,2.343,17,4.013,18,1.3,19,4.043,20,3.263,21,3.263,22,4.043,23,3.263,24,2.847,25,2.561,26,3.031,27,4.043,28,2.847,29,4.043,30,1.332,31,3.263,32,4.043,33,1.954,34,4.043,35,3.573,36,4.043]],["t/5",[0,0.634,5,5.188,12,3.106,37,5.68,38,4.82,39,5.68,40,2.917,41,5.68]],["t/7",[0,0.492,18,1.606,42,3.518,43,4.997,44,4.032,45,4.997,46,4.415,47,5.187,48,4.997,49,4.415,50,4.415,51,4.997,52,4.415,53,3.328,54,3.022,55,4.032,56,2.663,57,4.415,58,2.678,59,2.896,60,4.997,61,2.496]],["t/9",[2,4.141,4,3.465,8,2.133,10,3.417,16,2.974,28,3.613,30,1.69,42,3.613,62,4.534,63,2.402,64,4.534,65,3.104,66,5.922,67,2.75,68,5.131,69,5.131,70,2.653,71,4.534,72,5.131,73,3.847,74,5.131]],["t/11",[8,1.974,28,3.343,42,3.343,54,2.872,63,2.98,75,4.748,76,3.851,77,7.674,78,6.366,79,4.195,80,3.343,81,3.343,82,2.872,83,3.832,84,4.748,85,3.56,86,4.748,87,4.748,88,3.56,89,4.195,90,3.56,91,4.748,92,3.832]],["t/13",[0,0.594,3,2.733,4,3.114,6,3.643,7,3.814,12,2.91,54,3.643,93,4.24,94,6.022,95,5.321,96,4.515,97,4.24]],["t/15",[0,0.688,2,2.669,3,1.501,4,1.71,5,2.669,6,2,7,2.095,11,2.48,12,3.153,16,1.917,17,2.328,18,1.063,28,2.328,30,1.939,33,1.598,35,2.922,65,2,98,3.307,99,3.307,100,2.856,101,1.917,102,2.48,103,1.116,104,2.328,105,3.694,106,2.669,107,2.48,108,3.121,109,3.307,110,2.669,111,2.922,112,3.307,113,2.922,114,3.307,115,2.922,116,2.48,117,2.48,118,4.354,119,3.281,120,3.307,121,2.203,122,3.307,123,3.307,124,3.307,125,3.307,126,2.48,127,2.922,128,2.48,129,1.917,130,2.922]],["t/17",[56,2.193,64,4.792,71,4.792,108,4.854,116,4.066,131,3.612,132,3.612,133,3.818,134,4.066,135,1.662,136,3.818,137,4.376,138,5.423,139,4.376,140,3.818,141,5.423,142,5.423]],["t/19",[0,0.524,18,1.395,47,1.97,63,1.309,76,1.692,80,1.97,82,1.692,107,2.098,108,4.913,133,1.97,143,6.059,144,2.798,145,2.798,146,3.985,147,1.772,148,1.772,149,2.798,150,2.798,151,1.772,152,2.098,153,2.798,154,2.798,155,1.772,156,2.798,157,5.291,158,2.258,159,2.798,160,0.532,161,2.798,162,2.472,163,3.055,164,2.472,165,1.863,166,2.472,167,2.798,168,2.098,169,2.098,170,2.798,171,1.97,172,2.798,173,2.258,174,2.472,175,2.472,176,2.472,177,2.803,178,3.985,179,3.834,180,2.472,181,4.339,182,2.798,183,2.798,184,1.692,185,2.798,186,2.798,187,2.798]],["t/21",[0,0.772,18,1.606,107,3.746,108,3.165,143,5.82,160,0.95,162,4.415,188,4.415,189,4.415,190,2.021,191,2.339,192,1.915,193,4.997,194,4.997,195,4.997,196,3.328,197,4.032,198,4.415,199,4.997,200,1.303,201,4.997]],["t/23",[129,3.49,160,1.145,202,6.022,203,3.49,204,4.011,205,4.86,206,6.022,207,5.321,208,3.643,209,3.49,210,4.24,211,4.515]],["t/25",[0,0.753,160,0.892,177,2.195,190,2.553,191,2.195,192,2.735,203,2.718,208,3.819,212,4.144,213,3.123,214,3.302,215,3.784,216,2.718,217,3.784,218,4.689,219,5.095,220,2.97,221,4.689,222,6.314,223,4.689,224,4.689]],["t/27",[0,0.498,65,2.072,70,2.615,160,0.652,177,1.604,190,1.385,192,2.84,203,3.485,204,2.282,205,2.765,209,2.931,210,2.412,211,2.569,213,2.282,214,2.412,225,3.027,226,2.412,227,3.027,228,5.058,229,2.17,230,2.765,231,4.852,232,2.765,233,3.027,234,2.765,235,3.426,236,4.082,237,3.027,238,2.765,239,3.027,240,2.765,241,3.426,242,3.027,243,2.412,244,3.426,245,3.426,246,5.358,247,3.426,248,2.765,249,1.907,250,3.027,251,3.426,252,3.426]],["t/29",[0,0.354,14,1.792,16,2.079,28,2.525,90,2.689,160,0.682,177,1.679,190,1.45,192,2.004,203,2.079,209,2.079,210,4.347,211,2.689,212,3.17,215,2.895,229,2.272,230,4.222,231,4.222,232,2.895,242,3.17,250,3.17,253,3.587,254,2.895,255,3.17,256,3.587,257,3.17,258,3.587,259,3.587,260,3.587,261,3.587,262,3.587,263,3.587,264,3.587,265,2.525,266,3.587,267,3.587,268,3.587,269,3.587,270,3.587,271,3.587,272,3.587,273,5.231,274,3.587,275,3.587,276,3.587,277,3.587,278,3.587,279,3.17,280,3.587]],["t/31",[0,0.53,6,1.395,18,0.742,30,0.76,55,1.862,90,1.73,93,1.624,96,1.73,160,0.439,176,3.291,177,2.761,192,2.06,203,3.116,204,1.536,209,2.714,210,3.298,211,2.792,215,1.862,216,1.337,225,2.039,229,1.461,230,4.338,231,5.356,232,4.338,233,2.039,234,1.862,254,1.862,255,3.291,279,4.139,281,2.307,282,3.291,283,2.307,284,2.307,285,2.307,286,2.307,287,2.307,288,2.307,289,2.039,290,1.284,291,2.307,292,1.536,293,2.307,294,0.987,295,3.724,296,2.792,297,3.724,298,2.039,299,2.307,300,2.307,301,2.039,302,2.307,303,1.73,304,2.307,305,2.307,306,2.307,307,2.307,308,2.307,309,2.307,310,2.307,311,2.307,312,2.792,313,2.307,314,2.039,315,1.73,316,2.039,317,3.724,318,2.039,319,2.039,320,2.307,321,2.307,322,2.307,323,1.461,324,2.307,325,2.307]],["t/33",[1,3.69,40,1.895,53,2.781,55,5.422,57,3.69,65,2.526,165,2.781,177,3.404,204,4.475,207,3.69,226,2.94,326,4.176,327,4.706,328,4.706,329,5.831,330,6.718,331,6.718,332,3.131,333,3.69,334,4.176,335,3.69,336,3.69,337,3.69,338,3.69,339,5.831]],["t/35",[0,0.52,10,3.512,12,2.548,14,2.634,25,3.34,59,3.056,88,3.953,100,3.056,119,4.543,121,4.543,151,3.34,160,1.003,340,5.273,341,2.192,342,5.273,343,5.273,344,4.255,345,3.953,346,3.34]],["t/37",[0,0.465,14,1.879,52,2.064,88,1.751,118,4.173,132,2.505,151,2.382,160,0.444,168,1.751,190,1.521,191,1.093,192,2.982,204,1.555,328,1.885,341,1.564,347,4.059,348,1.885,349,2.335,350,4.173,351,2.335,352,1.644,353,3.761,354,1.644,355,1.885,356,1.885,357,3.761,358,2.335,359,2.335,360,2.335,361,1.885,362,2.335,363,2.335,364,1.751,365,1.885,366,2.335,367,2.064,368,2.335,369,3.761,370,3.761,371,2.335,372,2.335,373,1.885,374,2.335,375,3.761,376,4.722,377,2.335,378,2.335,379,2.335,380,2.064,381,4.722,382,3.761,383,2.335,384,2.335,385,2.335,386,1.885,387,2.335,388,2.335,389,2.335,390,2.335,391,2.064,392,2.335,393,2.335,394,2.335,395,3.761,396,2.335,397,2.064,398,2.335,399,1.885,400,2.064,401,2.064,402,2.335,403,2.335,404,2.335,405,2.335,406,2.335]],["t/39",[0,0.603,10,4.075,14,3.056,65,3.701,121,4.075,160,1.164,344,4.938,346,3.876,407,4.938,408,4.308,409,4.938]],["t/41",[59,3.188,346,4.44,350,4.861,352,3.873,367,4.861,410,4.861,411,3.873,412,5.501,413,5.501,414,4.861,415,5.501,416,5.501,417,3.873,418,5.501,419,5.501,420,5.501,421,4.124]],["t/43",[0,0.55,61,2.788,63,3.311,119,4.712,160,1.062,352,3.93,411,3.93,422,4.932,423,4.185,424,5.582,425,5.582,426,5.582,427,4.932,428,5.582,429,4.932]],["t/45",[33,2.548,61,2.634,63,2.468,346,3.34,347,3.953,421,3.953,430,4.543,431,5.273,432,5.273,433,3.512,434,5.273,435,5.273,436,4.255,437,5.273,438,4.659,439,3.19,440,5.273,441,5.273,442,5.273,443,5.273]],["t/47",[59,3.014,61,2.598,63,2.434,117,3.9,119,3.464,140,3.662,164,4.596,323,3.294,346,3.294,400,4.596,421,5.069,444,4.596,445,5.201,446,5.201,447,5.201,448,5.201,449,5.201,450,5.201,451,5.201,452,4.197,453,4.596]],["t/49",[63,2.503,119,3.561,121,3.561,243,3.764,345,4.009,346,3.387,347,4.009,436,4.315,454,5.347,455,5.347,456,3.099,457,5.347,458,5.347,459,5.347,460,5.347,461,5.347,462,5.347,463,5.347,464,4.725,465,4.725]],["t/51",[0,0.457,12,2.239,16,2.685,30,1.526,61,2.314,63,2.168,103,1.563,117,3.473,119,4.17,121,4.17,151,2.934,160,0.881,234,3.738,333,4.093,344,3.738,345,3.473,346,2.934,347,3.473,408,3.262,409,3.738,410,4.093,421,3.473,456,3.629,466,3.738,467,4.632,468,4.632,469,4.632,470,4.632]],["t/53",[0,0.446,3,2.796,4,3.185,6,2.736,7,2.865,12,2.186,17,3.184,33,2.186,54,2.736,95,3.996,96,4.619,97,3.184,108,2.865,166,3.996,471,4.523,472,3.65,473,4.523,474,4.523,475,3.996,476,3.391,477,3.996,478,4.523,479,2.865,480,3.996,481,3.65,482,4.523,483,4.523,484,4.523,485,3.996,486,3.184]],["t/55",[3,1.982,4,2.258,6,2.642,7,2.766,23,3.524,30,1.438,33,2.111,59,2.531,129,2.531,472,3.524,479,2.766,487,4.367,488,4.367,489,4.854,490,6.015,491,5.315,492,4.367,493,4.367,494,4.367,495,3.859,496,3.859,497,4.367,498,4.367,499,4.367,500,4.367,501,4.367,502,3.859,503,4.367,504,4.367,505,4.367,506,4.367,507,4.367,508,4.367]],["t/57",[3,2.102,4,2.395,6,2.802,7,2.934,61,2.314,129,2.685,165,3.085,452,3.738,453,4.093,475,4.093,476,4.695,479,2.934,491,4.093,509,4.093,510,4.093,511,3.738,512,4.632,513,4.093,514,4.632,515,4.632,516,6.262,517,4.093,518,4.632,519,4.632,520,4.632,521,4.632,522,4.632,523,4.632,524,4.093]],["t/59",[3,2.796,4,3.185,8,1.88,61,2.259,97,3.184,129,2.621,139,3.65,257,3.996,294,1.935,452,3.65,479,2.865,481,3.65,485,6.191,486,3.184,525,3.65,526,4.523,527,4.523,528,3.996,529,4.523,530,3.996,531,4.523,532,4.523,533,4.523,534,4.523,535,4.523,536,4.523,537,4.523,538,4.523,539,4.523]],["t/61",[3,1.96,4,2.233,30,1.422,59,2.502,97,3.04,129,2.502,130,3.815,136,3.04,196,2.876,205,3.485,327,3.485,427,3.815,479,3.78,480,5.273,486,3.04,495,3.815,496,3.815,502,5.273,517,3.815,540,3.485,541,4.318,542,4.318,543,4.318,544,4.318,545,3.04,546,4.318,547,4.318,548,4.318,549,3.485,550,4.318,551,4.318,552,4.318,553,4.318,554,4.318]],["t/63",[3,2.571,4,2.929,6,3.426,7,3.588,33,2.737,96,4.247,97,3.988,102,4.247,106,4.571,129,3.283,479,3.588,481,4.571,555,5.664,556,4.247,557,5.664,558,5.664]],["t/65",[0,0.397,8,0.609,14,1.271,20,1.182,23,1.182,24,1.791,31,1.182,33,1.63,40,0.665,67,0.785,80,2.374,81,1.032,83,1.182,116,2.528,128,1.908,133,2.374,137,2.721,169,3.748,173,1.182,177,2.513,178,1.908,184,2.436,190,1.364,191,0.686,192,2.057,208,0.886,214,1.032,216,0.849,220,0.928,265,1.032,290,0.816,296,1.099,319,1.295,332,1.099,355,1.182,364,1.099,399,1.182,408,1.032,486,1.032,540,1.182,545,1.032,559,1.465,560,1.465,561,2.248,562,4.028,563,1.295,564,4.029,565,1.612,566,2.248,567,1.295,568,1.182,569,3.25,570,1.465,571,1.295,572,1.182,573,1.099,574,1.295,575,1.465,576,0.976,577,3.25,578,1.032,579,1.295,580,1.099,581,3.372,582,4.644,583,3.372,584,1.182,585,1.465,586,1.465,587,1.465,588,2.544,589,2.248,590,1.695,591,2.544,592,0.665,593,1.465,594,2.248,595,2.544,596,1.465,597,1.295,598,1.465,599,1.465,600,1.465,601,1.465,602,1.295,603,1.295,604,1.465,605,1.295,606,1.182,607,1.465,608,1.465,609,1.465,610,1.465,611,1.695,612,2.248,613,2.248,614,1.908,615,1.182,616,1.295,617,1.465,618,1.295,619,1.393,620,1.295,621,1.295,622,0.886,623,1.182,624,1.465,625,1.465,626,1.465,627,1.465,628,1.465,629,1.295,630,2.544,631,1.465,632,1.465,633,1.465,634,1.465,635,1.182,636,1.465,637,1.465,638,1.465,639,1.465,640,2.544,641,1.295,642,1.295,643,1.465]],["t/68",[0,0.647,16,2.319,18,1.819,40,1.816,67,3.519,126,3,184,3.423,190,1.618,191,1.873,192,2.168,220,2.534,249,2.228,423,3,549,3.229,576,3.768,590,2.665,644,4.001,645,4.001,646,7.136,647,5.658,648,3,649,4.001,650,3,651,4.001,652,4.001,653,3.229,654,4.001,655,4.001,656,3.535,657,3.535,658,4.001,659,4.001]],["t/70",[0,0.809,67,3.389,190,2.556,191,2.959,192,2.928,660,6.322]],["t/72",[0,0.717,25,4.607,73,3.651,105,4.854,190,1.969,191,2.279,192,3.093,577,5.225,661,4.303,662,5.721,663,4.869,664,4.303,665,4.303,666,4.303,667,4.869,668,4.303]],["t/74",[0,0.721,18,1.586,101,2.858,157,4.358,184,3.95,190,1.994,191,2.308,192,2.502,214,3.472,216,3.784,348,3.98,576,3.285,590,3.285,611,3.285,623,3.98,641,4.358,669,4.358,670,4.358,671,4.932,672,4.932,673,4.932]],["t/76",[0,0.717,25,4.607,73,3.651,190,1.969,191,2.279,192,3.093,577,5.225,661,4.303,662,5.721,664,4.303,665,4.303,666,4.303,668,4.303,674,6.474,675,4.869,676,4.869]],["t/78",[0,0.595,14,1.418,30,0.935,121,1.891,133,1.999,169,2.129,177,2.511,178,2.129,184,1.718,190,2.169,191,1.329,192,2.5,208,1.718,213,1.891,214,1.999,220,1.798,229,1.798,290,1.581,315,2.129,332,2.129,355,2.291,391,2.509,399,2.291,436,2.291,549,2.291,561,2.509,566,2.509,569,2.291,582,2.129,584,3.542,597,2.509,602,2.509,603,2.509,611,2.923,612,2.509,613,2.509,618,2.509,623,3.542,650,2.129,656,2.509,677,1.798,678,2.839,679,1.999,680,2.129,681,2.839,682,2.509,683,2.839,684,3.878,685,2.839,686,2.509,687,2.839,688,2.839,689,2.839,690,2.509,691,2.839,692,2.839,693,2.291,694,2.509,695,1.999,696,2.291,697,2.291,698,1.798,699,2.839,700,2.839,701,2.839,702,2.923,703,2.839]],["t/81",[0,0.625,3,1.708,4,1.946,8,1.565,10,2.507,21,3.038,65,2.277,160,0.716,177,1.762,190,1.522,191,1.762,192,2.818,200,1.413,217,3.038,220,2.384,229,2.384,298,3.326,301,3.326,407,3.038,565,2.384,611,2.507,614,2.822,615,3.038,680,2.822,686,3.326,696,3.038,697,3.038,698,2.384,704,3.764,705,3.326,706,3.326,707,2.822,708,3.326,709,3.326,710,3.764,711,3.764,712,3.764,713,3.764,714,3.326,715,3.764,716,3.764,717,3.764,718,3.764]],["t/83",[3,1.463,4,1.667,8,1.34,24,2.269,33,1.558,65,1.95,81,2.269,106,2.601,116,2.417,133,4.083,152,2.417,169,3.624,173,2.601,177,1.509,178,3.624,203,2.801,265,2.269,290,2.691,294,1.379,323,2.042,397,2.848,429,2.848,464,2.848,476,2.417,489,2.601,545,2.269,565,2.042,568,2.601,571,2.848,572,2.601,573,2.417,578,2.269,579,2.848,582,3.624,589,2.848,619,1.115,679,4.083,682,2.848,684,2.848,719,3.223,720,2.848,721,4.833,722,2.848,723,3.223,724,3.223,725,3.223,726,4.833,727,3.223,728,3.223,729,2.848,730,3.223,731,3.223,732,3.223,733,2.601,734,2.417,735,3.223]],["t/85",[11,4.066,30,1.786,66,4.792,108,3.435,111,4.792,129,3.143,290,3.019,479,3.435,572,4.376,573,4.066,584,4.376,736,5.423,737,5.423,738,5.423,739,5.423,740,4.792,741,5.423,742,5.423,743,5.423]],["t/87",[0,0.721,16,2.856,21,2.669,40,1.501,56,1.337,80,2.328,132,2.203,135,1.51,160,0.629,177,1.548,190,1.337,191,1.548,192,2.674,196,2.203,197,2.669,198,2.922,200,1.702,217,2.669,220,2.095,294,1.415,341,2.049,386,2.669,565,2.095,611,2.203,614,2.48,615,2.669,619,1.144,622,2,696,2.669,697,2.669,698,2.095,705,2.922,706,2.922,707,2.48,708,2.922,709,2.922,734,2.48,744,1.301,745,1.234,746,3.307,747,1.773,748,3.307,749,2.669,750,3.307,751,1.917,752,3.307,753,2.669,754,4.927]],["t/90",[0,0.627,14,2.372,18,2.047,131,3.162,160,0.903,294,2.031,312,3.56,341,2.986,348,3.832,751,3.69,755,4.195,756,4.748,757,4.748,758,4.195,759,2.545,760,4.748,761,4.748,762,4.748,763,4.748,764,4.748,765,4.748,766,4.748,767,4.748,768,4.748]],["t/92",[0,0.329,14,1.666,18,1.594,59,1.933,63,1.561,101,1.933,117,2.501,131,2.222,132,2.222,196,2.222,213,2.222,341,3.247,401,2.948,408,3.492,409,4.002,486,2.349,556,2.501,563,2.948,574,2.948,606,2.692,733,2.692,734,2.501,751,1.933,755,2.948,759,4.074,769,3.336,770,3.336,771,3.336,772,3.336,773,3.336,774,3.336,775,3.336,776,2.692,777,4.002,778,3.336,779,3.336,780,3.336,781,3.336,782,3.336,783,3.336,784,2.501,785,3.336,786,3.336,787,2.948,788,2.948,789,3.336]],["t/94",[0,0.712,14,2.882,42,3.382,160,0.913,188,2.824,189,4.244,190,1.942,191,2.248,192,2.458,196,3.843,197,4.656,213,2.129,312,2.396,341,2.859,386,3.876,408,2.25,414,2.824,578,2.25,648,2.396,669,2.824,751,4.187,759,1.713,790,3.196,791,2.824,792,2.824,793,2.824,794,3.196,795,3.196,796,3.196,797,3.196,798,2.396,799,3.196,800,3.196,801,3.196,802,3.196,803,3.196,804,3.196,805,3.196,806,3.196]],["t/96",[0,0.634,341,2.673,759,4.138,807,6.428,808,5.188,809,6.428,810,6.428]],["t/98",[0,0.588,16,3.459,25,2.735,40,1.96,131,2.876,341,2.843,430,2.876,511,3.485,540,3.485,576,3.975,642,3.815,653,3.485,751,4.276,759,3.199,777,4.816,811,4.318,812,4.816,813,3.815,814,4.318,815,3.815,816,4.318,817,5.273,818,4.318,819,4.318,820,3.815]],["t/100",[25,2.934,40,2.102,93,4.409,103,1.563,180,4.093,290,2.579,341,1.926,423,3.473,439,2.802,653,5.053,740,4.093,751,4.403,759,3.357,815,4.093,821,3.738,822,4.093,823,4.632,824,4.632,825,4.632,826,4.632,827,4.632,828,4.632,829,6.262,830,4.632]],["t/102",[0,0.435,12,2.93,30,1.455,131,2.942,229,2.798,249,2.46,296,3.312,341,1.837,576,2.942,580,3.312,590,4.038,751,4.524,787,5.357,788,3.904,812,3.565,813,3.904,821,3.565,831,4.418,832,4.418,833,4.418,834,6.063,835,4.418,836,4.418,837,4.418,838,4.418,839,3.904,840,3.565]],["t/104",[0,0.435,18,1.42,63,2.838,216,2.56,423,3.312,525,3.565,734,3.312,776,3.565,839,3.904,841,4.418,842,4.418,843,4.418,844,6.012,845,5.586,846,4.418,847,2.672,848,3.565,849,3.565,850,3.565,851,3.565,852,3.565,853,3.565,854,4.418,855,4.418,856,4.418,857,4.418,858,4.418,859,4.418,860,4.418]],["t/106",[0,0.506,53,3.417,70,2.653,140,3.613,160,0.976,200,1.338,433,3.417,619,1.775,707,3.847,745,1.915,792,4.534,844,4.141,845,4.141,851,4.141,852,4.141,853,4.141,861,4.141,862,3.847,863,5.131,864,5.131,865,4.463,866,5.131]],["t/108",[0,0.697,135,2.169,160,1.062,200,1.845,209,4.1,226,3.93,456,3.235,619,1.931,745,2.083,867,1.633,868,2.613,869,4.504,870,4.932]],["t/110",[0,0.498,24,1.224,26,1.304,30,1.263,44,1.403,56,0.703,63,2.114,67,1.58,70,0.899,168,1.304,171,2.075,177,2.881,184,1.052,190,2.366,191,0.814,192,2.881,200,0.769,208,1.783,209,1.008,238,1.403,240,1.403,246,1.403,248,2.379,265,2.701,290,0.968,292,1.158,296,1.304,303,1.304,341,1.225,352,1.224,354,1.224,361,1.403,364,1.304,365,2.379,373,1.403,430,1.158,466,2.379,525,1.403,565,1.867,580,1.304,679,1.224,702,1.158,751,1.008,753,2.379,820,1.537,844,1.403,845,3.096,850,2.379,851,2.379,852,2.379,853,2.379,870,1.537,871,1.304,872,1.739,873,2.604,874,3.991,875,2.604,876,3.389,877,1.537,878,2.604,879,1.537,880,1.537,881,1.537,882,1.537,883,1.537,884,1.739,885,1.739,886,1.739,887,1.739,888,1.739,889,1.739,890,1.739,891,1.739,892,1.739,893,1.739,894,1.739,895,1.739,896,2.947,897,1.739,898,1.739,899,1.739,900,1.739,901,1.537,902,1.537,903,1.739,904,1.403,905,1.537,906,1.537,907,1.537,908,1.739,909,1.739,910,1.537,911,1.537,912,1.739,913,1.537,914,1.304,915,1.739,916,1.537,917,1.537,918,1.739,919,1.739,920,1.537,921,2.947]],["t/113",[0,0.258,3,0.686,17,1.064,18,1.11,31,1.22,37,1.336,49,1.336,54,0.914,59,0.876,61,0.755,63,2.176,67,1.401,70,1.352,79,1.336,83,1.22,88,1.133,92,1.22,93,1.064,102,1.133,135,0.463,139,1.22,155,0.957,158,4.875,171,1.064,216,0.876,219,1.22,265,1.064,290,0.842,294,0.647,411,1.064,417,1.84,430,1.741,439,1.581,444,1.336,465,1.336,472,1.22,511,2.11,513,1.336,524,1.336,528,2.31,530,1.336,545,1.84,564,2.31,619,0.523,693,1.22,722,1.336,777,4.404,791,1.336,861,1.22,862,1.133,865,1.007,913,1.336,922,3.454,923,3.454,924,2.614,925,3.636,926,5.099,927,4.115,928,1.512,929,3.052,930,1.512,931,1.512,932,1.512,933,1.512,934,4.822,935,1.512,936,1.512,937,1.336,938,1.336,939,1.336,940,1.336,941,1.336,942,2.11,943,1.512,944,2.614,945,2.614,946,2.614,947,1.512,948,2.614,949,1.512,950,1.22,951,1.512,952,3.454,953,2.614,954,1.512,955,1.512,956,1.512,957,1.512,958,1.512,959,1.512,960,1.512,961,1.512,962,1.512,963,1.512,964,2.614,965,1.512,966,1.512,967,3.454,968,1.512,969,1.512,970,1.512,971,1.512,972,2.614,973,1.512,974,2.614,975,1.512,976,1.512,977,1.512,978,2.614,979,2.614,980,1.336,981,1.512,982,1.512,983,1.512,984,1.512,985,1.512,986,1.512,987,2.614,988,1.512,989,1.512,990,1.512,991,1.512,992,1.512,993,1.512,994,1.512,995,1.512,996,1.336,997,1.133,998,1.512]],["t/115",[0,0.55,53,3.717,70,2.886,131,3.717,132,3.717,140,3.93,160,1.062,200,1.456,236,4.504,430,3.717,619,1.931,745,2.083,861,4.504,862,4.185,942,4.504,997,4.185,999,5.582]],["t/117",[0,0.691,135,2.149,160,1.046,200,1.828,209,4.063,226,3.873,292,3.664,456,3.188,619,1.903,745,2.053,867,1.609,868,2.575,869,4.439,871,4.124]],["t/119",[0,0.361,18,0.61,24,0.741,26,0.789,30,0.854,56,0.426,63,1.485,67,0.564,70,0.544,92,0.85,140,0.741,151,0.667,158,1.532,168,0.789,171,1.826,177,2.236,184,0.637,190,2.047,191,0.493,192,3.162,196,0.701,200,0.495,208,1.148,209,0.61,220,0.667,236,0.85,238,0.85,240,0.85,246,0.85,248,1.532,290,0.586,292,0.701,294,0.45,303,0.789,341,0.789,352,0.741,354,0.741,356,0.85,361,0.85,364,0.789,365,1.532,373,0.85,430,2.723,433,1.264,466,1.532,565,0.667,567,0.93,580,0.789,582,0.789,594,0.93,679,0.741,690,0.93,714,1.678,729,0.93,751,0.61,753,1.532,850,0.85,865,0.701,871,0.789,873,2.291,874,2.804,875,2.291,876,2.291,877,0.93,878,1.678,879,0.93,880,0.93,881,0.93,882,0.93,883,0.93,901,0.93,902,0.93,904,0.85,905,0.93,906,0.93,907,0.93,910,0.93,911,0.93,916,0.93,917,0.93,920,0.93,925,1.678,926,2.804,929,0.93,934,1.678,937,0.93,938,0.93,939,1.678,940,0.93,941,0.93,942,2.092,996,0.93,997,0.789,1000,1.053,1001,1.898,1002,1.053,1003,1.053,1004,1.898,1005,1.053,1006,1.053,1007,1.053,1008,1.053,1009,2.593,1010,1.053,1011,2.593,1012,1.053,1013,1.053,1014,1.053,1015,1.053,1016,1.053,1017,1.053,1018,1.053,1019,1.053,1020,1.053,1021,1.053,1022,1.053,1023,1.898,1024,1.053,1025,1.053,1026,1.053,1027,1.053,1028,1.053,1029,1.898,1030,1.053,1031,1.053,1032,2.593,1033,1.053,1034,1.053,1035,1.898,1036,3.173,1037,1.898,1038,1.053,1039,1.053,1040,1.053,1041,1.053,1042,1.053,1043,1.053,1044,3.173,1045,2.593,1046,1.053,1047,1.898,1048,1.053,1049,1.898,1050,3.173,1051,2.593,1052,1.053,1053,1.053,1054,1.053,1055,1.053,1056,1.053,1057,1.053,1058,1.053,1059,1.053,1060,1.053,1061,1.898,1062,1.053,1063,1.053,1064,1.053,1065,1.053,1066,1.053,1067,1.053,1068,1.898,1069,1.053,1070,1.053,1071,1.053,1072,1.053,1073,1.053,1074,1.053,1075,1.053,1076,1.053,1077,1.053,1078,1.053,1079,1.053,1080,1.898]],["t/122",[41,3.2,67,1.941,105,2.715,129,2.099,160,0.689,171,2.549,192,3.063,203,2.099,312,2.715,356,2.922,380,3.2,565,3.336,568,4.251,569,2.922,611,2.412,614,2.715,680,2.715,693,2.922,702,3.508,1081,4.654,1082,2.715,1083,2.922,1084,3.621,1085,3.2,1086,3.2,1087,3.508,1088,3.621,1089,5.267,1090,5.267,1091,3.621,1092,3.621,1093,3.621,1094,3.621,1095,3.621,1096,3.621,1097,3.621,1098,3.949,1099,3.621,1100,3.621]],["t/125",[20,5.102,54,3.824,177,2.959,179,5.586,702,4.21,1082,4.74,1085,5.586,1087,4.21,1101,6.322]],["t/127",[0,0.441,33,2.953,128,3.351,137,3.607,216,2.59,249,2.489,290,2.489,318,3.95,411,3.147,489,3.607,545,3.147,573,3.351,605,3.95,606,3.607,616,3.95,670,3.95,679,3.147,720,3.95,1083,4.932,1087,4.07,1102,4.47,1103,4.47,1104,4.47,1105,4.47,1106,4.47,1107,4.47,1108,3.95,1109,4.47,1110,4.47,1111,4.47,1112,4.47]],["t/129",[184,4.488,192,2.308,315,4.515,411,4.24,702,4.011,1113,6.022,1114,6.022,1115,6.022,1116,6.022,1117,5.321,1118,6.022]],["t/131",[40,2.649,163,4.11,328,5.873,733,4.711,1081,5.159,1086,5.159,1087,3.888,1119,5.159,1120,5.838,1121,5.838,1122,5.838,1123,5.838,1124,5.838]],["t/133",[192,2.308,219,4.86,417,4.24,438,5.321,702,4.011,798,4.515,1082,4.515,1087,4.011,1125,5.321,1126,6.022,1127,6.022,1128,6.022]],["t/135",[113,5.321,175,5.321,744,2.37,1082,4.515,1087,4.011,1119,5.321,1129,6.022,1130,6.022,1131,6.022,1132,6.022,1133,6.022,1134,6.022]],["t/137",[0,0.691,17,3.873,80,3.873,81,3.873,126,4.124,135,1.686,160,1.333,648,4.124,847,4.24,1135,5.501,1136,4.124,1137,7.01,1138,4.439,1139,4.861]],["t/139",[0,0.435,11,3.312,12,2.135,30,1.455,70,2.284,76,2.672,82,2.672,85,3.312,100,2.56,126,3.312,146,3.312,147,2.798,148,2.798,151,2.798,160,0.84,407,3.565,510,3.904,635,3.565,677,2.798,821,3.565,847,2.672,980,3.904,1136,3.312,1138,3.565,1140,4.418,1141,6.063,1142,4.418,1143,4.268,1144,3.904,1145,3.904,1146,3.11,1147,4.418,1148,2.368]],["t/141",[0,0.731,61,3.008,135,1.846,160,1.411,200,1.571,619,2.083,622,3.643,745,2.248,847,3.643,1143,4.24]],["t/143",[8,2.544,103,2.065,200,1.954,456,3.546,619,2.117,745,2.284,867,1.79,868,2.864,1149,4.075,1150,3.876]],["t/145",[0,0.584,8,2.465,103,2.001,135,1.817,160,1.128,200,1.546,619,2.051,745,2.213,867,1.734,1151,4.174,1152,4.174,1153,3.948,1154,3.178]],["t/147",[0,0.756,8,1.974,18,2.047,30,2.097,56,1.92,58,2.545,103,1.602,135,2.202,160,1.211,163,3.343,294,2.031,592,2.155,747,3.413,867,1.389,868,2.98,1148,2.545,1155,3.162,1156,3.832,1157,2.294]],["t/149",[0,0.704,18,1.821,101,3.283,103,1.912,160,1.077,190,2.291,200,1.863,249,3.154,744,2.229,867,1.657,1158,4.571,1159,3.773,1160,4.571,1161,4.571]],["t/151",[0,0.727,18,1.919,30,1.422,58,2.315,103,1.457,135,1.829,160,1.135,200,1.126,249,2.404,294,1.847,592,1.96,744,2.691,747,3.199,867,1.263,868,2.793,914,3.237,1154,3.666,1157,2.087,1159,2.876,1162,3.975,1163,2.876,1164,3.485,1165,3.485,1166,2.876]],["t/153",[8,2.077,40,2.268,56,2.021,101,2.896,200,1.922,294,2.137,433,3.328,592,2.268,619,1.728,698,3.165,744,2.899,745,1.865,784,3.746,867,1.462,1098,3.746,1154,2.678,1155,3.328,1167,4.032,1168,4.032,1169,4.032,1170,3.518]],["t/155",[18,1.234,40,1.743,54,3.324,135,1.967,155,2.432,200,1.827,229,2.432,476,4.12,635,3.099,744,2.757,840,3.099,1143,2.703,1149,2.557,1162,2.557,1163,2.557,1166,2.557,1171,3.84,1172,3.84,1173,4.856,1174,3.84,1175,6.19,1176,4.856,1177,4.811,1178,3.393,1179,3.84,1180,3.84,1181,3.84,1182,3.84,1183,3.84,1184,3.099,1185,3.099]],["t/157",[0,0.39,18,0.8,30,0.819,39,2.198,56,1.6,73,2.966,107,2.966,134,1.865,135,2.242,192,2.621,200,1.464,237,2.198,243,2.785,282,2.198,323,1.576,332,1.865,556,1.865,620,2.198,744,0.979,747,2.64,793,2.198,840,3.975,865,1.657,867,0.728,1108,2.198,1157,1.202,1170,1.751,1173,4.352,1175,5.414,1176,3.496,1177,2.966,1178,3.496,1186,2.488,1187,2.488,1188,2.488,1189,2.488,1190,2.488,1191,2.198,1192,2.488,1193,2.488,1194,2.488,1195,2.488,1196,2.488,1197,2.488,1198,2.488,1199,2.488,1200,5.613,1201,2.488,1202,3.956,1203,3.956,1204,2.488,1205,2.488,1206,4.926,1207,2.488,1208,4.926,1209,3.956,1210,2.488]],["t/159",[0,0.534,12,2.621,30,2.288,33,2.621,100,3.143,104,3.818,160,1.321,341,2.255,439,3.28,592,2.461,677,3.435,759,2.907,1148,2.907,1157,2.621,1211,3.818,1212,3.818,1213,4.066]],["t/161",[0,0.731,61,3.008,135,1.846,160,1.411,200,1.571,619,2.083,622,3.643,745,2.248,847,3.643,1144,5.321]],["t/163",[8,2.544,103,2.065,200,1.954,456,3.546,619,2.117,745,2.284,867,1.79,868,2.864,1149,4.075,1150,3.876]],["t/165",[0,0.584,8,2.465,103,2.001,135,1.817,160,1.128,200,1.546,619,2.051,745,2.213,867,1.734,1151,4.174,1152,4.174,1153,3.948,1154,3.178]],["t/167",[0,0.756,8,1.974,18,2.047,30,2.097,56,1.92,58,2.545,103,1.602,135,2.202,160,1.211,163,3.343,294,2.031,592,2.155,747,3.413,867,1.389,868,2.98,1148,2.545,1155,3.162,1156,3.832,1157,2.294]],["t/169",[0,0.704,18,1.821,101,3.283,103,1.912,160,1.077,190,2.291,200,1.863,249,3.154,744,2.229,867,1.657,1158,4.571,1159,3.773,1160,4.571,1161,4.571]],["t/171",[0,0.727,18,1.919,30,1.422,58,2.315,103,1.457,135,1.829,160,1.135,200,1.126,249,2.404,294,1.847,592,1.96,744,2.691,747,3.199,867,1.263,868,2.793,914,3.237,1154,3.666,1157,2.087,1159,2.876,1162,3.975,1163,2.876,1164,3.485,1165,3.485,1166,2.876]],["t/173",[8,2.077,40,2.268,56,2.021,101,2.896,200,1.922,294,2.137,433,3.328,592,2.268,619,1.728,698,3.165,744,2.899,745,1.865,784,3.746,867,1.462,1098,3.746,1154,2.678,1155,3.328,1167,4.032,1168,4.032,1169,4.032,1170,3.518]],["t/175",[18,1.586,56,1.994,134,3.698,135,2.002,155,3.124,200,2.172,744,2.881,808,3.98,1150,3.124,1162,3.285,1163,3.285,1166,3.285,1177,3.698,1184,3.98,1185,3.98,1214,4.358,1215,4.932,1216,4.932]],["t/177",[0,0.534,12,2.621,30,2.288,33,2.621,100,3.143,104,3.818,160,1.321,341,2.255,439,3.28,592,2.461,677,3.435,759,2.907,1148,2.907,1157,2.621,1211,3.818,1212,3.818,1213,4.066]],["t/179",[0,0.558,3,2.571,14,2.83,105,4.247,110,4.571,128,4.247,327,4.571,749,4.571,848,4.571,871,4.247,1143,3.988,1191,5.005,1217,5.664,1218,5.005,1219,5.664,1220,5.664]],["t/181",[0,0.567,3,2.609,44,4.64,50,5.081,53,3.829,70,2.973,338,5.081,341,2.391,695,4.048,862,4.311,950,4.64,1143,4.048,1221,5.75,1222,5.75,1223,5.75]],["t/183",[3,1.438,16,1.837,25,2.008,40,2.166,47,4.042,56,1.282,58,1.699,81,2.232,85,3.579,103,1.937,135,0.972,136,2.232,146,3.579,151,3.023,174,2.801,177,2.234,337,2.801,576,2.111,698,2.008,707,2.376,758,2.801,817,2.801,867,1.396,904,2.558,1136,2.376,1138,2.558,1224,3.17,1225,3.17,1226,3.17,1227,4.218,1228,4.773,1229,3.17,1230,4.773,1231,3.17,1232,4.773,1233,3.17,1234,3.17,1235,4.773,1236,3.17,1237,3.17,1238,3.17,1239,3.17,1240,3.17,1241,3.17,1242,3.17,1243,3.17,1244,3.17,1245,3.17,1246,3.17,1247,2.801,1248,3.17,1249,3.17,1250,3.17,1251,3.17]],["t/185",[0,0.717,61,2.916,135,1.79,136,4.11,147,3.698,148,3.698,160,1.384,200,1.523,619,2.019,622,3.531,745,2.179,847,3.531]],["t/187",[103,2.032,147,3.814,148,3.814,200,1.935,456,3.49,619,2.083,745,2.248,867,1.762,868,2.819,1149,4.011,1150,3.814]],["t/189",[0,0.575,103,1.97,135,1.79,147,3.698,148,3.698,160,1.11,200,1.523,619,2.019,745,2.179,867,1.708,1151,4.11,1152,4.11,1153,3.888,1154,3.129]],["t/191",[0,0.736,18,1.65,30,1.69,56,2.075,58,2.75,103,1.732,135,2.054,160,1.275,578,3.613,744,2.019,747,2.75,867,1.96,868,2.402,1148,2.75,1155,3.417,1157,2.48,1252,3.847,1253,4.534]],["t/193",[47,5.506,56,2.888,63,2.651,147,3.588,148,3.588,152,4.247,744,2.229,867,1.657,1252,4.247,1254,5.005,1255,5.005,1256,5.005,1257,5.005]],["t/195",[38,4.662,40,2.822,147,3.939,148,3.939,155,3.939,216,3.604,849,5.018,865,5.039,1258,5.495]],["t/197",[0,0.55,12,2.697,30,2.33,33,2.697,100,3.235,160,1.346,341,2.321,439,3.376,592,2.533,677,3.535,759,2.992,1148,2.992,1157,2.697,1211,3.93,1212,3.93]],["t/200",[0,0.579,18,2.349,26,4.406,56,1.707,59,2.447,108,2.674,136,2.973,160,1.285,209,2.447,210,2.973,292,3.913,316,3.731,323,2.674,336,3.731,345,3.166,354,2.973,417,2.973,592,1.916,650,3.166,867,1.235,1259,4.222,1260,4.222,1261,5.876,1262,3.407,1263,4.222,1264,4.222,1265,4.222,1266,4.222,1267,4.222,1268,4.222]],["t/202",[0,0.682,10,2.942,65,2.672,90,3.312,135,1.858,160,1.153,165,2.942,200,1.152,203,2.56,208,4.506,226,4.268,227,3.904,243,3.11,315,3.312,323,2.798,335,3.904,477,3.904,650,3.312,744,1.739,747,2.368,867,1.292,869,3.565,1262,3.565,1269,4.418,1270,3.904,1271,4.418,1272,4.418]],["t/204",[0,0.378,89,3.393,115,3.393,135,1.684,160,1.045,165,2.557,203,3.185,208,3.882,254,4.434,289,3.393,294,2.351,303,2.879,314,3.393,323,2.432,341,1.596,590,2.557,622,2.323,657,3.393,695,2.703,798,4.12,1139,3.393,1218,3.393,1273,3.84,1274,5.495,1275,5.495,1276,3.84,1277,3.84,1278,3.84,1279,6.417,1280,3.84,1281,3.84,1282,3.84,1283,3.84,1284,3.84,1285,3.84,1286,3.84]],["t/206",[18,1.821,93,3.988,135,1.736,213,3.773,243,3.988,292,4.756,590,3.773,867,1.657,1136,4.247,1262,4.571,1270,5.005,1287,5.664,1288,5.664,1289,5.664,1290,5.664]],["t/208",[0,0.724,61,2.961,76,3.586,82,3.586,135,1.817,160,1.397,200,1.546,619,2.051,622,3.586,745,2.213,847,3.586]],["t/210",[76,3.643,82,3.643,103,2.032,200,1.935,456,3.49,619,2.083,745,2.248,867,1.762,868,2.819,1149,4.011,1150,3.814]],["t/212",[0,0.575,76,3.531,82,3.531,103,1.97,135,1.79,160,1.11,200,1.523,619,2.019,745,2.179,867,1.708,1151,4.11,1152,4.11,1153,3.888,1154,3.129]],["t/214",[0,0.736,18,1.65,30,1.69,56,2.075,58,2.75,103,1.732,135,2.054,160,1.275,578,3.613,744,2.019,747,2.75,867,1.96,868,2.402,1148,2.75,1155,3.417,1157,2.48,1252,3.847,1253,4.534]],["t/216",[47,5.506,56,2.888,63,2.651,76,3.426,82,3.426,152,4.247,744,2.229,867,1.657,1252,4.247,1254,5.005,1255,5.005,1256,5.005,1257,5.005]],["t/218",[38,4.662,40,2.822,76,3.762,82,3.762,155,3.939,216,3.604,849,5.018,865,5.039,1258,5.495]],["t/220",[0,0.534,12,2.621,30,2.288,33,2.621,100,3.143,104,3.818,160,1.321,341,2.255,439,3.28,592,2.461,677,3.435,759,2.907,1148,2.907,1157,2.621,1211,3.818,1212,3.818,1213,4.066]],["t/222",[0,0.731,61,3.008,135,1.846,160,1.411,200,1.571,619,2.083,622,3.643,745,2.248,847,3.643,1145,5.321]],["t/224",[8,2.544,103,2.065,200,1.954,456,3.546,619,2.117,745,2.284,867,1.79,868,2.864,1149,4.075,1150,3.876]],["t/226",[0,0.584,8,2.465,103,2.001,135,1.817,160,1.128,200,1.546,619,2.051,745,2.213,867,1.734,1151,4.174,1152,4.174,1153,3.948,1154,3.178]],["t/228",[0,0.753,8,1.95,18,2.03,30,2.079,56,1.896,58,3.384,103,1.583,135,2.188,160,1.201,163,3.302,294,2.006,592,2.128,747,3.384,867,1.372,868,2.955,1148,2.514,1156,3.784,1157,2.266,1291,3.784]],["t/230",[0,0.704,18,1.821,101,3.283,103,1.912,160,1.077,190,2.291,200,1.863,249,3.154,744,2.229,867,1.657,1158,4.571,1159,3.773,1160,4.571,1161,4.571]],["t/232",[0,0.727,18,1.919,30,1.422,58,2.315,103,1.457,135,1.829,160,1.135,200,1.126,249,2.404,294,1.847,592,1.96,744,2.691,747,3.199,867,1.263,868,2.793,914,3.237,1154,3.666,1157,2.087,1159,2.876,1162,3.975,1163,2.876,1164,3.485,1165,3.485,1166,2.876]],["t/234",[8,2.051,40,2.238,56,1.994,58,2.644,101,2.858,200,1.909,294,2.11,433,3.285,592,2.238,619,1.706,698,3.124,744,2.881,745,1.841,784,3.698,867,1.443,1098,3.698,1154,2.644,1167,3.98,1168,3.98,1169,3.98,1170,3.472,1291,3.98]],["t/236",[56,2.193,134,4.066,155,3.435,200,2.108,744,3.016,808,4.376,1150,3.435,1162,3.612,1163,3.612,1166,3.612,1177,4.066,1184,4.376,1185,4.376,1214,4.792]],["t/238",[0,0.534,12,2.621,30,2.288,33,2.621,100,3.143,104,3.818,160,1.321,341,2.255,439,3.28,592,2.461,677,3.435,759,2.907,1148,2.907,1157,2.621,1211,3.818,1212,3.818,1213,4.066]],["t/240",[0,0.603,14,3.056,67,3.28,70,3.164,648,4.588,1146,4.308,1292,6.119,1293,4.938,1294,6.119,1295,5.407,1296,5.407]],["t/242",[0,0.36,3,1.659,30,1.204,40,1.659,46,3.23,53,2.435,67,3.346,70,3.228,110,4.28,132,2.435,146,2.741,354,2.574,417,2.574,629,3.23,680,2.741,694,3.23,744,1.439,749,2.95,798,2.741,812,2.95,822,3.23,848,2.95,1146,4.395,1153,2.435,1170,2.574,1247,4.687,1291,2.95,1293,2.95,1295,5.516,1296,3.23,1297,3.656,1298,3.656,1299,3.656,1300,3.656,1301,3.656,1302,3.656,1303,3.656,1304,5.304,1305,3.656,1306,3.656,1307,3.656,1308,3.23]],["t/244",[67,3.28,85,4.588,103,2.065,997,4.588,1293,4.938,1308,5.407,1309,6.119,1310,6.119,1311,6.119,1312,6.119,1313,6.119]],["t/246",[70,3.015,100,2.42,103,1.409,127,3.69,165,2.781,204,2.781,239,3.69,621,3.69,695,2.94,776,5.868,1125,3.69,1146,5.12,1314,4.176,1315,5.831,1316,4.176,1317,4.176,1318,4.176,1319,4.176,1320,4.176,1321,5.831,1322,5.831,1323,5.831,1324,7.272,1325,4.176,1326,4.176,1327,4.176]],["t/248",[0,0.48,14,2.432,38,4.854,42,3.428,54,2.945,62,4.303,102,3.651,294,2.083,422,4.303,509,4.303,556,3.651,695,3.428,950,3.929,1083,3.929,1117,4.303,1146,3.428,1227,4.303,1328,4.869,1329,6.474,1330,4.869,1331,4.869,1332,4.869,1333,4.869,1334,4.869,1335,4.869]]],"invertedIndex":[["",{"_index":192,"t":{"21":{"position":[[172,1]]},"25":{"position":[[154,1],[174,1],[257,1]]},"27":{"position":[[330,1],[352,1],[406,1],[419,1],[478,1],[524,1]]},"29":{"position":[[348,1],[422,1]]},"31":{"position":[[724,1],[788,1],[801,2],[804,2]]},"37":{"position":[[207,1],[230,1],[314,1],[389,1],[445,1],[535,1],[615,1],[643,1],[699,1],[768,1],[844,1],[898,1],[968,1]]},"65":{"position":[[972,1],[998,1],[1101,1],[1158,1],[1259,1],[1355,1],[2107,1]]},"68":{"position":[[349,1],[374,1]]},"70":{"position":[[39,1],[64,1]]},"72":{"position":[[39,1],[55,1],[99,1],[121,1],[176,1]]},"74":{"position":[[248,1],[276,1]]},"76":{"position":[[39,1],[55,1],[103,1],[129,1],[188,1]]},"78":{"position":[[654,1],[672,1],[835,1],[902,1],[984,1]]},"81":{"position":[[109,1],[129,1],[207,1],[241,1],[294,1]]},"87":{"position":[[384,1],[404,1],[482,1],[516,1],[569,1]]},"94":{"position":[[417,1],[488,1],[716,1],[754,1]]},"110":{"position":[[356,1],[389,1],[424,1],[611,1],[621,1],[652,1],[679,1],[809,1],[868,1],[977,1],[1002,1],[1063,1],[1099,1],[1171,1],[1199,2],[1383,1]]},"119":{"position":[[469,1],[502,1],[537,1],[818,1],[848,1],[867,1],[893,1],[946,1],[1047,1],[1186,1],[1190,1],[1217,1],[1222,1],[1278,1],[1325,2],[1341,1],[1395,1],[1420,1],[1525,1],[1630,1],[1639,1],[1641,2],[1654,1],[1656,2],[1677,1],[1737,1],[1838,1],[1938,1],[2104,1],[2159,2],[2199,2],[2236,1],[2256,1],[2268,1],[2287,1],[2371,1],[2403,1],[2418,1],[2534,1],[2536,2],[2552,1],[2590,2],[2627,2],[2630,3],[2648,1],[2705,2],[2889,1],[2891,2]]},"122":{"position":[[72,1],[211,1],[328,1],[342,1],[403,1],[560,2],[572,3],[584,1]]},"129":{"position":[[87,1]]},"133":{"position":[[30,1]]},"157":{"position":[[312,1],[367,1],[447,1],[579,1],[651,1],[700,1],[806,1]]}}}],["0",{"_index":242,"t":{"27":{"position":[[372,2]]},"29":{"position":[[172,1]]}}}],["0.0",{"_index":261,"t":{"29":{"position":[[183,3]]}}}],["0.95",{"_index":591,"t":{"65":{"position":[[811,5],[1338,4]]}}}],["1",{"_index":306,"t":{"31":{"position":[[807,2]]}}}],["1.0",{"_index":262,"t":{"29":{"position":[[187,3]]}}}],["10",{"_index":73,"t":{"9":{"position":[[180,4]]},"72":{"position":[[69,2]]},"76":{"position":[[69,2]]},"157":{"position":[[576,2],[803,2]]}}}],["100",{"_index":1057,"t":{"119":{"position":[[2270,3]]}}}],["1024",{"_index":886,"t":{"110":{"position":[[613,4]]}}}],["17",{"_index":1033,"t":{"119":{"position":[[1219,2]]}}}],["18.04",{"_index":1178,"t":{"155":{"position":[[167,5]]},"157":{"position":[[7,5],[218,5]]}}}],["1st",{"_index":665,"t":{"72":{"position":[[135,3]]},"76":{"position":[[143,3]]}}}],["255",{"_index":260,"t":{"29":{"position":[[174,3]]}}}],["3",{"_index":1192,"t":{"157":{"position":[[197,1]]}}}],["3)).astype(np.uint8",{"_index":278,"t":{"29":{"position":[[401,20]]}}}],["3.10",{"_index":1188,"t":{"157":{"position":[[105,5]]}}}],["3.6",{"_index":1186,"t":{"157":{"position":[[31,3]]}}}],["3.7",{"_index":745,"t":{"87":{"position":[[53,3]]},"106":{"position":[[28,3]]},"108":{"position":[[23,3]]},"115":{"position":[[28,3]]},"117":{"position":[[23,3]]},"141":{"position":[[99,3]]},"143":{"position":[[68,3]]},"145":{"position":[[25,3]]},"153":{"position":[[124,5]]},"161":{"position":[[99,3]]},"163":{"position":[[68,3]]},"165":{"position":[[25,3]]},"173":{"position":[[124,5]]},"185":{"position":[[115,3]]},"187":{"position":[[75,3]]},"189":{"position":[[25,3]]},"208":{"position":[[106,3]]},"210":{"position":[[74,3]]},"212":{"position":[[25,3]]},"222":{"position":[[101,3]]},"224":{"position":[[68,3]]},"226":{"position":[[25,3]]},"234":{"position":[[130,5]]}}}],["3.7.5",{"_index":1168,"t":{"153":{"position":[[147,7]]},"173":{"position":[[147,7]]},"234":{"position":[[153,7]]}}}],["3.8",{"_index":1193,"t":{"157":{"position":[[234,4]]}}}],["3.9.0",{"_index":1169,"t":{"153":{"position":[[158,9]]},"173":{"position":[[158,9]]},"234":{"position":[[164,9]]}}}],["3000:3000",{"_index":1233,"t":{"183":{"position":[[277,11]]}}}],["3pm",{"_index":1063,"t":{"119":{"position":[[2410,3]]}}}],["400",{"_index":379,"t":{"37":{"position":[[645,3]]}}}],["401",{"_index":384,"t":{"37":{"position":[[701,3]]}}}],["403",{"_index":388,"t":{"37":{"position":[[770,3]]}}}],["404",{"_index":394,"t":{"37":{"position":[[846,3]]}}}],["429",{"_index":398,"t":{"37":{"position":[[900,3]]}}}],["5",{"_index":666,"t":{"72":{"position":[[147,1]]},"76":{"position":[[155,1]]}}}],["500",{"_index":403,"t":{"37":{"position":[[970,3]]}}}],["587",{"_index":1019,"t":{"119":{"position":[[981,4]]}}}],["5pm",{"_index":1034,"t":{"119":{"position":[[1229,3]]}}}],["60",{"_index":594,"t":{"65":{"position":[[855,2],[1289,2]]},"119":{"position":[[1632,2]]}}}],["80",{"_index":1105,"t":{"127":{"position":[[117,3]]}}}],["800",{"_index":277,"t":{"29":{"position":[[396,4]]}}}],["8000:8000",{"_index":1237,"t":{"183":{"position":[[404,11]]}}}],["800x600",{"_index":270,"t":{"29":{"position":[[291,7]]}}}],["9",{"_index":1030,"t":{"119":{"position":[[1188,1]]}}}],["9am",{"_index":1031,"t":{"119":{"position":[[1197,3]]}}}],["_",{"_index":245,"t":{"27":{"position":[[397,2]]}}}],["above",{"_index":672,"t":{"74":{"position":[[176,5]]}}}],["accept",{"_index":212,"t":{"25":{"position":[[24,6]]},"29":{"position":[[24,6]]}}}],["accepts",{"_index":202,"t":{"23":{"position":[[18,7]]}}}],["access",{"_index":132,"t":{"17":{"position":[[20,6]]},"37":{"position":[[90,6],[288,6]]},"87":{"position":[[244,6]]},"92":{"position":[[511,6]]},"115":{"position":[[113,6]]},"242":{"position":[[382,6]]}}}],["accessible",{"_index":507,"t":{"55":{"position":[[309,10]]}}}],["accessing",{"_index":838,"t":{"102":{"position":[[239,9]]}}}],["accidentally",{"_index":796,"t":{"94":{"position":[[216,12]]}}}],["according",{"_index":1114,"t":{"129":{"position":[[51,9]]}}}],["account",{"_index":131,"t":{"17":{"position":[[8,7]]},"90":{"position":[[177,8]]},"92":{"position":[[249,8]]},"98":{"position":[[27,7]]},"102":{"position":[[266,8]]},"115":{"position":[[95,7]]}}}],["account/api",{"_index":810,"t":{"96":{"position":[[98,11]]}}}],["accuracy",{"_index":562,"t":{"65":{"position":[[79,9],[159,8],[1497,8],[1557,9]]}}}],["add",{"_index":688,"t":{"78":{"position":[[401,3]]}}}],["adding",{"_index":1194,"t":{"157":{"position":[[281,6]]}}}],["addition",{"_index":454,"t":{"49":{"position":[[3,8]]}}}],["additionally",{"_index":548,"t":{"61":{"position":[[208,13]]}}}],["address",{"_index":1251,"t":{"183":{"position":[[783,7]]}}}],["addressing",{"_index":982,"t":{"113":{"position":[[1501,10]]}}}],["affordable",{"_index":74,"t":{"9":{"position":[[215,10]]}}}],["again",{"_index":820,"t":{"98":{"position":[[290,6]]},"110":{"position":[[1420,5]]}}}],["against",{"_index":561,"t":{"65":{"position":[[71,7],[1506,7]]},"78":{"position":[[58,7]]}}}],["aggregating",{"_index":1041,"t":{"119":{"position":[[1586,11]]}}}],["ago",{"_index":287,"t":{"31":{"position":[[181,3]]}}}],["ahead",{"_index":1190,"t":{"157":{"position":[[156,6]]}}}],["ai",{"_index":66,"t":{"9":{"position":[[106,2],[226,2]]},"85":{"position":[[69,2]]}}}],["algorithm",{"_index":1285,"t":{"204":{"position":[[315,11]]}}}],["allocation",{"_index":945,"t":{"113":{"position":[[534,10],[651,10]]}}}],["allow",{"_index":1303,"t":{"242":{"position":[[363,5]]}}}],["allowed",{"_index":390,"t":{"37":{"position":[[804,7]]}}}],["allowing",{"_index":551,"t":{"61":{"position":[[327,8]]}}}],["allows",{"_index":64,"t":{"9":{"position":[[76,6]]},"17":{"position":[[104,6]]}}}],["along",{"_index":740,"t":{"85":{"position":[[94,5]]},"100":{"position":[[67,5]]}}}],["already",{"_index":650,"t":{"68":{"position":[[114,7]]},"78":{"position":[[451,7]]},"200":{"position":[[175,7]]},"202":{"position":[[342,7]]}}}],["alternatively",{"_index":802,"t":{"94":{"position":[[526,14]]}}}],["alternatives",{"_index":1203,"t":{"157":{"position":[[509,12],[745,12]]}}}],["ambiguous",{"_index":1086,"t":{"122":{"position":[[144,9]]},"131":{"position":[[26,10]]}}}],["analysis",{"_index":24,"t":{"3":{"position":[[274,9]]},"65":{"position":[[299,8],[1961,9]]},"83":{"position":[[275,8]]},"110":{"position":[[1553,9]]},"119":{"position":[[3024,9]]}}}],["analytics",{"_index":923,"t":{"113":{"position":[[69,9],[471,9],[1706,9]]}}}],["analyzed",{"_index":719,"t":{"83":{"position":[[22,8]]}}}],["analyzing",{"_index":49,"t":{"7":{"position":[[122,9]]},"113":{"position":[[564,9]]}}}],["another",{"_index":694,"t":{"78":{"position":[[561,7]]},"242":{"position":[[522,7]]}}}],["answer",{"_index":565,"t":{"65":{"position":[[120,6],[1425,6]]},"81":{"position":[[355,6]]},"83":{"position":[[166,7]]},"87":{"position":[[630,6]]},"110":{"position":[[1164,6],[1192,6]]},"119":{"position":[[2097,6]]},"122":{"position":[[84,6],[464,6]]}}}],["answered",{"_index":179,"t":{"19":{"position":[[623,8],[712,8]]},"125":{"position":[[35,8]]}}}],["answers",{"_index":170,"t":{"19":{"position":[[532,7]]}}}],["anybody",{"_index":773,"t":{"92":{"position":[[168,7]]}}}],["api",{"_index":341,"t":{"35":{"position":[[92,3]]},"37":{"position":[[36,3],[946,3]]},"87":{"position":[[162,3],[255,4]]},"90":{"position":[[30,4],[78,4],[186,3]]},"92":{"position":[[17,3],[145,3],[186,3],[300,3],[318,3],[414,3],[521,3],[540,3]]},"94":{"position":[[49,3],[137,3],[315,3],[429,3],[558,3]]},"96":{"position":[[20,3]]},"98":{"position":[[55,3],[94,3],[339,3]]},"100":{"position":[[7,3]]},"102":{"position":[[155,3]]},"110":{"position":[[56,3],[1545,3]]},"119":{"position":[[56,3],[3016,3]]},"159":{"position":[[122,3]]},"177":{"position":[[122,3]]},"181":{"position":[[87,3]]},"197":{"position":[[122,3]]},"204":{"position":[[335,3]]},"220":{"position":[[122,3]]},"238":{"position":[[122,3]]}}}],["api_2gdxmflhj",{"_index":760,"t":{"90":{"position":[[207,16]]}}}],["apiexception",{"_index":350,"t":{"37":{"position":[[68,13],[178,13],[370,12]]},"41":{"position":[[73,13]]}}}],["app",{"_index":750,"t":{"87":{"position":[[145,3]]}}}],["appear",{"_index":186,"t":{"19":{"position":[[810,6]]}}}],["application",{"_index":63,"t":{"9":{"position":[[64,11]]},"11":{"position":[[78,11],[160,11]]},"19":{"position":[[428,11]]},"43":{"position":[[52,11],[185,12]]},"45":{"position":[[194,12]]},"47":{"position":[[155,11]]},"49":{"position":[[78,11]]},"51":{"position":[[124,11]]},"92":{"position":[[462,12]]},"104":{"position":[[163,12],[217,11]]},"110":{"position":[[33,11],[111,12],[956,11],[1446,11]]},"113":{"position":[[30,11],[172,11],[481,11],[804,11],[1915,12]]},"119":{"position":[[33,11],[111,12],[1374,11],[2917,11]]},"193":{"position":[[150,11]]},"216":{"position":[[149,11]]}}}],["applications",{"_index":12,"t":{"3":{"position":[[118,12],[191,12],[333,12]]},"5":{"position":[[73,13]]},"13":{"position":[[111,13]]},"15":{"position":[[56,12],[220,13],[533,13],[602,12]]},"35":{"position":[[14,12]]},"51":{"position":[[251,12]]},"53":{"position":[[91,12]]},"102":{"position":[[212,12],[298,12]]},"139":{"position":[[308,12]]},"159":{"position":[[146,12]]},"177":{"position":[[146,12]]},"197":{"position":[[147,12]]},"220":{"position":[[146,12]]},"238":{"position":[[146,12]]}}}],["apply",{"_index":94,"t":{"13":{"position":[[27,5]]}}}],["appropriate",{"_index":431,"t":{"45":{"position":[[20,11]]}}}],["apt",{"_index":1176,"t":{"155":{"position":[[119,3],[135,3]]},"157":{"position":[[352,3],[393,3]]}}}],["arch",{"_index":1181,"t":{"155":{"position":[[245,4]]}}}],["arduino",{"_index":1329,"t":{"248":{"position":[[33,7],[223,8]]}}}],["area",{"_index":993,"t":{"113":{"position":[[1830,5]]}}}],["areas",{"_index":978,"t":{"113":{"position":[[1395,5],[1539,6]]}}}],["argument",{"_index":801,"t":{"94":{"position":[[516,9]]}}}],["arm",{"_index":1252,"t":{"191":{"position":[[114,3]]},"193":{"position":[[121,3]]},"214":{"position":[[114,3]]},"216":{"position":[[120,3]]}}}],["arms",{"_index":542,"t":{"61":{"position":[[93,5]]}}}],["array",{"_index":302,"t":{"31":{"position":[[642,6]]}}}],["arrays",{"_index":211,"t":{"23":{"position":[[91,7]]},"27":{"position":[[125,7]]},"29":{"position":[[47,7]]},"31":{"position":[[95,6],[388,6]]}}}],["ask",{"_index":1081,"t":{"122":{"position":[[38,3],[137,3]]},"131":{"position":[[126,3]]}}}],["ask.py",{"_index":754,"t":{"87":{"position":[[338,6],[678,6]]}}}],["aspects",{"_index":99,"t":{"15":{"position":[[36,7]]}}}],["assembly",{"_index":520,"t":{"57":{"position":[[251,9]]}}}],["assigned",{"_index":823,"t":{"100":{"position":[[142,8]]}}}],["assist",{"_index":487,"t":{"55":{"position":[[45,6]]}}}],["assistance",{"_index":1331,"t":{"248":{"position":[[159,10]]}}}],["assuming",{"_index":1151,"t":{"145":{"position":[[0,8]]},"165":{"position":[[0,8]]},"189":{"position":[[0,8]]},"212":{"position":[[0,8]]},"226":{"position":[[0,8]]}}}],["attention",{"_index":860,"t":{"104":{"position":[[387,9]]}}}],["audit",{"_index":691,"t":{"78":{"position":[[511,5]]}}}],["authenticate",{"_index":756,"t":{"90":{"position":[[97,12]]}}}],["authorize",{"_index":757,"t":{"90":{"position":[[133,9]]}}}],["automatically",{"_index":578,"t":{"65":{"position":[[460,13]]},"83":{"position":[[73,13]]},"94":{"position":[[288,13]]},"191":{"position":[[142,13]]},"214":{"position":[[142,13]]}}}],["automating",{"_index":488,"t":{"55":{"position":[[55,10]]}}}],["automation",{"_index":475,"t":{"53":{"position":[[148,10]]},"57":{"position":[[60,10]]}}}],["available",{"_index":950,"t":{"113":{"position":[[713,9]]},"181":{"position":[[95,10]]},"248":{"position":[[84,9]]}}}],["avoid",{"_index":414,"t":{"41":{"position":[[87,5]]},"94":{"position":[[210,5]]}}}],["away",{"_index":729,"t":{"83":{"position":[[392,4]]},"119":{"position":[[1538,4]]}}}],["back",{"_index":464,"t":{"49":{"position":[[192,4]]},"83":{"position":[[617,4]]}}}],["backend",{"_index":1235,"t":{"183":{"position":[[303,7],[311,8]]}}}],["backend:latest",{"_index":1236,"t":{"183":{"position":[[380,14]]}}}],["backoff",{"_index":447,"t":{"47":{"position":[[65,7]]}}}],["bad",{"_index":380,"t":{"37":{"position":[[649,3]]},"122":{"position":[[580,3]]}}}],["balance",{"_index":319,"t":{"31":{"position":[[1031,7]]},"65":{"position":[[1489,7]]}}}],["bandwidth",{"_index":141,"t":{"17":{"position":[[190,10]]}}}],["based",{"_index":54,"t":{"7":{"position":[[159,5]]},"11":{"position":[[132,5]]},"13":{"position":[[57,5]]},"53":{"position":[[24,5]]},"113":{"position":[[1909,5]]},"125":{"position":[[86,5]]},"155":{"position":[[99,5],[201,5]]},"248":{"position":[[41,5]]}}}],["basics",{"_index":1198,"t":{"157":{"position":[[381,6]]}}}],["become",{"_index":506,"t":{"55":{"position":[[297,6]]}}}],["before",{"_index":296,"t":{"31":{"position":[[476,6],[684,6]]},"65":{"position":[[708,6]]},"102":{"position":[[328,6]]},"110":{"position":[[1404,6]]}}}],["behavior",{"_index":465,"t":{"49":{"position":[[210,9]]},"113":{"position":[[853,9]]}}}],["being",{"_index":932,"t":{"113":{"position":[[240,5]]}}}],["below",{"_index":635,"t":{"65":{"position":[[1890,5]]},"139":{"position":[[35,5]]},"155":{"position":[[182,7]]}}}],["belt",{"_index":1089,"t":{"122":{"position":[[255,4],[321,6]]}}}],["beneficial",{"_index":943,"t":{"113":{"position":[[500,10]]}}}],["best",{"_index":408,"t":{"39":{"position":[[52,4]]},"51":{"position":[[199,4]]},"65":{"position":[[231,4]]},"92":{"position":[[111,4],[272,4]]},"94":{"position":[[101,4]]}}}],["beta",{"_index":711,"t":{"81":{"position":[[418,6]]}}}],["better",{"_index":566,"t":{"65":{"position":[[152,6],[529,6]]},"78":{"position":[[285,6]]}}}],["between",{"_index":427,"t":{"43":{"position":[[113,7]]},"61":{"position":[[181,7]]}}}],["bgr",{"_index":230,"t":{"27":{"position":[[158,3]]},"29":{"position":[[100,3],[463,3]]},"31":{"position":[[30,3],[133,3],[212,3],[770,3]]}}}],["bgr_img",{"_index":304,"t":{"31":{"position":[[780,7]]}}}],["binary",{"_index":1082,"t":{"122":{"position":[[42,6]]},"125":{"position":[[17,6]]},"133":{"position":[[14,6]]},"135":{"position":[[23,7]]}}}],["black",{"_index":1104,"t":{"127":{"position":[[91,5]]}}}],["blocked",{"_index":360,"t":{"37":{"position":[[300,10]]}}}],["blue",{"_index":310,"t":{"31":{"position":[[865,4]]}}}],["board",{"_index":1295,"t":{"240":{"position":[[84,6]]},"242":{"position":[[108,6],[229,5],[341,6]]}}}],["boards",{"_index":1315,"t":{"246":{"position":[[26,7],[51,6]]}}}],["body",{"_index":1010,"t":{"119":{"position":[[807,6]]}}}],["body=daily_summary",{"_index":1075,"t":{"119":{"position":[[2859,19]]}}}],["bottlenecks",{"_index":512,"t":{"57":{"position":[[97,12]]}}}],["boxes",{"_index":1090,"t":{"122":{"position":[[260,7],[299,5]]}}}],["breaking",{"_index":717,"t":{"81":{"position":[[521,8]]}}}],["brew",{"_index":1216,"t":{"175":{"position":[[117,4]]}}}],["broad",{"_index":416,"t":{"41":{"position":[[102,5]]}}}],["browser",{"_index":1247,"t":{"183":{"position":[[711,8]]},"242":{"position":[[374,7],[530,7]]}}}],["build",{"_index":10,"t":{"3":{"position":[[105,5]]},"9":{"position":[[90,5]]},"35":{"position":[[150,5]]},"39":{"position":[[92,5]]},"81":{"position":[[0,5]]},"202":{"position":[[223,5]]}}}],["building",{"_index":100,"t":{"15":{"position":[[47,8],[577,8]]},"35":{"position":[[5,8]]},"139":{"position":[[292,8]]},"159":{"position":[[137,8]]},"177":{"position":[[137,8]]},"197":{"position":[[137,9]]},"220":{"position":[[137,8]]},"238":{"position":[[137,8]]},"246":{"position":[[95,8]]}}}],["built",{"_index":29,"t":{"3":{"position":[[346,5]]}}}],["bunch",{"_index":1269,"t":{"202":{"position":[[25,5]]}}}],["busier",{"_index":954,"t":{"113":{"position":[[871,6]]}}}],["business",{"_index":91,"t":{"11":{"position":[[272,8]]}}}],["business's",{"_index":1027,"t":{"119":{"position":[[1136,10]]}}}],["button",{"_index":813,"t":{"98":{"position":[[105,7]]},"102":{"position":[[68,6]]}}}],["c",{"_index":1160,"t":{"149":{"position":[[125,1]]},"169":{"position":[[125,1]]},"230":{"position":[[125,1]]}}}],["cable",{"_index":1300,"t":{"242":{"position":[[265,6]]}}}],["call",{"_index":348,"t":{"37":{"position":[[40,5]]},"74":{"position":[[203,5]]},"90":{"position":[[70,4]]}}}],["called",{"_index":1225,"t":{"183":{"position":[[91,6]]}}}],["calls",{"_index":342,"t":{"35":{"position":[[96,6]]}}}],["cam",{"_index":239,"t":{"27":{"position":[[326,3]]},"246":{"position":[[272,3]]}}}],["cam.read",{"_index":247,"t":{"27":{"position":[[408,10]]}}}],["cam.release",{"_index":251,"t":{"27":{"position":[[510,13]]}}}],["camera",{"_index":70,"t":{"9":{"position":[[151,7]]},"27":{"position":[[365,6],[538,6]]},"106":{"position":[[79,6]]},"110":{"position":[[310,6]]},"113":{"position":[[1768,6],[1840,6]]},"115":{"position":[[79,6]]},"119":{"position":[[423,6]]},"139":{"position":[[192,6]]},"181":{"position":[[52,6]]},"240":{"position":[[77,6]]},"242":{"position":[[101,6],[222,6],[334,6]]},"246":{"position":[[192,6],[241,6]]}}}],["cameras",{"_index":55,"t":{"7":{"position":[[165,8]]},"31":{"position":[[242,7]]},"33":{"position":[[185,7],[314,7],[325,7]]}}}],["campaigns",{"_index":961,"t":{"113":{"position":[[1001,9]]}}}],["cap",{"_index":877,"t":{"110":{"position":[[352,3]]},"119":{"position":[[465,3]]}}}],["cap.read",{"_index":879,"t":{"110":{"position":[[391,10]]},"119":{"position":[[504,10]]}}}],["cap.release",{"_index":880,"t":{"110":{"position":[[402,13]]},"119":{"position":[[515,13]]}}}],["capabilities",{"_index":130,"t":{"15":{"position":[[672,13]]},"61":{"position":[[142,12]]}}}],["capture",{"_index":248,"t":{"27":{"position":[[421,7]]},"110":{"position":[[284,7],[1367,7]]},"119":{"position":[[397,7],[1887,7]]}}}],["capture_image",{"_index":876,"t":{"110":{"position":[[335,16],[1065,15],[1486,13]]},"119":{"position":[[448,16],[1840,15],[2957,13]]}}}],["captures",{"_index":916,"t":{"110":{"position":[[1458,8]]},"119":{"position":[[2929,8]]}}}],["cardboard",{"_index":1092,"t":{"122":{"position":[[289,9]]}}}],["cases",{"_index":19,"t":{"3":{"position":[[220,6]]}}}],["catch",{"_index":410,"t":{"41":{"position":[[0,5]]},"51":{"position":[[84,5]]}}}],["catching",{"_index":415,"t":{"41":{"position":[[93,8]]}}}],["cause",{"_index":1288,"t":{"206":{"position":[[123,5]]}}}],["cautious",{"_index":803,"t":{"94":{"position":[[621,8]]}}}],["centers",{"_index":498,"t":{"55":{"position":[[154,8]]}}}],["change",{"_index":298,"t":{"31":{"position":[[528,6]]},"81":{"position":[[458,6]]}}}],["changes",{"_index":718,"t":{"81":{"position":[[530,8]]}}}],["changing",{"_index":1317,"t":{"246":{"position":[[133,8]]}}}],["channel",{"_index":279,"t":{"29":{"position":[[430,7]]},"31":{"position":[[462,7],[670,7],[753,7]]}}}],["channels=wf.getnchannels",{"_index":893,"t":{"110":{"position":[[739,27]]}}}],["check",{"_index":101,"t":{"15":{"position":[[87,5]]},"74":{"position":[[29,5]]},"92":{"position":[[50,5]]},"149":{"position":[[3,5]]},"153":{"position":[[3,5]]},"169":{"position":[[3,5]]},"173":{"position":[[3,5]]},"230":{"position":[[3,5]]},"234":{"position":[[3,5]]}}}],["checker",{"_index":358,"t":{"37":{"position":[[265,9]]}}}],["checking",{"_index":914,"t":{"110":{"position":[[1411,8]]},"151":{"position":[[259,9]]},"171":{"position":[[259,9]]},"232":{"position":[[259,9]]}}}],["checks",{"_index":935,"t":{"113":{"position":[[273,6]]}}}],["choose",{"_index":1140,"t":{"139":{"position":[[0,6]]}}}],["chrome",{"_index":1307,"t":{"242":{"position":[[512,6]]}}}],["chunk",{"_index":885,"t":{"110":{"position":[[605,5]]}}}],["classes",{"_index":425,"t":{"43":{"position":[[35,7]]}}}],["cleanliness",{"_index":1129,"t":{"135":{"position":[[31,13]]}}}],["clear",{"_index":219,"t":{"25":{"position":[[213,7],[240,8]]},"113":{"position":[[1812,5]]},"133":{"position":[[96,5]]}}}],["click",{"_index":812,"t":{"98":{"position":[[72,5],[189,5]]},"102":{"position":[[49,5]]},"242":{"position":[[272,5]]}}}],["clicks",{"_index":1298,"t":{"242":{"position":[[158,7]]}}}],["cloud",{"_index":157,"t":{"19":{"position":[[284,5],[408,5],[728,6],[824,5]]},"74":{"position":[[88,5]]}}}],["clouds",{"_index":1123,"t":{"131":{"position":[[147,6]]}}}],["clutter",{"_index":1132,"t":{"135":{"position":[[136,7]]}}}],["cnc",{"_index":495,"t":{"55":{"position":[[132,3]]},"61":{"position":[[269,3]]}}}],["cobot",{"_index":541,"t":{"61":{"position":[[79,5]]}}}],["code",{"_index":14,"t":{"3":{"position":[[144,5]]},"29":{"position":[[273,4]]},"35":{"position":[[163,4]]},"37":{"position":[[571,4],[596,5]]},"39":{"position":[[105,5]]},"65":{"position":[[378,4],[2056,4]]},"78":{"position":[[245,4]]},"90":{"position":[[148,4]]},"92":{"position":[[80,4]]},"94":{"position":[[258,4],[368,4],[649,4]]},"179":{"position":[[145,4]]},"240":{"position":[[35,4]]},"248":{"position":[[11,4]]}}}],["codes",{"_index":378,"t":{"37":{"position":[[636,6]]}}}],["collaboration",{"_index":546,"t":{"61":{"position":[[167,13]]}}}],["color",{"_index":255,"t":{"29":{"position":[[104,5]]},"31":{"position":[[216,5],[1025,5]]}}}],["combines",{"_index":736,"t":{"85":{"position":[[36,8]]}}}],["come",{"_index":735,"t":{"83":{"position":[[612,4]]}}}],["comes",{"_index":1272,"t":{"202":{"position":[[293,5]]}}}],["command",{"_index":58,"t":{"7":{"position":[[210,8]]},"147":{"position":[[60,7]]},"151":{"position":[[88,8]]},"167":{"position":[[60,7]]},"171":{"position":[[88,8]]},"183":{"position":[[601,7]]},"191":{"position":[[60,7]]},"214":{"position":[[60,7]]},"228":{"position":[[60,7],[76,7]]},"232":{"position":[[88,8]]},"234":{"position":[[47,7]]}}}],["commands",{"_index":522,"t":{"57":{"position":[[301,8]]}}}],["commit",{"_index":804,"t":{"94":{"position":[[637,6]]}}}],["committing",{"_index":797,"t":{"94":{"position":[[229,10]]}}}],["common",{"_index":52,"t":{"7":{"position":[[148,6]]},"37":{"position":[[617,6]]}}}],["commonly",{"_index":1287,"t":{"206":{"position":[[6,8]]}}}],["communicating",{"_index":156,"t":{"19":{"position":[[249,13]]}}}],["communication",{"_index":553,"t":{"61":{"position":[[349,13]]}}}],["compatibility",{"_index":288,"t":{"31":{"position":[[189,13]]}}}],["compatible",{"_index":1253,"t":{"191":{"position":[[118,10]]},"214":{"position":[[118,10]]}}}],["complete",{"_index":849,"t":{"104":{"position":[[154,8]]},"195":{"position":[[6,8]]},"218":{"position":[[6,8]]}}}],["completing",{"_index":1147,"t":{"139":{"position":[[212,10]]}}}],["complex",{"_index":23,"t":{"3":{"position":[[259,7]]},"55":{"position":[[267,7]]},"65":{"position":[[318,7]]}}}],["compose",{"_index":1245,"t":{"183":{"position":[[643,7]]}}}],["compose.yml",{"_index":1226,"t":{"183":{"position":[[105,11]]}}}],["compress/2174925f24362c479b2.jpg",{"_index":700,"t":{"78":{"position":[[795,33]]}}}],["compression",{"_index":1283,"t":{"204":{"position":[[279,11]]}}}],["computer",{"_index":3,"t":{"3":{"position":[[32,9]]},"13":{"position":[[63,8]]},"15":{"position":[[635,8]]},"53":{"position":[[30,8],[200,8]]},"55":{"position":[[14,8]]},"57":{"position":[[26,8]]},"59":{"position":[[14,8],[196,8]]},"61":{"position":[[14,8]]},"63":{"position":[[55,8]]},"81":{"position":[[16,8]]},"83":{"position":[[343,8]]},"113":{"position":[[1876,8]]},"179":{"position":[[72,9]]},"181":{"position":[[25,8]]},"183":{"position":[[23,9]]},"242":{"position":[[245,8]]}}}],["computer's",{"_index":854,"t":{"104":{"position":[[269,10]]}}}],["computing",{"_index":111,"t":{"15":{"position":[[308,9]]},"85":{"position":[[123,10]]}}}],["confidence",{"_index":582,"t":{"65":{"position":[[564,10],[662,10],[791,10],[1319,10],[1469,10],[1530,10],[1617,10],[1908,10],[2235,10],[2294,10]]},"78":{"position":[[497,10]]},"83":{"position":[[142,11],[641,11]]},"119":{"position":[[1563,10]]}}}],["confidence_threshold=0.8",{"_index":1042,"t":{"119":{"position":[[1598,25]]}}}],["confidence_threshold=0.95",{"_index":607,"t":{"65":{"position":[[1232,26]]}}}],["confident",{"_index":596,"t":{"65":{"position":[[875,9]]}}}],["configuration",{"_index":1217,"t":{"179":{"position":[[86,13]]}}}],["configure",{"_index":107,"t":{"15":{"position":[[163,10]]},"19":{"position":[[332,9]]},"21":{"position":[[3,9]]},"157":{"position":[[449,9],[702,9]]}}}],["confirm",{"_index":833,"t":{"102":{"position":[[94,7]]}}}],["conflicts",{"_index":1289,"t":{"206":{"position":[[129,9]]}}}],["connected",{"_index":862,"t":{"106":{"position":[[69,9]]},"113":{"position":[[1861,9]]},"115":{"position":[[69,9]]},"181":{"position":[[9,9]]}}}],["consider",{"_index":422,"t":{"43":{"position":[[0,8]]},"248":{"position":[[239,8]]}}}],["considered",{"_index":1118,"t":{"129":{"position":[[114,10]]}}}],["consist",{"_index":761,"t":{"90":{"position":[[228,7]]}}}],["constrained",{"_index":1275,"t":{"204":{"position":[[27,12],[394,11]]}}}],["constructor",{"_index":189,"t":{"21":{"position":[[115,11]]},"94":{"position":[[504,11],[596,12]]}}}],["container",{"_index":48,"t":{"7":{"position":[[108,9]]}}}],["containers",{"_index":145,"t":{"19":{"position":[[42,10]]}}}],["contains",{"_index":370,"t":{"37":{"position":[[456,8],[546,8]]}}}],["content",{"_index":1101,"t":{"125":{"position":[[105,8]]}}}],["content/uploads/2010/11/over_flowing_garbage_can.jpg",{"_index":601,"t":{"65":{"position":[[1041,53]]}}}],["context",{"_index":438,"t":{"45":{"position":[[93,7]]},"133":{"position":[[72,8]]}}}],["continue",{"_index":1051,"t":{"119":{"position":[[1823,8],[1921,8],[2088,8]]}}}],["control",{"_index":486,"t":{"53":{"position":[[344,8]]},"59":{"position":[[252,8]]},"61":{"position":[[367,7]]},"65":{"position":[[38,7]]},"92":{"position":[[219,7]]}}}],["conversion",{"_index":1286,"t":{"204":{"position":[[432,10]]}}}],["convert",{"_index":303,"t":{"31":{"position":[[726,7]]},"110":{"position":[[426,7]]},"119":{"position":[[539,7]]},"204":{"position":[[190,7]]}}}],["convey",{"_index":1112,"t":{"127":{"position":[[372,8]]}}}],["conveyor",{"_index":1093,"t":{"122":{"position":[[312,8]]}}}],["copy",{"_index":817,"t":{"98":{"position":[[211,4],[326,4]]},"183":{"position":[[144,4]]}}}],["corresponding",{"_index":1142,"t":{"139":{"position":[[76,13]]}}}],["cost",{"_index":71,"t":{"9":{"position":[[166,4]]},"17":{"position":[[176,5]]}}}],["costs",{"_index":626,"t":{"65":{"position":[[1677,6]]}}}],["couch",{"_index":845,"t":{"104":{"position":[[99,6],[206,6],[325,6]]},"106":{"position":[[140,5]]},"110":{"position":[[1028,5],[1236,8],[1593,6]]}}}],["counter",{"_index":926,"t":{"113":{"position":[[127,7],[392,7],[608,8],[1151,7],[1370,7],[1477,7],[1792,8],[1989,7]]},"119":{"position":[[1514,10],[2481,7],[2839,7],[3067,8]]}}}],["counter's",{"_index":1078,"t":{"119":{"position":[[3134,9]]}}}],["couple",{"_index":790,"t":{"94":{"position":[[12,6]]}}}],["covers",{"_index":343,"t":{"35":{"position":[[113,6]]}}}],["create",{"_index":16,"t":{"3":{"position":[[184,6]]},"9":{"position":[[193,6]]},"15":{"position":[[155,7]]},"29":{"position":[[281,6]]},"51":{"position":[[223,6]]},"68":{"position":[[153,6]]},"87":{"position":[[152,6],[314,6]]},"98":{"position":[[82,7],[195,7]]},"183":{"position":[[73,6]]}}}],["create_detector(name",{"_index":658,"t":{"68":{"position":[[264,21]]}}}],["created",{"_index":651,"t":{"68":{"position":[[122,7]]}}}],["creates",{"_index":930,"t":{"113":{"position":[[184,7]]}}}],["creating",{"_index":423,"t":{"43":{"position":[[9,8]]},"68":{"position":[[219,8]]},"100":{"position":[[156,8]]},"104":{"position":[[143,8]]}}}],["creation",{"_index":291,"t":{"31":{"position":[[299,10]]}}}],["crowded",{"_index":984,"t":{"113":{"position":[[1531,7]]}}}],["curl",{"_index":1202,"t":{"157":{"position":[[442,4],[609,4]]}}}],["current",{"_index":822,"t":{"100":{"position":[[51,7]]},"242":{"position":[[493,7]]}}}],["current_hour",{"_index":1036,"t":{"119":{"position":[[1265,12],[1328,12],[2539,12],[2577,12]]}}}],["current_time",{"_index":1058,"t":{"119":{"position":[[2274,12]]}}}],["current_time.strftime(\"%i%p",{"_index":1062,"t":{"119":{"position":[[2373,29]]}}}],["currently",{"_index":710,"t":{"81":{"position":[[405,9]]}}}],["custom",{"_index":424,"t":{"43":{"position":[[18,6]]}}}],["customer",{"_index":934,"t":{"113":{"position":[[260,9],[844,8],[1047,8],[1415,8],[1568,8],[1614,8],[2103,8]]},"119":{"position":[[1490,8],[3039,8]]}}}],["customers",{"_index":927,"t":{"113":{"position":[[138,9],[769,10],[1125,9],[1339,9]]}}}],["customize",{"_index":1007,"t":{"119":{"position":[[709,9]]}}}],["cutting",{"_index":478,"t":{"53":{"position":[[187,7]]}}}],["cv2",{"_index":238,"t":{"27":{"position":[[322,3]]},"110":{"position":[[174,3]]},"119":{"position":[[174,3]]}}}],["cv2.color_bgr2rgb",{"_index":882,"t":{"110":{"position":[[490,19]]},"119":{"position":[[603,19]]}}}],["cv2.videocapture(0",{"_index":240,"t":{"27":{"position":[[332,19]]},"110":{"position":[[358,19]]},"119":{"position":[[471,19]]}}}],["d",{"_index":355,"t":{"37":{"position":[[228,1]]},"65":{"position":[[1156,1]]},"78":{"position":[[670,1]]}}}],["daily",{"_index":942,"t":{"113":{"position":[[448,5],[2009,5]]},"115":{"position":[[132,5]]},"119":{"position":[[671,5],[2650,6],[3203,5]]}}}],["daily_log",{"_index":1044,"t":{"119":{"position":[[1644,9],[2617,9],[2680,10],[2879,9]]}}}],["daily_log.append(msg",{"_index":1067,"t":{"119":{"position":[[2508,21]]}}}],["daily_summary",{"_index":1068,"t":{"119":{"position":[[2634,13],[2691,13]]}}}],["dashboard",{"_index":187,"t":{"19":{"position":[[830,10]]}}}],["data",{"_index":265,"t":{"29":{"position":[[212,4]]},"65":{"position":[[2016,4]]},"83":{"position":[[103,5]]},"110":{"position":[[804,4],[838,5],[863,4]]},"113":{"position":[[1269,4]]}}}],["dataset",{"_index":682,"t":{"78":{"position":[[160,8]]},"83":{"position":[[446,8]]}}}],["date",{"_index":830,"t":{"100":{"position":[[250,4]]}}}],["datetime",{"_index":1001,"t":{"119":{"position":[[256,8],[272,9]]}}}],["datetime.now",{"_index":1053,"t":{"119":{"position":[[2144,14]]}}}],["datetime.now().hour",{"_index":1037,"t":{"119":{"position":[[1280,19],[2554,19]]}}}],["datetime.now().replace(hour=start_of_business",{"_index":1059,"t":{"119":{"position":[[2289,46]]}}}],["datetime.now().replace(minute=0",{"_index":1046,"t":{"119":{"position":[[1679,32]]}}}],["day",{"_index":929,"t":{"113":{"position":[[163,4],[429,4],[891,3]]},"119":{"position":[[3184,4]]}}}],["days",{"_index":955,"t":{"113":{"position":[[907,4]]}}}],["debian",{"_index":1174,"t":{"155":{"position":[[92,6]]}}}],["debug",{"_index":440,"t":{"45":{"position":[[133,5]]}}}],["debugging",{"_index":367,"t":{"37":{"position":[[413,9]]},"41":{"position":[[150,9]]}}}],["decades",{"_index":286,"t":{"31":{"position":[[173,7]]}}}],["decisions",{"_index":974,"t":{"113":{"position":[[1281,9],[2061,9]]}}}],["def",{"_index":875,"t":{"110":{"position":[[331,3],[578,3]]},"119":{"position":[[444,3],[765,3],[1233,3]]}}}],["default",{"_index":243,"t":{"27":{"position":[[382,7]]},"49":{"position":[[202,7]]},"157":{"position":[[38,8],[489,7]]},"202":{"position":[[199,7]]},"206":{"position":[[51,8]]}}}],["defaults",{"_index":661,"t":{"72":{"position":[[57,8]]},"76":{"position":[[57,8]]}}}],["defects",{"_index":531,"t":{"59":{"position":[[153,7]]}}}],["define",{"_index":873,"t":{"110":{"position":[[263,6],[528,6]]},"119":{"position":[[376,6],[641,6],[1119,6]]}}}],["definitions",{"_index":1320,"t":{"246":{"position":[[153,12]]}}}],["degrade",{"_index":1266,"t":{"200":{"position":[[336,8]]}}}],["delay",{"_index":1043,"t":{"119":{"position":[[1624,5]]}}}],["delayed",{"_index":575,"t":{"65":{"position":[[408,7]]}}}],["delete",{"_index":832,"t":{"102":{"position":[[59,8]]}}}],["demonstrates",{"_index":79,"t":{"11":{"position":[[90,12]]},"113":{"position":[[13,12]]}}}],["dependent",{"_index":1290,"t":{"206":{"position":[[150,9]]}}}],["depends_on",{"_index":1234,"t":{"183":{"position":[[289,11]]}}}],["deploy",{"_index":110,"t":{"15":{"position":[[281,6]]},"179":{"position":[[27,6]]},"242":{"position":[[56,6],[123,6]]}}}],["deployed",{"_index":1310,"t":{"244":{"position":[[62,8]]}}}],["deployment",{"_index":1294,"t":{"240":{"position":[[40,10]]}}}],["depth",{"_index":98,"t":{"15":{"position":[[12,5]]}}}],["described",{"_index":1184,"t":{"155":{"position":[[375,9]]},"175":{"position":[[233,9]]},"236":{"position":[[178,9]]}}}],["description",{"_index":372,"t":{"37":{"position":[[475,11]]}}}],["descriptive",{"_index":815,"t":{"98":{"position":[[134,11]]},"100":{"position":[[121,11]]}}}],["designed",{"_index":1297,"t":{"242":{"position":[[13,8]]}}}],["desired",{"_index":581,"t":{"65":{"position":[[556,7],[783,7],[1900,7]]}}}],["desk",{"_index":931,"t":{"113":{"position":[[232,4]]}}}],["despite",{"_index":459,"t":{"49":{"position":[[109,7]]}}}],["det",{"_index":217,"t":{"25":{"position":[[170,3]]},"81":{"position":[[125,3]]},"87":{"position":[[400,3]]}}}],["detailed",{"_index":34,"t":{"3":{"position":[[396,8]]}}}],["detect",{"_index":322,"t":{"31":{"position":[[1119,6]]}}}],["detected",{"_index":850,"t":{"104":{"position":[[190,8]]},"110":{"position":[[1220,8],[1577,8]]},"119":{"position":[[3051,8]]}}}],["detection",{"_index":22,"t":{"3":{"position":[[246,9]]}}}],["detector",{"_index":67,"t":{"9":{"position":[[116,8]]},"65":{"position":[[624,9]]},"68":{"position":[[98,8],[234,8],[365,8]]},"70":{"position":[[55,8]]},"110":{"position":[[993,8],[1034,10]]},"113":{"position":[[194,8],[284,8]]},"119":{"position":[[1411,8]]},"122":{"position":[[202,8]]},"240":{"position":[[56,8]]},"242":{"position":[[80,8],[135,8],[311,8]]},"244":{"position":[[71,9]]}}}],["detector=detector",{"_index":906,"t":{"110":{"position":[[1136,18]]},"119":{"position":[[1975,18]]}}}],["detectors",{"_index":105,"t":{"15":{"position":[[131,10],[182,9]]},"72":{"position":[[89,9],[166,9]]},"122":{"position":[[19,10]]},"179":{"position":[[51,9]]}}}],["detects",{"_index":1263,"t":{"200":{"position":[[224,7]]}}}],["determines",{"_index":586,"t":{"65":{"position":[[639,10]]}}}],["dev/bus/usb:/dev/bus/usb",{"_index":1244,"t":{"183":{"position":[[557,25]]}}}],["dev/video0:/dev/video0",{"_index":1238,"t":{"183":{"position":[[427,23]]}}}],["dev/video1:/dev/video1",{"_index":1239,"t":{"183":{"position":[[453,23]]}}}],["dev/video2:/dev/video2",{"_index":1240,"t":{"183":{"position":[[479,23]]}}}],["dev/video3:/dev/video3",{"_index":1241,"t":{"183":{"position":[[505,23]]}}}],["developed",{"_index":285,"t":{"31":{"position":[[163,9]]}}}],["development",{"_index":1220,"t":{"179":{"position":[[150,11]]}}}],["device",{"_index":146,"t":{"19":{"position":[[65,8],[84,6],[115,7]]},"139":{"position":[[199,6]]},"183":{"position":[[745,7],[799,7]]},"242":{"position":[[436,7]]}}}],["devices",{"_index":136,"t":{"17":{"position":[[90,8]]},"61":{"position":[[291,7]]},"183":{"position":[[416,8]]},"185":{"position":[[70,8]]},"200":{"position":[[54,8]]}}}],["difference",{"_index":176,"t":{"19":{"position":[[590,10]]},"31":{"position":[[814,10],[1080,10]]}}}],["different",{"_index":328,"t":{"33":{"position":[[32,9],[265,9]]},"37":{"position":[[97,9]]},"131":{"position":[[37,9],[63,9]]}}}],["differentiate",{"_index":426,"t":{"43":{"position":[[99,13]]}}}],["difficult",{"_index":418,"t":{"41":{"position":[[160,9]]}}}],["directly",{"_index":213,"t":{"25":{"position":[[42,8]]},"27":{"position":[[272,8]]},"78":{"position":[[415,9]]},"92":{"position":[[61,8]]},"94":{"position":[[568,8]]},"206":{"position":[[209,9]]}}}],["directory",{"_index":1228,"t":{"183":{"position":[[133,10],[625,10]]}}}],["discover",{"_index":109,"t":{"15":{"position":[[265,8]]}}}],["display",{"_index":1158,"t":{"149":{"position":[[52,7]]},"169":{"position":[[52,7]]},"230":{"position":[[52,7]]}}}],["displaying",{"_index":460,"t":{"49":{"position":[[144,10]]}}}],["distribution's",{"_index":1171,"t":{"155":{"position":[[9,14]]}}}],["distutils",{"_index":1201,"t":{"157":{"position":[[432,9]]}}}],["dnf",{"_index":1180,"t":{"155":{"position":[[221,3]]}}}],["docker",{"_index":47,"t":{"7":{"position":[[101,6],[203,6],[228,6]]},"19":{"position":[[35,6]]},"183":{"position":[[8,6],[98,6],[636,6]]},"193":{"position":[[12,6],[74,6],[165,6]]},"216":{"position":[[12,6],[73,6],[164,6]]}}}],["docker's",{"_index":1224,"t":{"183":{"position":[[37,8]]}}}],["docker.io/groundlight/monitoring",{"_index":1230,"t":{"183":{"position":[[199,32],[327,32]]}}}],["docs/static/img/doorway.jpg",{"_index":706,"t":{"81":{"position":[[209,31]]},"87":{"position":[[484,31]]}}}],["document",{"_index":846,"t":{"104":{"position":[[111,8]]}}}],["documentation",{"_index":1213,"t":{"159":{"position":[[159,13]]},"177":{"position":[[159,13]]},"220":{"position":[[159,13]]},"238":{"position":[[159,13]]}}}],["doesn't",{"_index":654,"t":{"68":{"position":[[176,7]]}}}],["dog",{"_index":844,"t":{"104":{"position":[[87,3],[183,3],[306,3],[378,3]]},"106":{"position":[[152,3]]},"110":{"position":[[1570,3]]}}}],["dog_on_couch_detector.py",{"_index":921,"t":{"110":{"position":[[1682,24],[1726,24]]}}}],["domain.com/wp",{"_index":600,"t":{"65":{"position":[[1027,13]]}}}],["don't",{"_index":798,"t":{"94":{"position":[[339,5]]},"133":{"position":[[47,5]]},"204":{"position":[[474,5],[520,5]]},"242":{"position":[[451,5]]}}}],["done",{"_index":1218,"t":{"179":{"position":[[103,4]]},"204":{"position":[[446,4]]}}}],["door",{"_index":77,"t":{"11":{"position":[[56,4],[138,4],[183,4],[220,4]]}}}],["doorway",{"_index":697,"t":{"78":{"position":[[730,7]]},"81":{"position":[[187,7]]},"87":{"position":[[462,7]]}}}],["download",{"_index":134,"t":{"17":{"position":[[51,8]]},"157":{"position":[[581,8]]},"175":{"position":[[0,8]]},"236":{"position":[[0,8]]}}}],["downloading",{"_index":154,"t":{"19":{"position":[[205,11]]}}}],["driven",{"_index":973,"t":{"113":{"position":[[1274,6]]}}}],["due",{"_index":391,"t":{"37":{"position":[[812,3]]},"78":{"position":[[483,3]]}}}],["during",{"_index":88,"t":{"11":{"position":[[252,6]]},"35":{"position":[[85,6]]},"37":{"position":[[26,6]]},"113":{"position":[[723,6]]}}}],["e",{"_index":365,"t":{"37":{"position":[[386,2]]},"110":{"position":[[1297,2],[1338,5]]},"119":{"position":[[2023,2],[2064,5]]}}}],["e.g",{"_index":433,"t":{"45":{"position":[[43,6]]},"106":{"position":[[112,6]]},"119":{"position":[[1192,4],[1224,4]]},"153":{"position":[[140,6]]},"173":{"position":[[140,6]]},"234":{"position":[[146,6]]}}}],["e.reason",{"_index":369,"t":{"37":{"position":[[447,8],[522,12]]}}}],["e.status",{"_index":375,"t":{"37":{"position":[[537,8],[602,12]]}}}],["each",{"_index":828,"t":{"100":{"position":[[224,4]]}}}],["earlier",{"_index":1185,"t":{"155":{"position":[[385,8]]},"175":{"position":[[243,8]]},"236":{"position":[[188,8]]}}}],["early",{"_index":333,"t":{"33":{"position":[[115,5]]},"51":{"position":[[97,5]]}}}],["easiest",{"_index":1191,"t":{"157":{"position":[[171,7]]},"179":{"position":[[12,7]]}}}],["easily",{"_index":540,"t":{"61":{"position":[[48,6]]},"65":{"position":[[387,6]]},"98":{"position":[[163,6]]}}}],["easy",{"_index":46,"t":{"7":{"position":[[89,4]]},"242":{"position":[[36,4]]}}}],["edge",{"_index":108,"t":{"15":{"position":[[259,5],[303,4]]},"17":{"position":[[30,4],[85,4],[152,5]]},"19":{"position":[[4,4],[59,5],[79,4],[172,4],[310,4],[373,4],[502,4],[639,4],[764,6],[771,4]]},"21":{"position":[[44,4]]},"53":{"position":[[195,4]]},"85":{"position":[[118,4]]},"200":{"position":[[49,4]]}}}],["effectively",{"_index":441,"t":{"45":{"position":[[151,11]]}}}],["effectiveness",{"_index":970,"t":{"113":{"position":[[1189,13]]}}}],["efficiency",{"_index":483,"t":{"53":{"position":[[306,11]]}}}],["efficient",{"_index":508,"t":{"55":{"position":[[324,10]]}}}],["email",{"_index":997,"t":{"113":{"position":[[2023,6]]},"115":{"position":[[89,5]]},"119":{"position":[[685,6]]},"244":{"position":[[81,5]]}}}],["email.mime.multipart",{"_index":1003,"t":{"119":{"position":[[297,20]]}}}],["email.mime.text",{"_index":1005,"t":{"119":{"position":[[344,15]]}}}],["emails",{"_index":941,"t":{"113":{"position":[[437,6]]},"119":{"position":[[3192,6]]}}}],["employees",{"_index":949,"t":{"113":{"position":[[699,9]]}}}],["enables",{"_index":9,"t":{"3":{"position":[[90,7]]}}}],["enabling",{"_index":472,"t":{"53":{"position":[[107,8]]},"55":{"position":[[198,8]]},"113":{"position":[[2030,8]]}}}],["encounter",{"_index":340,"t":{"35":{"position":[[61,9]]}}}],["encourage",{"_index":976,"t":{"113":{"position":[[1329,9]]}}}],["encrypted",{"_index":780,"t":{"92":{"position":[[362,9]]}}}],["end",{"_index":865,"t":{"106":{"position":[[183,3],[190,3]]},"113":{"position":[[418,3]]},"119":{"position":[[3173,3]]},"157":{"position":[[56,3]]},"195":{"position":[[15,3],[22,3]]},"218":{"position":[[15,3],[22,3]]}}}],["end_of_business",{"_index":1032,"t":{"119":{"position":[[1201,15],[1343,15],[2593,15]]}}}],["endpoint",{"_index":143,"t":{"19":{"position":[[9,8],[177,8],[315,9],[414,9],[507,9],[644,8]]},"21":{"position":[[49,9],[83,8]]}}}],["endpoint's",{"_index":161,"t":{"19":{"position":[[378,10]]}}}],["energy",{"_index":142,"t":{"17":{"position":[[205,7]]}}}],["engagement",{"_index":965,"t":{"113":{"position":[[1056,11]]}}}],["enhance",{"_index":544,"t":{"61":{"position":[[128,7]]}}}],["enhancing",{"_index":482,"t":{"53":{"position":[[296,9]]}}}],["enough",{"_index":722,"t":{"83":{"position":[[135,6]]},"113":{"position":[[692,6]]}}}],["ensure",{"_index":456,"t":{"49":{"position":[[61,6]]},"51":{"position":[[15,6],[107,6]]},"108":{"position":[[0,6]]},"117":{"position":[[0,6]]},"143":{"position":[[0,6]]},"163":{"position":[[0,6]]},"187":{"position":[[0,6]]},"210":{"position":[[0,6]]},"224":{"position":[[0,6]]}}}],["ensuring",{"_index":528,"t":{"59":{"position":[[66,8]]},"113":{"position":[[678,8],[1801,8]]}}}],["environment",{"_index":196,"t":{"21":{"position":[[259,11]]},"61":{"position":[[401,12]]},"87":{"position":[[220,11]]},"92":{"position":[[383,11]]},"94":{"position":[[60,11],[155,11],[442,11]]},"119":{"position":[[752,12]]}}}],["environments",{"_index":112,"t":{"15":{"position":[[318,12]]}}}],["equipment",{"_index":501,"t":{"55":{"position":[[184,10]]}}}],["error",{"_index":347,"t":{"37":{"position":[[20,5],[494,5],[990,6],[1000,5]]},"45":{"position":[[50,6]]},"49":{"position":[[158,5]]},"51":{"position":[[32,5]]}}}],["errors",{"_index":119,"t":{"15":{"position":[[391,7],[446,6]]},"35":{"position":[[78,6],[139,6]]},"43":{"position":[[73,7],[121,6]]},"47":{"position":[[87,7]]},"49":{"position":[[117,7]]},"51":{"position":[[147,6],[287,6]]}}}],["escalate",{"_index":570,"t":{"65":{"position":[[256,8]]}}}],["escalated",{"_index":589,"t":{"65":{"position":[[734,10],[1939,9]]},"83":{"position":[[238,9]]}}}],["escalation",{"_index":584,"t":{"65":{"position":[[595,10]]},"78":{"position":[[197,10],[466,10]]},"85":{"position":[[14,10]]}}}],["esp32",{"_index":1146,"t":{"139":{"position":[[186,5]]},"240":{"position":[[71,5]]},"242":{"position":[[95,5],[216,5],[328,5]]},"246":{"position":[[45,5],[174,5],[223,5],[266,5]]},"248":{"position":[[70,6]]}}}],["esp32s3",{"_index":1327,"t":{"246":{"position":[[304,7]]}}}],["etc",{"_index":435,"t":{"45":{"position":[[66,5]]}}}],["evaluations",{"_index":138,"t":{"17":{"position":[[133,11]]}}}],["even",{"_index":152,"t":{"19":{"position":[[147,4]]},"83":{"position":[[405,4]]},"193":{"position":[[60,4]]},"216":{"position":[[59,4]]}}}],["event",{"_index":1077,"t":{"119":{"position":[[3088,6]]}}}],["example",{"_index":216,"t":{"25":{"position":[[84,8]]},"31":{"position":[[966,7]]},"65":{"position":[[749,8]]},"74":{"position":[[71,8],[126,8]]},"104":{"position":[[20,7]]},"113":{"position":[[5,7]]},"127":{"position":[[74,8]]},"195":{"position":[[26,7]]},"218":{"position":[[26,7]]}}}],["examples",{"_index":41,"t":{"5":{"position":[[41,8]]},"122":{"position":[[586,9]]}}}],["exceeded",{"_index":402,"t":{"37":{"position":[[959,8]]}}}],["except",{"_index":168,"t":{"19":{"position":[[517,6]]},"37":{"position":[[363,6]]},"110":{"position":[[1277,6]]},"119":{"position":[[2003,6]]}}}],["exception",{"_index":352,"t":{"37":{"position":[[126,10]]},"41":{"position":[[124,10]]},"43":{"position":[[25,9]]},"110":{"position":[[1284,9]]},"119":{"position":[[2010,9]]}}}],["exceptions",{"_index":346,"t":{"35":{"position":[[195,11]]},"39":{"position":[[77,10]]},"41":{"position":[[24,10],[108,10]]},"45":{"position":[[4,10]]},"47":{"position":[[14,11]]},"49":{"position":[[23,11]]},"51":{"position":[[304,10]]}}}],["execute",{"_index":627,"t":{"65":{"position":[[1702,7]]}}}],["executing",{"_index":634,"t":{"65":{"position":[[1855,10]]}}}],["existing",{"_index":549,"t":{"61":{"position":[[260,8]]},"68":{"position":[[89,8]]},"78":{"position":[[151,8]]}}}],["exists",{"_index":655,"t":{"68":{"position":[[184,7]]}}}],["expect",{"_index":412,"t":{"41":{"position":[[44,6]]}}}],["expected",{"_index":234,"t":{"27":{"position":[[227,8]]},"31":{"position":[[613,9]]},"51":{"position":[[56,9]]}}}],["expects",{"_index":281,"t":{"31":{"position":[[12,7]]}}}],["experience",{"_index":987,"t":{"113":{"position":[[1623,10],[2112,11]]}}}],["explore",{"_index":37,"t":{"5":{"position":[[0,7]]},"113":{"position":[[1381,7]]}}}],["exploring",{"_index":124,"t":{"15":{"position":[[496,9]]}}}],["exponential",{"_index":446,"t":{"47":{"position":[[53,11]]}}}],["export",{"_index":198,"t":{"21":{"position":[[286,6]]},"87":{"position":[[260,6]]}}}],["extra",{"_index":1195,"t":{"157":{"position":[[292,5]]}}}],["extremely",{"_index":1273,"t":{"204":{"position":[[11,9]]}}}],["f\"hourly",{"_index":1064,"t":{"119":{"position":[[2420,8]]}}}],["f\"{msg}\\n",{"_index":1070,"t":{"119":{"position":[[2708,10]]}}}],["factory",{"_index":1133,"t":{"135":{"position":[[151,7]]}}}],["falling",{"_index":463,"t":{"49":{"position":[[184,7]]}}}],["fast",{"_index":628,"t":{"65":{"position":[[1732,4]]}}}],["faster",{"_index":173,"t":{"19":{"position":[[557,6]]},"65":{"position":[[544,7]]},"83":{"position":[[622,6]]}}}],["features",{"_index":336,"t":{"33":{"position":[[159,8]]},"200":{"position":[[395,9]]}}}],["fedora",{"_index":1179,"t":{"155":{"position":[[194,6]]}}}],["few",{"_index":680,"t":{"78":{"position":[[105,3]]},"81":{"position":[[49,3]]},"122":{"position":[[551,3]]},"242":{"position":[[154,3]]}}}],["file",{"_index":707,"t":{"81":{"position":[[258,4]]},"87":{"position":[[533,4]]},"106":{"position":[[107,4]]},"183":{"position":[[86,4]]}}}],["files",{"_index":339,"t":{"33":{"position":[[339,5],[351,5]]}}}],["find",{"_index":648,"t":{"68":{"position":[[81,4]]},"94":{"position":[[39,4]]},"137":{"position":[[73,4]]},"240":{"position":[[99,4]]}}}],["finished",{"_index":633,"t":{"65":{"position":[[1846,8]]}}}],["firmware",{"_index":1316,"t":{"246":{"position":[[108,8]]}}}],["first",{"_index":679,"t":{"78":{"position":[[76,5]]},"83":{"position":[[16,5],[421,5],[458,5]]},"110":{"position":[[0,6]]},"119":{"position":[[0,6]]},"127":{"position":[[307,5]]}}}],["floats",{"_index":263,"t":{"29":{"position":[[194,8]]}}}],["floor",{"_index":1134,"t":{"135":{"position":[[159,7]]}}}],["follow",{"_index":407,"t":{"39":{"position":[[39,6]]},"81":{"position":[[493,6]]},"139":{"position":[[45,6]]}}}],["followed",{"_index":766,"t":{"90":{"position":[[273,8]]}}}],["following",{"_index":103,"t":{"15":{"position":[[101,9]]},"51":{"position":[[183,9]]},"100":{"position":[[82,9]]},"143":{"position":[[25,9]]},"145":{"position":[[90,9]]},"147":{"position":[[50,9]]},"149":{"position":[[89,9]]},"151":{"position":[[74,9]]},"163":{"position":[[25,9]]},"165":{"position":[[90,9]]},"167":{"position":[[50,9]]},"169":{"position":[[89,9]]},"171":{"position":[[74,9]]},"183":{"position":[[153,9],[591,9],[826,9]]},"187":{"position":[[25,9]]},"189":{"position":[[97,9]]},"191":{"position":[[50,9]]},"210":{"position":[[25,9]]},"212":{"position":[[96,9]]},"214":{"position":[[50,9]]},"224":{"position":[[25,9]]},"226":{"position":[[90,9]]},"228":{"position":[[50,9]]},"230":{"position":[[89,9]]},"232":{"position":[[74,9]]},"244":{"position":[[22,9]]},"246":{"position":[[16,9]]}}}],["follows",{"_index":237,"t":{"27":{"position":[[306,8]]},"157":{"position":[[265,7]]}}}],["forbidden",{"_index":389,"t":{"37":{"position":[[774,10]]}}}],["force",{"_index":657,"t":{"68":{"position":[[213,5]]},"204":{"position":[[488,5]]}}}],["format",{"_index":254,"t":{"29":{"position":[[90,6]]},"31":{"position":[[222,6]]},"204":{"position":[[220,6],[369,7]]}}}],["formats",{"_index":206,"t":{"23":{"position":[[49,8]]}}}],["formatted_time",{"_index":1061,"t":{"119":{"position":[[2356,14],[2441,17]]}}}],["found",{"_index":395,"t":{"37":{"position":[[854,6],[892,5]]}}}],["frame",{"_index":246,"t":{"27":{"position":[[400,5],[433,5],[471,6],[489,5]]},"110":{"position":[[383,5]]},"119":{"position":[[496,5]]}}}],["framegrab",{"_index":331,"t":{"33":{"position":[[74,9],[93,9],[218,9]]}}}],["frontend",{"_index":1229,"t":{"183":{"position":[[182,9]]}}}],["frontend:latest",{"_index":1231,"t":{"183":{"position":[[252,15]]}}}],["full",{"_index":606,"t":{"65":{"position":[[1224,7]]},"92":{"position":[[214,4]]},"127":{"position":[[121,6]]}}}],["function",{"_index":874,"t":{"110":{"position":[[272,8],[537,8],[1500,9],[1653,9]]},"119":{"position":[[385,8],[650,8],[2971,9],[3234,9]]}}}],["functional",{"_index":458,"t":{"49":{"position":[[98,10]]}}}],["functionality",{"_index":1277,"t":{"204":{"position":[[144,14]]}}}],["further",{"_index":636,"t":{"65":{"position":[[1953,7]]}}}],["future",{"_index":686,"t":{"78":{"position":[[309,7]]},"81":{"position":[[468,6]]}}}],["gather",{"_index":731,"t":{"83":{"position":[[427,6]]}}}],["generally",{"_index":620,"t":{"65":{"position":[[1576,9]]},"157":{"position":[[72,9]]}}}],["generated",{"_index":642,"t":{"65":{"position":[[2191,9]]},"98":{"position":[[220,9]]}}}],["generative",{"_index":738,"t":{"85":{"position":[[58,10]]}}}],["get_image",{"_index":363,"t":{"37":{"position":[[341,12]]}}}],["get_image_query",{"_index":687,"t":{"78":{"position":[[375,17]]}}}],["get_off_couch.mp3",{"_index":863,"t":{"106":{"position":[[119,18]]}}}],["get_or_create_detector(name",{"_index":645,"t":{"68":{"position":[[25,28]]}}}],["get_token_from_secure_location",{"_index":805,"t":{"94":{"position":[[718,32]]}}}],["gets",{"_index":774,"t":{"92":{"position":[[176,4]]}}}],["github",{"_index":38,"t":{"5":{"position":[[14,6]]},"195":{"position":[[75,6]]},"218":{"position":[[73,6]]},"248":{"position":[[97,6],[272,6]]}}}],["give",{"_index":814,"t":{"98":{"position":[[113,4]]}}}],["gives",{"_index":559,"t":{"65":{"position":[[12,5]]}}}],["gl",{"_index":191,"t":{"21":{"position":[[169,2]]},"25":{"position":[[151,2]]},"37":{"position":[[204,2]]},"65":{"position":[[969,2]]},"68":{"position":[[346,2]]},"70":{"position":[[36,2]]},"72":{"position":[[36,2]]},"74":{"position":[[245,2]]},"76":{"position":[[36,2]]},"78":{"position":[[651,2]]},"81":{"position":[[106,2]]},"87":{"position":[[381,2]]},"94":{"position":[[485,2],[751,2]]},"110":{"position":[[974,2]]},"119":{"position":[[1392,2]]}}}],["gl.add_label(image_query",{"_index":701,"t":{"78":{"position":[[951,25]]}}}],["gl.create_detector(name=\"your_detector_name",{"_index":659,"t":{"68":{"position":[[376,45]]}}}],["gl.get_detector(\"dog",{"_index":903,"t":{"110":{"position":[[1004,20]]}}}],["gl.get_detector(id=\"your_detector_id",{"_index":660,"t":{"70":{"position":[[66,38]]}}}],["gl.get_image_query(id=\"iq_your_image_query_id",{"_index":673,"t":{"74":{"position":[[278,47]]}}}],["gl.get_or_create_detector",{"_index":356,"t":{"37":{"position":[[232,26]]},"119":{"position":[[1422,26]]},"122":{"position":[[213,26]]}}}],["gl.get_or_create_detector(name=\"doorway",{"_index":696,"t":{"78":{"position":[[674,41]]},"81":{"position":[[131,41]]},"87":{"position":[[406,41]]}}}],["gl.get_or_create_detector(name=\"path",{"_index":218,"t":{"25":{"position":[[176,36]]}}}],["gl.get_or_create_detector(name=\"trash",{"_index":604,"t":{"65":{"position":[[1160,39]]}}}],["gl.list_detectors",{"_index":663,"t":{"72":{"position":[[101,19]]}}}],["gl.list_detectors(page=1",{"_index":667,"t":{"72":{"position":[[178,25]]}}}],["gl.list_image_queries",{"_index":675,"t":{"76":{"position":[[105,23]]}}}],["gl.list_image_queries(page=1",{"_index":676,"t":{"76":{"position":[[190,29]]}}}],["gl.submit_image_query(d",{"_index":362,"t":{"37":{"position":[[316,24]]}}}],["gl.submit_image_query(det",{"_index":224,"t":{"25":{"position":[[303,26]]}}}],["gl.submit_image_query(detector",{"_index":250,"t":{"27":{"position":[[439,31]]},"29":{"position":[[475,31]]}}}],["gl.submit_image_query(detector=d",{"_index":612,"t":{"65":{"position":[[1357,33],[2109,33]]},"78":{"position":[[904,33]]}}}],["gl.submit_image_query(detector=det",{"_index":708,"t":{"81":{"position":[[296,35]]},"87":{"position":[[571,35]]}}}],["gl.submit_image_query(detector=detector",{"_index":1094,"t":{"122":{"position":[[344,40]]}}}],["gl.submit_image_query(image=image",{"_index":905,"t":{"110":{"position":[[1101,34]]},"119":{"position":[[1940,34]]}}}],["go",{"_index":1170,"t":{"153":{"position":[[183,3]]},"157":{"position":[[153,2]]},"173":{"position":[[183,3]]},"234":{"position":[[189,3]]},"242":{"position":[[166,2]]}}}],["good",{"_index":1098,"t":{"122":{"position":[[520,4],[555,4]]},"153":{"position":[[175,4]]},"173":{"position":[[175,4]]},"234":{"position":[[181,4]]}}}],["gracefully",{"_index":345,"t":{"35":{"position":[[177,10]]},"49":{"position":[[47,10]]},"51":{"position":[[154,10]]},"200":{"position":[[325,10]]}}}],["groundlight",{"_index":0,"t":{"3":{"position":[[0,11],[155,12],[358,11]]},"5":{"position":[[53,11]]},"7":{"position":[[54,11]]},"13":{"position":[[0,11]]},"15":{"position":[[74,12],[200,11],[240,11],[288,11],[480,12]]},"19":{"position":[[272,11],[346,11],[490,11]]},"21":{"position":[[17,11],[103,11],[138,11],[157,11]]},"25":{"position":[[4,11],[98,11],[117,11],[156,13]]},"27":{"position":[[194,11],[498,11]]},"29":{"position":[[4,11]]},"31":{"position":[[0,11],[505,12],[559,11],[705,12]]},"35":{"position":[[36,11]]},"37":{"position":[[159,11],[192,11],[209,13]]},"39":{"position":[[22,11]]},"43":{"position":[[149,11]]},"51":{"position":[[330,11]]},"53":{"position":[[168,11]]},"65":{"position":[[0,11],[900,11],[919,11],[974,13]]},"68":{"position":[[315,11],[334,11],[351,13]]},"70":{"position":[[5,11],[24,11],[41,13]]},"72":{"position":[[5,11],[24,11],[41,13]]},"74":{"position":[[214,11],[233,11],[250,13]]},"76":{"position":[[5,11],[24,11],[41,13]]},"78":{"position":[[0,11],[582,11],[601,11],[656,13]]},"81":{"position":[[75,11],[94,11],[111,13]]},"87":{"position":[[12,11],[100,11],[129,11],[350,11],[369,11],[386,13]]},"90":{"position":[[11,11],[117,11]]},"92":{"position":[[237,11]]},"94":{"position":[[386,11],[405,11],[490,13],[584,11],[679,11],[698,11]]},"96":{"position":[[40,11]]},"98":{"position":[[15,11],[297,11]]},"102":{"position":[[254,11]]},"104":{"position":[[49,11]]},"106":{"position":[[0,11]]},"108":{"position":[[69,11],[117,11]]},"110":{"position":[[21,11],[183,11],[202,11],[979,13],[1533,11]]},"113":{"position":[[45,11],[1897,11]]},"115":{"position":[[0,11]]},"117":{"position":[[69,11],[144,11]]},"119":{"position":[[21,11],[198,11],[217,11],[1397,13],[3004,11]]},"127":{"position":[[137,12]]},"137":{"position":[[15,11],[137,11]]},"139":{"position":[[331,11]]},"141":{"position":[[37,11],[67,11]]},"145":{"position":[[132,11]]},"147":{"position":[[15,11],[98,11],[204,11],[220,11]]},"149":{"position":[[16,11],[135,12]]},"151":{"position":[[27,11],[119,11],[180,11],[269,11]]},"157":{"position":[[827,12],[853,11]]},"159":{"position":[[36,11]]},"161":{"position":[[37,11],[67,11]]},"165":{"position":[[132,11]]},"167":{"position":[[15,11],[98,11],[204,11],[220,11]]},"169":{"position":[[16,11],[135,12]]},"171":{"position":[[27,11],[119,11],[180,11],[269,11]]},"177":{"position":[[36,11]]},"179":{"position":[[39,11]]},"181":{"position":[[75,11]]},"185":{"position":[[37,11],[83,11]]},"189":{"position":[[139,11]]},"191":{"position":[[15,11],[99,11],[175,11]]},"197":{"position":[[36,11]]},"200":{"position":[[4,11],[88,11]]},"202":{"position":[[92,11],[236,11],[278,11]]},"204":{"position":[[60,11]]},"208":{"position":[[37,11],[74,11]]},"212":{"position":[[138,11]]},"214":{"position":[[15,11],[99,11],[175,11]]},"220":{"position":[[36,11]]},"222":{"position":[[37,11],[69,11]]},"226":{"position":[[132,11]]},"228":{"position":[[15,11],[104,11],[210,11],[226,11]]},"230":{"position":[[16,11],[135,12]]},"232":{"position":[[27,11],[119,11],[180,11],[269,11]]},"238":{"position":[[36,11]]},"240":{"position":[[0,11]]},"242":{"position":[[68,11]]},"248":{"position":[[206,11]]}}}],["groundlight's",{"_index":129,"t":{"15":{"position":[[621,13]]},"23":{"position":[[0,13]]},"55":{"position":[[0,13]]},"57":{"position":[[12,13]]},"59":{"position":[[0,13]]},"61":{"position":[[0,13]]},"63":{"position":[[24,13]]},"85":{"position":[[0,13]]},"122":{"position":[[5,13]]}}}],["groundlight(api_token=token",{"_index":806,"t":{"94":{"position":[[756,28]]}}}],["groundlight(endpoint=\"http://localhost:6717",{"_index":193,"t":{"21":{"position":[[174,45]]}}}],["groundlight.ai",{"_index":1223,"t":{"181":{"position":[[111,15]]}}}],["groundlight/stream",{"_index":1254,"t":{"193":{"position":[[85,18]]},"216":{"position":[[84,18]]}}}],["groundlight_api_token",{"_index":386,"t":{"37":{"position":[[724,21]]},"87":{"position":[[198,21]]},"94":{"position":[[176,22],[463,21]]}}}],["groundlight_api_token=api_2gdxmflhji6l_example",{"_index":752,"t":{"87":{"position":[[267,46]]}}}],["groundlight_endpoint",{"_index":195,"t":{"21":{"position":[[238,20]]}}}],["groundlight_endpoint=http://localhost:6717",{"_index":199,"t":{"21":{"position":[[293,42]]}}}],["guide",{"_index":847,"t":{"104":{"position":[[125,5]]},"137":{"position":[[44,6],[59,6]]},"139":{"position":[[90,6]]},"141":{"position":[[5,5]]},"161":{"position":[[5,5]]},"185":{"position":[[5,5]]},"208":{"position":[[5,5]]},"222":{"position":[[5,5]]}}}],["guides",{"_index":35,"t":{"3":{"position":[[405,6]]},"15":{"position":[[18,6]]}}}],["hand",{"_index":516,"t":{"57":{"position":[[186,4],[194,4]]}}}],["handle",{"_index":121,"t":{"15":{"position":[[417,6]]},"35":{"position":[[127,6],[188,6]]},"39":{"position":[[70,6]]},"49":{"position":[[35,6]]},"51":{"position":[[140,6],[273,6]]},"78":{"position":[[186,6]]}}}],["handling",{"_index":117,"t":{"15":{"position":[[377,8]]},"47":{"position":[[5,8]]},"51":{"position":[[38,8]]},"92":{"position":[[291,8]]}}}],["happen",{"_index":639,"t":{"65":{"position":[[2087,7]]}}}],["hardcoding",{"_index":783,"t":{"92":{"position":[[438,10]]}}}],["hardware",{"_index":289,"t":{"31":{"position":[[271,8]]},"204":{"position":[[454,9]]}}}],["hasn't",{"_index":632,"t":{"65":{"position":[[1839,6]]}}}],["head",{"_index":748,"t":{"87":{"position":[[112,4]]}}}],["health",{"_index":443,"t":{"45":{"position":[[179,6]]}}}],["help",{"_index":61,"t":{"7":{"position":[[254,4]]},"43":{"position":[[90,4]]},"45":{"position":[[124,4]]},"47":{"position":[[145,4]]},"51":{"position":[[75,4]]},"57":{"position":[[83,4]]},"59":{"position":[[223,4]]},"113":{"position":[[820,4]]},"141":{"position":[[16,4]]},"161":{"position":[[16,4]]},"185":{"position":[[16,4]]},"208":{"position":[[16,4]]},"222":{"position":[[16,4]]}}}],["helps",{"_index":795,"t":{"94":{"position":[[204,5]]}}}],["here",{"_index":776,"t":{"92":{"position":[[258,4]]},"104":{"position":[[0,4]]},"246":{"position":[[209,5],[260,5],[286,5],[328,5]]}}}],["here's",{"_index":215,"t":{"25":{"position":[[74,6]]},"29":{"position":[[259,6]]},"31":{"position":[[956,6]]}}}],["high",{"_index":721,"t":{"83":{"position":[[130,4],[485,4]]}}}],["high=255",{"_index":275,"t":{"29":{"position":[[375,9]]}}}],["higher",{"_index":619,"t":{"65":{"position":[[1523,6],[1550,6],[1594,6],[1610,6]]},"83":{"position":[[634,6]]},"87":{"position":[[60,7]]},"106":{"position":[[35,6]]},"108":{"position":[[30,6]]},"113":{"position":[[929,6]]},"115":{"position":[[35,6]]},"117":{"position":[[30,6]]},"141":{"position":[[106,7]]},"143":{"position":[[75,6]]},"145":{"position":[[32,6]]},"153":{"position":[[133,6]]},"161":{"position":[[106,7]]},"163":{"position":[[75,6]]},"165":{"position":[[32,6]]},"173":{"position":[[133,6]]},"185":{"position":[[122,7]]},"187":{"position":[[82,6]]},"189":{"position":[[32,6]]},"208":{"position":[[113,7]]},"210":{"position":[[81,6]]},"212":{"position":[[32,6]]},"222":{"position":[[108,7]]},"224":{"position":[[75,6]]},"226":{"position":[[32,6]]},"234":{"position":[[139,6]]}}}],["highest",{"_index":529,"t":{"59":{"position":[[79,7]]}}}],["home",{"_index":842,"t":{"104":{"position":[[69,4]]}}}],["homebrew",{"_index":1215,"t":{"175":{"position":[[89,8]]}}}],["hour",{"_index":937,"t":{"113":{"position":[[319,5]]},"119":{"position":[[3101,5]]}}}],["hourly",{"_index":994,"t":{"113":{"position":[[1957,6]]}}}],["hours",{"_index":92,"t":{"11":{"position":[[281,6]]},"113":{"position":[[735,5]]},"119":{"position":[[1157,5]]}}}],["http",{"_index":118,"t":{"15":{"position":[[386,4],[441,4]]},"37":{"position":[[15,4],[559,4],[624,4]]}}}],["http://localhost:3000",{"_index":1246,"t":{"183":{"position":[[681,21]]}}}],["https://app.groundlight.ai/reef/my",{"_index":809,"t":{"96":{"position":[[63,34]]}}}],["https://bootstrap.pypa.io/get",{"_index":1207,"t":{"157":{"position":[[614,29]]}}}],["https://github.com/groundlight/esp32cam",{"_index":62,"t":{"9":{"position":[[12,39]]},"248":{"position":[[107,39]]}}}],["https://github.com/groundlight/raspberry",{"_index":75,"t":{"11":{"position":[[12,40]]}}}],["https://github.com/groundlight/stream",{"_index":43,"t":{"7":{"position":[[12,37]]}}}],["https://images.selfstorage.com/large",{"_index":699,"t":{"78":{"position":[[757,37]]}}}],["https://iot.groundlight.ai/espcam",{"_index":1296,"t":{"240":{"position":[[110,34]]},"242":{"position":[[172,33]]}}}],["https://www.photos",{"_index":598,"t":{"65":{"position":[[1000,19]]}}}],["hub",{"_index":1257,"t":{"193":{"position":[[172,4]]},"216":{"position":[[171,4]]}}}],["human",{"_index":573,"t":{"65":{"position":[[347,5]]},"83":{"position":[[308,5]]},"85":{"position":[[167,5]]},"127":{"position":[[212,5]]}}}],["humans",{"_index":547,"t":{"61":{"position":[[189,6]]}}}],["hwn",{"_index":253,"t":{"29":{"position":[[86,3]]}}}],["i.e",{"_index":1084,"t":{"122":{"position":[[74,5]]}}}],["identifier",{"_index":827,"t":{"100":{"position":[[209,10]]}}}],["identify",{"_index":511,"t":{"57":{"position":[[88,8]]},"98":{"position":[[170,8]]},"113":{"position":[[206,8],[825,8]]}}}],["identifying",{"_index":530,"t":{"59":{"position":[[141,11]]},"113":{"position":[[780,11]]}}}],["image",{"_index":177,"t":{"19":{"position":[[609,5],[698,5],[751,6],[787,5]]},"25":{"position":[[145,5]]},"27":{"position":[[20,5]]},"29":{"position":[[306,5]]},"31":{"position":[[105,5],[254,5],[321,5],[740,5],[993,5]]},"33":{"position":[[51,5],[203,5],[284,5],[345,5]]},"65":{"position":[[135,5],[269,5],[719,5],[947,5],[1095,5],[1866,5],[2269,5]]},"78":{"position":[[82,6],[629,5],[829,5]]},"81":{"position":[[243,5]]},"83":{"position":[[533,5]]},"87":{"position":[[518,5]]},"110":{"position":[[230,5],[295,5],[441,5],[1057,5],[1084,6],[1325,5],[1375,7],[1470,5]]},"119":{"position":[[245,5],[408,5],[554,5],[1832,5],[1863,6],[1895,7],[2051,5],[2941,5]]},"125":{"position":[[99,5]]},"183":{"position":[[192,6],[320,6]]}}}],["image.fromarray(cv2.cvtcolor(frame",{"_index":881,"t":{"110":{"position":[[454,35]]},"119":{"position":[[567,35]]}}}],["image.open(\"./docs/static/img/doorway.jpg",{"_index":223,"t":{"25":{"position":[[259,43]]}}}],["image.open(requests.get(image_url",{"_index":602,"t":{"65":{"position":[[1103,34]]},"78":{"position":[[837,34]]}}}],["image=image",{"_index":613,"t":{"65":{"position":[[1391,12],[2143,12]]},"78":{"position":[[938,12]]}}}],["image=img",{"_index":709,"t":{"81":{"position":[[332,10]]},"87":{"position":[[607,10]]}}}],["image=some_image",{"_index":1095,"t":{"122":{"position":[[385,17]]}}}],["image_queries",{"_index":674,"t":{"76":{"position":[[89,13],[174,13]]}}}],["image_query",{"_index":611,"t":{"65":{"position":[[1343,11],[2095,11]]},"74":{"position":[[264,11]]},"78":{"position":[[327,11],[890,11]]},"81":{"position":[[282,11]]},"87":{"position":[[557,11]]},"122":{"position":[[330,11]]}}}],["image_query.id",{"_index":671,"t":{"74":{"position":[[151,14]]}}}],["image_query.result",{"_index":615,"t":{"65":{"position":[[1435,22]]},"81":{"position":[[365,22]]},"87":{"position":[[640,22]]}}}],["image_query.result.confidence",{"_index":643,"t":{"65":{"position":[[2308,33]]}}}],["image_query.result.label",{"_index":1096,"t":{"122":{"position":[[474,28]]}}}],["image_url",{"_index":597,"t":{"65":{"position":[[988,9]]},"78":{"position":[[746,10]]}}}],["images",{"_index":203,"t":{"23":{"position":[[26,6]]},"25":{"position":[[35,6]]},"27":{"position":[[83,7],[98,6],[253,6]]},"29":{"position":[[31,6]]},"31":{"position":[[20,6],[372,6],[495,6],[889,6]]},"83":{"position":[[5,6],[213,6]]},"122":{"position":[[65,6]]},"202":{"position":[[70,6]]},"204":{"position":[[203,6],[348,6]]}}}],["img",{"_index":705,"t":{"81":{"position":[[203,3]]},"87":{"position":[[478,3]]}}}],["immediately",{"_index":835,"t":{"102":{"position":[[170,11]]}}}],["implement",{"_index":444,"t":{"47":{"position":[[26,9]]},"113":{"position":[[1684,9]]}}}],["import",{"_index":190,"t":{"21":{"position":[[150,6]]},"25":{"position":[[110,6],[138,6]]},"27":{"position":[[315,6]]},"29":{"position":[[322,6]]},"37":{"position":[[137,6],[171,6]]},"65":{"position":[[912,6],[940,6],[953,6]]},"68":{"position":[[327,6]]},"70":{"position":[[17,6]]},"72":{"position":[[17,6]]},"74":{"position":[[226,6]]},"76":{"position":[[17,6]]},"78":{"position":[[594,6],[622,6],[635,6]]},"81":{"position":[[87,6]]},"87":{"position":[[362,6]]},"94":{"position":[[398,6],[691,6]]},"110":{"position":[[124,6],[155,6],[167,6],[195,6],[223,6],[236,6],[251,6]]},"119":{"position":[[124,6],[155,6],[167,6],[178,6],[210,6],[238,6],[265,6],[318,6],[360,6]]},"149":{"position":[[127,7]]},"169":{"position":[[127,7]]},"230":{"position":[[127,7]]}}}],["impossible",{"_index":321,"t":{"31":{"position":[[1105,10]]}}}],["improve",{"_index":545,"t":{"61":{"position":[[159,7]]},"65":{"position":[[2024,7]]},"83":{"position":[[593,7]]},"113":{"position":[[1560,7],[2074,7]]},"127":{"position":[[239,7]]}}}],["improved",{"_index":113,"t":{"15":{"position":[[335,8]]},"135":{"position":[[76,8]]}}}],["improving",{"_index":966,"t":{"113":{"position":[[1068,9]]}}}],["include",{"_index":436,"t":{"45":{"position":[[76,7]]},"49":{"position":[[136,7]]},"78":{"position":[[260,7]]}}}],["including",{"_index":207,"t":{"23":{"position":[[58,9]]},"33":{"position":[[299,10]]}}}],["incorporated",{"_index":637,"t":{"65":{"position":[[1991,12]]}}}],["increase",{"_index":963,"t":{"113":{"position":[[1028,8]]}}}],["increased",{"_index":989,"t":{"113":{"position":[[1646,9]]}}}],["increases",{"_index":624,"t":{"65":{"position":[[1661,9]]}}}],["increasing",{"_index":537,"t":{"59":{"position":[[306,10]]}}}],["index",{"_index":244,"t":{"27":{"position":[[390,6]]}}}],["industrial",{"_index":96,"t":{"13":{"position":[[82,10]]},"31":{"position":[[1055,10]]},"53":{"position":[[62,10],[274,10]]},"63":{"position":[[105,10]]}}}],["inexpensive",{"_index":68,"t":{"9":{"position":[[134,11]]}}}],["info@groundlight.ai",{"_index":558,"t":{"63":{"position":[[171,20]]}}}],["information",{"_index":439,"t":{"45":{"position":[[101,12]]},"100":{"position":[[92,12]]},"113":{"position":[[950,11],[1249,11]]},"159":{"position":[[79,11]]},"177":{"position":[[79,11]]},"197":{"position":[[79,11]]},"220":{"position":[[79,11]]},"238":{"position":[[79,11]]}}}],["informed",{"_index":998,"t":{"113":{"position":[[2052,8]]}}}],["initialize",{"_index":241,"t":{"27":{"position":[[354,10]]}}}],["injection",{"_index":499,"t":{"55":{"position":[[166,9]]}}}],["insights",{"_index":969,"t":{"113":{"position":[[1171,8]]}}}],["inspections",{"_index":536,"t":{"59":{"position":[[290,11]]}}}],["install",{"_index":135,"t":{"17":{"position":[[64,7]]},"87":{"position":[[0,7],[92,7]]},"108":{"position":[[57,7],[109,7]]},"113":{"position":[[1748,7]]},"117":{"position":[[57,7],[136,7]]},"137":{"position":[[114,7]]},"141":{"position":[[25,7]]},"145":{"position":[[109,7]]},"147":{"position":[[3,7],[90,7],[196,7]]},"151":{"position":[[101,7],[162,7]]},"155":{"position":[[43,7],[139,7],[225,7]]},"157":{"position":[[130,7],[332,7],[369,7],[401,7],[524,7],[594,7],[760,7],[819,7],[845,7]]},"161":{"position":[[25,7]]},"165":{"position":[[109,7]]},"167":{"position":[[3,7],[90,7],[196,7]]},"171":{"position":[[101,7],[162,7]]},"175":{"position":[[101,7],[122,7]]},"183":{"position":[[0,7]]},"185":{"position":[[25,7]]},"189":{"position":[[116,7]]},"191":{"position":[[3,7],[91,7]]},"202":{"position":[[185,7],[270,7]]},"204":{"position":[[48,7],[501,7]]},"206":{"position":[[196,7]]},"208":{"position":[[25,7]]},"212":{"position":[[115,7]]},"214":{"position":[[3,7],[91,7]]},"222":{"position":[[25,7]]},"226":{"position":[[109,7]]},"228":{"position":[[3,7],[96,7],[202,7]]},"232":{"position":[[101,7],[162,7]]}}}],["installation",{"_index":1136,"t":{"137":{"position":[[31,12]]},"139":{"position":[[227,12]]},"183":{"position":[[46,12]]},"206":{"position":[[100,12]]}}}],["installed",{"_index":867,"t":{"108":{"position":[[37,10]]},"117":{"position":[[37,10]]},"143":{"position":[[35,9]]},"145":{"position":[[39,9]]},"147":{"position":[[243,9]]},"149":{"position":[[35,9]]},"151":{"position":[[343,10]]},"153":{"position":[[14,9]]},"157":{"position":[[252,9]]},"163":{"position":[[35,9]]},"165":{"position":[[39,9]]},"167":{"position":[[243,9]]},"169":{"position":[[35,9]]},"171":{"position":[[343,10]]},"173":{"position":[[14,9]]},"183":{"position":[[657,9],[723,9]]},"187":{"position":[[35,9]]},"189":{"position":[[39,9]]},"191":{"position":[[160,10],[198,9]]},"193":{"position":[[19,9]]},"200":{"position":[[255,9]]},"202":{"position":[[350,10]]},"206":{"position":[[38,9]]},"210":{"position":[[35,9]]},"212":{"position":[[39,9]]},"214":{"position":[[160,10],[198,9]]},"216":{"position":[[19,9]]},"224":{"position":[[35,9]]},"226":{"position":[[39,9]]},"228":{"position":[[249,9]]},"230":{"position":[[35,9]]},"232":{"position":[[343,10]]},"234":{"position":[[14,9]]}}}],["installer",{"_index":1150,"t":{"143":{"position":[[102,10]]},"163":{"position":[[102,10]]},"175":{"position":[[27,9]]},"187":{"position":[[109,10]]},"210":{"position":[[108,10]]},"224":{"position":[[102,10]]},"236":{"position":[[27,9]]}}}],["installing",{"_index":1261,"t":{"200":{"position":[[112,10],[183,10]]}}}],["instead",{"_index":163,"t":{"19":{"position":[[393,7],[679,7]]},"131":{"position":[[107,8]]},"147":{"position":[[182,8]]},"167":{"position":[[182,8]]},"228":{"position":[[188,8]]}}}],["instructing",{"_index":856,"t":{"104":{"position":[[290,11]]}}}],["instructions",{"_index":1138,"t":{"137":{"position":[[91,12]]},"139":{"position":[[56,12]]},"183":{"position":[[59,13]]}}}],["insufficient",{"_index":392,"t":{"37":{"position":[[819,12]]}}}],["integrated",{"_index":480,"t":{"53":{"position":[[250,10]]},"61":{"position":[[55,10],[244,10]]}}}],["integrating",{"_index":509,"t":{"57":{"position":[[0,11]]},"248":{"position":[[194,11]]}}}],["intensive",{"_index":571,"t":{"65":{"position":[[289,9]]},"83":{"position":[[265,9]]}}}],["interaction",{"_index":474,"t":{"53":{"position":[[131,11]]}}}],["interface",{"_index":327,"t":{"33":{"position":[[14,9],[246,9]]},"61":{"position":[[316,10]]},"179":{"position":[[127,10]]}}}],["interfaces",{"_index":713,"t":{"81":{"position":[[432,10]]}}}],["internal",{"_index":404,"t":{"37":{"position":[[974,8]]}}}],["internet",{"_index":1221,"t":{"181":{"position":[[0,8]]}}}],["interpreting",{"_index":521,"t":{"57":{"position":[[271,12]]}}}],["interpretted",{"_index":280,"t":{"29":{"position":[[447,12]]}}}],["intervention",{"_index":453,"t":{"47":{"position":[[212,13]]},"57":{"position":[[148,13]]}}}],["introduce",{"_index":27,"t":{"3":{"position":[[304,9]]}}}],["intuitive",{"_index":473,"t":{"53":{"position":[[121,9]]}}}],["invalid",{"_index":382,"t":{"37":{"position":[[678,7],[760,7]]}}}],["invalidate",{"_index":836,"t":{"102":{"position":[[182,10]]}}}],["io",{"_index":1318,"t":{"246":{"position":[[146,2]]}}}],["ip",{"_index":337,"t":{"33":{"position":[[322,2]]},"183":{"position":[[780,2]]}}}],["iq",{"_index":361,"t":{"37":{"position":[[311,2]]},"110":{"position":[[1096,2]]},"119":{"position":[[1935,2]]}}}],["iq.result.label",{"_index":907,"t":{"110":{"position":[[1173,15]]},"119":{"position":[[2106,15]]}}}],["iq_",{"_index":182,"t":{"19":{"position":[[690,3]]}}}],["iqe_",{"_index":181,"t":{"19":{"position":[[674,4],[735,4]]}}}],["irregularities",{"_index":532,"t":{"59":{"position":[[164,14]]}}}],["is_within_business_hours",{"_index":1035,"t":{"119":{"position":[[1237,27],[1777,27]]}}}],["issue",{"_index":1332,"t":{"248":{"position":[[259,5]]}}}],["issues",{"_index":421,"t":{"41":{"position":[[198,7]]},"45":{"position":[[139,6]]},"47":{"position":[[111,6],[190,6]]},"51":{"position":[[90,6]]}}}],["it's",{"_index":1126,"t":{"133":{"position":[[87,4]]}}}],["jetson",{"_index":148,"t":{"19":{"position":[[108,6]]},"139":{"position":[[137,6]]},"185":{"position":[[63,6]]},"187":{"position":[[60,7]]},"189":{"position":[[64,7]]},"193":{"position":[[44,7]]},"195":{"position":[[58,7]]}}}],["jpeg",{"_index":1279,"t":{"204":{"position":[[215,4],[274,4],[364,4]]}}}],["keep",{"_index":843,"t":{"104":{"position":[[77,4]]}}}],["key",{"_index":1222,"t":{"181":{"position":[[91,3]]}}}],["kind",{"_index":763,"t":{"90":{"position":[[250,4]]}}}],["kinds",{"_index":329,"t":{"33":{"position":[[42,5],[275,5]]}}}],["know",{"_index":1108,"t":{"127":{"position":[[327,4]]},"157":{"position":[[118,4]]}}}],["knowledge",{"_index":325,"t":{"31":{"position":[[1140,9]]}}}],["ksuid",{"_index":762,"t":{"90":{"position":[[241,5]]}}}],["label",{"_index":684,"t":{"78":{"position":[[272,5],[409,5]]},"83":{"position":[[438,5]]}}}],["labels",{"_index":623,"t":{"65":{"position":[[1647,7]]},"74":{"position":[[103,6]]},"78":{"position":[[549,6],[1009,6]]}}}],["labor",{"_index":625,"t":{"65":{"position":[[1671,5]]}}}],["language",{"_index":7,"t":{"3":{"position":[[68,9]]},"13":{"position":[[48,8]]},"15":{"position":[[663,8]]},"53":{"position":[[15,8]]},"55":{"position":[[257,9]]},"57":{"position":[[292,8]]},"63":{"position":[[46,8]]}}}],["large",{"_index":1262,"t":{"200":{"position":[[123,5]]},"202":{"position":[[154,6]]},"206":{"position":[[83,6]]}}}],["last",{"_index":829,"t":{"100":{"position":[[235,4],[278,4]]}}}],["latency",{"_index":116,"t":{"15":{"position":[[368,8]]},"17":{"position":[[167,8]]},"65":{"position":[[63,7],[1514,8],[1601,8]]},"83":{"position":[[490,8]]}}}],["later",{"_index":816,"t":{"98":{"position":[[182,6]]}}}],["latest",{"_index":1162,"t":{"151":{"position":[[50,6],[321,6]]},"155":{"position":[[55,6]]},"171":{"position":[[50,6],[321,6]]},"175":{"position":[[13,6]]},"232":{"position":[[50,6],[321,6]]},"236":{"position":[[13,6]]}}}],["layout",{"_index":967,"t":{"113":{"position":[[1084,7],[1218,7],[1319,6]]}}}],["lead",{"_index":988,"t":{"113":{"position":[[1638,4]]}}}],["learn",{"_index":106,"t":{"15":{"position":[[142,5]]},"63":{"position":[[3,5]]},"83":{"position":[[583,5]]}}}],["learning",{"_index":720,"t":{"83":{"position":[[42,8]]},"127":{"position":[[192,8]]}}}],["len(log",{"_index":1056,"t":{"119":{"position":[[2258,9]]}}}],["let's",{"_index":1099,"t":{"122":{"position":[[535,5]]}}}],["lets",{"_index":618,"t":{"65":{"position":[[1480,4]]},"78":{"position":[[12,4]]}}}],["level",{"_index":583,"t":{"65":{"position":[[575,5],[802,5],[1919,5]]}}}],["levels",{"_index":432,"t":{"45":{"position":[[36,6]]}}}],["libraries",{"_index":292,"t":{"31":{"position":[[327,9]]},"110":{"position":[[144,10]]},"117":{"position":[[121,10]]},"119":{"position":[[144,10]]},"200":{"position":[[129,9],[241,9]]},"206":{"position":[[20,9],[160,10]]}}}],["library",{"_index":226,"t":{"27":{"position":[[37,8]]},"33":{"position":[[84,8]]},"108":{"position":[[96,8]]},"117":{"position":[[93,8]]},"202":{"position":[[8,7],[334,7]]}}}],["life",{"_index":1187,"t":{"157":{"position":[[63,5]]}}}],["limit",{"_index":401,"t":{"37":{"position":[[932,5]]},"92":{"position":[[475,5]]}}}],["limiting",{"_index":449,"t":{"47":{"position":[[126,9]]}}}],["liner",{"_index":1159,"t":{"149":{"position":[[110,6]]},"151":{"position":[[236,5]]},"169":{"position":[[110,6]]},"171":{"position":[[236,5]]},"230":{"position":[[110,6]]},"232":{"position":[[236,5]]}}}],["lines",{"_index":704,"t":{"81":{"position":[[53,5]]}}}],["links",{"_index":32,"t":{"3":{"position":[[382,5]]}}}],["linux",{"_index":1143,"t":{"139":{"position":[[97,5],[144,5]]},"141":{"position":[[56,6]]},"155":{"position":[[250,6]]},"179":{"position":[[66,5]]},"181":{"position":[[19,5]]}}}],["list",{"_index":821,"t":{"100":{"position":[[38,4]]},"102":{"position":[[43,5]]},"139":{"position":[[30,4]]}}}],["little",{"_index":313,"t":{"31":{"position":[[908,6]]}}}],["llm",{"_index":739,"t":{"85":{"position":[[89,4]]}}}],["loading",{"_index":492,"t":{"55":{"position":[[97,7]]}}}],["localhost",{"_index":1250,"t":{"183":{"position":[[761,9]]}}}],["locally",{"_index":174,"t":{"19":{"position":[[564,8]]},"183":{"position":[[667,8]]}}}],["locate",{"_index":831,"t":{"102":{"position":[[0,6]]}}}],["location",{"_index":779,"t":{"92":{"position":[[341,9]]}}}],["lock",{"_index":78,"t":{"11":{"position":[[61,4],[143,4]]}}}],["log",{"_index":430,"t":{"45":{"position":[[0,3],[32,3]]},"98":{"position":[[0,3]]},"110":{"position":[[7,3]]},"113":{"position":[[454,4],[2015,3]]},"115":{"position":[[138,3]]},"119":{"position":[[7,3],[677,3],[1635,3],[2530,3],[2853,5],[3209,3]]}}}],["log.append(answer",{"_index":1052,"t":{"119":{"position":[[2122,18]]}}}],["log.count(\"yes",{"_index":1055,"t":{"119":{"position":[[2238,17]]}}}],["logging",{"_index":455,"t":{"49":{"position":[[15,7]]}}}],["logic",{"_index":164,"t":{"19":{"position":[[440,5]]},"47":{"position":[[42,5]]}}}],["logs",{"_index":1076,"t":{"119":{"position":[[3079,4]]}}}],["long",{"_index":983,"t":{"113":{"position":[[1512,4]]}}}],["longer",{"_index":563,"t":{"65":{"position":[[93,6]]},"92":{"position":[[598,6]]}}}],["look",{"_index":312,"t":{"31":{"position":[[901,4],[939,4]]},"90":{"position":[[197,4]]},"94":{"position":[[302,4]]},"122":{"position":[[541,4]]}}}],["looks",{"_index":800,"t":{"94":{"position":[[419,5]]}}}],["loop",{"_index":902,"t":{"110":{"position":[[968,5]]},"119":{"position":[[1386,5]]}}}],["low",{"_index":690,"t":{"78":{"position":[[490,3]]},"119":{"position":[[1559,3]]}}}],["loyalty",{"_index":985,"t":{"113":{"position":[[1594,8]]}}}],["m5stack",{"_index":1321,"t":{"246":{"position":[[166,7],[215,7]]}}}],["machine",{"_index":489,"t":{"55":{"position":[[66,7],[275,7]]},"83":{"position":[[34,7]]},"127":{"position":[[184,7]]}}}],["machines",{"_index":496,"t":{"55":{"position":[[136,9]]},"61":{"position":[[273,8]]}}}],["macos",{"_index":1144,"t":{"139":{"position":[[103,5]]},"161":{"position":[[56,6]]}}}],["made",{"_index":299,"t":{"31":{"position":[[539,4]]}}}],["main",{"_index":901,"t":{"110":{"position":[[951,4]]},"119":{"position":[[1369,4]]}}}],["maintain",{"_index":534,"t":{"59":{"position":[[228,8]]}}}],["make",{"_index":417,"t":{"41":{"position":[[145,4]]},"113":{"position":[[1264,4],[2047,4]]},"133":{"position":[[53,4]]},"200":{"position":[[274,4]]},"242":{"position":[[25,4]]}}}],["makes",{"_index":1097,"t":{"122":{"position":[[512,5]]}}}],["making",{"_index":678,"t":{"78":{"position":[[43,6]]}}}],["malformed",{"_index":383,"t":{"37":{"position":[[689,9]]}}}],["manage",{"_index":807,"t":{"96":{"position":[[8,6]]}}}],["manager",{"_index":1172,"t":{"155":{"position":[[32,7]]}}}],["managers",{"_index":948,"t":{"113":{"position":[[623,8],[1934,8]]}}}],["manual",{"_index":452,"t":{"47":{"position":[[205,6]]},"57":{"position":[[141,6]]},"59":{"position":[[283,6]]}}}],["manufacturing",{"_index":97,"t":{"13":{"position":[[97,13]]},"53":{"position":[[77,13]]},"59":{"position":[[113,13]]},"61":{"position":[[387,13]]},"63":{"position":[[120,13]]}}}],["many",{"_index":204,"t":{"23":{"position":[[36,4]]},"27":{"position":[[51,4]]},"31":{"position":[[237,4]]},"33":{"position":[[27,4],[147,4],[260,4]]},"37":{"position":[[908,4]]},"246":{"position":[[34,4]]}}}],["marketing",{"_index":960,"t":{"113":{"position":[[991,9]]}}}],["matching",{"_index":256,"t":{"29":{"position":[[117,8]]}}}],["materials",{"_index":494,"t":{"55":{"position":[[119,9]]}}}],["means",{"_index":1113,"t":{"129":{"position":[[44,6]]}}}],["memory",{"_index":269,"t":{"29":{"position":[[251,7]]}}}],["mentioned",{"_index":1164,"t":{"151":{"position":[[242,9]]},"171":{"position":[[242,9]]},"232":{"position":[[242,9]]}}}],["message",{"_index":461,"t":{"49":{"position":[[164,7]]}}}],["metadata",{"_index":351,"t":{"37":{"position":[[107,8]]}}}],["method",{"_index":647,"t":{"68":{"position":[[71,6],[303,6]]}}}],["methods",{"_index":725,"t":{"83":{"position":[[284,7]]}}}],["microsecond=0",{"_index":1048,"t":{"119":{"position":[[1722,14]]}}}],["milling",{"_index":497,"t":{"55":{"position":[[146,7]]}}}],["mimemultipart",{"_index":1004,"t":{"119":{"position":[[325,13],[820,15]]}}}],["mimetext",{"_index":1006,"t":{"119":{"position":[[367,8]]}}}],["minimal",{"_index":13,"t":{"3":{"position":[[136,7]]}}}],["minimum",{"_index":587,"t":{"65":{"position":[[654,7]]}}}],["minute",{"_index":913,"t":{"110":{"position":[[1397,6]]},"113":{"position":[[299,7]]}}}],["minute=0",{"_index":1060,"t":{"119":{"position":[[2336,9]]}}}],["missing",{"_index":387,"t":{"37":{"position":[[749,7]]}}}],["ml",{"_index":169,"t":{"19":{"position":[[529,2]]},"65":{"position":[[203,2],[687,2],[1786,2],[1830,2],[2037,2],[2209,2]]},"78":{"position":[[494,2]]},"83":{"position":[[51,4],[567,2]]}}}],["modbus",{"_index":550,"t":{"61":{"position":[[309,6]]}}}],["model",{"_index":137,"t":{"17":{"position":[[127,5]]},"65":{"position":[[1833,5],[2040,6],[2212,6]]},"127":{"position":[[201,5]]}}}],["models",{"_index":133,"t":{"17":{"position":[[35,7]]},"19":{"position":[[233,7]]},"65":{"position":[[206,6],[326,6],[492,6]]},"78":{"position":[[33,6]]},"83":{"position":[[56,6],[118,6],[185,6]]}}}],["moderate",{"_index":1100,"t":{"122":{"position":[[563,8]]}}}],["modern",{"_index":95,"t":{"13":{"position":[[33,6]]},"53":{"position":[[0,6]]}}}],["molding",{"_index":500,"t":{"55":{"position":[[176,7]]}}}],["monitor",{"_index":442,"t":{"45":{"position":[[167,7]]}}}],["monitoring",{"_index":980,"t":{"113":{"position":[[1441,10]]},"139":{"position":[[155,10]]}}}],["monitors",{"_index":83,"t":{"11":{"position":[[172,8]]},"65":{"position":[[353,8]]},"113":{"position":[[95,8]]}}}],["more",{"_index":33,"t":{"3":{"position":[[391,4]]},"15":{"position":[[4,4]]},"45":{"position":[[146,4]]},"53":{"position":[[116,4]]},"55":{"position":[[304,4]]},"63":{"position":[[9,4]]},"65":{"position":[[284,4],[313,4],[1642,4]]},"83":{"position":[[251,4]]},"127":{"position":[[55,4],[107,4]]},"159":{"position":[[74,4]]},"177":{"position":[[74,4]]},"197":{"position":[[74,4]]},"220":{"position":[[74,4]]},"238":{"position":[[74,4]]}}}],["mounted",{"_index":150,"t":{"19":{"position":[[128,7]]}}}],["msg",{"_index":1011,"t":{"119":{"position":[[814,3],[2414,3],[2673,3]]}}}],["msg.as_string",{"_index":1024,"t":{"119":{"position":[[1049,15]]}}}],["msg.attach(mimetext(body",{"_index":1016,"t":{"119":{"position":[[903,25]]}}}],["msg['from",{"_index":1012,"t":{"119":{"position":[[836,11]]}}}],["msg['subject",{"_index":1015,"t":{"119":{"position":[[878,14]]}}}],["msg['to",{"_index":1014,"t":{"119":{"position":[[857,9]]}}}],["much",{"_index":172,"t":{"19":{"position":[[552,4]]}}}],["name",{"_index":653,"t":{"68":{"position":[[144,5]]},"98":{"position":[[146,5]]},"100":{"position":[[111,5],[133,4]]}}}],["name=\"conveyor",{"_index":1088,"t":{"122":{"position":[[240,14]]}}}],["name=\"counter",{"_index":1038,"t":{"119":{"position":[[1449,13]]}}}],["natural",{"_index":6,"t":{"3":{"position":[[60,7]]},"13":{"position":[[40,7]]},"15":{"position":[[655,7]]},"31":{"position":[[979,7]]},"53":{"position":[[7,7]]},"55":{"position":[[249,7]]},"57":{"position":[[284,7]]},"63":{"position":[[38,7]]}}}],["navigate",{"_index":811,"t":{"98":{"position":[[39,8]]}}}],["near",{"_index":991,"t":{"113":{"position":[[1775,4]]}}}],["nearly",{"_index":775,"t":{"92":{"position":[[207,6]]}}}],["need",{"_index":294,"t":{"31":{"position":[[442,4]]},"59":{"position":[[274,4]]},"83":{"position":[[514,4]]},"87":{"position":[[182,4]]},"90":{"position":[[39,4]]},"113":{"position":[[1740,4]]},"119":{"position":[[701,4]]},"147":{"position":[[165,4]]},"151":{"position":[[7,4]]},"153":{"position":[[205,4]]},"167":{"position":[[165,4]]},"171":{"position":[[7,4]]},"173":{"position":[[205,4]]},"204":{"position":[[182,4],[526,4]]},"228":{"position":[[171,4]]},"232":{"position":[[7,4]]},"234":{"position":[[211,4]]},"248":{"position":[[154,4]]}}}],["needed",{"_index":574,"t":{"65":{"position":[[365,7]]},"92":{"position":[[605,7]]}}}],["needing",{"_index":730,"t":{"83":{"position":[[410,7]]}}}],["network",{"_index":140,"t":{"17":{"position":[[182,7]]},"47":{"position":[[103,7]]},"106":{"position":[[61,7]]},"115":{"position":[[61,7]]},"119":{"position":[[744,7]]}}}],["never",{"_index":771,"t":{"92":{"position":[[44,5]]}}}],["new",{"_index":576,"t":{"65":{"position":[[444,3]]},"68":{"position":[[162,3],[230,3]]},"74":{"position":[[41,3]]},"98":{"position":[[90,3],[122,3]]},"102":{"position":[[318,3]]},"183":{"position":[[82,3]]}}}],["next",{"_index":580,"t":{"65":{"position":[[507,4]]},"102":{"position":[[75,4]]},"110":{"position":[[67,5]]},"119":{"position":[[67,5]]}}}],["next_hourly_start",{"_index":1045,"t":{"119":{"position":[[1659,17],[2162,18],[2181,17]]}}}],["nice",{"_index":1121,"t":{"131":{"position":[[93,4]]}}}],["non",{"_index":89,"t":{"11":{"position":[[259,3]]},"204":{"position":[[303,3]]}}}],["none",{"_index":883,"t":{"110":{"position":[[523,4]]},"119":{"position":[[636,4]]}}}],["normal",{"_index":1271,"t":{"202":{"position":[[216,6]]}}}],["normally",{"_index":1281,"t":{"204":{"position":[[245,8]]}}}],["note",{"_index":229,"t":{"27":{"position":[[133,5]]},"29":{"position":[[424,5]]},"31":{"position":[[518,4]]},"78":{"position":[[425,4]]},"81":{"position":[[388,5]]},"102":{"position":[[137,5]]},"155":{"position":[[177,4]]}}}],["notification",{"_index":85,"t":{"11":{"position":[[200,12]]},"139":{"position":[[166,12]]},"183":{"position":[[232,12],[360,12]]},"244":{"position":[[32,12]]}}}],["now",{"_index":1157,"t":{"147":{"position":[[239,3]]},"151":{"position":[[339,3]]},"157":{"position":[[808,3]]},"159":{"position":[[7,3]]},"167":{"position":[[239,3]]},"171":{"position":[[339,3]]},"177":{"position":[[7,3]]},"191":{"position":[[194,3]]},"197":{"position":[[7,3]]},"214":{"position":[[194,3]]},"220":{"position":[[7,3]]},"228":{"position":[[245,3]]},"232":{"position":[[339,3]]},"238":{"position":[[7,3]]}}}],["np",{"_index":272,"t":{"29":{"position":[[338,2]]}}}],["np.random.uniform(low=0",{"_index":274,"t":{"29":{"position":[[350,24]]}}}],["np_img",{"_index":273,"t":{"29":{"position":[[341,6],[507,7]]}}}],["number",{"_index":784,"t":{"92":{"position":[[485,6]]},"153":{"position":[[103,6]]},"173":{"position":[[103,6]]},"234":{"position":[[109,6]]}}}],["numpy",{"_index":210,"t":{"23":{"position":[[85,5]]},"27":{"position":[[119,5]]},"29":{"position":[[41,5],[315,6],[329,5]]},"31":{"position":[[89,5],[382,5],[734,5]]},"200":{"position":[[144,5]]}}}],["nvidia",{"_index":147,"t":{"19":{"position":[[101,6]]},"139":{"position":[[130,6]]},"185":{"position":[[56,6]]},"187":{"position":[[53,6]]},"189":{"position":[[57,6]]},"193":{"position":[[37,6]]},"195":{"position":[[51,6]]}}}],["object",{"_index":21,"t":{"3":{"position":[[239,6]]},"81":{"position":[[275,6]]},"87":{"position":[[550,6]]}}}],["obscure",{"_index":419,"t":{"41":{"position":[[174,7]]}}}],["observed",{"_index":86,"t":{"11":{"position":[[228,8]]}}}],["occur",{"_index":123,"t":{"15":{"position":[[462,5]]}}}],["occurred",{"_index":405,"t":{"37":{"position":[[1006,8]]}}}],["offers",{"_index":477,"t":{"53":{"position":[[180,6]]},"202":{"position":[[16,6]]}}}],["official",{"_index":1214,"t":{"175":{"position":[[46,8]]},"236":{"position":[[46,8]]}}}],["okay",{"_index":1102,"t":{"127":{"position":[[17,5]]}}}],["old",{"_index":788,"t":{"92":{"position":[[572,3]]},"102":{"position":[[347,3]]}}}],["once",{"_index":936,"t":{"113":{"position":[[311,4]]}}}],["one",{"_index":249,"t":{"27":{"position":[[429,3]]},"68":{"position":[[166,3]]},"102":{"position":[[351,4]]},"127":{"position":[[228,3]]},"149":{"position":[[106,3]]},"151":{"position":[[232,3]]},"169":{"position":[[106,3]]},"171":{"position":[[232,3]]},"230":{"position":[[106,3]]},"232":{"position":[[232,3]]}}}],["ones",{"_index":789,"t":{"92":{"position":[[576,4]]}}}],["open",{"_index":698,"t":{"78":{"position":[[738,7]]},"81":{"position":[[195,7]]},"87":{"position":[[470,7]]},"153":{"position":[[40,4]]},"173":{"position":[[40,4]]},"183":{"position":[[676,4]]},"234":{"position":[[40,4]]}}}],["opencv",{"_index":209,"t":{"23":{"position":[[73,7]]},"27":{"position":[[0,6],[91,6]]},"29":{"position":[[126,6]]},"31":{"position":[[70,7],[120,7],[424,6]]},"108":{"position":[[89,6],[129,6]]},"110":{"position":[[323,7]]},"117":{"position":[[86,6],[156,6]]},"119":{"position":[[436,7]]},"200":{"position":[[153,7]]}}}],["opencv's",{"_index":235,"t":{"27":{"position":[[244,8]]}}}],["opening",{"_index":1117,"t":{"129":{"position":[[97,7]]},"248":{"position":[[248,7]]}}}],["operate",{"_index":732,"t":{"83":{"position":[[472,7]]}}}],["operating",{"_index":1028,"t":{"119":{"position":[[1147,9]]}}}],["operations",{"_index":524,"t":{"57":{"position":[[324,11]]},"113":{"position":[[2088,10]]}}}],["opinions",{"_index":1120,"t":{"131":{"position":[[73,8]]}}}],["optimize",{"_index":513,"t":{"57":{"position":[[110,8]]},"113":{"position":[[636,8]]}}}],["optimized",{"_index":1259,"t":{"200":{"position":[[23,9]]}}}],["options",{"_index":1309,"t":{"244":{"position":[[45,7]]}}}],["order",{"_index":231,"t":{"27":{"position":[[162,6],[177,6],[236,7]]},"29":{"position":[[110,6],[438,5]]},"31":{"position":[[34,6],[345,6],[470,5],[603,5],[678,5],[761,5],[774,5]]}}}],["originally",{"_index":284,"t":{"31":{"position":[[152,10]]}}}],["originate",{"_index":293,"t":{"31":{"position":[[409,9]]}}}],["originated",{"_index":185,"t":{"19":{"position":[[776,10]]}}}],["originating",{"_index":428,"t":{"43":{"position":[[128,11]]}}}],["out",{"_index":102,"t":{"15":{"position":[[93,3]]},"63":{"position":[[158,3]]},"113":{"position":[[335,3]]},"248":{"position":[[302,3]]}}}],["output=true",{"_index":895,"t":{"110":{"position":[[791,12]]}}}],["over",{"_index":734,"t":{"83":{"position":[[552,4]]},"87":{"position":[[117,4]]},"92":{"position":[[227,4]]},"104":{"position":[[260,4]]}}}],["overall",{"_index":538,"t":{"59":{"position":[[317,7]]}}}],["oversight",{"_index":743,"t":{"85":{"position":[[173,10]]}}}],["p",{"_index":890,"t":{"110":{"position":[[650,1]]}}}],["p.open(format=p.get_format_from_width(wf.getsampwidth",{"_index":892,"t":{"110":{"position":[[681,57]]}}}],["p.terminate",{"_index":900,"t":{"110":{"position":[[927,13]]}}}],["package",{"_index":1149,"t":{"143":{"position":[[94,7]]},"155":{"position":[[24,7]]},"163":{"position":[[94,7]]},"187":{"position":[[101,7]]},"210":{"position":[[100,7]]},"224":{"position":[[94,7]]}}}],["pacman",{"_index":1182,"t":{"155":{"position":[[262,6]]}}}],["page",{"_index":25,"t":{"3":{"position":[[292,5]]},"35":{"position":[[108,4]]},"72":{"position":[[84,4],[139,4],[161,4]]},"76":{"position":[[84,4],[147,4],[169,4]]},"98":{"position":[[66,5]]},"100":{"position":[[18,5]]},"183":{"position":[[836,5]]}}}],["page_size=5",{"_index":668,"t":{"72":{"position":[[204,12]]},"76":{"position":[[220,12]]}}}],["pages",{"_index":104,"t":{"15":{"position":[[111,6]]},"159":{"position":[[173,6]]},"177":{"position":[[173,6]]},"220":{"position":[[173,6]]},"238":{"position":[[173,6]]}}}],["pagination",{"_index":664,"t":{"72":{"position":[[123,11]]},"76":{"position":[[131,11]]}}}],["partial",{"_index":1116,"t":{"129":{"position":[[89,7]]}}}],["particular",{"_index":567,"t":{"65":{"position":[[184,11]]},"119":{"position":[[733,10]]}}}],["parts",{"_index":504,"t":{"55":{"position":[[227,5]]}}}],["pass",{"_index":188,"t":{"21":{"position":[[74,4]]},"94":{"position":[[549,4]]}}}],["passed",{"_index":609,"t":{"65":{"position":[[1305,6]]}}}],["password",{"_index":1022,"t":{"119":{"position":[[1031,10]]}}}],["passwords",{"_index":770,"t":{"92":{"position":[[33,10]]}}}],["path",{"_index":221,"t":{"25":{"position":[[235,4]]}}}],["patterns",{"_index":947,"t":{"113":{"position":[[584,8]]}}}],["pays",{"_index":859,"t":{"104":{"position":[[382,4]]}}}],["peak",{"_index":951,"t":{"113":{"position":[[730,4]]}}}],["people",{"_index":733,"t":{"83":{"position":[[507,6]]},"92":{"position":[[495,6]]},"131":{"position":[[47,6]]}}}],["per",{"_index":662,"t":{"72":{"position":[[80,3],[157,3]]},"76":{"position":[[80,3],[165,3]]}}}],["percent_in_use",{"_index":1054,"t":{"119":{"position":[[2221,14]]}}}],["percent_in_use:.0f",{"_index":1065,"t":{"119":{"position":[[2459,21]]}}}],["percentage",{"_index":940,"t":{"113":{"position":[[356,10]]},"119":{"position":[[3150,11]]}}}],["perform",{"_index":518,"t":{"57":{"position":[[223,7]]}}}],["performance",{"_index":114,"t":{"15":{"position":[[344,11]]}}}],["permissions",{"_index":393,"t":{"37":{"position":[[832,11]]}}}],["person",{"_index":1110,"t":{"127":{"position":[[351,6]]}}}],["phase",{"_index":712,"t":{"81":{"position":[[425,6]]}}}],["pi",{"_index":76,"t":{"11":{"position":[[53,2],[129,2]]},"19":{"position":[[164,3]]},"139":{"position":[[127,2]]},"208":{"position":[[66,3]]},"210":{"position":[[63,3]]},"212":{"position":[[67,3]]},"216":{"position":[[47,3]]},"218":{"position":[[60,3]]}}}],["pil",{"_index":208,"t":{"23":{"position":[[68,4]]},"25":{"position":[[31,3],[134,3]]},"65":{"position":[[936,3]]},"78":{"position":[[618,3]]},"110":{"position":[[219,3],[437,3]]},"119":{"position":[[234,3],[550,3]]},"202":{"position":[[4,3],[125,4],[138,3],[330,3]]},"204":{"position":[[96,3],[264,3],[509,3]]}}}],["pil_img",{"_index":222,"t":{"25":{"position":[[249,7],[330,8]]}}}],["pillow",{"_index":869,"t":{"108":{"position":[[143,6]]},"117":{"position":[[170,6]]},"202":{"position":[[308,6]]}}}],["pin",{"_index":1319,"t":{"246":{"position":[[149,3]]}}}],["pip",{"_index":868,"t":{"108":{"position":[[105,3]]},"117":{"position":[[132,3]]},"143":{"position":[[82,3]]},"147":{"position":[[37,4],[86,3]]},"151":{"position":[[84,3],[97,3]]},"163":{"position":[[82,3]]},"167":{"position":[[37,4],[86,3]]},"171":{"position":[[84,3],[97,3]]},"187":{"position":[[89,3]]},"191":{"position":[[37,4]]},"210":{"position":[[88,3]]},"214":{"position":[[37,4]]},"224":{"position":[[82,3]]},"228":{"position":[[37,4],[92,3]]},"232":{"position":[[84,3],[97,3]]}}}],["pip.py",{"_index":1208,"t":{"157":{"position":[[644,6],[662,6],[693,6]]}}}],["pip3",{"_index":747,"t":{"87":{"position":[[87,4]]},"147":{"position":[[177,4],[191,4]]},"151":{"position":[[151,5],[157,4]]},"157":{"position":[[712,6],[782,4],[840,4]]},"167":{"position":[[177,4],[191,4]]},"171":{"position":[[151,5],[157,4]]},"191":{"position":[[86,4]]},"202":{"position":[[265,4]]},"214":{"position":[[86,4]]},"228":{"position":[[183,4],[197,4]]},"232":{"position":[[151,5],[157,4]]}}}],["pip3.8",{"_index":1206,"t":{"157":{"position":[[602,6],[726,6],[795,7]]}}}],["pixel",{"_index":258,"t":{"29":{"position":[[144,5]]}}}],["placeholder",{"_index":631,"t":{"65":{"position":[[1802,11]]}}}],["plain",{"_index":1017,"t":{"119":{"position":[[929,9]]}}}],["plan",{"_index":958,"t":{"113":{"position":[[977,4]]}}}],["platform",{"_index":1141,"t":{"139":{"position":[[12,8],[257,9]]}}}],["platformio",{"_index":1330,"t":{"248":{"position":[[47,10]]}}}],["platforms",{"_index":1139,"t":{"137":{"position":[[164,10]]},"204":{"position":[[406,10]]}}}],["play",{"_index":525,"t":{"59":{"position":[[45,4]]},"104":{"position":[[234,4]]},"110":{"position":[[549,4]]}}}],["play_sound",{"_index":919,"t":{"110":{"position":[[1642,10]]}}}],["play_sound(\"get_off_couch.mp3",{"_index":909,"t":{"110":{"position":[[1245,31]]}}}],["play_sound(file_path",{"_index":884,"t":{"110":{"position":[[582,22]]}}}],["plays",{"_index":918,"t":{"110":{"position":[[1603,5]]}}}],["please",{"_index":556,"t":{"63":{"position":[[145,6]]},"92":{"position":[[100,6]]},"157":{"position":[[146,6]]},"248":{"position":[[232,6]]}}}],["plug",{"_index":1299,"t":{"242":{"position":[[206,4]]}}}],["popular",{"_index":205,"t":{"23":{"position":[[41,7]]},"27":{"position":[[12,7]]},"61":{"position":[[71,7]]}}}],["port",{"_index":1305,"t":{"242":{"position":[[403,5]]}}}],["ports",{"_index":1232,"t":{"183":{"position":[[268,6],[395,6]]}}}],["positive",{"_index":986,"t":{"113":{"position":[[1605,8]]}}}],["possible",{"_index":629,"t":{"65":{"position":[[1740,9]]},"242":{"position":[[44,8]]}}}],["power",{"_index":737,"t":{"85":{"position":[[49,5]]}}}],["powered",{"_index":5,"t":{"3":{"position":[[49,7]]},"5":{"position":[[65,7]]},"15":{"position":[[212,7]]}}}],["powerful",{"_index":2,"t":{"3":{"position":[[23,8]]},"9":{"position":[[202,8]]},"15":{"position":[[586,8]]}}}],["practice",{"_index":669,"t":{"74":{"position":[[3,9]]},"94":{"position":[[106,9]]}}}],["practices",{"_index":409,"t":{"39":{"position":[[57,9]]},"51":{"position":[[204,10]]},"92":{"position":[[125,9],[277,9]]}}}],["pre",{"_index":851,"t":{"104":{"position":[[241,3]]},"106":{"position":[[88,3]]},"110":{"position":[[558,3],[1613,3]]}}}],["precisely",{"_index":1109,"t":{"127":{"position":[[332,9]]}}}],["preferable",{"_index":267,"t":{"29":{"position":[[225,10]]}}}],["prefix",{"_index":180,"t":{"19":{"position":[[667,6]]},"100":{"position":[[183,9]]}}}],["prepare",{"_index":1196,"t":{"157":{"position":[[314,7]]}}}],["prerequisites",{"_index":746,"t":{"87":{"position":[[72,14]]}}}],["present",{"_index":1265,"t":{"200":{"position":[[302,8]]}}}],["prevent",{"_index":837,"t":{"102":{"position":[[200,7]]}}}],["previous",{"_index":300,"t":{"31":{"position":[[580,8]]}}}],["print",{"_index":366,"t":{"37":{"position":[[391,5]]}}}],["print(\"dog",{"_index":908,"t":{"110":{"position":[[1209,10]]}}}],["print(\"failed",{"_index":911,"t":{"110":{"position":[[1350,13]]},"119":{"position":[[1870,13]]}}}],["print(daily_summary",{"_index":1071,"t":{"119":{"position":[[2719,20]]}}}],["print(f\"error",{"_index":373,"t":{"37":{"position":[[500,13]]},"110":{"position":[[1300,13]]},"119":{"position":[[2026,13]]}}}],["print(f\"http",{"_index":377,"t":{"37":{"position":[[576,12]]}}}],["print(f\"the",{"_index":614,"t":{"65":{"position":[[1413,11],[2282,11]]},"81":{"position":[[343,11]]},"87":{"position":[[618,11]]},"122":{"position":[[452,11]]}}}],["print(groundlight.__version__",{"_index":1161,"t":{"149":{"position":[[148,31]]},"169":{"position":[[148,31]]},"230":{"position":[[148,31]]}}}],["print(msg",{"_index":1066,"t":{"119":{"position":[[2497,10]]}}}],["prints",{"_index":938,"t":{"113":{"position":[[328,6]]},"119":{"position":[[3110,6]]}}}],["prior",{"_index":324,"t":{"31":{"position":[[1134,5]]}}}],["privileged",{"_index":1242,"t":{"183":{"position":[[529,11]]}}}],["proactively",{"_index":981,"t":{"113":{"position":[[1489,11]]}}}],["proceed",{"_index":1152,"t":{"145":{"position":[[73,7]]},"165":{"position":[[73,7]]},"189":{"position":[[80,7]]},"212":{"position":[[79,7]]},"226":{"position":[[73,7]]}}}],["process",{"_index":510,"t":{"57":{"position":[[52,7]]},"139":{"position":[[240,7]]}}}],["processes",{"_index":481,"t":{"53":{"position":[[285,10]]},"59":{"position":[[127,10]]},"63":{"position":[[134,10]]}}}],["processing",{"_index":225,"t":{"27":{"position":[[26,10]]},"31":{"position":[[260,10]]}}}],["processor",{"_index":45,"t":{"7":{"position":[[73,9]]}}}],["product",{"_index":539,"t":{"59":{"position":[[325,7]]}}}],["production",{"_index":469,"t":{"51":{"position":[[168,11]]}}}],["productivity",{"_index":484,"t":{"53":{"position":[[318,13]]}}}],["products",{"_index":533,"t":{"59":{"position":[[182,9]]}}}],["program",{"_index":1306,"t":{"242":{"position":[[424,7]]}}}],["programatically",{"_index":683,"t":{"78":{"position":[[217,15]]}}}],["progress",{"_index":334,"t":{"33":{"position":[[129,9]]}}}],["progressively",{"_index":724,"t":{"83":{"position":[[224,13]]}}}],["project",{"_index":1227,"t":{"183":{"position":[[125,7],[617,7]]},"248":{"position":[[58,7]]}}}],["projects",{"_index":1211,"t":{"159":{"position":[[60,9]]},"177":{"position":[[60,9]]},"197":{"position":[[60,9]]},"220":{"position":[[60,9]]},"238":{"position":[[60,9]]}}}],["promotions",{"_index":962,"t":{"113":{"position":[[1014,10]]}}}],["prompt",{"_index":1291,"t":{"228":{"position":[[84,7]]},"234":{"position":[[55,6]]},"242":{"position":[[463,6]]}}}],["prompted",{"_index":1302,"t":{"242":{"position":[[353,9]]}}}],["proper",{"_index":864,"t":{"106":{"position":[[176,6]]}}}],["properly",{"_index":1276,"t":{"204":{"position":[[117,9]]}}}],["provide",{"_index":31,"t":{"3":{"position":[[374,7]]},"65":{"position":[[700,7]]},"113":{"position":[[1163,7]]}}}],["provides",{"_index":1,"t":{"3":{"position":[[12,8]]},"33":{"position":[[228,8]]}}}],["psram",{"_index":1322,"t":{"246":{"position":[[180,5],[229,5]]}}}],["public",{"_index":599,"t":{"65":{"position":[[1020,6]]}}}],["publish",{"_index":1255,"t":{"193":{"position":[[110,7]]},"216":{"position":[[109,7]]}}}],["purchase",{"_index":1324,"t":{"246":{"position":[[199,9],[250,9],[276,9],[318,9]]}}}],["put",{"_index":799,"t":{"94":{"position":[[353,3]]}}}],["py3.10",{"_index":1189,"t":{"157":{"position":[[138,7]]}}}],["pyaudio",{"_index":870,"t":{"108":{"position":[[150,7]]},"110":{"position":[[243,7]]}}}],["pyaudio.pyaudio",{"_index":891,"t":{"110":{"position":[[654,17]]}}}],["python",{"_index":200,"t":{"21":{"position":[[336,6]]},"81":{"position":[[62,7],[268,6]]},"87":{"position":[[38,6],[323,6],[543,6],[671,6]]},"106":{"position":[[21,6]]},"108":{"position":[[16,6],[136,6]]},"110":{"position":[[89,6],[1719,6]]},"115":{"position":[[21,6]]},"117":{"position":[[16,6],[163,6]]},"119":{"position":[[89,6],[3302,6]]},"141":{"position":[[92,6]]},"143":{"position":[[61,6],[86,7]]},"145":{"position":[[18,6]]},"149":{"position":[[99,6],[117,6]]},"151":{"position":[[225,6]]},"153":{"position":[[24,6],[65,6],[221,6]]},"155":{"position":[[62,6],[272,6],[307,6],[333,6]]},"157":{"position":[[24,6],[98,6],[190,6],[227,6]]},"161":{"position":[[92,6]]},"163":{"position":[[61,6],[86,7]]},"165":{"position":[[18,6]]},"169":{"position":[[99,6],[117,6]]},"171":{"position":[[225,6]]},"173":{"position":[[24,6],[65,6],[221,6]]},"175":{"position":[[20,6],[55,6],[109,7],[130,6],[165,6],[191,6]]},"185":{"position":[[108,6]]},"187":{"position":[[68,6],[93,7]]},"189":{"position":[[18,6]]},"202":{"position":[[80,7]]},"208":{"position":[[99,6]]},"210":{"position":[[67,6],[92,7]]},"212":{"position":[[18,6]]},"222":{"position":[[94,6]]},"224":{"position":[[61,6],[86,7]]},"226":{"position":[[18,6]]},"230":{"position":[[99,6],[117,6]]},"232":{"position":[[225,6]]},"234":{"position":[[24,6],[71,6],[227,6]]},"236":{"position":[[20,6],[55,6],[110,6],[136,6]]}}}],["python2",{"_index":1156,"t":{"147":{"position":[[131,7]]},"167":{"position":[[131,7]]},"228":{"position":[[137,7]]}}}],["python3",{"_index":1177,"t":{"155":{"position":[[147,7],[233,7],[353,7]]},"157":{"position":[[459,9],[549,7]]},"175":{"position":[[211,7]]},"236":{"position":[[156,7]]}}}],["python3.8",{"_index":1200,"t":{"157":{"position":[[412,9],[422,9],[476,9],[674,9]]}}}],["quality",{"_index":485,"t":{"53":{"position":[[336,7]]},"59":{"position":[[87,7],[244,7],[333,8]]}}}],["queries",{"_index":178,"t":{"19":{"position":[[615,7],[704,7],[793,7]]},"65":{"position":[[512,7],[1872,7]]},"78":{"position":[[50,7]]},"83":{"position":[[539,8],[604,7]]}}}],["query",{"_index":184,"t":{"19":{"position":[[758,5]]},"65":{"position":[[141,6],[275,5],[725,5],[2275,6]]},"68":{"position":[[59,6],[291,6]]},"74":{"position":[[60,6],[115,6]]},"78":{"position":[[442,5]]},"110":{"position":[[1331,6]]},"119":{"position":[[2057,6]]},"129":{"position":[[4,5],[69,6]]}}}],["query=\"are",{"_index":1091,"t":{"122":{"position":[[268,10]]}}}],["query=\"is",{"_index":220,"t":{"25":{"position":[[221,9]]},"65":{"position":[[1200,9]]},"68":{"position":[[422,9]]},"78":{"position":[[716,9]]},"81":{"position":[[173,9]]},"87":{"position":[[448,9]]},"119":{"position":[[1472,9]]}}}],["question",{"_index":1087,"t":{"122":{"position":[[154,9],[525,9]]},"125":{"position":[[5,8]]},"127":{"position":[[5,8],[290,8]]},"131":{"position":[[5,8]]},"133":{"position":[[21,8]]},"135":{"position":[[11,8]]}}}],["questions",{"_index":1083,"t":{"122":{"position":[[49,9]]},"127":{"position":[[155,9],[252,9]]},"248":{"position":[[178,9]]}}}],["queue",{"_index":689,"t":{"78":{"position":[[477,5]]}}}],["quickly",{"_index":15,"t":{"3":{"position":[[176,7]]}}}],["quite",{"_index":1270,"t":{"202":{"position":[[168,5]]},"206":{"position":[[77,5]]}}}],["rack",{"_index":149,"t":{"19":{"position":[[123,4]]}}}],["raise",{"_index":349,"t":{"37":{"position":[[59,5]]}}}],["raised",{"_index":413,"t":{"41":{"position":[[57,7]]}}}],["random",{"_index":271,"t":{"29":{"position":[[299,6]]}}}],["raspberry",{"_index":82,"t":{"11":{"position":[[119,9]]},"19":{"position":[[154,9]]},"139":{"position":[[117,9]]},"208":{"position":[[56,9]]},"210":{"position":[[53,9]]},"212":{"position":[[57,9]]},"216":{"position":[[37,9]]},"218":{"position":[[50,9]]}}}],["rate",{"_index":400,"t":{"37":{"position":[[927,4]]},"47":{"position":[[121,4]]}}}],["rate=wf.getframerate",{"_index":894,"t":{"110":{"position":[[767,23]]}}}],["rb",{"_index":889,"t":{"110":{"position":[[644,5]]}}}],["reach",{"_index":557,"t":{"63":{"position":[[152,5]]}}}],["reaches",{"_index":610,"t":{"65":{"position":[[1330,7]]}}}],["reaching",{"_index":1333,"t":{"248":{"position":[[293,8]]}}}],["ready",{"_index":1148,"t":{"139":{"position":[[277,5]]},"147":{"position":[[257,5]]},"159":{"position":[[11,5]]},"167":{"position":[[257,5]]},"177":{"position":[[11,5]]},"191":{"position":[[212,5]]},"197":{"position":[[11,5]]},"214":{"position":[[212,5]]},"220":{"position":[[11,5]]},"228":{"position":[[263,5]]},"238":{"position":[[11,5]]}}}],["real",{"_index":572,"t":{"65":{"position":[[337,4]]},"83":{"position":[[298,4]]},"85":{"position":[[157,4]]}}}],["rearranging",{"_index":975,"t":{"113":{"position":[[1297,11]]}}}],["reason",{"_index":374,"t":{"37":{"position":[[514,7]]}}}],["receive",{"_index":693,"t":{"78":{"position":[[541,7]]},"113":{"position":[[1949,7]]},"122":{"position":[[172,7]]}}}],["receiver",{"_index":1009,"t":{"119":{"position":[[788,9],[869,8],[1089,9]]}}}],["receiver=\"manager@example.com",{"_index":1073,"t":{"119":{"position":[[2784,31]]}}}],["recognize",{"_index":503,"t":{"55":{"position":[[217,9]]}}}],["recommend",{"_index":793,"t":{"94":{"position":[[119,9]]},"157":{"position":[[82,9]]}}}],["recommended",{"_index":792,"t":{"94":{"position":[[81,14]]},"106":{"position":[[160,11]]}}}],["record",{"_index":857,"t":{"104":{"position":[[343,6]]}}}],["recorded",{"_index":852,"t":{"104":{"position":[[245,8]]},"106":{"position":[[92,8]]},"110":{"position":[[562,8],[1617,8]]}}}],["recover",{"_index":450,"t":{"47":{"position":[[167,7]]}}}],["red",{"_index":309,"t":{"31":{"position":[[857,3]]}}}],["reduce",{"_index":515,"t":{"57":{"position":[[134,6]]}}}],["reduced",{"_index":115,"t":{"15":{"position":[[360,7]]},"204":{"position":[[136,7]]}}}],["reducing",{"_index":139,"t":{"17":{"position":[[158,8]]},"59":{"position":[[261,8]]},"113":{"position":[[745,8]]}}}],["refer",{"_index":1212,"t":{"159":{"position":[[109,5]]},"177":{"position":[[109,5]]},"197":{"position":[[109,5]]},"220":{"position":[[109,5]]},"238":{"position":[[109,5]]}}}],["refers",{"_index":1128,"t":{"133":{"position":[[119,6]]}}}],["regularly",{"_index":786,"t":{"92":{"position":[[551,9]]}}}],["relatively",{"_index":1039,"t":{"119":{"position":[[1548,10]]}}}],["release",{"_index":252,"t":{"27":{"position":[[526,7]]}}}],["relevant",{"_index":437,"t":{"45":{"position":[[84,8]]}}}],["reliability",{"_index":742,"t":{"85":{"position":[[142,11]]}}}],["relies",{"_index":1282,"t":{"204":{"position":[[254,6]]}}}],["remains",{"_index":457,"t":{"49":{"position":[[90,7]]}}}],["remote",{"_index":1248,"t":{"183":{"position":[[738,6]]}}}],["rephrased",{"_index":1103,"t":{"127":{"position":[[39,9]]}}}],["replace",{"_index":1249,"t":{"183":{"position":[[753,7]]}}}],["repo",{"_index":1258,"t":{"195":{"position":[[82,5]]},"218":{"position":[[80,5]]}}}],["repositories",{"_index":39,"t":{"5":{"position":[[21,12]]},"157":{"position":[[298,13]]}}}],["repository",{"_index":42,"t":{"7":{"position":[[0,11]]},"9":{"position":[[0,11]]},"11":{"position":[[0,11]]},"94":{"position":[[263,11],[662,11]]},"248":{"position":[[279,10]]}}}],["request",{"_index":381,"t":{"37":{"position":[[653,8],[666,7],[789,7]]}}}],["requested",{"_index":396,"t":{"37":{"position":[[865,9]]}}}],["requests",{"_index":399,"t":{"37":{"position":[[913,9]]},"65":{"position":[[960,8]]},"78":{"position":[[642,8]]}}}],["require",{"_index":621,"t":{"65":{"position":[[1586,7]]},"246":{"position":[[87,7]]}}}],["required",{"_index":871,"t":{"110":{"position":[[135,8]]},"117":{"position":[[112,8]]},"119":{"position":[[135,8]]},"179":{"position":[[165,9]]}}}],["requires",{"_index":622,"t":{"65":{"position":[[1633,8]]},"87":{"position":[[29,8]]},"141":{"position":[[83,8]]},"161":{"position":[[83,8]]},"185":{"position":[[99,8]]},"204":{"position":[[339,8]]},"208":{"position":[[90,8]]},"222":{"position":[[85,8]]}}}],["resilient",{"_index":470,"t":{"51":{"position":[[241,9]]}}}],["resource",{"_index":397,"t":{"37":{"position":[[875,8]]},"83":{"position":[[256,8]]}}}],["resources",{"_index":125,"t":{"15":{"position":[[512,9]]}}}],["response",{"_index":569,"t":{"65":{"position":[[236,9],[416,9],[885,9],[1814,8]]},"78":{"position":[[208,8]]},"122":{"position":[[192,9]]}}}],["responses",{"_index":685,"t":{"78":{"position":[[292,9]]}}}],["responsible",{"_index":153,"t":{"19":{"position":[[189,11]]}}}],["result",{"_index":641,"t":{"65":{"position":[[2180,6]]},"74":{"position":[[45,6]]}}}],["results",{"_index":577,"t":{"65":{"position":[[448,7],[536,7],[1789,7],[1979,7]]},"72":{"position":[[72,7],[149,7]]},"76":{"position":[[72,7],[157,7]]}}}],["ret",{"_index":878,"t":{"110":{"position":[[378,4],[419,4]]},"119":{"position":[[491,4],[532,4]]}}}],["retail",{"_index":922,"t":{"113":{"position":[[62,6],[464,6],[1699,6]]}}}],["retailers",{"_index":972,"t":{"113":{"position":[[1226,9],[1546,9]]}}}],["retry",{"_index":445,"t":{"47":{"position":[[36,5]]}}}],["return",{"_index":171,"t":{"19":{"position":[[545,6]]},"110":{"position":[[447,6],[516,6]]},"113":{"position":[[1666,6]]},"119":{"position":[[560,6],[629,6],[1300,6]]},"122":{"position":[[417,6]]}}}],["returned",{"_index":640,"t":{"65":{"position":[[2171,8],[2252,8]]}}}],["reverse",{"_index":295,"t":{"31":{"position":[[450,7],[658,7]]}}}],["review",{"_index":726,"t":{"83":{"position":[[314,7],[522,6]]}}}],["reviewer",{"_index":670,"t":{"74":{"position":[[94,8]]},"127":{"position":[[218,9]]}}}],["revoke",{"_index":787,"t":{"92":{"position":[[565,6]]},"102":{"position":[[29,6],[119,6]]}}}],["revoking",{"_index":834,"t":{"102":{"position":[[143,8],[335,8]]}}}],["revolutionize",{"_index":555,"t":{"63":{"position":[[86,13]]}}}],["rgb",{"_index":232,"t":{"27":{"position":[[173,3]]},"29":{"position":[[471,3]]},"31":{"position":[[341,3],[599,3],[638,3],[749,3]]}}}],["rgb_img",{"_index":305,"t":{"31":{"position":[[790,10]]}}}],["right",{"_index":728,"t":{"83":{"position":[[386,5]]}}}],["road",{"_index":357,"t":{"37":{"position":[[259,5],[295,4]]}}}],["robotic",{"_index":517,"t":{"57":{"position":[[204,7]]},"61":{"position":[[85,7]]}}}],["robots",{"_index":502,"t":{"55":{"position":[[207,6]]},"61":{"position":[[117,7],[200,7]]}}}],["robust",{"_index":344,"t":{"35":{"position":[[156,6]]},"39":{"position":[[98,6]]},"51":{"position":[[230,6]]}}}],["role",{"_index":527,"t":{"59":{"position":[[58,4]]}}}],["rotate",{"_index":785,"t":{"92":{"position":[[533,6]]}}}],["routed",{"_index":1106,"t":{"127":{"position":[[172,6]]}}}],["rtsp",{"_index":50,"t":{"7":{"position":[[132,4]]},"181":{"position":[[62,4]]}}}],["run",{"_index":56,"t":{"7":{"position":[[182,3],[235,3]]},"17":{"position":[[118,3]]},"87":{"position":[[663,3]]},"110":{"position":[[1711,3]]},"119":{"position":[[3294,3]]},"147":{"position":[[42,3]]},"153":{"position":[[60,4]]},"157":{"position":[[472,3],[722,3]]},"167":{"position":[[42,3]]},"173":{"position":[[60,4]]},"175":{"position":[[74,3]]},"183":{"position":[[583,3]]},"191":{"position":[[42,3]]},"193":{"position":[[70,3],[81,3]]},"200":{"position":[[36,3]]},"214":{"position":[[42,3]]},"216":{"position":[[69,3],[80,3]]},"228":{"position":[[42,3]]},"234":{"position":[[66,4]]},"236":{"position":[[74,3]]}}}],["running",{"_index":155,"t":{"19":{"position":[[221,7]]},"113":{"position":[[1885,7]]},"155":{"position":[[325,7]]},"175":{"position":[[183,7]]},"195":{"position":[[37,7]]},"218":{"position":[[37,7]]},"236":{"position":[[128,7]]}}}],["runs",{"_index":144,"t":{"19":{"position":[[18,4]]}}}],["s",{"_index":1183,"t":{"155":{"position":[[270,1]]}}}],["sales",{"_index":964,"t":{"113":{"position":[[1037,5],[1656,5]]}}}],["same",{"_index":652,"t":{"68":{"position":[[139,4]]}}}],["sample",{"_index":28,"t":{"3":{"position":[[326,6]]},"9":{"position":[[57,6]]},"11":{"position":[[71,6]]},"15":{"position":[[526,6]]},"29":{"position":[[266,6]]}}}],["satisfaction",{"_index":979,"t":{"113":{"position":[[1424,13],[1577,12]]}}}],["save",{"_index":920,"t":{"110":{"position":[[1663,4]]},"119":{"position":[[3244,4]]}}}],["saves",{"_index":268,"t":{"29":{"position":[[245,5]]}}}],["saw",{"_index":1107,"t":{"127":{"position":[[281,3]]}}}],["scene",{"_index":317,"t":{"31":{"position":[[987,5],[1157,6]]}}}],["scheduling",{"_index":946,"t":{"113":{"position":[[549,11],[666,11]]}}}],["score",{"_index":588,"t":{"65":{"position":[[673,5],[2246,5]]}}}],["script",{"_index":753,"t":{"87":{"position":[[330,7]]},"110":{"position":[[96,6],[1672,6]]},"119":{"position":[[96,6],[3253,6]]}}}],["sdk",{"_index":160,"t":{"19":{"position":[[358,3]]},"21":{"position":[[29,3]]},"23":{"position":[[14,3]]},"25":{"position":[[16,3]]},"27":{"position":[[206,3]]},"29":{"position":[[16,3]]},"31":{"position":[[571,3]]},"35":{"position":[[48,4]]},"37":{"position":[[50,3]]},"39":{"position":[[34,4]]},"43":{"position":[[161,3]]},"51":{"position":[[342,4]]},"81":{"position":[[398,3]]},"87":{"position":[[24,4]]},"90":{"position":[[23,3]]},"94":{"position":[[31,3],[279,3]]},"106":{"position":[[12,3]]},"108":{"position":[[81,3]]},"115":{"position":[[12,3]]},"117":{"position":[[81,4]]},"122":{"position":[[409,3]]},"137":{"position":[[27,3],[149,3]]},"139":{"position":[[343,4]]},"141":{"position":[[49,3],[79,3]]},"145":{"position":[[144,4]]},"147":{"position":[[27,3],[232,3]]},"149":{"position":[[28,3]]},"151":{"position":[[39,3],[281,3]]},"159":{"position":[[48,3],[104,4]]},"161":{"position":[[49,3],[79,3]]},"165":{"position":[[144,4]]},"167":{"position":[[27,3],[232,3]]},"169":{"position":[[28,3]]},"171":{"position":[[39,3],[281,3]]},"177":{"position":[[48,3],[104,4]]},"185":{"position":[[49,3],[95,3]]},"189":{"position":[[151,4]]},"191":{"position":[[27,3],[187,3]]},"197":{"position":[[48,3],[104,4]]},"200":{"position":[[16,3],[100,3],[220,3]]},"202":{"position":[[104,3],[248,4]]},"204":{"position":[[72,3],[241,3]]},"208":{"position":[[49,3],[86,3]]},"212":{"position":[[150,4]]},"214":{"position":[[27,3],[187,3]]},"220":{"position":[[48,3],[104,4]]},"222":{"position":[[49,3],[81,3]]},"226":{"position":[[144,4]]},"228":{"position":[[27,3],[238,3]]},"230":{"position":[[28,3]]},"232":{"position":[[39,3],[281,3]]},"238":{"position":[[48,3],[104,4]]}}}],["seamless",{"_index":552,"t":{"61":{"position":[[340,8]]}}}],["seamlessly",{"_index":166,"t":{"19":{"position":[[456,10]]},"53":{"position":[[239,10]]}}}],["second=0",{"_index":1047,"t":{"119":{"position":[[1712,9],[2346,9]]}}}],["seconds",{"_index":595,"t":{"65":{"position":[[858,7],[1292,7]]}}}],["secret",{"_index":767,"t":{"90":{"position":[[287,6]]}}}],["section",{"_index":1165,"t":{"151":{"position":[[294,7]]},"171":{"position":[[294,7]]},"232":{"position":[[294,7]]}}}],["secure",{"_index":778,"t":{"92":{"position":[[334,6]]}}}],["securely",{"_index":818,"t":{"98":{"position":[[249,9]]}}}],["security",{"_index":755,"t":{"90":{"position":[[46,8]]},"92":{"position":[[116,8]]}}}],["see",{"_index":40,"t":{"5":{"position":[[37,3]]},"33":{"position":[[66,3]]},"65":{"position":[[2227,3]]},"68":{"position":[[453,6]]},"87":{"position":[[68,3]]},"98":{"position":[[283,3]]},"100":{"position":[[32,3]]},"131":{"position":[[139,3]]},"153":{"position":[[89,3]]},"155":{"position":[[173,3]]},"173":{"position":[[89,3]]},"183":{"position":[[33,3],[818,3]]},"195":{"position":[[66,3]]},"218":{"position":[[64,3]]},"234":{"position":[[95,3]]},"242":{"position":[[457,3]]}}}],["seeedstudio",{"_index":1326,"t":{"246":{"position":[[292,11]]}}}],["semantics",{"_index":716,"t":{"81":{"position":[[507,9]]}}}],["semver",{"_index":715,"t":{"81":{"position":[[500,6]]}}}],["send",{"_index":236,"t":{"27":{"position":[[267,4],[480,4]]},"115":{"position":[[123,4]]},"119":{"position":[[662,4]]}}}],["send_email",{"_index":1079,"t":{"119":{"position":[[3223,10]]}}}],["send_email(sender",{"_index":1008,"t":{"119":{"position":[[769,18]]}}}],["send_email(sender=\"counterbot@example.com",{"_index":1072,"t":{"119":{"position":[[2740,43]]}}}],["sender",{"_index":1013,"t":{"119":{"position":[[850,6]]}}}],["sending",{"_index":297,"t":{"31":{"position":[[483,7],[691,7]]}}}],["sends",{"_index":84,"t":{"11":{"position":[[192,5]]}}}],["sense",{"_index":1125,"t":{"133":{"position":[[58,5]]},"246":{"position":[[312,5]]}}}],["serial",{"_index":1304,"t":{"242":{"position":[[396,6],[556,7]]}}}],["server",{"_index":151,"t":{"19":{"position":[[136,7]]},"35":{"position":[[71,6]]},"37":{"position":[[983,6],[1022,6]]},"51":{"position":[[280,6]]},"119":{"position":[[939,6]]},"139":{"position":[[179,6]]},"183":{"position":[[245,6],[373,6]]}}}],["server.login(sender",{"_index":1021,"t":{"119":{"position":[[1004,20]]}}}],["server.quit",{"_index":1026,"t":{"119":{"position":[[1105,13]]}}}],["server.sendmail(sender",{"_index":1025,"t":{"119":{"position":[[1065,23]]}}}],["server.starttls",{"_index":1020,"t":{"119":{"position":[[986,17]]}}}],["service",{"_index":158,"t":{"19":{"position":[[290,8]]},"113":{"position":[[119,7],[224,7],[384,7],[600,7],[1143,7],[1362,7],[1469,7],[1784,7],[1981,7]]},"119":{"position":[[1506,7],[2831,7]]}}}],["service_counter_monitor.py",{"_index":1080,"t":{"119":{"position":[[3263,26],[3309,26]]}}}],["services",{"_index":758,"t":{"90":{"position":[[160,8]]},"183":{"position":[[172,9]]}}}],["set",{"_index":80,"t":{"11":{"position":[[110,3]]},"19":{"position":[[28,3]]},"65":{"position":[[584,3],[774,3],[1750,3]]},"87":{"position":[[190,3]]},"137":{"position":[[126,3]]}}}],["setting",{"_index":194,"t":{"21":{"position":[[226,7]]}}}],["settings",{"_index":320,"t":{"31":{"position":[[1066,9]]}}}],["share",{"_index":772,"t":{"92":{"position":[[88,5]]}}}],["short",{"_index":825,"t":{"100":{"position":[[195,6]]}}}],["side",{"_index":406,"t":{"37":{"position":[[1029,4]]}}}],["simple",{"_index":20,"t":{"3":{"position":[[232,6]]},"65":{"position":[[24,6]]},"125":{"position":[[65,6]]}}}],["simply",{"_index":159,"t":{"19":{"position":[[325,6]]}}}],["single",{"_index":57,"t":{"7":{"position":[[196,6]]},"33":{"position":[[239,6]]}}}],["site",{"_index":359,"t":{"37":{"position":[[283,4]]}}}],["situations",{"_index":681,"t":{"78":{"position":[[109,10]]}}}],["size=(600",{"_index":276,"t":{"29":{"position":[[385,10]]}}}],["sky",{"_index":1124,"t":{"131":{"position":[[161,5]]}}}],["slack",{"_index":1313,"t":{"244":{"position":[[105,5]]}}}],["sleep",{"_index":912,"t":{"110":{"position":[[1385,5]]}}}],["slight",{"_index":1115,"t":{"129":{"position":[[80,6]]}}}],["small",{"_index":1260,"t":{"200":{"position":[[43,5]]}}}],["sms",{"_index":1311,"t":{"244":{"position":[[87,3]]}}}],["smtp",{"_index":999,"t":{"115":{"position":[[108,4]]}}}],["smtplib",{"_index":1000,"t":{"119":{"position":[[185,7]]}}}],["smtplib.smtp('smtp.example.com",{"_index":1018,"t":{"119":{"position":[[948,32]]}}}],["snippet",{"_index":824,"t":{"100":{"position":[[175,7]]}}}],["solution",{"_index":924,"t":{"113":{"position":[[79,9],[1716,9]]}}}],["sometimes",{"_index":314,"t":{"31":{"position":[[924,9]]},"204":{"position":[[417,9]]}}}],["somewhat",{"_index":1119,"t":{"131":{"position":[[17,8]]},"135":{"position":[[52,8]]}}}],["sortable",{"_index":764,"t":{"90":{"position":[[258,8]]}}}],["sorting",{"_index":519,"t":{"57":{"position":[[242,8]]}}}],["sound",{"_index":853,"t":{"104":{"position":[[254,5]]},"106":{"position":[[101,5]]},"110":{"position":[[571,6],[1626,5]]}}}],["source",{"_index":695,"t":{"78":{"position":[[569,7]]},"181":{"position":[[40,6]]},"204":{"position":[[81,6]]},"246":{"position":[[122,6]]},"248":{"position":[[4,6]]}}}],["sources",{"_index":330,"t":{"33":{"position":[[57,8],[209,8],[290,8]]}}}],["space",{"_index":1274,"t":{"204":{"position":[[21,5],[388,5]]}}}],["speakers",{"_index":855,"t":{"104":{"position":[[280,9]]}}}],["specific",{"_index":411,"t":{"41":{"position":[[15,8]]},"43":{"position":[[64,8]]},"113":{"position":[[898,8]]},"127":{"position":[[60,9]]},"129":{"position":[[18,8]]}}}],["specifically",{"_index":1278,"t":{"204":{"position":[[159,13]]}}}],["speed",{"_index":741,"t":{"85":{"position":[[109,5]]}}}],["spills",{"_index":1131,"t":{"135":{"position":[[126,6]]}}}],["staff",{"_index":944,"t":{"113":{"position":[[528,5],[645,5]]}}}],["standard",{"_index":90,"t":{"11":{"position":[[263,8]]},"29":{"position":[[77,8]]},"31":{"position":[[57,8]]},"202":{"position":[[34,8]]}}}],["standards",{"_index":257,"t":{"29":{"position":[[133,10]]},"59":{"position":[[95,9]]}}}],["stands",{"_index":183,"t":{"19":{"position":[[740,6]]}}}],["start",{"_index":677,"t":{"78":{"position":[[21,5]]},"139":{"position":[[286,5]]},"159":{"position":[[20,5]]},"177":{"position":[[20,5]]},"197":{"position":[[20,5]]},"220":{"position":[[20,5]]},"238":{"position":[[20,5]]}}}],["start_of_business",{"_index":1029,"t":{"119":{"position":[[1168,17],[1307,17]]}}}],["starting",{"_index":1167,"t":{"153":{"position":[[110,8]]},"173":{"position":[[110,8]]},"234":{"position":[[116,8]]}}}],["starts",{"_index":727,"t":{"83":{"position":[[371,6]]}}}],["status",{"_index":376,"t":{"37":{"position":[[564,6],[589,6],[629,6]]}}}],["step",{"_index":1137,"t":{"137":{"position":[[78,4],[86,4]]}}}],["steps",{"_index":1153,"t":{"145":{"position":[[100,5]]},"165":{"position":[[100,5]]},"189":{"position":[[107,5]]},"212":{"position":[[106,5]]},"226":{"position":[[100,5]]},"242":{"position":[[290,5]]}}}],["still",{"_index":332,"t":{"33":{"position":[[106,5]]},"65":{"position":[[1930,5]]},"78":{"position":[[254,5]]},"157":{"position":[[13,5]]}}}],["storage",{"_index":283,"t":{"31":{"position":[[111,8]]}}}],["store",{"_index":777,"t":{"92":{"position":[[312,5],[408,5]]},"98":{"position":[[240,5],[318,5]]},"113":{"position":[[617,5],[1078,5],[1313,5],[1408,6],[1728,5],[1928,5],[2082,5]]}}}],["store's",{"_index":971,"t":{"113":{"position":[[1210,7]]}}}],["stored",{"_index":228,"t":{"27":{"position":[[109,6],[148,6]]}}}],["storing",{"_index":794,"t":{"94":{"position":[[129,7]]}}}],["str",{"_index":646,"t":{"68":{"position":[[54,4],[66,4],[286,4],[298,4]]}}}],["stream",{"_index":44,"t":{"7":{"position":[[66,6]]},"110":{"position":[[672,6]]},"181":{"position":[[67,7]]}}}],["stream.close",{"_index":899,"t":{"110":{"position":[[912,14]]}}}],["stream.stop_stream",{"_index":898,"t":{"110":{"position":[[891,20]]}}}],["stream.write(data",{"_index":897,"t":{"110":{"position":[[844,18]]}}}],["stream:local",{"_index":60,"t":{"7":{"position":[[239,12]]}}}],["stream=true).raw",{"_index":603,"t":{"65":{"position":[[1138,17]]},"78":{"position":[[872,17]]}}}],["streaming",{"_index":1256,"t":{"193":{"position":[[140,9]]},"216":{"position":[[139,9]]}}}],["streamline",{"_index":523,"t":{"57":{"position":[[313,10]]}}}],["streams",{"_index":51,"t":{"7":{"position":[[137,7]]}}}],["strict",{"_index":535,"t":{"59":{"position":[[237,6]]}}}],["string",{"_index":768,"t":{"90":{"position":[[294,7]]}}}],["subject",{"_index":714,"t":{"81":{"position":[[447,7]]},"119":{"position":[[798,8],[895,7]]}}}],["subject=\"daily",{"_index":1074,"t":{"119":{"position":[[2816,14]]}}}],["subjective",{"_index":1130,"t":{"135":{"position":[[61,11]]}}}],["submit_image_query",{"_index":214,"t":{"25":{"position":[[54,19]]},"27":{"position":[[284,18]]},"65":{"position":[[1710,18]]},"74":{"position":[[182,20]]},"78":{"position":[[351,20]]}}}],["submits",{"_index":917,"t":{"110":{"position":[[1515,7]]},"119":{"position":[[2986,7]]}}}],["submitting",{"_index":910,"t":{"110":{"position":[[1314,10]]},"119":{"position":[[2040,10]]}}}],["subtle",{"_index":308,"t":{"31":{"position":[[845,6]]}}}],["such",{"_index":59,"t":{"7":{"position":[[219,4]]},"35":{"position":[[134,4]]},"41":{"position":[[65,4]]},"47":{"position":[[95,4]]},"55":{"position":[[89,4]]},"61":{"position":[[99,4]]},"92":{"position":[[351,4]]},"113":{"position":[[863,4]]},"200":{"position":[[66,5]]}}}],["sudo",{"_index":1175,"t":{"155":{"position":[[114,4],[130,4],[216,4],[257,4]]},"157":{"position":[[347,4],[388,4],[497,4],[669,4],[733,4]]}}}],["summaries",{"_index":995,"t":{"113":{"position":[[1964,9]]}}}],["summary",{"_index":939,"t":{"113":{"position":[[341,7]]},"119":{"position":[[2429,7],[3119,7]]}}}],["summary:\\n",{"_index":1069,"t":{"119":{"position":[[2657,11]]}}}],["supplies",{"_index":1292,"t":{"240":{"position":[[12,8]]}}}],["support",{"_index":1334,"t":{"248":{"position":[[313,7]]}}}],["supported",{"_index":861,"t":{"106":{"position":[[44,9]]},"113":{"position":[[1758,9]]},"115":{"position":[[44,9]]}}}],["supports",{"_index":1308,"t":{"242":{"position":[[543,8]]},"244":{"position":[[9,8]]}}}],["sure",{"_index":839,"t":{"102":{"position":[[278,4]]},"104":{"position":[[335,4]]}}}],["surprisingly",{"_index":307,"t":{"31":{"position":[[832,12]]}}}],["swapped",{"_index":311,"t":{"31":{"position":[[874,8]]}}}],["system",{"_index":8,"t":{"3":{"position":[[78,6]]},"9":{"position":[[236,7]]},"11":{"position":[[148,7]]},"59":{"position":[[212,6]]},"65":{"position":[[690,6]]},"81":{"position":[[32,6]]},"83":{"position":[[359,6]]},"143":{"position":[[53,7]]},"145":{"position":[[57,7]]},"147":{"position":[[147,7]]},"153":{"position":[[236,7]]},"163":{"position":[[53,7]]},"165":{"position":[[57,7]]},"167":{"position":[[147,7]]},"173":{"position":[[236,7]]},"224":{"position":[[53,7]]},"226":{"position":[[57,7]]},"228":{"position":[[153,7]]},"234":{"position":[[242,7]]}}}],["systems",{"_index":476,"t":{"53":{"position":[[159,8]]},"57":{"position":[[71,7],[212,7]]},"83":{"position":[[570,7]]},"155":{"position":[[105,8],[207,8]]}}}],["targeted",{"_index":959,"t":{"113":{"position":[[982,8]]}}}],["tasks",{"_index":491,"t":{"55":{"position":[[82,6],[291,5]]},"57":{"position":[[231,5]]}}}],["team",{"_index":1335,"t":{"248":{"position":[[321,5]]}}}],["technology",{"_index":479,"t":{"53":{"position":[[216,10]]},"55":{"position":[[30,10]]},"57":{"position":[[166,10]]},"59":{"position":[[30,10]]},"61":{"position":[[30,10],[226,10]]},"63":{"position":[[71,10]]},"85":{"position":[[25,10]]}}}],["tell",{"_index":1267,"t":{"200":{"position":[[349,4]]}}}],["temporary",{"_index":451,"t":{"47":{"position":[[180,9]]}}}],["tending",{"_index":490,"t":{"55":{"position":[[74,7],[283,7]]}}}],["terminal",{"_index":1155,"t":{"147":{"position":[[76,9]]},"153":{"position":[[47,8]]},"167":{"position":[[76,9]]},"173":{"position":[[47,8]]},"191":{"position":[[76,9]]},"214":{"position":[[76,9]]}}}],["tested",{"_index":1314,"t":{"246":{"position":[[0,6]]}}}],["testing",{"_index":866,"t":{"106":{"position":[[194,8]]}}}],["tests",{"_index":467,"t":{"51":{"position":[[6,5]]}}}],["text",{"_index":1023,"t":{"119":{"position":[[1042,4],[1099,5]]}}}],["textual",{"_index":371,"t":{"37":{"position":[[467,7]]}}}],["that's",{"_index":723,"t":{"83":{"position":[[154,6]]}}}],["they're",{"_index":1264,"t":{"200":{"position":[[294,7]]}}}],["thing",{"_index":1127,"t":{"133":{"position":[[111,7]]}}}],["things",{"_index":1197,"t":{"157":{"position":[[340,6]]}}}],["think",{"_index":318,"t":{"31":{"position":[[1015,5]]},"127":{"position":[[268,6]]}}}],["those",{"_index":429,"t":{"43":{"position":[[169,5]]},"83":{"position":[[112,5]]}}}],["threshold",{"_index":585,"t":{"65":{"position":[[606,9]]}}}],["thresholds",{"_index":692,"t":{"78":{"position":[[517,11]]}}}],["through",{"_index":848,"t":{"104":{"position":[[135,7]]},"179":{"position":[[108,7]]},"242":{"position":[[278,7]]}}}],["throughout",{"_index":928,"t":{"113":{"position":[[148,10]]}}}],["time",{"_index":290,"t":{"31":{"position":[[287,4]]},"65":{"position":[[342,4]]},"78":{"position":[[1024,4]]},"83":{"position":[[303,4],[557,5]]},"85":{"position":[[162,4]]},"100":{"position":[[259,4]]},"110":{"position":[[162,4]]},"113":{"position":[[370,4]]},"119":{"position":[[162,4]]},"127":{"position":[[313,5]]}}}],["time.sleep(60",{"_index":915,"t":{"110":{"position":[[1426,14]]}}}],["time.sleep(delay",{"_index":1050,"t":{"119":{"position":[[1805,17],[1903,17],[2070,17],[2894,17]]}}}],["timedelta",{"_index":1002,"t":{"119":{"position":[[282,9]]}}}],["timedelta(hours=1",{"_index":1049,"t":{"119":{"position":[[1739,18],[2202,18]]}}}],["timer",{"_index":1323,"t":{"246":{"position":[[186,5],[235,5]]}}}],["times",{"_index":952,"t":{"113":{"position":[[759,5],[878,5],[1522,5]]}}}],["tip",{"_index":616,"t":{"65":{"position":[[1458,3]]},"127":{"position":[[128,3]]}}}],["tmp/get",{"_index":1209,"t":{"157":{"position":[[653,8],[684,8]]}}}],["token",{"_index":751,"t":{"87":{"position":[[166,6]]},"90":{"position":[[55,5],[83,7]]},"92":{"position":[[190,6]]},"94":{"position":[[53,6],[244,5],[319,5],[433,5],[562,5],[710,5]]},"98":{"position":[[98,6],[126,5],[203,7],[230,5]]},"100":{"position":[[105,5],[169,5],[229,5],[268,5]]},"102":{"position":[[11,5],[87,6],[130,6],[159,5],[322,5]]},"110":{"position":[[60,6]]},"119":{"position":[[60,6]]}}}],["tokens",{"_index":759,"t":{"90":{"position":[[190,6]]},"92":{"position":[[21,6],[149,7],[304,7],[322,6],[418,7],[525,7],[544,6]]},"94":{"position":[[141,6]]},"96":{"position":[[24,6],[110,7]]},"98":{"position":[[59,6],[343,7]]},"100":{"position":[[11,6],[59,7]]},"159":{"position":[[126,6]]},"177":{"position":[[126,6]]},"197":{"position":[[126,6]]},"220":{"position":[[126,6]]},"238":{"position":[[126,6]]}}}],["tool",{"_index":1293,"t":{"240":{"position":[[23,4]]},"242":{"position":[[5,4]]},"244":{"position":[[4,4]]}}}],["tools",{"_index":505,"t":{"55":{"position":[[237,5]]}}}],["topics",{"_index":36,"t":{"3":{"position":[[423,7]]}}}],["traceback",{"_index":353,"t":{"37":{"position":[[144,9],[399,9]]}}}],["traceback.print_exc",{"_index":368,"t":{"37":{"position":[[423,21]]}}}],["trade",{"_index":560,"t":{"65":{"position":[[50,5]]}}}],["traffic",{"_index":957,"t":{"113":{"position":[[936,8]]}}}],["trained",{"_index":579,"t":{"65":{"position":[[474,7]]},"83":{"position":[[87,7]]}}}],["training",{"_index":638,"t":{"65":{"position":[[2007,8]]}}}],["transforming",{"_index":471,"t":{"53":{"position":[[49,12]]}}}],["transient",{"_index":448,"t":{"47":{"position":[[77,9]]}}}],["trash",{"_index":605,"t":{"65":{"position":[[1214,5]]},"127":{"position":[[97,5]]}}}],["treat",{"_index":769,"t":{"92":{"position":[[11,5]]}}}],["trends",{"_index":953,"t":{"113":{"position":[[792,7],[834,6]]}}}],["trivial",{"_index":1284,"t":{"204":{"position":[[307,7]]}}}],["troubleshoot",{"_index":122,"t":{"15":{"position":[[428,12]]}}}],["true",{"_index":904,"t":{"110":{"position":[[1051,5]]},"119":{"position":[[1764,5]]},"183":{"position":[[541,4]]}}}],["try",{"_index":354,"t":{"37":{"position":[[223,4]]},"110":{"position":[[1091,4]]},"119":{"position":[[1930,4]]},"200":{"position":[[378,3]]},"242":{"position":[[481,3]]}}}],["trying",{"_index":1111,"t":{"127":{"position":[[362,6]]}}}],["tuning",{"_index":617,"t":{"65":{"position":[[1462,6]]}}}],["twilio",{"_index":1312,"t":{"244":{"position":[[97,7]]}}}],["type",{"_index":266,"t":{"29":{"position":[[217,4]]}}}],["typically",{"_index":644,"t":{"68":{"position":[[0,9]]}}}],["ubuntu",{"_index":1173,"t":{"155":{"position":[[82,6],[160,6]]},"157":{"position":[[0,6],[211,6],[322,6]]}}}],["uint8",{"_index":264,"t":{"29":{"position":[[206,5]]}}}],["unambiguously",{"_index":1085,"t":{"122":{"position":[[101,13]]},"125":{"position":[[44,13]]}}}],["unauthorized",{"_index":385,"t":{"37":{"position":[[705,13]]}}}],["unchanged",{"_index":167,"t":{"19":{"position":[[471,9]]}}}],["under",{"_index":72,"t":{"9":{"position":[[174,5]]}}}],["understand",{"_index":120,"t":{"15":{"position":[[399,10]]}}}],["understanding",{"_index":968,"t":{"113":{"position":[[1092,13]]}}}],["unified",{"_index":326,"t":{"33":{"position":[[6,7]]}}}],["unique",{"_index":826,"t":{"100":{"position":[[202,6]]}}}],["universal",{"_index":543,"t":{"61":{"position":[[107,9]]}}}],["unloading",{"_index":493,"t":{"55":{"position":[[109,9]]}}}],["unlocked",{"_index":87,"t":{"11":{"position":[[243,8]]}}}],["unrelated",{"_index":420,"t":{"41":{"position":[[188,9]]}}}],["unsure",{"_index":568,"t":{"65":{"position":[[217,6]]},"83":{"position":[[196,7]]},"122":{"position":[[183,8],[442,9]]}}}],["until",{"_index":608,"t":{"65":{"position":[[1276,5]]}}}],["up",{"_index":81,"t":{"11":{"position":[[114,2]]},"65":{"position":[[849,2]]},"83":{"position":[[292,2]]},"137":{"position":[[130,2]]},"183":{"position":[[651,2]]}}}],["update",{"_index":840,"t":{"102":{"position":[[286,6]]},"155":{"position":[[123,6]]},"157":{"position":[[360,6],[502,6],[738,6]]}}}],["upgrade",{"_index":1154,"t":{"145":{"position":[[120,7]]},"151":{"position":[[15,7],[111,7],[172,7]]},"153":{"position":[[213,7]]},"165":{"position":[[120,7]]},"171":{"position":[[15,7],[111,7],[172,7]]},"173":{"position":[[213,7]]},"189":{"position":[[127,7]]},"212":{"position":[[126,7]]},"226":{"position":[[120,7]]},"232":{"position":[[15,7],[111,7],[172,7]]},"234":{"position":[[219,7]]}}}],["upgrading",{"_index":1163,"t":{"151":{"position":[[198,10]]},"155":{"position":[[285,10]]},"171":{"position":[[198,10]]},"175":{"position":[[143,10]]},"232":{"position":[[198,10]]},"236":{"position":[[88,10]]}}}],["upload",{"_index":1301,"t":{"242":{"position":[[299,6]]}}}],["url",{"_index":162,"t":{"19":{"position":[[389,3]]},"21":{"position":[[92,3]]}}}],["usage",{"_index":925,"t":{"113":{"position":[[108,5],[578,5],[1456,5],[1997,5]]},"119":{"position":[[2847,5],[3144,5]]}}}],["usb",{"_index":53,"t":{"7":{"position":[[155,3]]},"33":{"position":[[310,3]]},"106":{"position":[[54,3]]},"115":{"position":[[54,3]]},"181":{"position":[[47,4]]},"242":{"position":[[261,3]]}}}],["use",{"_index":18,"t":{"3":{"position":[[216,3]]},"7":{"position":[[97,3]]},"15":{"position":[[178,3]]},"19":{"position":[[302,3],[365,3]]},"21":{"position":[[36,3]]},"31":{"position":[[337,3]]},"68":{"position":[[17,3],[256,3]]},"74":{"position":[[143,3]]},"90":{"position":[[3,3],[156,3]]},"92":{"position":[[107,3],[379,3]]},"104":{"position":[[45,3]]},"113":{"position":[[406,4],[1135,3],[1240,3]]},"119":{"position":[[1466,5],[2492,4]]},"147":{"position":[[173,3],[267,4]]},"149":{"position":[[81,3]]},"151":{"position":[[66,3],[217,3]]},"155":{"position":[[0,3]]},"157":{"position":[[202,3]]},"167":{"position":[[173,3],[267,4]]},"169":{"position":[[81,3]]},"171":{"position":[[66,3],[217,3]]},"175":{"position":[[85,3]]},"191":{"position":[[222,4]]},"200":{"position":[[80,3],[206,3],[279,3],[385,3]]},"206":{"position":[[186,3]]},"214":{"position":[[222,4]]},"228":{"position":[[179,3],[273,4]]},"230":{"position":[[81,3]]},"232":{"position":[[66,3],[217,3]]}}}],["used",{"_index":93,"t":{"13":{"position":[[19,4]]},"31":{"position":[[229,4]]},"100":{"position":[[240,5],[283,4]]},"113":{"position":[[969,4]]},"206":{"position":[[15,4]]}}}],["useful",{"_index":335,"t":{"33":{"position":[[152,6]]},"202":{"position":[[174,7]]}}}],["user",{"_index":1219,"t":{"179":{"position":[[122,4]]}}}],["users",{"_index":462,"t":{"49":{"position":[[175,5]]}}}],["uses",{"_index":282,"t":{"31":{"position":[[84,4],[128,4]]},"157":{"position":[[19,4]]}}}],["using",{"_index":30,"t":{"3":{"position":[[352,5]]},"9":{"position":[[125,5]]},"15":{"position":[[234,5],[474,5],[615,5]]},"31":{"position":[[366,5]]},"51":{"position":[[320,5]]},"55":{"position":[[243,5]]},"61":{"position":[[299,5]]},"78":{"position":[[27,5]]},"85":{"position":[[72,5]]},"102":{"position":[[225,5]]},"110":{"position":[[317,5],[1476,5],[1632,5]]},"119":{"position":[[430,5],[2947,5],[3213,5]]},"139":{"position":[[321,5]]},"147":{"position":[[31,5],[125,5]]},"151":{"position":[[145,5]]},"157":{"position":[[92,5]]},"159":{"position":[[26,5],[94,5]]},"167":{"position":[[31,5],[125,5]]},"171":{"position":[[145,5]]},"177":{"position":[[26,5],[94,5]]},"191":{"position":[[31,5]]},"197":{"position":[[26,5],[94,5]]},"214":{"position":[[31,5]]},"220":{"position":[[26,5],[94,5]]},"228":{"position":[[31,5],[131,5]]},"232":{"position":[[145,5]]},"238":{"position":[[26,5],[94,5]]},"242":{"position":[[485,5]]}}}],["usr/bin/pip3",{"_index":1210,"t":{"157":{"position":[[768,13]]}}}],["usr/bin/python3",{"_index":1204,"t":{"157":{"position":[[532,16]]}}}],["usr/bin/python3.8",{"_index":1205,"t":{"157":{"position":[[557,18]]}}}],["utilities",{"_index":227,"t":{"27":{"position":[[56,9]]},"202":{"position":[[43,9]]}}}],["utilized",{"_index":933,"t":{"113":{"position":[[246,8]]}}}],["uuid",{"_index":765,"t":{"90":{"position":[[267,5]]}}}],["v0.8",{"_index":233,"t":{"27":{"position":[[210,4]]},"31":{"position":[[547,4]]}}}],["valid",{"_index":703,"t":{"78":{"position":[[1003,5]]}}}],["values",{"_index":259,"t":{"29":{"position":[[150,6]]}}}],["variable",{"_index":197,"t":{"21":{"position":[[271,8]]},"87":{"position":[[232,8]]},"94":{"position":[[72,8],[167,8],[454,8]]}}}],["variables",{"_index":782,"t":{"92":{"position":[[395,9]]}}}],["various",{"_index":17,"t":{"3":{"position":[[208,7],[415,7]]},"15":{"position":[[28,7]]},"53":{"position":[[266,7]]},"113":{"position":[[514,7]]},"137":{"position":[[156,7]]}}}],["vault",{"_index":781,"t":{"92":{"position":[[372,6]]}}}],["verify",{"_index":1166,"t":{"151":{"position":[[305,6]]},"155":{"position":[[296,6]]},"171":{"position":[[305,6]]},"175":{"position":[[154,6]]},"232":{"position":[[305,6]]},"236":{"position":[[99,6]]}}}],["version",{"_index":744,"t":{"87":{"position":[[45,7]]},"135":{"position":[[85,7]]},"149":{"position":[[64,8]]},"151":{"position":[[57,8],[285,8],[328,7]]},"153":{"position":[[31,8],[74,7],[95,7]]},"155":{"position":[[69,8],[314,7],[342,7],[363,8]]},"157":{"position":[[179,7]]},"169":{"position":[[64,8]]},"171":{"position":[[57,8],[285,8],[328,7]]},"173":{"position":[[31,8],[74,7],[95,7]]},"175":{"position":[[172,7],[200,7],[221,8]]},"191":{"position":[[129,7]]},"193":{"position":[[125,7]]},"202":{"position":[[315,7]]},"214":{"position":[[129,7]]},"216":{"position":[[124,7]]},"230":{"position":[[64,8]]},"232":{"position":[[57,8],[285,8],[328,7]]},"234":{"position":[[31,8],[80,7],[101,7]]},"236":{"position":[[117,7],[145,7],[166,8]]},"242":{"position":[[501,7]]}}}],["versions",{"_index":301,"t":{"31":{"position":[[589,9]]},"81":{"position":[[475,9]]}}}],["very",{"_index":315,"t":{"31":{"position":[[944,4]]},"78":{"position":[[71,4]]},"129":{"position":[[13,4]]},"202":{"position":[[149,4]]}}}],["via",{"_index":996,"t":{"113":{"position":[[2019,3]]},"119":{"position":[[681,3]]}}}],["video",{"_index":338,"t":{"33":{"position":[[333,5]]},"181":{"position":[[34,5]]}}}],["view",{"_index":992,"t":{"113":{"position":[[1818,4]]}}}],["visible",{"_index":175,"t":{"19":{"position":[[582,7]]},"135":{"position":[[118,7]]}}}],["vision",{"_index":4,"t":{"3":{"position":[[42,6]]},"9":{"position":[[109,6],[229,6]]},"13":{"position":[[72,6]]},"15":{"position":[[644,6]]},"53":{"position":[[39,6],[209,6]]},"55":{"position":[[23,6]]},"57":{"position":[[35,6]]},"59":{"position":[[23,6],[205,6]]},"61":{"position":[[23,6]]},"63":{"position":[[64,6]]},"81":{"position":[[25,6]]},"83":{"position":[[352,6]]}}}],["visit",{"_index":977,"t":{"113":{"position":[[1352,5]]}}}],["visits",{"_index":990,"t":{"113":{"position":[[1673,7]]}}}],["visual",{"_index":11,"t":{"3":{"position":[[111,6],[267,6]]},"15":{"position":[[595,6]]},"85":{"position":[[82,6]]},"139":{"position":[[301,6]]}}}],["vital",{"_index":526,"t":{"59":{"position":[[52,5]]}}}],["voice",{"_index":858,"t":{"104":{"position":[[359,5]]}}}],["volumes",{"_index":1243,"t":{"183":{"position":[[546,8]]}}}],["wait",{"_index":564,"t":{"65":{"position":[[108,4],[394,4],[844,4],[1271,4],[2070,4]]},"113":{"position":[[754,4],[1517,4]]}}}],["wait=0",{"_index":630,"t":{"65":{"position":[[1754,7],[2156,7]]}}}],["wait=60",{"_index":364,"t":{"37":{"position":[[354,8]]},"65":{"position":[[1404,8]]},"110":{"position":[[1155,8]]},"119":{"position":[[1994,8]]}}}],["want",{"_index":590,"t":{"65":{"position":[[766,4],[1694,4]]},"68":{"position":[[445,4]]},"74":{"position":[[21,4]]},"102":{"position":[[21,4],[111,4]]},"204":{"position":[[480,4]]},"206":{"position":[[178,4]]}}}],["warning",{"_index":434,"t":{"45":{"position":[[57,8]]}}}],["wave",{"_index":872,"t":{"110":{"position":[[258,4]]}}}],["wave.open(file_path",{"_index":888,"t":{"110":{"position":[[623,20]]}}}],["way",{"_index":128,"t":{"15":{"position":[[570,3]]},"65":{"position":[[31,3],[433,4]]},"127":{"position":[[232,3]]},"179":{"position":[[20,3]]}}}],["ways",{"_index":791,"t":{"94":{"position":[[22,4]]},"113":{"position":[[522,5]]}}}],["we'll",{"_index":26,"t":{"3":{"position":[[298,5]]},"110":{"position":[[73,5]]},"119":{"position":[[73,5]]},"200":{"position":[[200,5],[319,5]]}}}],["we're",{"_index":1040,"t":{"119":{"position":[[1580,5]]}}}],["weather",{"_index":1122,"t":{"131":{"position":[[98,8]]}}}],["web",{"_index":749,"t":{"87":{"position":[[141,3]]},"179":{"position":[[118,3]]},"242":{"position":[[552,3]]}}}],["website",{"_index":808,"t":{"96":{"position":[[52,7]]},"175":{"position":[[62,7]]},"236":{"position":[[62,7]]}}}],["week",{"_index":956,"t":{"113":{"position":[[919,4]]}}}],["welcome",{"_index":1135,"t":{"137":{"position":[[0,7]]}}}],["well",{"_index":127,"t":{"15":{"position":[[557,4]]},"246":{"position":[[73,5]]}}}],["wf",{"_index":887,"t":{"110":{"position":[[618,2]]}}}],["wf.readframes(chunk",{"_index":896,"t":{"110":{"position":[[811,20],[870,20]]}}}],["what's",{"_index":1268,"t":{"200":{"position":[[358,6]]}}}],["whimsical",{"_index":841,"t":{"104":{"position":[[10,9]]}}}],["wifi",{"_index":69,"t":{"9":{"position":[[146,4]]}}}],["willing",{"_index":593,"t":{"65":{"position":[[833,7]]}}}],["windows",{"_index":1145,"t":{"139":{"position":[[109,7]]},"222":{"position":[[56,8]]}}}],["within",{"_index":554,"t":{"61":{"position":[[375,6]]}}}],["without",{"_index":323,"t":{"31":{"position":[[1126,7]]},"47":{"position":[[197,7]]},"83":{"position":[[397,7]]},"157":{"position":[[273,7]]},"200":{"position":[[104,7]]},"202":{"position":[[117,7]]},"204":{"position":[[88,7]]}}}],["won't",{"_index":819,"t":{"98":{"position":[[266,5]]}}}],["work",{"_index":165,"t":{"19":{"position":[[451,4]]},"33":{"position":[[121,4]]},"57":{"position":[[181,4]]},"202":{"position":[[112,4]]},"204":{"position":[[112,4]]},"246":{"position":[[65,4]]}}}],["workflows",{"_index":514,"t":{"57":{"position":[[119,10]]}}}],["working",{"_index":65,"t":{"9":{"position":[[98,7]]},"15":{"position":[[118,7]]},"27":{"position":[[70,7]]},"33":{"position":[[172,7]]},"39":{"position":[[5,7]]},"81":{"position":[[8,7]]},"83":{"position":[[378,7]]},"202":{"position":[[57,7]]}}}],["works",{"_index":468,"t":{"51":{"position":[[47,5]]}}}],["write",{"_index":466,"t":{"51":{"position":[[0,5]]},"110":{"position":[[79,5],[941,5]]},"119":{"position":[[79,5],[1359,5]]}}}],["written",{"_index":1328,"t":{"248":{"position":[[19,7]]}}}],["wrong",{"_index":316,"t":{"31":{"position":[[949,6]]},"200":{"position":[[365,5]]}}}],["x",{"_index":1325,"t":{"246":{"position":[[248,1]]}}}],["y",{"_index":1199,"t":{"157":{"position":[[410,1]]}}}],["yes",{"_index":702,"t":{"78":{"position":[[977,6],[1033,5]]},"110":{"position":[[1202,6]]},"122":{"position":[[115,5],[424,5]]},"125":{"position":[[72,5]]},"129":{"position":[[38,5]]},"133":{"position":[[32,5]]}}}],["you'd",{"_index":656,"t":{"68":{"position":[[199,5]]},"78":{"position":[[172,5]]}}}],["you'll",{"_index":126,"t":{"15":{"position":[[547,6]]},"68":{"position":[[10,6]]},"137":{"position":[[66,6]]},"139":{"position":[[267,6]]}}}],["you're",{"_index":592,"t":{"65":{"position":[[826,6]]},"147":{"position":[[113,6]]},"151":{"position":[[138,6]]},"153":{"position":[[168,6]]},"159":{"position":[[0,6]]},"167":{"position":[[113,6]]},"171":{"position":[[138,6]]},"173":{"position":[[168,6]]},"177":{"position":[[0,6]]},"197":{"position":[[0,6]]},"200":{"position":[[168,6]]},"220":{"position":[[0,6]]},"228":{"position":[[119,6]]},"232":{"position":[[138,6]]},"234":{"position":[[174,6]]},"238":{"position":[[0,6]]}}}],["you've",{"_index":649,"t":{"68":{"position":[[107,6]]}}}],["your_app.py",{"_index":201,"t":{"21":{"position":[[343,11]]}}}],["yourself",{"_index":1280,"t":{"204":{"position":[[227,9]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file diff --git a/search.html b/search.html index 4a8e549b..299d012e 100644 --- a/search.html +++ b/search.html @@ -3,14 +3,14 @@ -Search the documentation - - +Search the documentation + + - - + + \ No newline at end of file