diff --git a/docs/api/features.asciidoc b/docs/api/features.asciidoc deleted file mode 100644 index 57a87ff6342f..000000000000 --- a/docs/api/features.asciidoc +++ /dev/null @@ -1,217 +0,0 @@ -[role="xpack"] -[[features-api-get]] -== Get features API - -experimental[] Retrieves all {kib} features. Features are used by spaces and security to refine and secure access to {kib}. - -[float] -[[features-api-get-request]] -=== Request - -`GET :/api/features` - -[float] -[[features-api-get-codes]] -=== Response code - -`200`:: - Indicates a successful call. - -[float] -[[features-api-get-example]] -=== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- - { - "id": "discover", - "name": "Discover", - "icon": "discoverApp", - "navLinkId": "discover", - "app": [ - "kibana" - ], - "catalogue": [ - "discover" - ], - "privileges": { - "all": { - "savedObject": { - "all": [ - "search", - "url" - ], - "read": [ - "config", - "index-pattern" - ] - }, - "ui": [ - "show", - "createShortUrl", - "save" - ] - }, - "read": { - "savedObject": { - "all": [], - "read": [ - "config", - "index-pattern", - "search", - "url" - ] - }, - "ui": [ - "show" - ] - } - } - }, - { - "id": "visualize", - "name": "Visualize", - "icon": "visualizeApp", - "navLinkId": "visualize", - "app": [ - "kibana" - ], - "catalogue": [ - "visualize" - ], - "privileges": { - "all": { - "savedObject": { - "all": [ - "visualization", - "url" - ], - "read": [ - "config", - "index-pattern", - "search" - ] - }, - "ui": [ - "show", - "createShortUrl", - "delete", - "save" - ] - }, - "read": { - "savedObject": { - "all": [], - "read": [ - "config", - "index-pattern", - "search", - "visualization" - ] - }, - "ui": [ - "show" - ] - } - } - }, - { - "id": "dashboard", - "name": "Dashboard", - "icon": "dashboardApp", - "navLinkId": "dashboards", - "app": [ - "kibana" - ], - "catalogue": [ - "dashboard" - ], - "privileges": { - "all": { - "savedObject": { - "all": [ - "dashboard", - "url" - ], - "read": [ - "config", - "index-pattern", - "search", - "visualization", - "timelion-sheet", - "canvas-workpad" - ] - }, - "ui": [ - "createNew", - "show", - "showWriteControls" - ] - }, - "read": { - "savedObject": { - "all": [], - "read": [ - "config", - "index-pattern", - "search", - "visualization", - "timelion-sheet", - "canvas-workpad", - "dashboard" - ] - }, - "ui": [ - "show" - ] - } - } - }, - { - "id": "dev_tools", - "name": "Dev Tools", - "icon": "devToolsApp", - "navLinkId": "dev_tools", - "app": [ - "kibana" - ], - "catalogue": [ - "console", - "searchprofiler", - "grokdebugger" - ], - "privileges": { - "all": { - "api": [ - "console" - ], - "savedObject": { - "all": [], - "read": [ - "config" - ] - }, - "ui": [ - "show" - ] - }, - "read": { - "api": [ - "console" - ], - "savedObject": { - "all": [], - "read": [ - "config" - ] - }, - "ui": [ - "show" - ] - } - }, - "privilegesTooltip": "User should also be granted the appropriate Elasticsearch cluster and index privileges" - }, --------------------------------------------------- diff --git a/docs/api/features/get.asciidoc b/docs/api/features/get.asciidoc deleted file mode 100644 index af91463fc93f..000000000000 --- a/docs/api/features/get.asciidoc +++ /dev/null @@ -1,216 +0,0 @@ -[[features-api-get]] -=== Get features API -++++ -Get features -++++ - -experimental[] Retrieves all {kib} features. - -[[features-api-get-request]] -==== Request - -`/api/features` - -[[features-api-get-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[features-api-get-example]] -==== Example - -The API returns the following: - -[source,js] --------------------------------------------------- - { - "id": "discover", - "name": "Discover", - "icon": "discoverApp", - "navLinkId": "kibana:discover", - "app": [ - "kibana" - ], - "catalogue": [ - "discover" - ], - "privileges": { - "all": { - "savedObject": { - "all": [ - "search", - "url" - ], - "read": [ - "config", - "index-pattern" - ] - }, - "ui": [ - "show", - "createShortUrl", - "save" - ] - }, - "read": { - "savedObject": { - "all": [], - "read": [ - "config", - "index-pattern", - "search", - "url" - ] - }, - "ui": [ - "show" - ] - } - } - }, - { - "id": "visualize", - "name": "Visualize", - "icon": "visualizeApp", - "navLinkId": "kibana:visualize", - "app": [ - "kibana" - ], - "catalogue": [ - "visualize" - ], - "privileges": { - "all": { - "savedObject": { - "all": [ - "visualization", - "url" - ], - "read": [ - "config", - "index-pattern", - "search" - ] - }, - "ui": [ - "show", - "createShortUrl", - "delete", - "save" - ] - }, - "read": { - "savedObject": { - "all": [], - "read": [ - "config", - "index-pattern", - "search", - "visualization" - ] - }, - "ui": [ - "show" - ] - } - } - }, - { - "id": "dashboard", - "name": "Dashboard", - "icon": "dashboardApp", - "navLinkId": "kibana:dashboard", - "app": [ - "kibana" - ], - "catalogue": [ - "dashboard" - ], - "privileges": { - "all": { - "savedObject": { - "all": [ - "dashboard", - "url" - ], - "read": [ - "config", - "index-pattern", - "search", - "visualization", - "timelion-sheet", - "canvas-workpad" - ] - }, - "ui": [ - "createNew", - "show", - "showWriteControls" - ] - }, - "read": { - "savedObject": { - "all": [], - "read": [ - "config", - "index-pattern", - "search", - "visualization", - "timelion-sheet", - "canvas-workpad", - "dashboard" - ] - }, - "ui": [ - "show" - ] - } - } - }, - { - "id": "dev_tools", - "name": "Dev Tools", - "icon": "devToolsApp", - "navLinkId": "kibana:dev_tools", - "app": [ - "kibana" - ], - "catalogue": [ - "console", - "searchprofiler", - "grokdebugger" - ], - "privileges": { - "all": { - "api": [ - "console" - ], - "savedObject": { - "all": [], - "read": [ - "config" - ] - }, - "ui": [ - "show" - ] - }, - "read": { - "api": [ - "console" - ], - "savedObject": { - "all": [], - "read": [ - "config" - ] - }, - "ui": [ - "show" - ] - } - }, - "privilegesTooltip": "User should also be granted the appropriate Elasticsearch cluster and index privileges" - }, --------------------------------------------------- diff --git a/docs/api/logstash-configuration-management.asciidoc b/docs/api/logstash-configuration-management.asciidoc deleted file mode 100644 index 621b6c61dad8..000000000000 --- a/docs/api/logstash-configuration-management.asciidoc +++ /dev/null @@ -1,22 +0,0 @@ -[role="xpack"] -[[logstash-configuration-management-api]] -== Logstash configuration management APIs - -Programmatically integrate with Logstash configuration management. - -WARNING: Do not directly access the `.logstash` index. The structure of the `.logstash` index is subject to change, which could cause your integration to break. Instead, use the Logstash configuration management APIs. - -The following Logstash configuration management APIs are available: - -* <> to delete a centrally-managed Logstash pipeline - -* <> to list all centrally-managed Logstash pipelines - -* <> to create a centrally-managed Logstash pipeline, or update an existing pipeline - -* <> to retrieve a centrally-managed Logstash pipeline - -include::logstash-configuration-management/delete-pipeline.asciidoc[] -include::logstash-configuration-management/list-pipeline.asciidoc[] -include::logstash-configuration-management/create-logstash.asciidoc[] -include::logstash-configuration-management/retrieve-pipeline.asciidoc[] diff --git a/docs/api/logstash-configuration-management/create-logstash.asciidoc b/docs/api/logstash-configuration-management/create-logstash.asciidoc deleted file mode 100644 index 9bd5a9028ee9..000000000000 --- a/docs/api/logstash-configuration-management/create-logstash.asciidoc +++ /dev/null @@ -1,52 +0,0 @@ -[[logstash-configuration-management-api-create]] -=== Create Logstash pipeline API -++++ -Create Logstash pipeline -++++ - -experimental[] Create a centrally-managed Logstash pipeline, or update an existing pipeline. - -[[logstash-configuration-management-api-create-request]] -==== Request - -`PUT :/api/logstash/pipeline/` - -[[logstash-configuration-management-api-create-params]] -==== Path parameters - -`id`:: - (Required, string) The pipeline ID. Only alphanumeric characters, hyphens, and underscores are supported. - -[[logstash-configuration-management-api-create-request-body]] -==== Request body - -`description`:: - (Optional, string) The pipeline description. - -`pipeline`:: - (Required, string) The pipeline definition. - -`settings`:: - (Optional, object) The pipeline settings. Supported settings, represented as object keys, are `pipeline.workers`, `pipeline.batch.size`, `pipeline.batch.delay`, `queue.type`, `queue.max_bytes`, and `queue.checkpoint.writes`. - -[[logstash-configuration-management-api-create-codes]] -==== Response code - -`204 No Content`:: - Indicates a successful call. - -[float] -[[logstash-configuration-management-api-create-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/logstash/pipeline/hello-world -{ - "pipeline": "input { stdin {} } output { stdout {} }", - "settings": { - "queue.type": "persisted" - } -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/logstash-configuration-management/delete-pipeline.asciidoc b/docs/api/logstash-configuration-management/delete-pipeline.asciidoc deleted file mode 100644 index 8f8220770cb2..000000000000 --- a/docs/api/logstash-configuration-management/delete-pipeline.asciidoc +++ /dev/null @@ -1,33 +0,0 @@ -[[logstash-configuration-management-api-delete]] -=== Delete Logstash pipeline API -++++ -Delete pipeline -++++ - -experimental[] Delete a centrally-managed Logstash pipeline. - -[[logstash-configuration-management-api-delete-request]] -==== Request - -`DELETE :/api/logstash/pipeline/` - -[[logstash-configuration-management-api-delete-params]] -==== Path parameters - -`id`:: - (Required, string) The pipeline ID. - -[[logstash-configuration-management-api-delete-codes]] -==== Response code - -`204 No Content`:: - Indicates a successful call. - -[[logstash-configuration-management-api-delete-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X DELETE api/logstash/pipeline/hello-world --------------------------------------------------- -// KIBANA diff --git a/docs/api/logstash-configuration-management/list-pipeline.asciidoc b/docs/api/logstash-configuration-management/list-pipeline.asciidoc deleted file mode 100644 index d875ea3d95b7..000000000000 --- a/docs/api/logstash-configuration-management/list-pipeline.asciidoc +++ /dev/null @@ -1,38 +0,0 @@ -[[logstash-configuration-management-api-list]] -=== List Logstash pipeline API -++++ -List pipeline -++++ - -experimental[] List all centrally-managed Logstash pipelines. - -[[logstash-configuration-management-api-list-request]] -==== Request - -`GET :/api/logstash/pipelines` - -[[logstash-configuration-management-api-list-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "pipelines": [ - { - "id": "hello-world", - "description": "Just a simple pipeline", - "last_modified": "2018-04-14T12:23:29.772Z", - "username": "elastic" <1> - }, - { - "id": "sleepy-pipeline", - "description": "", - "last_modified": "2018-03-24T03:41:30.554Z" - } - ] -} --------------------------------------------------- - -<1> The `username` property appears when security is enabled, and depends on when the pipeline was created or last updated. diff --git a/docs/api/logstash-configuration-management/retrieve-pipeline.asciidoc b/docs/api/logstash-configuration-management/retrieve-pipeline.asciidoc deleted file mode 100644 index 1eb380b71c62..000000000000 --- a/docs/api/logstash-configuration-management/retrieve-pipeline.asciidoc +++ /dev/null @@ -1,36 +0,0 @@ -[[logstash-configuration-management-api-retrieve]] -=== Retrieve pipeline API -++++ -Retrieve pipeline -++++ - -experimental[] Retrieve a centrally-managed Logstash pipeline. - -[[logstash-configuration-management-api-retrieve-request]] -==== Request - -`GET :/api/logstash/pipeline/` - -[[logstash-configuration-management-api-retrieve-path-params]] -==== Path parameters - -`id`:: - (Required, string) The pipeline ID. - -[[logstash-configuration-management-api-retrieve-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "hello-world", - "description": "Just a simple pipeline", - "username": "elastic", - "pipeline": "input { stdin {} } output { stdout {} }", - "settings": { - "queue.type": "persistent" - } -} --------------------------------------------------- diff --git a/docs/api/role-management.asciidoc b/docs/api/role-management.asciidoc deleted file mode 100644 index 4c4620a23943..000000000000 --- a/docs/api/role-management.asciidoc +++ /dev/null @@ -1,22 +0,0 @@ -[role="xpack"] -[[role-management-api]] -== {kib} role management APIs - -Manage the roles that grant <>. - -WARNING: Do not use the {ref}/security-api.html#security-role-apis[{es} role management APIs] to manage {kib} roles. - -The following {kib} role management APIs are available: - -* <> to create a new {kib} role, or update the attributes of an existing role - -* <> to retrieve all {kib} roles - -* <> to retrieve a specific role - -* <> to delete a {kib} role - -include::role-management/put.asciidoc[] -include::role-management/get.asciidoc[] -include::role-management/get-all.asciidoc[] -include::role-management/delete.asciidoc[] diff --git a/docs/api/role-management/delete.asciidoc b/docs/api/role-management/delete.asciidoc deleted file mode 100644 index 530e1e252ef8..000000000000 --- a/docs/api/role-management/delete.asciidoc +++ /dev/null @@ -1,26 +0,0 @@ -[[role-management-api-delete]] -=== Delete role API -++++ -Delete role -++++ - -experimental[] Delete a {kib} role. - -[[role-management-api-delete-prereqs]] -==== Prerequisite - -To use the delete role API, you must have the `manage_security` cluster privilege. - -[[role-management-api-delete-request-body]] -==== Request - -`DELETE :/api/security/role/my_admin_role` - -[[role-management-api-delete-response-codes]] -==== Response codes - -`204`:: - Indicates a successful call. - -`404`:: - Indicates an unsuccessful call. diff --git a/docs/api/role-management/get-all.asciidoc b/docs/api/role-management/get-all.asciidoc deleted file mode 100644 index 888bf0c8a137..000000000000 --- a/docs/api/role-management/get-all.asciidoc +++ /dev/null @@ -1,78 +0,0 @@ -[[role-management-api-get]] -=== Get all {kib} roles API -++++ -Get all roles -++++ - -experimental[] Retrieve all {kib} roles. - -[[role-management-api-get-prereqs]] -==== Prerequisite - -To use the get role API, you must have the `manage_security` cluster privilege. - -[[role-management-api-retrieve-all-request-body]] -==== Request - -`GET :/api/security/role` - -[[role-management-api-retrieve-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[role-management-api-retrieve-all-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "name": "my_kibana_role", - "metadata" : { - "version" : 1 - }, - "transient_metadata": { - "enabled": true - }, - "elasticsearch": { - "indices": [ ], - "cluster": [ ], - "run_as": [ ] - }, - "kibana": [{ - "base": [ - "all" - ], - "feature": {}, - "spaces": [ - "*" - ] - }] - }, - { - "name": "my_admin_role", - "metadata" : { - "version" : 1 - }, - "transient_metadata": { - "enabled": true - }, - "elasticsearch": { - "cluster" : [ "all" ], - "indices" : [ { - "names" : [ "index1", "index2" ], - "privileges" : [ "all" ], - "field_security" : { - "grant" : [ "title", "body" ] - }, - "query" : "{\"match\": {\"title\": \"foo\"}}" - } ], - }, - "kibana": [ ] - } -] --------------------------------------------------- diff --git a/docs/api/role-management/get.asciidoc b/docs/api/role-management/get.asciidoc deleted file mode 100644 index d1e9d1e6afa8..000000000000 --- a/docs/api/role-management/get.asciidoc +++ /dev/null @@ -1,108 +0,0 @@ -[[role-management-specific-api-get]] -=== Get specific role API -++++ -Get specific role -++++ - -experimental[] Retrieve a specific role. - -[[role-management-specific-api-get-prereqs]] -==== Prerequisite - -To use the get specific role API, you must have the `manage_security` cluster privilege. - -[[role-management-specific-api-retrieve-all-request-body]] -===== Request - -`GET :/api/security/role/my_restricted_kibana_role` - -[[role-management-specific-api-retrieve-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[role-management-specific-api-retrieve-all-example]] -===== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "name": "my_restricted_kibana_role", - "metadata" : { - "version" : 1 - }, - "transient_metadata": { - "enabled": true - }, - "elasticsearch": { - "cluster": [ ], - "indices": [ ], - "run_as": [ ] - }, - "kibana": [ - { - "base": [ - "read" - ], - "feature": {}, - "spaces": [ - "marketing" - ] - }, - { - "base": [], - "feature": { - "discover": [ - "all" - ], - "visualize": [ - "all" - ], - "dashboard": [ - "all" - ], - "dev_tools": [ - "read" - ], - "advancedSettings": [ - "read" - ], - "indexPatterns": [ - "read" - ], - "timelion": [ - "all" - ], - "graph": [ - "all" - ], - "apm": [ - "read" - ], - "maps": [ - "read" - ], - "canvas": [ - "read" - ], - "infrastructure": [ - "all" - ], - "logs": [ - "all" - ], - "uptime": [ - "all" - ] - }, - "spaces": [ - "sales", - "default" - ] - } - ] -} --------------------------------------------------- diff --git a/docs/api/role-management/put.asciidoc b/docs/api/role-management/put.asciidoc deleted file mode 100644 index be4617810009..000000000000 --- a/docs/api/role-management/put.asciidoc +++ /dev/null @@ -1,254 +0,0 @@ -[[role-management-api-put]] -=== Create or update role API -++++ -Create or update role -++++ - -experimental[] Create a new {kib} role, or update the attributes of an existing role. {kib} roles are stored in the -{es} native realm. - -[[role-management-api-put-request]] -==== Request - -`PUT :/api/security/role/my_kibana_role` - -[[role-management-api-put-prereqs]] -==== Prerequisite - -To use the create or update role API, you must have the `manage_security` cluster privilege. - -[role="child_attributes"] -[[role-management-api-response-body]] -==== Request body - -`metadata`:: - (Optional, object) In the `metadata` object, keys that begin with `_` are reserved for system usage. - -`elasticsearch`:: - (Optional, object) {es} cluster and index privileges. Valid keys include - `cluster`, `indices`, and `run_as`. For more information, see - {ref}/defining-roles.html[Defining roles]. - -`kibana`:: - (list) Objects that specify the <> for the role. -+ -.Properties of `kibana` -[%collapsible%open] -===== -`base` ::: - (Optional, list) A base privilege. When specified, the base must be `["all"]` or `["read"]`. - When the `base` privilege is specified, you are unable to use the `feature` section. - "all" grants read/write access to all {kib} features for the specified spaces. - "read" grants read-only access to all {kib} features for the specified spaces. - -`feature` ::: - (object) Contains privileges for specific features. - When the `feature` privileges are specified, you are unable to use the `base` section. - To retrieve a list of available features, use the <>. - -`spaces` ::: - (list) The spaces to apply the privileges to. - To grant access to all spaces, set to `["*"]`, or omit the value. -===== - -[[role-management-api-put-response-codes]] -==== Response code - -`204`:: - Indicates a successful call. - -==== Examples - -Grant access to various features in all spaces: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "metadata" : { - "version" : 1 - }, - "elasticsearch": { - "cluster" : [ ], - "indices" : [ ] - }, - "kibana": [ - { - "base": [], - "feature": { - "discover": [ - "all" - ], - "visualize": [ - "all" - ], - "dashboard": [ - "all" - ], - "dev_tools": [ - "read" - ], - "advancedSettings": [ - "read" - ], - "indexPatterns": [ - "read" - ], - "timelion": [ - "all" - ], - "graph": [ - "all" - ], - "apm": [ - "read" - ], - "maps": [ - "read" - ], - "canvas": [ - "read" - ], - "infrastructure": [ - "all" - ], - "logs": [ - "all" - ], - "uptime": [ - "all" - ] - }, - "spaces": [ - "*" - ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant dashboard-only access to only the Marketing space: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "metadata" : { - "version" : 1 - }, - "elasticsearch": { - "cluster" : [ ], - "indices" : [ ] - }, - "kibana": [ - { - "base": [], - "feature": { - "dashboard": ["read"] - }, - "spaces": [ - "marketing" - ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant full access to all features in the Default space: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "metadata" : { - "version" : 1 - }, - "elasticsearch": { - "cluster" : [ ], - "indices" : [ ] - }, - "kibana": [ - { - "base": ["all"], - "feature": { - }, - "spaces": [ - "default" - ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant different access to different spaces: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "metadata" : { - "version" : 1 - }, - "elasticsearch": { - "cluster" : [ ], - "indices" : [ ] - }, - "kibana": [ - { - "base": [], - "feature": { - "discover": ["all"], - "dashboard": ["all"] - }, - "spaces": [ - "default" - ] - }, - { - "base": ["read"], - "spaces": [ - "marketing", - "sales" - ] - } - ] -} --------------------------------------------------- -// KIBANA - -Grant access to {kib} and {es}: - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/security/role/my_kibana_role -{ - "metadata" : { - "version" : 1 - }, - "elasticsearch": { - "cluster" : [ "all" ], - "indices" : [ { - "names" : [ "index1", "index2" ], - "privileges" : [ "all" ], - "field_security" : { - "grant" : [ "title", "body" ] - }, - "query" : "{\"match\": {\"title\": \"foo\"}}" - } ] - }, - "kibana": [ - { - "base": ["all"], - "feature": { - }, - "spaces": [ - "default" - ] - } - ] -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/saved-objects/rotate_encryption_key.asciidoc b/docs/api/saved-objects/rotate_encryption_key.asciidoc deleted file mode 100644 index efc57ddb4308..000000000000 --- a/docs/api/saved-objects/rotate_encryption_key.asciidoc +++ /dev/null @@ -1,110 +0,0 @@ -[role="xpack"] -[[saved-objects-api-rotate-encryption-key]] -=== Rotate encryption key API -++++ -Rotate encryption key -++++ - -experimental[] Rotate the encryption key for encrypted saved objects. - -If a saved object cannot be decrypted using the primary encryption key, then {kib} will attempt to decrypt it using the specified <>. In most of the cases this overhead is negligible, but if you're dealing with a large number of saved objects and experiencing performance issues, you may want to rotate the encryption key. - -[IMPORTANT] -============================================================================ -Bulk key rotation can consume a considerable amount of resources and hence only user with a `superuser` role can trigger it. -============================================================================ - -[[saved-objects-api-rotate-encryption-key-request]] -==== Request - -`POST :/api/encrypted_saved_objects/_rotate_key` - -[[saved-objects-api-rotate-encryption-key-request-query-params]] -==== Query parameters - -`type`:: -(Optional, string) Limits encryption key rotation only to the saved objects with the specified type. By default, {kib} tries to rotate the encryption key for all saved object types that may contain encrypted attributes. - -`batch_size`:: -(Optional, number) Specifies a maximum number of saved objects that {kib} can process in a single batch. Bulk key rotation is an iterative process since {kib} may not be able to fetch and process all required saved objects in one go and splits processing into consequent batches. By default, the batch size is 10000, which is also a maximum allowed value. - -[[saved-objects-api-rotate-encryption-key-response-body]] -==== Response body - -`total`:: -(number) Indicates the total number of _all_ encrypted saved objects (optionally filtered by the requested `type`), regardless of the key {kib} used for encryption. - -`successful`:: -(number) Indicates the total number of _all_ encrypted saved objects (optionally filtered by the requested `type`), regardless of the key {kib} used for encryption. -+ -NOTE: In most cases, `total` will be greater than `successful` even if `failed` is zero. The reason is that {kib} may not need or may not be able to rotate encryption keys for all encrypted saved objects. - -`failed`:: -(number) Indicates the number of the saved objects that were still encrypted with one of the old encryption keys that {kib} failed to re-encrypt with the primary key. - -[[saved-objects-api-rotate-encryption-key-response-codes]] -==== Response code - -`200`:: -Indicates a successful call. - -`400`:: -Indicates that either query parameters are wrong or <> aren't configured. - -`429`:: -Indicates that key rotation is already in progress. - -[[saved-objects-api-rotate-encryption-key-example]] -==== Examples - -[[saved-objects-api-rotate-encryption-key-example-1]] -===== Encryption key rotation with default parameters - -[source,sh] --------------------------------------------------- -$ curl -X POST /api/encrypted_saved_objects/_rotate_key --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "total": 1000, - "successful": 300, - "failed": 0 -} --------------------------------------------------- - -The result indicates that the encryption key was successfully rotated for 300 out of 1000 saved objects with encrypted attributes, and 700 of the saved objects either didn't require key rotation, or were encrypted with an unknown encryption key. - -[[saved-objects-api-rotate-encryption-key-example-2]] -===== Encryption key rotation for the specific type with reduce batch size - -[IMPORTANT] -============================================================================ -Default parameters are optimized for speed. Change the parameters only when necessary. However, if you're experiencing any issues with this API, you may want to decrease a batch size or rotate the encryption keys for the specific types only. In this case, you may need to run key rotation multiple times in a row. -============================================================================ - -In this example, key rotation is performed for all saved objects with the `alert` type in batches of 5000. - -[source,sh] --------------------------------------------------- -$ curl -X POST /api/encrypted_saved_objects/_rotate_key?type=alert&batch_size=5000 --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "total": 100, - "successful": 100, - "failed": 0 -} --------------------------------------------------- - -The result indicates that the encryption key was successfully rotated for all 100 saved objects with the `alert` type. - diff --git a/docs/api/spaces-management.asciidoc b/docs/api/spaces-management.asciidoc deleted file mode 100644 index 2e3b9abec912..000000000000 --- a/docs/api/spaces-management.asciidoc +++ /dev/null @@ -1,29 +0,0 @@ -[role="xpack"] -[[spaces-api]] -== {kib} spaces APIs - -Manage your {kib} spaces. - -The following {kib} spaces APIs are available: - -* <> to create a {kib} space - -* <> to update an existing {kib} space - -* <> to retrieve a specified {kib} space - -* <> to retrieve all {kib} spaces - -* <> to delete a {kib} space - -* <> to copy saved objects between spaces - -* <> to overwrite saved objects returned as errors from the copy saved objects to space API - -include::spaces-management/post.asciidoc[] -include::spaces-management/put.asciidoc[] -include::spaces-management/get.asciidoc[] -include::spaces-management/get_all.asciidoc[] -include::spaces-management/delete.asciidoc[] -include::spaces-management/copy_saved_objects.asciidoc[] -include::spaces-management/resolve_copy_saved_objects_conflicts.asciidoc[] diff --git a/docs/api/spaces-management/copy_saved_objects.asciidoc b/docs/api/spaces-management/copy_saved_objects.asciidoc deleted file mode 100644 index e848d5258dcb..000000000000 --- a/docs/api/spaces-management/copy_saved_objects.asciidoc +++ /dev/null @@ -1,466 +0,0 @@ -[role="xpack"] -[[spaces-api-copy-saved-objects]] -=== Copy saved objects to space API -++++ -Copy saved objects to space -++++ - -experimental[] Copy saved objects between spaces. - -It also allows you to automatically copy related objects, so when you copy a `dashboard`, this can automatically copy over the -associated visualizations, index patterns, and saved searches, as required. - -You can request to overwrite any objects that already exist in the target space if they share an ID, or you can use the -<> to do this on a per-object basis. - -[[spaces-api-copy-saved-objects-request]] -==== {api-request-title} - -`POST :/api/spaces/_copy_saved_objects` - -`POST :/s//api/spaces/_copy_saved_objects` - -[[spaces-api-copy-saved-objects-path-params]] -==== {api-path-parms-title} - -`space_id`:: - (Optional, string) The ID of the space that contains the saved objects you want to copy. When `space_id` is unspecified in the URL, the - default space is used. - -[role="child_attributes"] -[[spaces-api-copy-saved-objects-request-body]] -==== {api-request-body-title} - -`spaces`:: - (Required, string array) The IDs of the spaces where you want to copy the specified objects. - -`objects`:: - (Required, object array) The saved objects to copy. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (Required, string) The saved object type. - - `id`::: - (Required, string) The saved object ID. -===== - -`includeReferences`:: - (Optional, boolean) When set to `true`, all saved objects related to the specified saved objects will also be copied into the target - spaces. The default value is `false`. - -`overwrite`:: - (Optional, boolean) When set to `true`, all conflicts are automatically overidden. When a saved object with a matching `type` and `id` - exists in the target space, that version is replaced with the version from the source space. The default value is `false`. - -[role="child_attributes"] -[[spaces-api-copy-saved-objects-response-body]] -==== {api-response-body-title} - -``:: - (object) An object that describes the result of the copy operation for the space. Includes the dynamic keys in the response. -+ -.Properties of `` -[%collapsible%open] -===== - `success`::: - (boolean) The copy operation was successful. When set to `false`, some objects may have been copied. For additional information, refer - to the `errors` and `successResults` properties. - - `successCount`::: - (number) The number of objects that successfully copied. - - `errors`::: - (Optional, array) The errors that occurred during the copy operation. When errors are reported, the `success` flag is set to `false`. -+ -NOTE: One object may result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and a -`conflict` error. -+ -.Properties of `errors` -[%collapsible%open] -====== - `id`:::: - (string) The saved object ID that failed to copy. - `type`:::: - (string) The type of saved object that failed to copy. - `error`:::: - (object) The error that caused the copy operation to fail. -+ -.Properties of `error` -[%collapsible%open] -======= - `type`:::: - (string) The type of error. For example, `conflict`, `ambiguous_conflict`, `missing_references`, `unsupported_type`, or `unknown`. - Errors marked as `conflict` or `ambiguous_conflict` may be resolved by using the <>. - `destinationId`:::: - (Optional, string) The destination ID that was used during the copy attempt. This is only present on `conflict` error types. - `destinations`:::: - (Optional, array) A list of possible object destinations with `id`, `title`, and `updatedAt` fields to describe each one. This is - only present on `ambiguous_conflict` error types. -======= -====== - - `successResults`::: - (Optional, array) Indicates successfully copied objects, with any applicable metadata. -+ -NOTE: Objects are created when all resolvable errors are addressed, including conflict and missing references errors. For more information, -refer to the <>. - -===== -[[spaces-api-copy-saved-objects-example]] -==== {api-examples-title} - -[[spaces-api-copy-saved-objects-example-1]] -===== Successful copy (with `createNewCopies` enabled) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` space. In this example, -the dashboard has a reference to a visualization, and that has a reference to an index pattern: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing"], - "includeReferences": true, - "createNewCopies": true -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 3, - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "destinationId": "1e127098-5b80-417f-b0f1-c60c8395358f", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-vis", - "type": "visualization", - "destinationId": "a610ed80-1c73-4507-9e13-d3af736c8e04", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-index-pattern", - "type": "index-pattern", - "destinationId": "bc3c9c70-bf6f-4bec-b4ce-f4189aa9e26b", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - } - ] - } -} ----- - -The result indicates a successful copy, and all three objects are created. Since these objects were created as new copies, each entry in the -`successResults` array includes a `destinationId` attribute. - -[[spaces-api-copy-saved-objects-example-2]] -===== Successful copy (with `createNewCopies` disabled) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` space. In this example, -the dashboard has a reference to a visualization, and that has a reference to an index pattern: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing"], - "includeReferences": true -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 3, - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-vis", - "type": "visualization", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-index-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - } - ] - } -} ----- - -The result indicates a successful copy, and all three objects are created. - -[[spaces-api-copy-saved-objects-example-3]] -===== Failed copy (with conflict errors) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` and `sales` spaces. In -this example, the dashboard has a reference to a visualization and a *Canvas* workpad, and the visualization has a reference to an index -pattern: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing", "sales"], - "includeReferences": true -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 4, - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-vis", - "type": "visualization", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - }, - { - "id": "my-index-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - } - ] - }, - "sales": { - "success": false, - "successCount": 1, - "errors": [ - { - "id": "my-pattern", - "type": "index-pattern", - "title": "my-pattern-*", - "error": { - "type": "conflict" - }, - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-visualization", - "type": "my-vis", - "title": "Look at my visualization", - "error": { - "type": "conflict", - "destinationId": "another-vis" - }, - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "title": "Look at my canvas", - "error": { - "type": "ambiguous_conflict", - "destinations": [ - { - "id": "another-canvas", - "title": "Look at another canvas", - "updatedAt": "2020-07-08T16:36:32.377Z" - }, - { - "id": "yet-another-canvas", - "title": "Look at yet another canvas", - "updatedAt": "2020-07-05T12:29:54.849Z" - } - ] - }, - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - } - ], - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] - } -} ----- - -The result indicates a successful copy for the `marketing` space, and an unsuccessful copy for the `sales` space because the index pattern, -visualization, and *Canvas* workpad each resulted in a conflict error: - -* An index pattern with the same ID already exists, which resulted in a conflict error. To resolve the error, overwrite the existing object, -or skip the object. - -* A visualization with a different ID, but the same origin already exists, which resulted in a conflict error. The `destinationId` field -contains the `id` of the other visualization, which caused the conflict. The behavior is added to make sure that new objects that can be -shared between spaces behave in a similar way as legacy non-shareable objects. When a shareable object is copied into a new space, it -retains its origin so that the conflicts are encountered as expected. To resolve, overwrite the specified destination object, or skip the -object. - -* Two *Canvas* workpads with different IDs, but the same origin, already exist, which resulted in a conflict error. The `destinations` array -describes the other workpads which caused the conflict. When a shareable object is copied into a new space, then shared to another space -where an object of the same origin exists, the conflict error occurs. To resolve, pick a destination object to overwrite, or skip the -object. - -Objects are created when the error is resolved using the <>. - -[[spaces-api-copy-saved-objects-example-4]] -===== Failed copy (with missing reference errors) - -Copy a dashboard with the `my-dashboard` ID, including all references from the `default` space to the `marketing` space. In this example, -the dashboard has a reference to a visualization and a *Canvas* workpad, and the visualization has a reference to an index pattern: - -[source,sh] ----- -$ curl -X POST api/spaces/_copy_saved_objects -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "spaces": ["marketing"], - "includeReferences": true -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": false, - "successCount": 2, - "errors": [ - { - "id": "my-vis", - "type": "visualization", - "title": "Look at my visualization", - "error": { - "type": "missing_references", - "references": [ - { - "type": "index-pattern", - "id": "my-pattern-*" - } - ] - }, - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - ] - "successResults": [ - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - } - ], - } -} ----- - -The result indicates an unsuccessful copy because the visualization resulted in a missing references error. - -Objects are created when the errors are resolved using the <>. diff --git a/docs/api/spaces-management/delete.asciidoc b/docs/api/spaces-management/delete.asciidoc deleted file mode 100644 index 5b4db78c056d..000000000000 --- a/docs/api/spaces-management/delete.asciidoc +++ /dev/null @@ -1,23 +0,0 @@ -[[spaces-api-delete]] -=== Delete space API -++++ -Delete space -++++ - -experimental[] Delete a {kib} space. - -WARNING: When you delete a space, all saved objects that belong to the space are automatically deleted, which is permanent and cannot be undone. - -[[spaces-api-delete-request]] -==== Request - -`DELETE :/api/spaces/space/marketing` - -[[spaces-api-delete-errors-codes]] -==== Response codes - -`204`:: - Indicates a successful call. - -`404`:: - Indicates that the request failed. diff --git a/docs/api/spaces-management/get.asciidoc b/docs/api/spaces-management/get.asciidoc deleted file mode 100644 index 48245b778660..000000000000 --- a/docs/api/spaces-management/get.asciidoc +++ /dev/null @@ -1,36 +0,0 @@ -[[spaces-api-get]] -=== Get a space API -++++ -Get space -++++ - -experimental[] Retrieve a specified {kib} space. - -[[spaces-api-get-request]] -==== Request - -`GET :/api/spaces/space/marketing` - -[[spaces-api-get-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[spaces-api-get-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "initials": "MK", - "disabledFeatures": [], - "imageUrl": "" -} --------------------------------------------------- diff --git a/docs/api/spaces-management/get_all.asciidoc b/docs/api/spaces-management/get_all.asciidoc deleted file mode 100644 index 8f7ba86f332d..000000000000 --- a/docs/api/spaces-management/get_all.asciidoc +++ /dev/null @@ -1,53 +0,0 @@ -[[spaces-api-get-all]] -=== Get all {kib} spaces API -++++ -Get all spaces -++++ - -experimental[] Retrieve all {kib} spaces. - -[[spaces-api-get-all-request]] -==== Request - -`GET :/api/spaces/space` - -[[spaces-api-get-all-response-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[spaces-api-get-all-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -[ - { - "id": "default", - "name": "Default", - "description" : "This is the Default Space", - "disabledFeatures": [], - "imageUrl": "", - "_reserved": true - }, - { - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "disabledFeatures": ["apm"], - "initials": "MK", - "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSU" - }, - { - "id": "sales", - "name": "Sales", - "initials": "MK", - "disabledFeatures": ["discover", "timelion"], - "imageUrl": "" - } -] --------------------------------------------------- diff --git a/docs/api/spaces-management/post.asciidoc b/docs/api/spaces-management/post.asciidoc deleted file mode 100644 index 1abfffd1c736..000000000000 --- a/docs/api/spaces-management/post.asciidoc +++ /dev/null @@ -1,61 +0,0 @@ -[[spaces-api-post]] -=== Create space API -++++ -Create space -++++ - -experimental[] Create a {kib} space. - -[[spaces-api-post-request]] -==== Request - -`POST :/api/spaces/space` - -[[spaces-api-post-request-body]] -==== Request body - -`id`:: - (Required, string) The space ID that is part of the Kibana URL when inside the space. You are unable to change the ID with the update operation. - -`name`:: - (Required, string) The display name for the space. - -`description`:: - (Optional, string) The description for the space. - -`disabledFeatures`:: - (Optional, string array) The list of disabled features for the space. To get a list of available feature IDs, use the <>. - -`initials`:: - (Optional, string) The initials shown in the space avatar. By default, the initials are automatically generated from the space name. Initials must be 1 or 2 characters. - -`color`:: - (Optional, string) The hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name. - -`imageUrl`:: - (Optional, string) The data-URL encoded image to display in the space avatar. If specified, `initials` will not be displayed, and the `color` will be visible as the background color for transparent images. - For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images. - -[[spaces-api-post-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -[[spaces-api-post-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X POST api/spaces/space -{ - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "initials": "MK", - "disabledFeatures": ["timelion"], - "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAABACAYAAABC6cT1AAAGf0lEQVRoQ+3abYydRRUH8N882xYo0IqagEVjokQJKAiKBjXExC9G/aCkGowCIghCkRcrVSSKIu/FEiqgGL6gBIlAYrAqUTH6hZgQFVEMKlQFfItWoQWhZe8z5uzMLdvbfbkLxb13d+fbvfe588x/zpn/+Z9zJpmnI81T3BaAzzfLL1h8weLzZAcWXH2eGHo7zAWLL1h8nuzAjFw9G1N6Kzq8HnuM36MR8iibF3Fv4q+7cv8yDV6K13bYq2furSP8Ag8ncr/vnSnwRViJT2GfCV7yL1yHGxLb+l3EdM9lluNEnIC9xz+f2ZL4Er6Z2DrdXN3fZwp8CU7OfDHxggle8lTLbQ1nJ/7Z7yKmey5zYGZt4h2IzR8/trRc2PDlxJPTzfVcgJ+CC0wMPOa9F6cm7up3EVM9V9386MxliVdM8GwAv6hh/awCz/w7lY25OtF5ruBz4ZLP42NYNrDAFbC3YPWuILnMAfgq3oaRQQYea/stViV+sgssvjKzLvGySeaaNVfP4d7Btokgvxj/bblgpueuF1hmWcyTCmfE3J3M1lTcv0vMswM88zR+jpw4osu6me8kzkpsfLZWzxyRuabO22buxxOJ12FxnXfWgEe83pB5sOE47BsLymzscOoi7nw2JJfZreUjiUsTyzKPZm5NvBDvSuw268AzNzV8H5/Am+qCnsAXgpgSW2Zq9cyKlksbPlTd+te4quWNieMHBfiNDdciYnwsdI/MaOaWhnMTf54J8CqNj8x8JXFIZltYu+HqlmNT8YSBsHgAPw/vxvlVV4du/s0oaxbxg0TbL/jMni0nNcVjQq7+HZfgtpbzBg342TgQ63AkmsymxBW4IjE6A+D7Vzd/fyWxIM/VuCe+HzTgZ2Jpy/kNJ2FJLmLm24mPJ/42A+Bvrxt4SISwlhsaPodH26LZB8rVA3inwwebsrixJCZzX+KMxI/7AV61eVh3DV6Mx3EOvh4kN6jAg8nfUCXm4d1wE66OyxNPTQc+s3/o/MoXizL3JE5O3F3P/uBZPPF4Zr+Wi5uSO48ZPRdyCwn7YB/A35m5KhWNHox4fcNnIs0ddOCRSBxf8+cQG+Huf0l8NJVYP+nI7NXy2ar4QqIGm69JfKPOE2w/mBavCzwM11R2D+ChsUO7hyUfmwx55qDM1xJvqZ7y08TpifuGBfjeURVJnNIVGpkNiXNS0ds7jcySDitDCCWW56LJ10fRo8sNA+3qXUSZD2CtQlZh9T+1rB7h9oliembflnMbzqgSNZKbKGHdPm7OwXb1CvQ1metSETMpszmzvikCJNh/h5E5PHNl4qga/+/cxqrdeWDYgIe7X5L4cGJPJX2940lOX8pD41FnFnc4riluvQKbK0dcHJFi2IBHNTQSlguru4d2/wPOTNzRA3x5y+U1E1uqWDkETOT026XuUJzx6u7ReLhSYenQ7uHua0fKZmwfmcPqsQjxE5WVONcRxn7X89zgn/EKPMRMxOVQXmP18Mx3q3b/Y/0cQE/IhFtHESMsHFlZ1Ml3CH3DZPHImY+pxcKumNmYirtvqMBfhMuU6s3iqOQkTsMPe1tCQwO8Ajs0lxr7W+vnp1MJc9EgCNd/cy6x+9D4veXmprj5wxMw/3C4egW6zzgZOlYZzfwo3F2J7ael0pJamvlPKgWNKFft1AAcKotXoFEbD7kaoSoQPVKB35+5KHF0lai/rJo+up87jWEE/qqqwY+qrL21LWLm95lPJ16ppKw31XC3PXYPJauPEx7B6BHCgrSizRs18qiaRp8tlN3ueCTYPHH9RNaunjI8Z7wLYpT3jZSCYXQ8e9vTsRE/q+no3XMKeObgGtaintbb/AvXj4JDkNw/5hrwYPfIvlZFUbLn7G5q+eQIN09Vnho6cqvnM/Lt99RixH49wO8K0ZL41WTWHoQzvsNVkOheZqKhEGpsp3SzB+BBtZAYve7uOR9tuTaaB6l0XScdYfEQPpkTUyHEGP+XqyDBzu+NBCITUjNWHynkrbWKOuWFn1xKzqsyx0bdvS78odp0+N503Zao0uCsWuSIDku8/7EO60b41vN5+Ses9BKlTdvd8bhp9EBvJjWJAIn/vxwHe6b3tSk6JFPV4nq85oAOrx555v/x/rh3E6Lo+bnuNS4uB4Cuq0ZfvO8X1rM6q/+vnjLVqZq7v83onttc2oYF4HPJmv1gWbB4P7s0l55ZsPhcsmY/WBYs3s8uzaVn5q3F/wf70mRuBCtbjQAAAABJRU5ErkJggg==" -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/spaces-management/put.asciidoc b/docs/api/spaces-management/put.asciidoc deleted file mode 100644 index e8f75ee089d7..000000000000 --- a/docs/api/spaces-management/put.asciidoc +++ /dev/null @@ -1,61 +0,0 @@ -[[spaces-api-put]] -=== Update space API -++++ -Update space -++++ - -experimental[] Update an existing {kib} space. - -[[spaces-api-put-api-request]] -==== Request - -`PUT :/api/spaces/space/` - -[[spaces-api-put-request-body]] -==== Request body - -`id`:: - (Required, string) The space ID that is part of the {kib} URL when inside the space. You are unable to change the ID with the update operation. - -`name`:: - (Required, string) The display name for the space. - -`description`:: - (Optional, string) The description for the space. - -`disabledFeatures`:: - (Optional, string array) The list of disabled features for the space. To get a list of available feature IDs, use the <>. - -`initials`:: - (Optional, string) Specifies the initials shown in the space avatar. By default, the initials are automatically generated from the space name. Initials must be 1 or 2 characters. - -`color`:: - (Optional, string) Specifies the hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name. - -`imageUrl`:: - (Optional, string) Specifies the data-url encoded image to display in the space avatar. If specified, `initials` will not be displayed, and the `color` will be visible as the background color for transparent images. - For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images. - -[[spaces-api-put-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -[[sample-api-example]] -==== Example - -[source,sh] --------------------------------------------------- -$ curl -X PUT api/spaces/space/marketing -{ - "id": "marketing", - "name": "Marketing", - "description" : "This is the Marketing Space", - "color": "#aabbcc", - "initials": "MK", - "disabledFeatures": [], - "imageUrl": "" -} --------------------------------------------------- -// KIBANA diff --git a/docs/api/spaces-management/resolve_copy_saved_objects_conflicts.asciidoc b/docs/api/spaces-management/resolve_copy_saved_objects_conflicts.asciidoc deleted file mode 100644 index 6d799ebb0014..000000000000 --- a/docs/api/spaces-management/resolve_copy_saved_objects_conflicts.asciidoc +++ /dev/null @@ -1,311 +0,0 @@ -[role="xpack"] -[[spaces-api-resolve-copy-saved-objects-conflicts]] -=== Resolve copy saved objects to space conflicts API -++++ -Resolve copy to space conflicts -++++ - -experimental[] Overwrite saved objects that are returned as errors from the <>. - -[[spaces-api-resolve-copy-saved-objects-conflicts-request]] -==== {api-request-title} - -`POST :/api/spaces/_resolve_copy_saved_objects_errors` - -`POST :/s//api/spaces/_resolve_copy_saved_objects_errors` - -[[spaces-api-resolve-copy-saved-objects-conflicts-prereqs]] -==== {api-prereq-title} - -Execute the <>, which returns the errors for you to resolve. - -[[spaces-api-resolve-copy-saved-objects-conflicts-path-params]] -==== {api-path-parms-title} - -`space_id`:: -(Optional, string) The ID of the space that contains the saved objects you want to copy. When `space_id` is unspecified in the URL, the default space is used. The `space_id` must be the same value used during the failed <> operation. - -[role="child_attributes"] -[[spaces-api-resolve-copy-saved-objects-conflicts-request-body]] -==== {api-request-body-title} - -`objects`:: - (Required, object array) The saved objects to copy. The `objects` must be the same values used during the failed <> operation. -+ -.Properties of `objects` -[%collapsible%open] -===== - `type`::: - (Required, string) The saved object type. - - `id`::: - (Required, string) The saved object ID. -===== - -`includeReferences`:: - (Optional, boolean) When set to `true`, all saved objects related to the specified saved objects are copied into the target spaces. The `includeReferences` must be the same values used during the failed <> operation. The default value is `false`. - -`retries`:: - (Required, object) The retry operations to attempt, which can specify how to resolve different types of errors. Object keys represent the - target space IDs. -+ -.Properties of `retries` -[%collapsible%open] -===== - ``::: - (Required, array) The errors to resolve for the specified ``. -+ - -.Properties of `` -[%collapsible%open] -====== - `type`:::: - (Required, string) The saved object type. - `id`:::: - (Required, string) The saved object ID. - `overwrite`:::: - (Required, boolean) When set to `true`, the saved object from the source space (desigated by the <>) overwrites the conflicting object in the destination space. When set to `false`, this does nothing. - `destinationId`:::: - (Optional, string) Specifies the destination ID that the copied object should have, if different from the current ID. - `ignoreMissingReferences`::: - (Optional, boolean) When set to `true`, any missing references errors are ignored. When set to `false`, does nothing. -====== -===== - -[role="child_attributes"] -[[spaces-api-resolve-copy-saved-objects-conflicts-response-body]] -==== {api-response-body-title} - -``:: - (object) An object that describes the result of the copy operation for the space. Includes the dynamic keys in the response. -+ -.Properties of `` -[%collapsible%open] -===== - `success`::: - (boolean) The copy operation was successful. When set to `false`, some objects may have been copied. For additional information, refer to the `successCount` and `errors` properties. - - `successCount`::: - (number) The number of objects that successfully copied. - - `errors`::: - (Optional, array) The errors that occurred during the copy operation. When errors are reported, the `success` flag is set to `false`. -+ -NOTE: One object may result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and a -`conflict` error. -+ - -.Properties of `errors` -[%collapsible%open] -====== - `id`:::: - (string) The saved object ID that failed to copy. - - `type`:::: - (string) The type of saved object that failed to copy. - - `error`:::: - (object) The error that caused the copy operation to fail. -+ - -.Properties of `error` -[%collapsible%open] -======= - `type`:::: - (string) The type of error. For example, `conflict`, `ambiguous_conflict`, `missing_references`, `unsupported_type`, or `unknown`. - `destinationId`:::: - (Optional, string) The destination ID that was used during the copy attempt. This is only present on `conflict` errors types. - `destinations`:::: - (Optional, array) A list of possible object destinations with `id`, `title`, and `updatedAt` fields to describe each one. This is - only present on `ambiguous_conflict` error types. -======= -====== - -`successResults`::: - (Optional, array) Indicates successfully copied objects, with any applicable metadata. -+ -NOTE: Objects are created when all resolvable errors are addressed, including conflict and missing references errors. For more information, -refer to the <>. - -===== - -[[spaces-api-resolve-copy-saved-objects-conflicts-example]] -==== {api-examples-title} - -[[spaces-api-resolve-copy-saved-objects-conflicts-example-1]] -===== Resolve conflict errors - -This example builds upon the <>. - -Resolve conflict errors for an index pattern, visualization, and *Canvas* workpad by overwriting the existing saved objects: - -[source,sh] ----- -$ curl -X POST api/spaces/_resolve_copy_saved_objects_errors -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "includeReferences": true, - "retries": { - "sales": [ - { - "type": "index-pattern", - "id": "my-pattern", - "overwrite": true - }, - { - "type": "visualization", - "id": "my-vis", - "overwrite": true, - "destinationId": "another-vis" - }, - { - "type": "canvas", - "id": "my-canvas", - "overwrite": true, - "destinationId": "yet-another-canvas" - }, - { - "type": "dashboard", - "id": "my-dashboard" - } - ] - } -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "sales": { - "success": true, - "successCount": 4, - "successResults": [ - { - "id": "my-pattern", - "type": "index-pattern", - "meta": { - "icon": "indexPatternApp", - "title": "my-pattern-*" - } - }, - { - "id": "my-vis", - "type": "visualization", - "destinationId": "another-vis", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "destinationId": "yet-another-canvas", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] - } -} ----- - -The result indicates a successful copy, and all four objects are created. - -TIP: If a prior copy attempt resulted in resolvable errors, you must include a retry for each object you want to copy, including any that -were returned in the `successResults` array. In this example, we retried copying the dashboard accordingly. - -[[spaces-api-resolve-copy-saved-objects-conflicts-example-2]] -===== Resolve missing reference errors - -This example builds upon the <>. - -Resolve missing reference errors for a visualization by ignoring the error: - -[source,sh] ----- -$ curl -X POST api/spaces/_resolve_copy_saved_objects_errors -{ - "objects": [{ - "type": "dashboard", - "id": "my-dashboard" - }], - "includeReferences": true, - "retries": { - "marketing": [ - { - "type": "visualization", - "id": "my-vis", - "ignoreMissingReferences": true - }, - { - "type": "canvas", - "id": "my-canvas" - }, - { - "type": "dashboard", - "id": "my-dashboard" - } - ] - } -} ----- -// KIBANA - -The API returns the following: - -[source,sh] ----- -{ - "marketing": { - "success": true, - "successCount": 3, - "successResults": [ - { - "id": "my-vis", - "type": "visualization", - "meta": { - "icon": "visualizeApp", - "title": "Look at my visualization" - } - }, - { - "id": "my-canvas", - "type": "canvas-workpad", - "meta": { - "icon": "canvasApp", - "title": "Look at my canvas" - } - }, - { - "id": "my-dashboard", - "type": "dashboard", - "meta": { - "icon": "dashboardApp", - "title": "Look at my dashboard" - } - } - ] - } -} ----- - -The result indicates a successful copy and all three objects are created. - -TIP: If a prior copy attempt resulted in resolvable errors, you must include a retry for each object you want to copy, including any that -were returned in the `successResults` array. In this example, we retried copying the dashboard and canvas accordingly. diff --git a/docs/api/upgrade-assistant.asciidoc b/docs/api/upgrade-assistant.asciidoc deleted file mode 100644 index 39d3cb9ecb76..000000000000 --- a/docs/api/upgrade-assistant.asciidoc +++ /dev/null @@ -1,27 +0,0 @@ -[role="xpack"] -[[upgrade-assistant-api]] -== Upgrade assistant APIs - -Check the upgrade status of your {es} cluster and reindex indices that were created in the previous major version. The assistant helps you prepare for the next major version of {es}. - -The following upgrade assistant APIs are available: - -* <> to check the status of your cluster - -* <> to start a new reindex or resume a paused reindex - -* <> to start or resume multiple reindex tasks - -* <> to check the current reindex batch queue - -* <> to check the status of the reindex operation - -* <> to cancel reindexes that are waiting for the {es} reindex task to complete - -include::upgrade-assistant/status.asciidoc[] -include::upgrade-assistant/reindexing.asciidoc[] -include::upgrade-assistant/batch_reindexing.asciidoc[] -include::upgrade-assistant/batch_queue.asciidoc[] -include::upgrade-assistant/default-field.asciidoc[] -include::upgrade-assistant/check_reindex_status.asciidoc[] -include::upgrade-assistant/cancel_reindex.asciidoc[] diff --git a/docs/api/upgrade-assistant/batch_queue.asciidoc b/docs/api/upgrade-assistant/batch_queue.asciidoc deleted file mode 100644 index dcb9b465e4dd..000000000000 --- a/docs/api/upgrade-assistant/batch_queue.asciidoc +++ /dev/null @@ -1,68 +0,0 @@ -[[batch-reindex-queue]] -=== Batch reindex queue API -++++ -Batch reindex queue -++++ - -experimental["The underlying Upgrade Assistant concepts are stable, but the APIs for managing Upgrade Assistant are experimental."] - -Check the current reindex batch queue. - -[[batch-reindex-queue-request]] -==== Request - -`GET /api/upgrade_assistant/reindex/batch/queue` - -[[batch-reindex-queue-request-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[batch-reindex-queue-example]] -==== Example - -The API returns the following: - -[source,js] --------------------------------------------------- -{ - "queue": [ <1> - { - "indexName": "index1", - "newIndexName": "reindexed-v8-index2", - "status": 3, - "lastCompletedStep": 0, - "locked": null, - "reindexTaskId": null, - "reindexTaskPercComplete": null, - "errorMessage": null, - "runningReindexCount": null, - "reindexOptions": { - "queueSettings": { - "queuedAt": 1583406985489 - } - } - }, - { - "indexName": "index2", - "newIndexName": "reindexed-v8-index2", - "status": 3, - "lastCompletedStep": 0, - "locked": null, - "reindexTaskId": null, - "reindexTaskPercComplete": null, - "errorMessage": null, - "runningReindexCount": null, - "reindexOptions": { - "queueSettings": { - "queuedAt": 1583406987334 - } - } - } - ] -} --------------------------------------------------- - -<1> Items in this array indicate reindex tasks at a given point in time and the order in which they will be executed. - diff --git a/docs/api/upgrade-assistant/batch_reindexing.asciidoc b/docs/api/upgrade-assistant/batch_reindexing.asciidoc deleted file mode 100644 index db3e080d0918..000000000000 --- a/docs/api/upgrade-assistant/batch_reindexing.asciidoc +++ /dev/null @@ -1,83 +0,0 @@ -[[batch-start-resume-reindex]] -=== Batch start or resume reindex API -++++ -Batch start or resume reindex -++++ - -experimental["The underlying Upgrade Assistant concepts are stable, but the APIs for managing Upgrade Assistant are experimental."] - -Start or resume multiple reindexing tasks in one request. Additionally, reindexing tasks started or resumed -via the batch endpoint will be placed on a queue and executed one-by-one, which ensures that minimal cluster resources -are consumed over time. - -[[batch-start-resume-reindex-request]] -==== Request - -`POST /api/upgrade_assistant/reindex/batch` - -[[batch-start-resume-reindex-request-body]] -==== Request body - -`indexNames`:: - (Required, array) The list of index names to be reindexed. - -[[batch-start-resume-reindex-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[batch-start-resume-example]] -==== Example - -[source,js] --------------------------------------------------- -$ curl -X POST api/upgrade_assistant/reindex/batch -{ - "indexNames": [ <1> - "index1", - "index2" - ] -} --------------------------------------------------- -// KIBANA - -<1> The order of the indices determines the order that the reindex tasks are executed. - -Similar to the <>, the API returns the following: - -[source,js] --------------------------------------------------- -{ - "enqueued": [ <1> - { - "indexName": "index1", - "newIndexName": "reindexed-v8-index1", - "status": 3, - "lastCompletedStep": 0, - "locked": null, - "reindexTaskId": null, - "reindexTaskPercComplete": null, - "errorMessage": null, - "runningReindexCount": null, - "reindexOptions": { <2> - "queueSettings": { - "queuedAt": 1583406985489 <3> - } - } - } - ], - "errors": [ <4> - { - "indexName": "index2", - "message": "Something went wrong!" - } - ] -} --------------------------------------------------- - -<1> A list of reindex operations created, the order in the array indicates the order in which tasks will be executed. -<2> Presence of this key indicates that the reindex job will occur in the batch. -<3> A Unix timestamp of when the reindex task was placed in the queue. -<4> A list of errors that may have occurred preventing the reindex task from being created. - diff --git a/docs/api/upgrade-assistant/cancel_reindex.asciidoc b/docs/api/upgrade-assistant/cancel_reindex.asciidoc deleted file mode 100644 index 04ab3bdde35f..000000000000 --- a/docs/api/upgrade-assistant/cancel_reindex.asciidoc +++ /dev/null @@ -1,32 +0,0 @@ -[[cancel-reindex]] -=== Cancel reindex API -++++ -Cancel reindex -++++ - -experimental[] Cancel reindexes that are waiting for the {es} reindex task to complete. For example, `lastCompletedStep` set to `40`. - -Cancel reindexes that are waiting for the Elasticsearch reindex task to complete. For example, `lastCompletedStep` set to `40`. - -[[cancel-reindex-request]] -==== Request - -`POST :/api/upgrade_assistant/reindex/myIndex/cancel` - -[[cancel-reindex-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -[[cancel-reindex-status-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "acknowledged": true -} --------------------------------------------------- diff --git a/docs/api/upgrade-assistant/check_reindex_status.asciidoc b/docs/api/upgrade-assistant/check_reindex_status.asciidoc deleted file mode 100644 index 75aac7b3699f..000000000000 --- a/docs/api/upgrade-assistant/check_reindex_status.asciidoc +++ /dev/null @@ -1,109 +0,0 @@ -[[check-reindex-status]] -=== Check reindex status API -++++ -Check reindex status -++++ - -experimental[] Check the status of the reindex operation. - -[[check-reindex-status-request]] -==== Request - -`GET :/api/upgrade_assistant/reindex/myIndex` - -[[check-reindex-status-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -[[check-reindex-status-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "reindexOp": { - "indexName": ".ml-state", - "newIndexName": ".reindexed-v7-ml-state", <1> - "status": 0, <2> - "lastCompletedStep": 40, <3> - "reindexTaskId": "QprwvTMzRQ2MLWOW22oQ4Q:11819", <4> - "reindexTaskPercComplete": 0.3, <5> - "errorMessage": null <6> - }, - "warnings": [], <7> - "hasRequiredPrivileges": true <8> -} --------------------------------------------------- - -<1> Name of the new index that is being created. -<2> Current status of the reindex. For details, see <>. -<3> Last successfully completed step of the reindex. For details, see <> table. -<4> Task ID of the reindex task in Elasticsearch. Only present if reindexing has started. -<5> Percentage of how far the reindexing task in Elasticsearch has progressed, in decimal from from 0 to 1. -<6> Error that caused the reindex to fail, if it failed. -<7> An array of any warning codes explaining what changes are required for this reindex. For details, see <>. -<8> Specifies if the user has sufficient privileges to reindex this index. When security is unavailable or disables, returns `true`. - -[[status-code]] -==== Status codes - -`0`:: - In progress - -`1`:: - Completed - -`2`:: - Failed - -`3`:: - Paused -+ -NOTE: If the {kib} node that started the reindex is shutdown or restarted, the reindex goes into a paused state after some time. -To resume the reindex, you must submit a new POST request to the `/api/upgrade_assistant/reindex/` endpoint. - -`4`:: - Cancelled - -[[step-code]] -==== Step codes - -`0`:: - The reindex operation has been created in Kibana. - -`10`:: - The index group services stopped. Only applies to some system indices. - -`20`:: - The index is set to `readonly`. - -`30`:: - The new destination index has been created. - -`40`:: - The reindex task in Elasticsearch has started. - -`50`:: - The reindex task in Elasticsearch has completed. - -`60`:: - Aliases were created to point to the new index, and the old index has been deleted. - -`70`:: - The index group services have resumed. Only applies to some system indices. - -[[warning-code]] -==== Warning codes - -`0`:: - Specifies to remove the `_all` meta field. - -`1`:: - Specifies to convert any coerced boolean values in the source document. For example, `yes`, `1`, and `off`. - -`2`:: - Specifies to convert documents to support Elastic Common Schema. Only applies to APM indices created in 6.x. diff --git a/docs/api/upgrade-assistant/default-field.asciidoc b/docs/api/upgrade-assistant/default-field.asciidoc deleted file mode 100644 index e40c38c8e8c8..000000000000 --- a/docs/api/upgrade-assistant/default-field.asciidoc +++ /dev/null @@ -1,113 +0,0 @@ -[[upgrade-assistant-api-default-field]] -=== Add default field API -++++ -Add default field -++++ - -experimental[] In {es} 7.0 and later, some query types, such as Simple Query String, have a limit to the number of fields they can query against. -To configure the cap in {es}, set the `indices.query.bool.max_clause_count` cluster setting, which is 1024 by default. - -For indices with more fields than the cap, add the `index.query.default_field` index setting to inform {es} which -fields to use by default when no field is specified for a query. Use the add default field API to add the `index.query.default_field` setting to an {es} index. - -[[upgrade-assistant-api-default-field-request]] -==== Request - -To add the `index.query.default_field` setting to an {es} index, submit a POST request to `/api/upgrade_assistant/add_query_default_field/`: - -[source,js] --------------------------------------------------- -POST /api/upgrade_assistant/add_query_default_field/myIndex -{ - "fieldTypes": ["text", "keyword"], <1> - "otherFields": ["myField.*"] <2> -} --------------------------------------------------- -// KIBANA - -<1> A required array of {es} field types that generate the list of fields. -<2> An optional array of additional field names, dot-deliminated. - -To add the `index.query.default_field` index setting to the specified index, {kib} generates an array of all fields from the index mapping. -The fields contain the types specified in `fieldTypes`. {kib} appends any other fields specified in `otherFields` to the array of default fields. - -[[upgrade-assistant-api-default-field-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - - `400`:: - Indicates that the index already has the `index.query.default_field` setting. No changes are made to the index. - -[[upgrade-assistant-api-default-field-response-body]] -==== Response body - -The response body contains a JSON structure, similar to the following: - -[source,js] --------------------------------------------------- -{ - "acknowledged": true -} --------------------------------------------------- - -[[upgrade-assistant-api-default-field-example]] -==== Example - -Your index contains following mappings: - -[source,js] --------------------------------------------------- -GET /myIndex/_mappings -{ - "myIndex": { - "mappings": { - "properties": { - "field1": { "type": "text" }, - "field2": { "type": "float" }, - "nestedfield": { - "properties": { - "field3": { "type": "keyword" }, - "field4": { "type": "long" }, - } - } - } - } - } -} --------------------------------------------------- -// CONSOLE - -Make the following request to {kib}: - -[source,js] --------------------------------------------------- -POST /api/upgrade_assistant/add_query_default_field/myIndex -{ - "fieldTypes": ["text", "long"], - "otherFields": ["field2"] -} --------------------------------------------------- -// KIBANA - -The API returns the following: - -[source,js] --------------------------------------------------- -GET /myIndex/_settings?flat_settings=true -{ - "myIndex": { - "settings": { - "index.query.default_field": [ - "field1", - "nestedfield.field4", - "field2", - ] - } - } -} --------------------------------------------------- -// CONSOLE - -{kib} generates the `field1` and `nestedfield.field4` values based on the specified `fieldTypes`, then appends the `otherFields` to the array. diff --git a/docs/api/upgrade-assistant/reindexing.asciidoc b/docs/api/upgrade-assistant/reindexing.asciidoc deleted file mode 100644 index ce5670822e5a..000000000000 --- a/docs/api/upgrade-assistant/reindexing.asciidoc +++ /dev/null @@ -1,45 +0,0 @@ -[[start-resume-reindex]] -=== Start or resume reindex API -++++ -Start or resume reindex -++++ - -experimental[] Start a new reindex or resume a paused reindex. - -Start a new reindex or resume a paused reindex. - -[[start-resume-reindex-request]] -==== Request - -`POST :/api/upgrade_assistant/reindex/myIndex` - -[[start-resume-reindex-codes]] -==== Response code - -`200`:: - Indicates a successful call. - -[[start-resume-reindex-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "indexName": ".ml-state", - "newIndexName": ".reindexed-v7-ml-state", <1> - "status": 0, <2> - "lastCompletedStep": 0, <3> - "reindexTaskId": null, <4> - "reindexTaskPercComplete": null, <5> - "errorMessage": null <6> -} --------------------------------------------------- - -<1> The name of the new index. -<2> The reindex status. For more information, refer to <>. -<3> The last successfully completed step of the reindex. For more information, refer to <>. -<4> The task ID of the reindex task in {es}. Appears when the reindexing starts. -<5> The progress of the reindexing task in {es}. Appears in decimal form, from 0 to 1. -<6> The error that caused the reindex to fail, if it failed. diff --git a/docs/api/upgrade-assistant/status.asciidoc b/docs/api/upgrade-assistant/status.asciidoc deleted file mode 100644 index 42030061c428..000000000000 --- a/docs/api/upgrade-assistant/status.asciidoc +++ /dev/null @@ -1,52 +0,0 @@ -[[upgrade-assistant-api-status]] -=== Upgrade readiness status API -++++ -Upgrade readiness status -++++ - -experimental[] Check the status of your cluster. - -Check the status of your cluster. - -[[upgrade-assistant-api-status-request]] -==== Request - -`GET :/api/upgrade_assistant/status` - -[[upgrade-assistant-api-status-response-codes]] -==== Response codes - -`200`:: - Indicates a successful call. - -[[upgrade-assistant-api-status-example]] -==== Example - -The API returns the following: - -[source,sh] --------------------------------------------------- -{ - "readyForUpgrade": false, - "cluster": [ - { - "message": "Cluster deprecated issue", - "details": "...", - "level": "warning", - "url": "https://docs.elastic.co/..." - } - ], - "indices": [ - { - "message": "Index was created before 6.0", - "details": "...", - "index": "myIndex", - "level": "critical", - "reindex": true, <1> - "url": "https://docs.elastic.co/..." - } - ] -} --------------------------------------------------- - -<1> To fix indices with the `reindex` attribute, set to `true` using the <>. diff --git a/docs/apm/advanced-queries.asciidoc b/docs/apm/advanced-queries.asciidoc deleted file mode 100644 index 7b771eb66261..000000000000 --- a/docs/apm/advanced-queries.asciidoc +++ /dev/null @@ -1,64 +0,0 @@ -[role="xpack"] -[[advanced-queries]] -=== Query your data - -Querying your APM data is a powerful tool that can make finding bottlenecks in your code even easier. -Imagine you have a user that complains about a slow response time in a specific service. -With the query bar, you can easily filter the APM app to only display trace data for that user, -or, to only show transactions that are slower than a specified time threshold. - -[float] -==== Example APM app queries - -* Exclude response times slower than 2000 ms: `transaction.duration.us > 2000000` -* Filter by response status code: `context.response.status_code ≥ 400` -* Filter by single user ID: `context.user.id : 12` - -When querying in the APM app, you're merely searching and selecting data from fields in Elasticsearch documents. -Queries entered into the query bar are also added as parameters to the URL, -so it's easy to share a specific query or view with others. - -When you type, you can begin to see some of the transaction fields available for filtering: - -[role="screenshot"] -image::apm/images/apm-query-bar.png[Example of the Kibana Query bar in APM app in Kibana] - -TIP: Read the {kibana-ref}/kuery-query.html[Kibana Query Language Enhancements] documentation to learn more about the capabilities of the {kib} query language. - -[float] -[[discover-advanced-queries]] -=== Querying in Discover - -Alternatively, you can query your APM documents in {kibana-ref}/discover.html[*Discover*]. -Querying documents in *Discover* works the same way as querying in the APM app, -and *Discover* supports all of the example APM app queries shown on this page. - -[float] -==== Example Discover query - -One example where you may want to make use of *Discover*, -is for viewing _all_ transactions for an endpoint, instead of just a sample. - -TIP: Starting in v7.6, you can view ten samples per bucket in the APM app, instead of just one. - -Use the APM app to find a transaction name and time bucket that you're interested in learning more about. -Then, switch to *Discover* and make a search: - -["source","sh"] ------ -processor.event: "transaction" AND transaction.name: "" and transaction.duration.us > 13000 and transaction.duration.us < 14000` ------ - -In this example, we're interested in viewing all of the `APIRestController#customers` transactions -that took between 13 and 14 milliseconds. Here's what Discover returns: - -[role="screenshot"] -image::apm/images/advanced-discover.png[View all transactions in bucket] - -You can now explore the data until you find a specific transaction that you're interested in. -Copy that transaction's `transaction.id`, and paste it into the APM app to view the data in the context of the APM app: - -[role="screenshot"] -image::apm/images/specific-transaction-search.png[View specific transaction in apm app] -[role="screenshot"] -image::apm/images/specific-transaction.png[View specific transaction in apm app] diff --git a/docs/apm/agent-configuration.asciidoc b/docs/apm/agent-configuration.asciidoc deleted file mode 100644 index f5c89d19afaf..000000000000 --- a/docs/apm/agent-configuration.asciidoc +++ /dev/null @@ -1,51 +0,0 @@ -[role="xpack"] -[[agent-configuration]] -=== APM Agent central configuration - -++++ -Configure APM agents with central config -++++ - -APM Agent configuration allows you to fine-tune your agent configuration from within the APM app. -Changes are automatically propagated to your APM agents, so there's no need to redeploy. - -To get started, choose the services and environments you wish to configure. -The APM app will let you know when your agents have applied your configurations. - -[role="screenshot"] -image::apm/images/apm-agent-configuration.png[APM Agent configuration in Kibana] - -[float] -==== Precedence - -Configurations set from the APM app take precedence over configurations set locally in each Agent. -However, if APM Server is slow to respond, is offline, reports an error, etc., -APM agents will use local defaults until they're able to update the configuration. -For this reason, it is still essential to set custom default configurations locally in each of your agents. - -[float] -==== APM Server setup - -This feature requires https://www.elastic.co/guide/en/apm/server/master/setup-kibana-endpoint.html[Kibana endpoint configuration] in APM Server. - -APM Server acts as a proxy between the agents and Kibana. -Kibana communicates any changed settings to APM Server so that your agents only need to poll APM Server to determine which settings have changed. - -[float] -==== Supported configurations - -Each Agent has a list of supported configurations. -After selecting a Service name and environment in the APM app, -a list of all supported configuration options, -including descriptions and default values, will be displayed. - -Supported configurations are also tagged with the image:./images/dynamic-config.svg[] badge in each Agent's configuration reference: - -[horizontal] -Go Agent:: {apm-go-ref}/configuration.html[Configuration reference] -Java Agent:: {apm-java-ref}/configuration.html[Configuration reference] -.NET Agent:: {apm-dotnet-ref}/configuration.html[Configuration reference] -Node.js Agent:: {apm-node-ref}/configuration.html[Configuration reference] -Python Agent:: {apm-py-ref}/configuration.html[Configuration reference] -Ruby Agent:: {apm-ruby-ref}/configuration.html[Configuration reference] -Real User Monitoring (RUM) Agent:: {apm-rum-ref}/configuration.html[Configuration reference] diff --git a/docs/apm/api.asciidoc b/docs/apm/api.asciidoc deleted file mode 100644 index 01ba084b9e9e..000000000000 --- a/docs/apm/api.asciidoc +++ /dev/null @@ -1,555 +0,0 @@ -[role="xpack"] -[[apm-api]] -== APM app API - -++++ -REST API -++++ - -Some APM app features are provided via a REST API: - -* <> -* <> -* <> - -[float] -[[apm-api-example]] -=== Using the APIs - -// The following content is reused throughout the API docs -// tag::using-the-APIs[] -Interact with APM APIs using cURL or another API tool. -All APM APIs are Kibana APIs, not Elasticsearch APIs; -because of this, the Kibana dev tools console cannot be used to interact with APM APIs. - -For all APM APIs, you must use a request header. -Supported headers are `Authorization`, `kbn-xsrf`, and `Content-Type`. - -`Authorization: ApiKey {credentials}`:: -Kibana supports token-based authentication with the Elasticsearch API key service. -The API key returned by the {ref}/security-api-create-api-key.html[Elasticsearch create API key API] -can be used by sending a request with an `Authorization` header that has a value of `ApiKey` followed by the `{credentials}`, -where `{credentials}` is the base64 encoding of `id` and `api_key` joined by a colon. -+ -Alternatively, you can create a user and use their username and password to authenticate API access: `-u $USER:$PASSWORD`. -+ -Whether using `Authorization: ApiKey {credentials}`, or `-u $USER:$PASSWORD`, -users interacting with APM APIs must have <>. - -`kbn-xsrf: true`:: - By default, you must use `kbn-xsrf` for all API calls, except in the following scenarios: - -* The API endpoint uses the `GET` or `HEAD` operations -* The path is whitelisted using the <> setting -* XSRF protections are disabled using the <> setting - -`Content-Type: application/json`:: - Applicable only when you send a payload in the API request. - {kib} API requests and responses use JSON. - Typically, if you include the `kbn-xsrf` header, you must also include the `Content-Type` header. -// end::using-the-APIs[] - -Here's an example CURL request that adds an annotation to the APM app: - -[source,curl] ----- -curl -X POST \ - http://localhost:5601/api/apm/services/opbeans-java/annotation \ --H 'Content-Type: application/json' \ --H 'kbn-xsrf: true' \ --H 'Authorization: Basic YhUlubWZhM0FDbnlQeE6WRtaW49FQmSGZ4RUWXdX' \ --d '{ - "@timestamp": "2020-05-11T10:31:30.452Z", - "service": { - "version": "1.2" - }, - "message": "Revert upgrade", - "tags": [ - "elastic.co", "customer" - ] - }' ----- - -//// -******************************************************* -//// - -[role="xpack"] -[[agent-config-api]] -=== Agent Configuration API - -The Agent configuration API allows you to fine-tune your APM agent configuration, -without needing to redeploy your application. - -The following Agent configuration APIs are available: - -* <> to create or update an Agent configuration -* <> to delete an Agent configuration. -* <> to list all Agent configurations. -* <> to search for an Agent configuration. - -[float] -[[use-agent-config-api]] -==== How to use APM APIs - -.Expand for required headers, privileges, and usage details -[%collapsible%closed] -====== -include::api.asciidoc[tag=using-the-APIs] -====== - -//// -******************************************************* -//// - -[[apm-update-config]] -==== Create or update configuration - -[[apm-update-config-req]] -===== Request - -`PUT /api/apm/settings/agent-configuration` - -[role="child_attributes"] -[[apm-update-config-req-body]] -===== Request body - -`service`:: -(required, object) Service identifying the configuration to create or update. -+ -.Properties of `service` -[%collapsible%open] -====== -`name` ::: - (required, string) Name of service - -`environment` ::: - (optional, string) Environment of service -====== - -`settings`:: -(required) Key/value object with option name and option value. - -`agent_name`:: -(optional) The agent name is used by the UI to determine which settings to display. - - -[[apm-update-config-example]] -===== Example - -[source,curl] --------------------------------------------------- -PUT /api/apm/settings/agent-configuration -{ - "service": { - "name": "frontend", - "environment": "production" - }, - "settings": { - "transaction_sample_rate": "0.4", - "capture_body": "off", - "transaction_max_spans": "500" - }, - "agent_name": "nodejs" -} --------------------------------------------------- - -//// -******************************************************* -//// - - -[[apm-delete-config]] -==== Delete configuration - -[[apm-delete-config-req]] -===== Request - -`DELETE /api/apm/settings/agent-configuration` - -[role="child_attributes"] -[[apm-delete-config-req-body]] -===== Request body -`service`:: -(required, object) Service identifying the configuration to delete -+ -.Properties of `service` -[%collapsible%open] -====== -`name` ::: - (required, string) Name of service - -`environment` ::: - (optional, string) Environment of service -====== - - -[[apm-delete-config-example]] -===== Example - -[source,curl] --------------------------------------------------- -DELETE /api/apm/settings/agent-configuration -{ - "service" : { - "name": "frontend", - "environment": "production" - } -} --------------------------------------------------- - -//// -******************************************************* -//// - - -[[apm-list-config]] -==== List configuration - - -[[apm-list-config-req]] -===== Request - -`GET /api/apm/settings/agent-configuration` - -[[apm-list-config-body]] -===== Response body - -[source,js] --------------------------------------------------- -[ - { - "agent_name": "go", - "service": { - "name": "opbeans-go", - "environment": "production" - }, - "settings": { - "transaction_sample_rate": "1", - "capture_body": "off", - "transaction_max_spans": "200" - }, - "@timestamp": 1581934104843, - "applied_by_agent": false, - "etag": "1e58c178efeebae15c25c539da740d21dee422fc" - }, - { - "agent_name": "go", - "service": { - "name": "opbeans-go" - }, - "settings": { - "transaction_sample_rate": "1", - "capture_body": "off", - "transaction_max_spans": "300" - }, - "@timestamp": 1581934111727, - "applied_by_agent": false, - "etag": "3eed916d3db434d9fb7f039daa681c7a04539a64" - }, - { - "agent_name": "nodejs", - "service": { - "name": "frontend" - }, - "settings": { - "transaction_sample_rate": "1", - }, - "@timestamp": 1582031336265, - "applied_by_agent": false, - "etag": "5080ed25785b7b19f32713681e79f46996801a5b" - } -] --------------------------------------------------- - -[[apm-list-config-example]] -===== Example - -[source,curl] --------------------------------------------------- -GET /api/apm/settings/agent-configuration --------------------------------------------------- - -//// -******************************************************* -//// - - -[[apm-search-config]] -==== Search configuration - -[[apm-search-config-req]] -===== Request - -`POST /api/apm/settings/agent-configuration/search` - -[role="child_attributes"] -[[apm-search-config-req-body]] -===== Request body - -`service`:: -(required, object) Service identifying the configuration. -+ -.Properties of `service` -[%collapsible%open] -====== -`name` ::: - (required, string) Name of service - -`environment` ::: - (optional, string) Environment of service -====== - -`etag`:: -(required) etag is sent by the agent to indicate the etag of the last successfully applied configuration. If the etag matches an existing configuration its `applied_by_agent` property will be set to `true`. Every time a configuration is edited `applied_by_agent` is reset to `false`. - -[[apm-search-config-body]] -===== Response body - -[source,js] --------------------------------------------------- -{ - "_index": ".apm-agent-configuration", - "_id": "CIaqXXABmQCdPphWj8EJ", - "_score": 2, - "_source": { - "agent_name": "nodejs", - "service": { - "name": "frontend" - }, - "settings": { - "transaction_sample_rate": "1", - }, - "@timestamp": 1582031336265, - "applied_by_agent": false, - "etag": "5080ed25785b7b19f32713681e79f46996801a5b" - } -} --------------------------------------------------- - -[[apm-search-config-example]] -===== Example - -[source,curl] --------------------------------------------------- -POST /api/apm/settings/agent-configuration/search -{ - "etag": "1e58c178efeebae15c25c539da740d21dee422fc", - "service" : { - "name": "frontend", - "environment": "production" - } -} --------------------------------------------------- - -//// -******************************************************* -******************************************************* -//// - -[role="xpack"] -[[apm-annotation-api]] -=== Annotation API - -The Annotation API allows you to annotate visualizations in the APM app with significant events, like deployments, -allowing you to easily see how these events are impacting the performance of your existing applications. - -By default, annotations are stored in a newly created `observability-annotations` index. -The name of this index can be changed in your `config.yml` by editing `xpack.observability.annotations.index`. -If you change the default index name, you'll also need to <> accordingly. - -The following APIs are available: - -* <> to create an annotation for APM. -// * <> POST /api/observability/annotation -// * <> GET /api/observability/annotation/:id -// * <> DELETE /api/observability/annotation/:id - -[float] -[[use-annotation-api]] -==== How to use APM APIs - -.Expand for required headers, privileges, and usage details -[%collapsible%closed] -====== -include::api.asciidoc[tag=using-the-APIs] -====== - -//// -******************************************************* -//// - -[[apm-annotation-create]] -==== Create or update annotation - -[[apm-annotation-config-req]] -===== Request - -`POST /api/apm/services/:serviceName/annotation` - -[role="child_attributes"] -[[apm-annotation-config-req-body]] -===== Request body - -`service`:: -(required, object) Service identifying the configuration to create or update. -+ -.Properties of `service` -[%collapsible%open] -====== -`version` ::: - (required, string) Version of service. - -`environment` ::: - (optional, string) Environment of service. -====== - -`@timestamp`:: -(required, string) The date and time of the annotation. Must be in https://www.w3.org/TR/NOTE-datetime[ISO 8601] format. - -`message`:: -(optional, string) The message displayed in the annotation. Defaults to `service.version`. - -`tags`:: -(optional, array) Tags are used by the APM app to distinguish APM annotations from other annotations. -Tags may have additional functionality in future releases. Defaults to `[apm]`. -While you can add additional tags, you cannot remove the `apm` tag. - -[[apm-annotation-config-example]] -===== Example - -The following example creates an annotation for a service named `opbeans-java`. - -[source,curl] --------------------------------------------------- -curl -X POST \ - http://localhost:5601/api/apm/services/opbeans-java/annotation \ --H 'Content-Type: application/json' \ --H 'kbn-xsrf: true' \ --H 'Authorization: Basic YhUlubWZhM0FDbnlQeE6WRtaW49FQmSGZ4RUWXdX' \ --d '{ - "@timestamp": "2020-05-08T10:31:30.452Z", - "service": { - "version": "1.2" - }, - "message": "Deployment 1.2" - }' --------------------------------------------------- - -[[apm-annotation-config-body]] -===== Response body - -[source,js] --------------------------------------------------- -{ - "_index": "observability-annotations", - "_id": "Lc9I93EBh6DbmkeV7nFX", - "_version": 1, - "_seq_no": 12, - "_primary_term": 1, - "found": true, - "_source": { - "message": "Deployment 1.2", - "@timestamp": "2020-05-08T10:31:30.452Z", - "service": { - "version": "1.2", - "name": "opbeans-java" - }, - "tags": [ - "apm", - "elastic.co", - "customer" - ], - "annotation": { - "type": "deployment" - }, - "event": { - "created": "2020-05-09T02:34:43.937Z" - } - } -} --------------------------------------------------- - -//// -******************************************************* -//// - -[[kibana-api]] -=== Kibana API - -In addition to the APM specific API endpoints, Kibana provides its own <> -which you can use to automate certain aspects of configuring and deploying Kibana. -An example is below. - -[[api-create-apm-index-pattern]] -==== Customize the APM index pattern - -As an alternative to updating <> in your `kibana.yml` configuration file, -you can use Kibana's <> to update the default APM index pattern on the fly. - -The following example sets the default APM app index pattern to `some-other-pattern-*`: - -[source,sh] ----- -curl -X PUT "localhost:5601/api/saved_objects/index-pattern/apm_static_index_pattern_id" \ <1> --H 'Content-Type: application/json' \ --H 'kbn-xsrf: true' \ --H 'Authorization: Basic ${YOUR_AUTH_TOKEN}' \ --d' { - "attributes": { - "title": "some-other-pattern-*", <2> - } - }' ----- -<1> `apm_static_index_pattern_id` is the internal, hard-coded ID of the APM index pattern. -This value should not be changed -<2> Your custom index pattern matcher. - -The API returns the following: - -[source,json] ----- -{ - "id":"apm_static_index_pattern_id", - "type":"index-pattern", - "updated_at":"2020-07-06T22:55:59.555Z", - "version":"WzYsMV0=", - "attributes":{ - "title":"some-other-pattern-*" - } -} ----- - -To view the new APM app index pattern, use the <>: - -[source,sh] ----- -curl -X GET "localhost:5601/api/saved_objects/index-pattern/apm_static_index_pattern_id" \ <1> --H 'kbn-xsrf: true' \ --H 'Authorization: Basic ${YOUR_AUTH_TOKEN}' ----- -<1> `apm_static_index_pattern_id` is the internal, hard-coded ID of the APM index pattern. - -The API returns the following: - -[source,json] ----- -{ - "id":"apm_static_index_pattern_id", - "type":"index-pattern", - "updated_at":"2020-07-06T22:55:59.555Z", - "version":"WzYsMV0=", - "attributes":{...} - "fieldFormatMap":"{...} - "fields":"[{...},{...},...] - "sourceFilters":"[{\"value\":\"sourcemap.sourcemap\"}]", - "timeFieldName":"@timestamp", - "title":"some-other-pattern-*" - }, - ... -} ----- - -// More examples will go here - -More information on Kibana's API is available in <>. diff --git a/docs/apm/apm-alerts.asciidoc b/docs/apm/apm-alerts.asciidoc deleted file mode 100644 index 7bdfe80b4217..000000000000 --- a/docs/apm/apm-alerts.asciidoc +++ /dev/null @@ -1,130 +0,0 @@ -[role="xpack"] -[[apm-alerts]] -=== Alerts - -++++ -Create an alert -++++ - -beta::[] - -The APM app integrates with Kibana's {kibana-ref}/alerting-getting-started.html[alerting and actions] feature. -It provides a set of built-in **actions** and APM specific threshold **alerts** for you to use -and enables central management of all alerts from <>. - -[role="screenshot"] -image::apm/images/apm-alert.png[Create an alert in the APM app] - -For a walkthrough of the alert flyout panel, including detailed information on each configurable property, -see Kibana's <>. - -The APM app supports four different types of alerts: - -* Transaction duration anomaly: -alerts when the service's transaction duration reaches a certain anomaly score -* Transaction duration threshold: -alerts when the service's transaction duration exceeds a given time limit over a given time frame -* Transaction error rate threshold: -alerts when the service's transaction error rate is above the selected rate over a given time frame -* Error count threshold: -alerts when service exceeds a selected number of errors over a given time frame - -Below, we'll walk through the creation of two of these alerts. - -[float] -[[apm-create-transaction-alert]] -=== Example: create a transaction duration alert - -Transaction duration alerts trigger when the duration of a specific transaction type in a service exceeds a defined threshold. -This guide will create an alert for the `opbeans-java` service based on the following criteria: - -* Environment: Production -* Transaction type: `transaction.type:request` -* Average request is above `1500ms` for the last 5 minutes -* Check every 10 minutes, and repeat the alert every 30 minutes -* Send the alert via Slack - -From the APM app, navigate to the `opbeans-java` service and select -**Alerts** > **Create threshold alert** > **Transaction duration**. - -`Transaction duration | opbeans-java` is automatically set as the name of the alert, -and `apm` and `service.name:opbeans-java` are added as tags. -It's fine to change the name of the alert, but do not edit the tags. - -Based on the alert criteria, define the following alert details: - -* **Check every** - `10 minutes` -* **Notify every** - `30 minutes` -* **TYPE** - `request` -* **WHEN** - `avg` -* **IS ABOVE** - `1500ms` -* **FOR THE LAST** - `5 minutes` - -Select an action type. -Multiple action types can be selected, but in this example, we want to post to a Slack channel. -Select **Slack** > **Create a connector**. -Enter a name for the connector, -and paste the webhook URL. -See Slack's webhook documentation if you need to create one. - -A default message is provided as a starting point for your alert. -You can use the https://mustache.github.io/[Mustache] template syntax, i.e., `{{variable}}` -to pass additional alert values at the time a condition is detected to an action. -A list of available variables can be accessed by selecting the -**add variable** button image:apm/images/add-variable.png[add variable button]. - -Select **Save**. The alert has been created and is now active! - -[float] -[[apm-create-error-alert]] -=== Example: create an error rate alert - -Error rate alerts trigger when the number of errors in a service exceeds a defined threshold. -This guide creates an alert for the `opbeans-python` service based on the following criteria: - -* Environment: Production -* Error rate is above 25 for the last minute -* Check every 1 minute, and repeat the alert every 10 minutes -* Send the alert via email to the `opbeans-python` team - -From the APM app, navigate to the `opbeans-python` service and select -**Alerts** > **Create threshold alert** > **Error rate**. - -`Error rate | opbeans-python` is automatically set as the name of the alert, -and `apm` and `service.name:opbeans-python` are added as tags. -It's fine to change the name of the alert, but do not edit the tags. - -Based on the alert criteria, define the following alert details: - -* **Check every** - `1 minute` -* **Notify every** - `10 minutes` -* **IS ABOVE** - `25 errors` -* **FOR THE LAST** - `1 minute` - -Select the **Email** action type and click **Create a connector**. -Fill out the required details: sender, host, port, etc., and click **save**. - -A default message is provided as a starting point for your alert. -You can use the https://mustache.github.io/[Mustache] template syntax, i.e., `{{variable}}` -to pass additional alert values at the time a condition is detected to an action. -A list of available variables can be accessed by selecting the -**add variable** button image:apm/images/add-variable.png[add variable button]. - -Select **Save**. The alert has been created and is now active! - -[float] -[[apm-alert-manage]] -=== Manage alerts and actions - -From the APM app, select **Alerts** > **View active alerts** to be taken to the Kibana alerts and actions management page. -From this page, you can create, edit, disable, mute, and delete alerts, and create, edit, and disable connectors. - -[float] -[[apm-alert-more-info]] -=== More information - -See {kibana-ref}/alerting-getting-started.html[alerting and actions] for more information. - -NOTE: If you are using an **on-premise** Elastic Stack deployment with security, -communication between Elasticsearch and Kibana must have TLS configured. -More information is in the alerting {kibana-ref}/alerting-getting-started.html#alerting-setup-prerequisites[prerequisites]. \ No newline at end of file diff --git a/docs/apm/apm-app-users.asciidoc b/docs/apm/apm-app-users.asciidoc deleted file mode 100644 index 3f0a42251304..000000000000 --- a/docs/apm/apm-app-users.asciidoc +++ /dev/null @@ -1,304 +0,0 @@ -[role="xpack"] -[[apm-app-users]] -== APM app users and privileges - -:beat_default_index_prefix: apm -:beat_kib_app: APM app -:annotation_index: observability-annotations - -++++ -Users and privileges -++++ - -You can use role-based access control to grant users access to secured -resources. The roles that you set up depend on your organization's security -requirements and the minimum privileges required to use specific features. - -{es-security-features} provides {ref}/built-in-roles.html[built-in roles] that grant a -subset of the privileges needed by APM users. -When possible, assign users the built-in roles to minimize the affect of future changes on your security strategy. -If no built-in role is available, you can assign users the privileges needed to accomplish a specific task. -In general, there are three types of privileges you'll work with: - -* **Elasticsearch cluster privileges**: Manage the actions a user can perform against your cluster. -* **Elasticsearch index privileges**: Control access to the data in specific indices your cluster. -* **Kibana space privileges**: Grant users write or read access to features and apps within Kibana. - -//// -*********************************** *********************************** -//// - -[role="xpack"] -[[apm-app-reader]] -=== APM reader user - -++++ -Create an APM reader user -++++ - -[[apm-app-reader-full]] -==== Full APM reader - -APM reader users typically need to view the APM app, dashboards, and visualizations that contain APM data. -These users might also need to create and edit dashboards, visualizations, and machine learning jobs. - -. Assign the following built-in roles: -+ -[options="header"] -|==== -|Role | Purpose - -|`kibana_admin` -|Grants access to all features in Kibana. - -|`apm_user` -|Grants the privileges required for APM users on +{beat_default_index_prefix}*+ indices - -|`machine_learning_admin` -|Grants the privileges required to create, update, and view machine learning jobs -|==== - -[[apm-app-reader-partial]] -==== Partial APM reader - -In some instances, you may wish to restrict certain Kibana apps that a user has access to. - -. Assign the following built in roles: -+ -[options="header"] -|==== -|Role | Purpose -|`apm_user` -|Grants the privileges required for APM users on +{beat_default_index_prefix}*+ indices -|==== - -. Assign space privileges to any Kibana space that the user needs access to. -Here are two examples: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -| Spaces -| `Read` or `All` on the {beat_kib_app} -| Allow the use of the the {beat_kib_app} - -| Spaces -| `Read` or `All` on Dashboards and Discover -| Allow the user to view, edit, and create dashboards, as well as browse data. -|==== - -. Finally, assign the following role if a user needs to enable and edit machine learning features: -+ -[options="header"] -|==== -|Role | Purpose - -|`machine_learning_admin` -|Grants the privileges required to create, update, and view machine learning jobs -|==== - -//// -*********************************** *********************************** -//// - -[role="xpack"] -[[apm-app-annotation-user-create]] -=== APM app annotation user - -++++ -Create an annotation user -++++ - -NOTE: By default, the `apm_user` built-in role provides access to Observability annotations. -You only need to create an annotation user if the default annotation index -defined in <> has been customized. - -[[apm-app-annotation-user]] -==== Annotation user - -View deployment annotations in the APM app. - -. Create a new role, named something like `annotation_user`, -and assign the following privileges: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -|Index -|`read` on +\{ANNOTATION_INDEX\}+^1^ -|Read-only access to the observability annotation index - -|Index -|`view_index_metadata` on +\{ANNOTATION_INDEX\}+^1^ -|Read-only access to observability annotation index metadata -|==== -+ -^1^ +\{ANNOTATION_INDEX\}+ should be the index name you've defined in -<>. - -. Assign the `annotation_user` created previously, and the built-in roles necessary to create -a <> or <> APM reader to any users that need to view annotations in the APM app - -[[apm-app-annotation-api]] -==== Annotation API - -See <>. - -//// -*********************************** *********************************** -//// - -[role="xpack"] -[[apm-app-central-config-user]] -=== APM app central config user - -++++ -Create a central config user -++++ - -[[apm-app-central-config-manager]] -==== Central configuration manager - -Central configuration users need to be able to view, create, update, and delete Agent configurations. - -. Assign the following built-in roles: -+ -[options="header"] -|==== -|Role | Purpose - -|`apm_user` -|Grants the privileges required for APM users on +{beat_default_index_prefix}*+ indices -|==== - -. Assign the following Kibana space privileges: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -| Spaces -|`All` on {beat_kib_app} -|Allow full use of the {beat_kib_app} -|==== - -[[apm-app-central-config-reader]] -==== Central configuration reader - -In some instances, you may wish to create a user that can only read central configurations, -but not create, update, or delete them. - -. Assign the following built-in roles: -+ -[options="header"] -|==== -|Role | Purpose -|`apm_user` -|Grants the privileges required for APM users on +{beat_default_index_prefix}*+ indices -|==== - -. Assign the following Kibana space privileges: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -| Spaces -|`read` on the {beat_kib_app} -|Allow read access to the {beat_kib_app} -|==== - -[[apm-app-central-config-api]] -==== Central configuration API - -See <>. - -//// -*********************************** *********************************** -//// - -[role="xpack"] -[[apm-app-api-user]] -=== APM app API user - -++++ -Create an API user -++++ - -[[apm-app-api-config-manager]] -==== Central configuration API - -Users can list, search, create, update, and delete central configurations via the APM app API. - -. Assign the following Kibana space privileges: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -| Spaces -|`all` on the {beat_kib_app} -|Allow all access to the {beat_kib_app} -|==== - -[[apm-app-api-config-reader]] -==== Central configuration API reader - -Sometimes a user only needs to list and search central configurations via the APM app API. - -. Assign the following Kibana space privileges: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -| Spaces -|`read` on the {beat_kib_app} -|Allow read access to the {beat_kib_app} -|==== - -[[apm-app-api-annotation-manager]] -==== Annotation API - -Users can use the annotation API to create annotations on their APM data. - -. Create a new role, named something like `annotation_role`, -and assign the following privileges: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -|Index -|`manage` on +{annotation_index}+ index -|Check if the +{annotation_index}+ index exists - -|Index -|`read` on +{annotation_index}+ index -|Read the +{annotation_index}+ index - -|Index -|`create_index` on +{annotation_index}+ index -|Create the +{annotation_index}+ index - -|Index -|`create_doc` on +{annotation_index}+ index -|Create new annotations in the +{annotation_index}+ index -|==== - -. Assign the `annotation_role` created previously, -and the following Kibana space privileges to any annotation API users: -+ -[options="header"] -|==== -|Type | Privilege | Purpose - -| Spaces -|`all` on the {beat_kib_app} -|Allow all access to the {beat_kib_app} -|==== - -//LEARN MORE -//Learn more about <>. diff --git a/docs/apm/custom-links.asciidoc b/docs/apm/custom-links.asciidoc deleted file mode 100644 index 4fdf39b643f9..000000000000 --- a/docs/apm/custom-links.asciidoc +++ /dev/null @@ -1,222 +0,0 @@ -[role="xpack"] -[[custom-links]] -=== Custom links - -++++ -Create custom links -++++ - -Elastic's custom link feature allows you to easily create up to 500 dynamic links -based on your specific APM data. -Custom links can be filtered to only appear in the APM app for relevant services, -environments, transaction types, or transaction names. - -Ready to dive in? Jump straight to the <>. - -[float] -[[custom-links-create]] -=== Create a link - -Each custom link consists of a label, URL, and optional filter. -The easiest way to create a custom link is from within the actions dropdown in the transaction detail page. -This method will automatically apply filters, scoping the link to that specific service, -environment, transaction type, and transaction name. - -Alternatively, you can create a custom link in the APM app by navigating to **Settings** > **Customize UI**, -and selecting **Create custom link**. - -[float] -[[custom-links-label]] -==== Label - -The name of your custom link. -The actions context menu displays this text, so keep it as short as possible. - -TIP: Custom links are displayed alphabetically in the actions menu. - -[float] -[[custom-links-url]] -==== URL - -The URL your link points to. -URLs support dynamic field name variables, encapsulated in double curly brackets: `{{field.name}}`. -These variables will be replaced with transaction metadata when the link is clicked. - -Because everyone's data is different, -you'll need to examine your traces to see what metadata is available for use. -To do this, select a trace in the APM app, and click **Metadata** in the **Trace Sample** table. - -[role="screenshot"] -image::apm/images/example-metadata.png[Example metadata] - -[float] -[[custom-links-filters]] -==== Filters - -Filter each link to only appear for specific services or transactions. -You can filter on the following fields: - -* `service.name` -* `service.env` -* `transaction.type` -* `transaction.name` - -Multiple values are allowed when comma-separated. - -[float] -[[custom-links-examples]] -=== Custom link examples - -// Relevant documentation links -:jira-query-params: https://confluence.atlassian.com/jirakb/how-to-create-issues-using-direct-html-links-in-jira-server-159474.html -:github-query-params: https://help.github.com/en/github/managing-your-work-on-github/about-automation-for-issues-and-pull-requests-with-query-parameters - -Not sure where to start with custom links? -Take a look at the examples below and customize them to your liking! - -[float] -[[custom-links-examples-email]] -==== Email - -Email the owner of a service. - -|==== -|Label |`Email engineer` -|Link |`mailto:@.com` -|Filters |`service.name:` -|==== - -**Example** - -This link opens an email addressed to the team or owner of `python-backend`. -It will only appear on services with the name `python-backend`. - -|==== -|Label |`Email python-backend engineers` -|Link |`mailto:python_team@elastic.co` -|Filters |`service.name:python-backend` -|==== - -[float] -[[custom-links-examples-gh]] -==== GitHub issue - -Open a GitHub issue with pre-populated metadata from the selected trace sample. - -|==== -|Label |`Open an issue in ` -|Link |`https://github.com///issues/new?title=&body=<BODY>` -|Filters |`service.name:client` -|==== - -**Example** - -This link opens a new GitHub issue in the apm-agent-rum repository. -It populates the issue body with relevant metadata from the currently active trace. -Clicking this link results in the following issue being created: - -[role="screenshot"] -image::apm/images/create-github-issue.png[Example github issue] - -|==== -|Label |`Open an issue in apm-rum-js` -|Link |`https://github.com/elastic/apm-agent-rum-js/issues/new?title=Investigate+APM+trace&body=Investigate+the+following+APM+trace%3A%0D%0A%0D%0Aservice.name%3A+{{service.name}}%0D%0Atransaction.id%3A+{{transaction.id}}%0D%0Acontainer.id%3A+{{container.id}}%0D%0Aurl.full%3A+{{url.full}}` -|Filters |`service.name:client` -|==== - -See the {github-query-params}[GitHub automation documentation] for a full list of supported query parameters. - -[float] -[[custom-links-examples-jira]] -==== Jira task - -Create a Jira task with pre-populated metadata from the selected trace sample. - -|==== -|Label |`Open an issue in Jira` -|Link |`https://<JIRA_BASE_URL>/secure/CreateIssueDetails!init.jspa?<ARGUMENTS>` -|==== - -**Example** - -This link creates a new task on the Engineering board in Jira. -It populates the issue body with relevant metadata from the currently active trace. -Clicking this link results in the following task being created in Jira: - -[role="screenshot"] -image::apm/images/create-jira-issue.png[Example jira issue] - -|==== -|Label |`Open a task in Jira` -|Link |`https://test-site-33.atlassian.net/secure/CreateIssueDetails!init.jspa?pid=10000&issuetype=10001&summary=Created+via+APM&description=Investigate+the+following+APM+trace%3A%0D%0A%0D%0Aservice.name%3A+{{service.name}}%0D%0Atransaction.id%3A+{{transaction.id}}%0D%0Acontainer.id%3A+{{container.id}}%0D%0Aurl.full%3A+{{url.full}}` -|==== - -See the {jira-query-params}[Jira application administration knowledge base] -for a full list of supported query parameters. - -[float] -[[custom-links-examples-kib]] -==== Kibana dashboards - -Link to a custom dashboard in Kibana. - -|==== -|Label |`Open transaction in custom visualization` -|Link |`https://kibana-instance/app/kibana#/dashboard?_g=query:(language:kuery,query:'transaction.id:{{transaction.id}}'...` -|==== - -**Example** - -This link opens the current `transaction.id` in a custom kibana dashboard. -There are no filters set. - -|==== -|Label |`Open transaction in Python drilldown viz` -|URL |`https://kibana-instance/app/kibana#/dashboard?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-24h,to:now))&_a=(description:'',filters:!(),fullScreenMode:!f,options:(hidePanelTitles:!f,useMargins:!t),panels:!((embeddableConfig:(),gridData:(h:15,i:cb79c1c0-1af8-472c-aaf7-d158a76946fb,w:24,x:0,y:0),id:c8c74b20-6a30-11ea-92ab-b5d3feff11df,panelIndex:cb79c1c0-1af8-472c-aaf7-d158a76946fb,type:visualization,version:'7.7')),query:(language:kuery,query:'transaction.id:{{transaction.id}}'),timeRestore:!f,title:'',viewMode:edit)` -|==== - -[float] -[[custom-links-examples-slack]] -==== Slack channel - -Open a specified slack channel. - -|==== -|Label |`Open SLACK_CHANNEL` -|Link |`https://COMPANY_SLACK.slack.com/archives/SLACK_CHANNEL` -|Filters |`service.name` : `SERVICE_NAME` -|==== - -**Example** - -This link opens a company slack channel, #apm-support. -It only appears when `transaction.name` is `GET user/login`. - -|==== -|Label |`Open #apm-user-support` -|Link |`https://microsoft.slack.com/archives/efk52kt23k` -|Filters |`transaction.name:GET user/login` -|==== - -[float] -[[custom-links-examples-web]] -==== Website - -Open an internal or external website. - -|==== -|Label |`Open <WEBSITE>` -|Link |`https://<COMPANY_SLACK>.slack.com/archives/<SLACK_CHANNEL>` -|Filters |`service.name:<SERVICE_NAME>` -|==== - -**Example** - -This link opens more data on a specific `user.email`. -It only appears on front-end transactions. - -|==== -|Label |`View user internally` -|Link |`https://internal-site.company.com/user/{{user.email}}` -|Filters |`service.name:client` -|==== diff --git a/docs/apm/deployment-annotations.asciidoc b/docs/apm/deployment-annotations.asciidoc deleted file mode 100644 index 53fd963a81f7..000000000000 --- a/docs/apm/deployment-annotations.asciidoc +++ /dev/null @@ -1,48 +0,0 @@ -[role="xpack"] -[[transactions-annotations]] -=== Track deployments with annotations - -++++ -<titleabbrev>Track deployments with annotations</titleabbrev> -++++ - -For enhanced visibility into your deployments, we offer deployment annotations on all transaction charts. -This feature enables you to easily determine if your deployment has increased response times for an end-user, -or if the memory/CPU footprint of your application has changed. -Being able to quickly identify bad deployments enables you to rollback and fix issues without causing costly outages. - -By default, automatic deployment annotations are enabled. -This means the APM app will create an annotation on your data when the `service.version` of your application changes. - -Alternatively, you can explicitly create deployment annotations with our annotation API. -The API can integrate into your CI/CD pipeline, -so that each time you deploy, a POST request is sent to the annotation API endpoint: - -[source,curl] ----- -curl -X POST \ - http://localhost:5601/api/apm/services/${SERVICE_NAME}/annotation \ <1> --H 'Content-Type: application/json' \ --H 'kbn-xsrf: true' \ --H 'Authorization: Basic ${API_KEY}' \ <2> --d '{ - "@timestamp": "${DEPLOY_TIME}", <3> - "service": { - "version": "${SERVICE_VERSION}" <4> - }, - "message": "${MESSAGE}" <5> - }' ----- -<1> The `service.name` of your application -<2> An APM app API key with sufficient privileges -<3> The time of the deployment -<4> The `service.version` to be displayed in the annotation -<5> A custom message to be displayed in the annotation - -See the <<apm-annotation-api,annotation API>> reference for more information. - - -NOTE: If custom annotations have been created for the selected time period, any derived annotations, i.e., those created automatically when `service.version` changes, will not be shown. - -[role="screenshot"] -image::apm/images/apm-transaction-annotation.png[Example view of transactions annotation in the APM app in Kibana] diff --git a/docs/apm/errors.asciidoc b/docs/apm/errors.asciidoc deleted file mode 100644 index 49351ec25585..000000000000 --- a/docs/apm/errors.asciidoc +++ /dev/null @@ -1,32 +0,0 @@ -[role="xpack"] -[[errors]] -=== Errors overview - -TIP: {apm-overview-ref-v}/errors.html[Errors] are groups of exceptions with a similar exception or log message. - -The *Errors* overview provides a high-level view of the error message and culprit, -the number of occurrences, and the most recent occurrence. -Just like the transaction overview, you'll notice we group together like errors. -This makes it very easy to quickly see which errors are affecting your services, -and to take actions to rectify them. - -[role="screenshot"] -image::apm/images/apm-errors-overview.png[Example view of the errors overview in the APM app in Kibana] - -Selecting an error group ID or error message brings you to the *Error group*. - -[role="screenshot"] -image::apm/images/apm-error-group.png[Example view of the error group page in the APM app in Kibana] - -Here, you'll see the error message, culprit, and the number of occurrences over time. - -Further down, you'll see the Error occurrence table. -This table shows the details of a sampled error within this group. -The error shown is always the most recent to occur. - -Each error occurrence features a breakdown of the exception, including the stack trace from when the error occurred, -and additional contextual information to help debug the issue. -In some cases, you might also see a Transaction sample ID. -This feature allows you to make a connection between the errors and transactions, -by linking you to the specific transaction where the error occurred. -This allows you to see the whole trace, including which services the request went through. diff --git a/docs/apm/filters.asciidoc b/docs/apm/filters.asciidoc deleted file mode 100644 index c405ea10ade3..000000000000 --- a/docs/apm/filters.asciidoc +++ /dev/null @@ -1,75 +0,0 @@ -[role="xpack"] -[[filters]] -=== Filters - -++++ -<titleabbrev>Filter data</titleabbrev> -++++ - -APM provides two different ways you can filter your data within the APM App: - -* <<global-filters>> -* <<contextual-filters>> - -[[global-filters]] -==== Global filters - -Global filters are ways you can filter any and all data across the APM app. -They are available in the Services, Transactions, Errors, Metrics, and Traces views, -and any filter applied will persist as you move between pages. - -[role="screenshot"] -image::apm/images/global-filters.png[Global filters available in the APM app in Kibana] - -[float] -===== Global time range - -The <<set-time-filter,global time range filter>> in {kib} restricts APM data to a specific time period. - -[float] -[[query-bar]] -===== Query bar - -The query bar is a powerful data query feature. -Similar to the query bar in {kibana-ref}/discover.html[Discover], -it enables you to pass advanced queries on your data to filter on particular pieces of information that you're interested in. -It comes with a handy autocomplete that helps find the fields and even provides suggestions to the data they include. -You can select the query bar and hit the down arrow on your keyboard to begin seeing recommendations. - -See <<query-bar,advanced queries>> for more information and sample queries. - -[float] -[[environment-selector]] -===== Service environment filter - -The environment selector is a global filter for `service.environment`. -It allows you to view only relevant data, and is especially useful for separating development from production environments. -By default, all environments are displayed. If there are no environment options, you'll see "not defined". - -Service environments are defined when configuring your APM agents. -It's vital to be consistent when naming environments in your agents. -See the documentation for each agent you're using to learn how to configure service environments: - -* *Go:* {apm-go-ref}/configuration.html#config-environment[`ELASTIC_APM_ENVIRONMENT`] -* *Java:* {apm-java-ref}/config-core.html#config-environment[`environment`] -* *.NET* {apm-dotnet-ref}/config-core.html#config-environment[`Environment`] -* *Node.js:* {apm-node-ref}/configuration.html#environment[`environment`] -* *Python:* {apm-py-ref}/configuration.html#config-environment[`environment`] -* *Ruby:* {apm-ruby-ref}/configuration.html#config-environment[`environment`] -* *Real User Monitoring:* {apm-rum-ref}/configuration.html#environment[`environment`] - -[[contextual-filters]] -==== Contextual filters - -Contextual filters are ways you can filter your specific APM data on each individual page. -The filters shown are relevant to your data, and will persist between pages, -but only where they are applicable -- they are typically most useful in their original context. -As an example, if you select a host on the Services overview, then select a transaction group, -the host filter will still be applied. - -These filters are very useful for quickly and easily removing noise from your data. -With just a click, you can filter your transactions by the transaction result, -host, container ID, Kubernetes pod, and more. - -[role="screenshot"] -image::apm/images/local-filter.png[Local filters available in the APM app in Kibana] \ No newline at end of file diff --git a/docs/apm/getting-started.asciidoc b/docs/apm/getting-started.asciidoc deleted file mode 100644 index 48c35ad21edf..000000000000 --- a/docs/apm/getting-started.asciidoc +++ /dev/null @@ -1,45 +0,0 @@ -[role="xpack"] -[[apm-getting-started]] -== Get started with the APM app - -++++ -<titleabbrev>Get started</titleabbrev> -++++ - -Elastic APM captures different types of information from within instrumented applications: - -* *Spans* contain information about the execution of a specific code path. -They measure from the start to end of an activity, -and they can have a parent/child relationship with other spans. -* *Transactions* are a special kind of span; -they are the first span for a particular service and have extra metadata associated with them. -As an example, a transaction could be a request to your server, a batch job, or a custom transaction type. -*Traces* link together related transactions to show an end-to-end performance of how a request was served and which services were part of it. -* *Errors* contain information about the original exception that occurred or about a log created when the exception occurred. - -Curated charts and tables display the different types of APM data, which allows you to compare and debug your applications easily. - -* <<services>> -* <<traces>> -* <<transactions>> -* <<spans>> -* <<errors>> -* <<metrics>> -* <<service-maps>> - -TIP: Want to learn more about the Elastic APM ecosystem? -See the {apm-overview-ref-v}/overview.html[APM Overview]. - -include::services.asciidoc[] - -include::traces.asciidoc[] - -include::transactions.asciidoc[] - -include::spans.asciidoc[] - -include::errors.asciidoc[] - -include::metrics.asciidoc[] - -include::service-maps.asciidoc[] diff --git a/docs/apm/how-to-guides.asciidoc b/docs/apm/how-to-guides.asciidoc deleted file mode 100644 index 9a415375f17f..000000000000 --- a/docs/apm/how-to-guides.asciidoc +++ /dev/null @@ -1,29 +0,0 @@ -[role="xpack"] -[[apm-how-to]] -== How-to guides - -Learn how to perform common APM app tasks. - - -* <<agent-configuration>> -* <<apm-alerts>> -* <<custom-links>> -* <<filters>> -* <<machine-learning-integration>> -* <<advanced-queries>> -* <<transactions-annotations>> - - -include::agent-configuration.asciidoc[] - -include::apm-alerts.asciidoc[] - -include::custom-links.asciidoc[] - -include::filters.asciidoc[] - -include::machine-learning.asciidoc[] - -include::advanced-queries.asciidoc[] - -include::deployment-annotations.asciidoc[] \ No newline at end of file diff --git a/docs/apm/images/add-variable.png b/docs/apm/images/add-variable.png deleted file mode 100644 index 860ab66f22f4..000000000000 Binary files a/docs/apm/images/add-variable.png and /dev/null differ diff --git a/docs/apm/images/advanced-discover.png b/docs/apm/images/advanced-discover.png deleted file mode 100644 index 5291526783a6..000000000000 Binary files a/docs/apm/images/advanced-discover.png and /dev/null differ diff --git a/docs/apm/images/apm-agent-configuration.png b/docs/apm/images/apm-agent-configuration.png deleted file mode 100644 index 05518cb924d1..000000000000 Binary files a/docs/apm/images/apm-agent-configuration.png and /dev/null differ diff --git a/docs/apm/images/apm-alert.png b/docs/apm/images/apm-alert.png deleted file mode 100644 index c68b36f522bf..000000000000 Binary files a/docs/apm/images/apm-alert.png and /dev/null differ diff --git a/docs/apm/images/apm-anomaly-alert.png b/docs/apm/images/apm-anomaly-alert.png deleted file mode 100644 index 35ce9a2296c9..000000000000 Binary files a/docs/apm/images/apm-anomaly-alert.png and /dev/null differ diff --git a/docs/apm/images/apm-distributed-tracing.png b/docs/apm/images/apm-distributed-tracing.png deleted file mode 100644 index 0dbffa591d43..000000000000 Binary files a/docs/apm/images/apm-distributed-tracing.png and /dev/null differ diff --git a/docs/apm/images/apm-error-group.png b/docs/apm/images/apm-error-group.png deleted file mode 100644 index 359bdc6b704e..000000000000 Binary files a/docs/apm/images/apm-error-group.png and /dev/null differ diff --git a/docs/apm/images/apm-errors-overview.png b/docs/apm/images/apm-errors-overview.png deleted file mode 100644 index 969a1f19f9f4..000000000000 Binary files a/docs/apm/images/apm-errors-overview.png and /dev/null differ diff --git a/docs/apm/images/apm-errors-watcher-assistant.png b/docs/apm/images/apm-errors-watcher-assistant.png deleted file mode 100644 index 1a4d6b5b4c0e..000000000000 Binary files a/docs/apm/images/apm-errors-watcher-assistant.png and /dev/null differ diff --git a/docs/apm/images/apm-geo-ui.png b/docs/apm/images/apm-geo-ui.png deleted file mode 100644 index 3757127bad9c..000000000000 Binary files a/docs/apm/images/apm-geo-ui.png and /dev/null differ diff --git a/docs/apm/images/apm-index-pattern.png b/docs/apm/images/apm-index-pattern.png deleted file mode 100644 index b389110fc422..000000000000 Binary files a/docs/apm/images/apm-index-pattern.png and /dev/null differ diff --git a/docs/apm/images/apm-metrics.png b/docs/apm/images/apm-metrics.png deleted file mode 100644 index ffe5ffc7e1d8..000000000000 Binary files a/docs/apm/images/apm-metrics.png and /dev/null differ diff --git a/docs/apm/images/apm-ml-integration.png b/docs/apm/images/apm-ml-integration.png deleted file mode 100644 index e95dae5a41f3..000000000000 Binary files a/docs/apm/images/apm-ml-integration.png and /dev/null differ diff --git a/docs/apm/images/apm-query-bar.png b/docs/apm/images/apm-query-bar.png deleted file mode 100644 index 90955fb61016..000000000000 Binary files a/docs/apm/images/apm-query-bar.png and /dev/null differ diff --git a/docs/apm/images/apm-service-map-anomaly.png b/docs/apm/images/apm-service-map-anomaly.png deleted file mode 100644 index cd59f8669066..000000000000 Binary files a/docs/apm/images/apm-service-map-anomaly.png and /dev/null differ diff --git a/docs/apm/images/apm-services-overview.png b/docs/apm/images/apm-services-overview.png deleted file mode 100644 index 85d14cc7dfc6..000000000000 Binary files a/docs/apm/images/apm-services-overview.png and /dev/null differ diff --git a/docs/apm/images/apm-services-trace.png b/docs/apm/images/apm-services-trace.png deleted file mode 100644 index 083c69318e8e..000000000000 Binary files a/docs/apm/images/apm-services-trace.png and /dev/null differ diff --git a/docs/apm/images/apm-settings.png b/docs/apm/images/apm-settings.png deleted file mode 100644 index 14cf32877b72..000000000000 Binary files a/docs/apm/images/apm-settings.png and /dev/null differ diff --git a/docs/apm/images/apm-setup.png b/docs/apm/images/apm-setup.png deleted file mode 100644 index 3f5f7761427d..000000000000 Binary files a/docs/apm/images/apm-setup.png and /dev/null differ diff --git a/docs/apm/images/apm-span-detail.png b/docs/apm/images/apm-span-detail.png deleted file mode 100644 index bacb2d372c16..000000000000 Binary files a/docs/apm/images/apm-span-detail.png and /dev/null differ diff --git a/docs/apm/images/apm-traces.png b/docs/apm/images/apm-traces.png deleted file mode 100644 index bf1f7e783bb1..000000000000 Binary files a/docs/apm/images/apm-traces.png and /dev/null differ diff --git a/docs/apm/images/apm-transaction-annotation.png b/docs/apm/images/apm-transaction-annotation.png deleted file mode 100644 index 8913770517ff..000000000000 Binary files a/docs/apm/images/apm-transaction-annotation.png and /dev/null differ diff --git a/docs/apm/images/apm-transaction-duration-dist.png b/docs/apm/images/apm-transaction-duration-dist.png deleted file mode 100644 index 863f493f20db..000000000000 Binary files a/docs/apm/images/apm-transaction-duration-dist.png and /dev/null differ diff --git a/docs/apm/images/apm-transaction-response-dist.png b/docs/apm/images/apm-transaction-response-dist.png deleted file mode 100644 index 1d268bbaac46..000000000000 Binary files a/docs/apm/images/apm-transaction-response-dist.png and /dev/null differ diff --git a/docs/apm/images/apm-transaction-sample.png b/docs/apm/images/apm-transaction-sample.png deleted file mode 100644 index bfdb6a5abe65..000000000000 Binary files a/docs/apm/images/apm-transaction-sample.png and /dev/null differ diff --git a/docs/apm/images/apm-transactions-overview.png b/docs/apm/images/apm-transactions-overview.png deleted file mode 100644 index 53d7637b1864..000000000000 Binary files a/docs/apm/images/apm-transactions-overview.png and /dev/null differ diff --git a/docs/apm/images/apm-transactions-table.png b/docs/apm/images/apm-transactions-table.png deleted file mode 100644 index b573adfb0c45..000000000000 Binary files a/docs/apm/images/apm-transactions-table.png and /dev/null differ diff --git a/docs/apm/images/create-github-issue.png b/docs/apm/images/create-github-issue.png deleted file mode 100644 index 81ea4e5e78c2..000000000000 Binary files a/docs/apm/images/create-github-issue.png and /dev/null differ diff --git a/docs/apm/images/create-jira-issue.png b/docs/apm/images/create-jira-issue.png deleted file mode 100644 index 962c98df3f6c..000000000000 Binary files a/docs/apm/images/create-jira-issue.png and /dev/null differ diff --git a/docs/apm/images/dynamic-config.svg b/docs/apm/images/dynamic-config.svg deleted file mode 100644 index df62a3c84f4b..000000000000 --- a/docs/apm/images/dynamic-config.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="59" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="59" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#9f9f9f" d="M0 0h0v20H0z"/><path fill="#9f9f9f" d="M0 0h59v20H0z"/><path fill="url(#b)" d="M0 0h59v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"> <text x="295" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="490">Dynamic</text><text x="295" y="140" transform="scale(.1)" textLength="490">Dynamic</text></g> </svg> \ No newline at end of file diff --git a/docs/apm/images/example-metadata.png b/docs/apm/images/example-metadata.png deleted file mode 100644 index 2a5bda7f088f..000000000000 Binary files a/docs/apm/images/example-metadata.png and /dev/null differ diff --git a/docs/apm/images/global-filters.png b/docs/apm/images/global-filters.png deleted file mode 100644 index 034828148c22..000000000000 Binary files a/docs/apm/images/global-filters.png and /dev/null differ diff --git a/docs/apm/images/green-service.png b/docs/apm/images/green-service.png deleted file mode 100644 index bbc00a3543b0..000000000000 Binary files a/docs/apm/images/green-service.png and /dev/null differ diff --git a/docs/apm/images/jvm-metrics-overview.png b/docs/apm/images/jvm-metrics-overview.png deleted file mode 100644 index 586836c6cfe3..000000000000 Binary files a/docs/apm/images/jvm-metrics-overview.png and /dev/null differ diff --git a/docs/apm/images/jvm-metrics.png b/docs/apm/images/jvm-metrics.png deleted file mode 100644 index 52a1ca5bea8d..000000000000 Binary files a/docs/apm/images/jvm-metrics.png and /dev/null differ diff --git a/docs/apm/images/local-filter.png b/docs/apm/images/local-filter.png deleted file mode 100644 index 8657e39f430a..000000000000 Binary files a/docs/apm/images/local-filter.png and /dev/null differ diff --git a/docs/apm/images/red-service.png b/docs/apm/images/red-service.png deleted file mode 100644 index be7a62b1774a..000000000000 Binary files a/docs/apm/images/red-service.png and /dev/null differ diff --git a/docs/apm/images/service-maps-java.png b/docs/apm/images/service-maps-java.png deleted file mode 100644 index b3726bdc00ab..000000000000 Binary files a/docs/apm/images/service-maps-java.png and /dev/null differ diff --git a/docs/apm/images/service-maps.png b/docs/apm/images/service-maps.png deleted file mode 100644 index 878a31adc69c..000000000000 Binary files a/docs/apm/images/service-maps.png and /dev/null differ diff --git a/docs/apm/images/service-quick-health.png b/docs/apm/images/service-quick-health.png deleted file mode 100644 index aab133251307..000000000000 Binary files a/docs/apm/images/service-quick-health.png and /dev/null differ diff --git a/docs/apm/images/specific-transaction-search.png b/docs/apm/images/specific-transaction-search.png deleted file mode 100644 index 4ed548f01571..000000000000 Binary files a/docs/apm/images/specific-transaction-search.png and /dev/null differ diff --git a/docs/apm/images/specific-transaction.png b/docs/apm/images/specific-transaction.png deleted file mode 100644 index 52073bf76520..000000000000 Binary files a/docs/apm/images/specific-transaction.png and /dev/null differ diff --git a/docs/apm/images/transaction-icon.png b/docs/apm/images/transaction-icon.png deleted file mode 100644 index 3534e6915d6c..000000000000 Binary files a/docs/apm/images/transaction-icon.png and /dev/null differ diff --git a/docs/apm/images/yellow-service.png b/docs/apm/images/yellow-service.png deleted file mode 100644 index 43afd6250be7..000000000000 Binary files a/docs/apm/images/yellow-service.png and /dev/null differ diff --git a/docs/apm/index.asciidoc b/docs/apm/index.asciidoc deleted file mode 100644 index 1eff4f578af9..000000000000 --- a/docs/apm/index.asciidoc +++ /dev/null @@ -1,47 +0,0 @@ -// APM Overview and Server do not build a `7.x` branch. -// This check changes `7.x` links to `master` instead -ifeval::[{branch} == 7.x] -:apm-server-ref: https://www.elastic.co/guide/en/apm/server/master -:apm-overview-ref-v: https://www.elastic.co/guide/en/apm/get-started/master -endif::[] - -[role="xpack"] -[[xpack-apm]] -= APM - -[partintro] --- -The APM app in {kib} is provided with the basic license. -It allows you to monitor your software services and applications in real-time; -visualize detailed performance information on your services, -identify and analyze errors, -and monitor host-level and agent-specific metrics like JVM and Go runtime metrics. - -[float] -[[apm-bottlenecks]] -== Visualizing application bottlenecks - -Having access to application-level insights with just a few clicks can drastically decrease the time you spend -debugging errors, slow response times, and crashes. - -For example, you can see information about response times, requests per minute, and status codes per endpoint. -You can even dive into a specific request sample and get a complete waterfall view of what your application is spending its time on. -You might see that your bottlenecks are in database queries, cache calls, or external requests. -For each incoming request and each application error, -you can also see contextual information such as the request header, user information, -system values, or custom data that you manually attached to the request. --- - -include::set-up.asciidoc[] - -include::getting-started.asciidoc[] - -include::how-to-guides.asciidoc[] - -include::apm-app-users.asciidoc[] - -include::settings.asciidoc[] - -include::api.asciidoc[] - -include::troubleshooting.asciidoc[] diff --git a/docs/apm/machine-learning.asciidoc b/docs/apm/machine-learning.asciidoc deleted file mode 100644 index b31d717a6932..000000000000 --- a/docs/apm/machine-learning.asciidoc +++ /dev/null @@ -1,66 +0,0 @@ -[role="xpack"] -[[machine-learning-integration]] -=== Machine learning integration - -++++ -<titleabbrev>Integrate with machine learning</titleabbrev> -++++ - -The Machine learning integration initiates a new job predefined to calculate anomaly scores on APM transaction durations. -With this integration, you can quickly pinpoint anomalous transactions and see the health of -any upstream and downstream services. - -Machine learning jobs are created per environment, and are based on a service's average response time. -Because jobs are created at the environment level, -you can add new services to your existing environments without the need for additional machine learning jobs. - -Results from machine learning jobs are shown in multiple places throughout the APM app: - -* The **Services overview** provides a quick-glance view of the general health of all of your services. -+ -[role="screenshot"] -image::apm/images/service-quick-health.png[Example view of anomaly scores on response times in the APM app] - -* The transaction duration chart will show the expected bounds and add an annotation when the anomaly score is 75 or above. -+ -[role="screenshot"] -image::apm/images/apm-ml-integration.png[Example view of anomaly scores on response times in the APM app] - -* Service maps will display a color-coded anomaly indicator based on the detected anomaly score. -+ -[role="screenshot"] -image::apm/images/apm-service-map-anomaly.png[Example view of anomaly scores on service maps in the APM app] - -[float] -[[create-ml-integration]] -=== Enable anomaly detection - -To enable machine learning anomaly detection: - -. From the Services overview, Traces overview, or Service Map tab, -select **Anomaly detection**. - -. Click **Create ML Job**. - -. Machine learning jobs are created at the environment level. -Select all of the service environments that you want to enable anomaly detection in. -Anomalies will surface for all services and transaction types within the selected environments. - -. Click **Create Jobs**. - -That's it! After a few minutes, the job will begin calculating results; -it might take additional time for results to appear on your service maps. -Existing jobs can be managed in *Machine Learning jobs management*. - -APM specific anomaly detection wizards are also available for certain Agents. -See the machine learning {ml-docs}/ootb-ml-jobs-apm.html[APM anomaly detection configurations] for more information. - -[float] -[[warning-ml-integration]] -=== Anomaly detection warning - -To make machine learning as easy as possible to set up, -the APM app will warn you when filtered to an environment without a machine learning job. - -[role="screenshot"] -image::apm/images/apm-anomaly-alert.png[Example view of anomaly alert in the APM app] \ No newline at end of file diff --git a/docs/apm/metrics.asciidoc b/docs/apm/metrics.asciidoc deleted file mode 100644 index e64cbc846960..000000000000 --- a/docs/apm/metrics.asciidoc +++ /dev/null @@ -1,24 +0,0 @@ -[role="xpack"] -[[metrics]] -=== Metrics overview - -The *Metrics* overview provides agent-specific metrics, -which lets you perform more in-depth root cause analysis investigations within the APM app. - -If you're experiencing a problem with your service, you can use this page to attempt to find the underlying cause. -For example, you might be able to correlate a high number of errors with a long transaction duration, high CPU usage, or a memory leak. - -[role="screenshot"] -image::apm/images/apm-metrics.png[Example view of the Metrics overview in APM app in Kibana] - -If you're using the Java Agent, you can view metrics for each JVM. - -[role="screenshot"] -image::apm/images/jvm-metrics-overview.png[Example view of the Metrics overview for the Java Agent] - -Breaking down metrics by JVM makes it much easier to analyze the provided metrics: -CPU usage, memory usage, heap or non-heap memory, -thread count, garbage collection rate, and garbage collection time spent per minute. - -[role="screenshot"] -image::apm/images/jvm-metrics.png[Example view of the Metrics overview for the Java Agent] diff --git a/docs/apm/service-maps.asciidoc b/docs/apm/service-maps.asciidoc deleted file mode 100644 index d44c4ff6caa5..000000000000 --- a/docs/apm/service-maps.asciidoc +++ /dev/null @@ -1,96 +0,0 @@ -[role="xpack"] -[[service-maps]] -=== Service maps - -A service map is a real-time visual representation of the instrumented services in your application's architecture. -It shows you how these services are connected, along with high-level metrics like average transaction duration, -requests per minute, and errors per minute. -If enabled, service maps also integrate with machine learning--for real time health indicators based on anomaly detection scores. -All of these features can help you to quickly and visually assess the status and health of your services. - -We currently surface two types of service maps: - -* Global: All services instrumented with APM agents and the connections between them are shown. -* Service-specific: Highlight connections for a selected service. - -[role="screenshot"] -image::apm/images/service-maps.png[Example view of service maps in the APM app in Kibana] - -[float] -[[service-maps-how]] -=== How do service maps work? - -Service maps rely on distributed traces to draw connections between services. -As {apm-overview-ref-v}/distributed-tracing.html[distributed tracing] is enabled out-of-the-box for supported technologies, so are service maps. -However, if a service isn't instrumented, -or a `traceparent` header isn't being propagated to it, -distributed tracing will not work, and the connection will not be drawn on the map. - -[float] -[[visualize-your-architecture]] -=== Visualize your architecture - -Select the **Service Map** tab to get started. -By default, all instrumented services and connections are shown. -Whether you're onboarding a new engineer, or just trying to grasp the big picture, -drag things around, zoom in and out, and begin to visualize how your services are connected. - -If there's a specific service that interests you, select that service to highlight its connections. -Clicking **Focus map** will refocus the map on that specific service and lock the connection highlighting. -From here, select **Service Details**, or click on the **Transaction** tab to jump to the Transaction overview -for the selected service. -You can also use the tabs at the top of the page to easily jump to the **Errors** or **Metrics** overview. - -Filter out your maps by picking the environment from the environment drop-down filter. -This can be useful if you have two or more services, in separate environments, but with the same name. -Use the environment drop-down to only see the data you're interested in, like `dev` or `production`. -Additional filters are not currently available for service maps. - -[role="screenshot"] -image::apm/images/service-maps-java.png[Example view of service maps with Java highlighted in the APM app in Kibana] - -[float] -[[service-map-anomaly-detection]] -=== Anomaly detection with machine learning - -Machine learning jobs can be created to calculate anomaly scores on APM transaction durations within the selected service. -When these jobs are active, service maps will display a color-coded anomaly indicator based on the detected anomaly score: - -[horizontal] -image:apm/images/green-service.png[APM green service]:: Max anomaly score **≤25**. Service is healthy. -image:apm/images/yellow-service.png[APM yellow service]:: Max anomaly score **26-74**. Anomalous activity detected. Service may be degraded. -image:apm/images/red-service.png[APM red service]:: Max anomaly score **≥75**. Anomalous activity detected. Service is unhealthy. - -[role="screenshot"] -image::apm/images/apm-service-map-anomaly.png[Example view of anomaly scores on service maps in the APM app] - -If an anomaly has been detected, click *view anomalies* to view the anomaly detection metric viewier in the Machine learning app. -This time series analysis will display additional details on the severity and time of the detected anomalies. - -To learn how to create a machine learning job, see <<machine-learning-integration,machine learning integration>>. - -[float] -[[service-maps-legend]] -=== Legend - -Nodes appear on the map in one of two shapes: - -* **Circle**: Instrumented services. Interior icons are based on the language of the agent used. -* **Diamond**: Databases, external, and messaging. Interior icons represent the generic type, -with specific icons for known entities, like Elasticsearch. -Type and subtype are based on `span.type`, and `span.subtype`. - -[float] -[[service-maps-supported]] -=== Supported APM Agents - -Service maps are supported for the following Agent versions: - -[horizontal] -Go Agent:: ≥ v1.7.0 -Java Agent:: ≥ v1.13.0 -.NET Agent:: ≥ v1.3.0 -Node.js Agent:: ≥ v3.6.0 -Python Agent:: ≥ v5.5.0 -Ruby Agent:: ≥ v3.6.0 -Real User Monitoring (RUM) Agent:: ≥ v4.7.0 diff --git a/docs/apm/services.asciidoc b/docs/apm/services.asciidoc deleted file mode 100644 index 2bf2e35c21cd..000000000000 --- a/docs/apm/services.asciidoc +++ /dev/null @@ -1,14 +0,0 @@ -[role="xpack"] -[[services]] -=== Services overview - -The *Services* overview page provides a quick, high-level overview of the health and general -performance of all instrumented services. - -To help surface potential issues, services are sorted by their health status: -**critical** > **warning** > **healthy** > **unknown**. -Health status is powered by machine learning and requires anomaly detection to be enabled. -Learn more in <<machine-learning-integration,machine learning>>. - -[role="screenshot"] -image::apm/images/apm-services-overview.png[Example view of services table the APM app in Kibana] diff --git a/docs/apm/set-up.asciidoc b/docs/apm/set-up.asciidoc deleted file mode 100644 index b2e78bd08bc9..000000000000 --- a/docs/apm/set-up.asciidoc +++ /dev/null @@ -1,36 +0,0 @@ -[role="xpack"] -[[apm-ui]] -== Set up the APM app - -++++ -<titleabbrev>Set up</titleabbrev> -++++ - -APM is available via the navigation sidebar in {Kib}. -If you have not already installed and configured Elastic APM, -the *Setup Instructions* in Kibana will get you started. - -[role="screenshot"] -image::apm/images/apm-setup.png[Installation instructions on the APM page in Kibana] - -[float] -[[apm-configure-index-pattern]] -=== Load the index pattern - -Index patterns tell Kibana which Elasticsearch indices you want to explore. -An APM index pattern is necessary for certain features in the APM app, like the query bar. -To set up the correct index pattern, -simply click *Load Kibana objects* at the bottom of the Setup Instructions. - -[role="screenshot"] -image::apm/images/apm-index-pattern.png[Setup index pattern for APM in Kibana] - -TIP: To use a custom index pattern, -adjust Kibana's <<apm-settings-in-kibana,settings>> or use the <<api-create-apm-index-pattern,Kibana API>>. - -[float] -[[apm-getting-started-next]] -=== Next steps - -No further configuration in the APM app is required. -Install an APM Agent library in your service to begin visualizing and analyzing your data! diff --git a/docs/apm/settings.asciidoc b/docs/apm/settings.asciidoc deleted file mode 100644 index 44da63143f63..000000000000 --- a/docs/apm/settings.asciidoc +++ /dev/null @@ -1,23 +0,0 @@ -// Do not link directly to this page. -// Link to the anchor in `/docs/settings/apm-settings.asciidoc` instead. -[role="xpack"] -[[apm-settings-in-kibana]] -== APM app settings - -++++ -<titleabbrev>Settings</titleabbrev> -++++ - -You do not need to configure any settings to use the APM app. It is enabled by default. - -[float] -[[apm-indices-settings]] -=== APM Indices - -include::./../settings/apm-settings.asciidoc[tag=apm-indices-settings] - -[float] -[[general-apm-settings]] -=== General APM settings - -include::./../settings/apm-settings.asciidoc[tag=general-apm-settings] diff --git a/docs/apm/spans.asciidoc b/docs/apm/spans.asciidoc deleted file mode 100644 index 7f29b1f003f1..000000000000 --- a/docs/apm/spans.asciidoc +++ /dev/null @@ -1,56 +0,0 @@ -[role="xpack"] -[[spans]] -=== Trace sample timeline - -The trace sample timeline visualization is a bird's-eye view of what your application was doing while it was trying to respond to a request. -This makes it useful for visualizing where a selected transaction spent most of its time. - -[role="screenshot"] -image::apm/images/apm-transaction-sample.png[Example of distributed trace colors in the APM app in Kibana] - -View a span in detail by clicking on it in the timeline waterfall. -For example, when you click on an SQL Select database query, -the information displayed includes the actual SQL that was executed, how long it took, -and the percentage of the trace's total time. -You also get a stack trace, which shows the SQL query in your code. -Finally, APM knows which files are your code and which are just modules or libraries that you've installed. -These library frames will be minimized by default in order to show you the most relevant stack trace. - -TIP: A {apm-overview-ref-v}/transaction-spans.html[span] is the duration of a single event. -Spans are automatically captured by APM agents, and you can also define custom spans. -Each span has a type and is defined by a different color in the timeline/waterfall visualization. - -[role="screenshot"] -image::apm/images/apm-span-detail.png[Example view of a span detail in the APM app in Kibana] - -[float] -[[distributed-tracing]] -==== Distributed tracing - -If your trace sample timeline is colorful, it's indicative of a distributed trace. -Services in a distributed trace are separated by color and listed in the order they occur. - -[role="screenshot"] -image::apm/images/apm-services-trace.png[Example of distributed trace colors in the APM app in Kibana] - -As application architectures are shifting from monolithic to more distributed, service-based architectures, -distributed tracing has become a crucial feature of modern application performance monitoring. -It allows you to trace requests through your service architecture automatically, and visualize those traces in one single view in the APM app. -From initial web requests to your front-end service, to queries made to your back-end services, -this makes finding possible bottlenecks throughout your application much easier and faster. - -[role="screenshot"] -image::apm/images/apm-distributed-tracing.png[Example view of the distributed tracing in APM app in Kibana] - -Don't forget; by definition, a distributed trace includes more than one transaction. -When viewing distributed traces in the timeline waterfall, -you'll see this icon: image:apm/images/transaction-icon.png[APM icon], -which indicates the next transaction in the trace. -For easier problem isolation, transactions can be collapsed in the waterfall by clicking -the icon to the left of the transactions. -Transactions can also be expanded and viewed in detail by clicking on them. - -After exploring these traces, -you can return to the full trace by clicking *View full trace*. - -TIP: Distributed tracing is supported by all APM agents, and there's no additional configuration needed. diff --git a/docs/apm/traces.asciidoc b/docs/apm/traces.asciidoc deleted file mode 100644 index 3bafebd73315..000000000000 --- a/docs/apm/traces.asciidoc +++ /dev/null @@ -1,20 +0,0 @@ -[role="xpack"] -[[traces]] -=== Traces overview - -TIP: Traces link together related transactions to show an end-to-end performance of how a request was served -and which services were part of it. -In addition to the Traces overview, you can view your application traces in the <<spans,trace sample timeline waterfall>>. - -The *Traces* overview displays the entry transaction for all traces in your application. -If you're using <<distributed-tracing,distributed tracing>>, -this view is key to finding the critical paths within your application. -Transactions with the same name are grouped together and only shown once in this table. - -By default, transactions are sorted by _Impact_. -Impact helps show the most used and slowest endpoints in your service--in other words, -it's the collective amount of pain a specific endpoint is causing your users. -If there's a particular endpoint you're worried about, you can click on it to view the <<transaction-details, transaction details>>. - -[role="screenshot"] -image::apm/images/apm-traces.png[Example view of the Traces overview in APM app in Kibana] diff --git a/docs/apm/transactions.asciidoc b/docs/apm/transactions.asciidoc deleted file mode 100644 index fef98a86de1d..000000000000 --- a/docs/apm/transactions.asciidoc +++ /dev/null @@ -1,129 +0,0 @@ -[role="xpack"] -[[transactions]] -=== Transaction overview - -TIP: A {apm-overview-ref-v}/transactions.html[transaction] describes an event captured by an Elastic APM agent instrumenting a service. -APM agents automatically collect performance metrics on HTTP requests, database queries, and much more. - -Selecting a <<services,*service*>> brings you to the *transactions* overview. - -[role="screenshot"] -image::apm/images/apm-transactions-overview.png[Example view of transactions table in the APM app in Kibana] - -The *transaction duration*, *transactions per minute*, *transaction error rate*, and *time spent by span type* -charts display information on all transactions associated with the selected service: - -*Transaction duration*:: -Response times for this service, broken down into average, 95th, and 99th percentile. -If there's a weird spike that you'd like to investigate, -you can simply zoom in on the graph - this will adjust the specific time range, -and all of the data on the page will update accordingly. - -*Transactions per minute*:: -Visualize response codes: `2xx`, `3xx`, `4xx`, etc., -and is useful for determining if you're serving more of one code than you typically do. -Like in the Transaction duration graph, you can zoom in on anomalies to further investigate them. - -*Transaction error rate*:: -Visualize the total number of transactions with errors divided by the total number of transactions. -Any unexpected increases, decreases, or irregular patterns can be investigated further -with the <<errors,errors overview>>. - -*Time spent by span type*:: -Visualize where your application is spending most of its time. -For example, is your app spending time in external calls, database processing, or application code execution? -+ -The time a transaction took to complete is also recorded and displayed on the chart under the "app" label. -"app" indicates that something was happening within the application, but we're not sure exactly what. -This could be a sign that the agent does not have auto-instrumentation for whatever was happening during that time. -+ -It's important to note that if you have asynchronous spans, the sum of all span times may exceed the duration of the transaction. - -[[transactions-table]] -==== Transactions table - -The *Transactions* table displays a list of _transaction groups_ for the selected service. -In other words, this view groups all transactions of the same name together, -and only displays one entry for each group. - -[role="screenshot"] -image::apm/images/apm-transactions-table.png[Example view of the transactions table in the APM app in Kibana] - -By default, transaction groups are sorted by _Impact_. -Impact helps show the most used and slowest endpoints in your service - in other words, -it's the collective amount of pain a specific endpoint is causing your users. -If there's a particular endpoint you're worried about, you can click on it to view the <<transaction-details, transaction details>>. - -[IMPORTANT] -==== -If you only see one route in the Transactions table, or if you have transactions named "unknown route", -it could be a symptom that the agent either wasn't installed correctly or doesn't support your framework. - -For further details, including troubleshooting and custom implementation instructions, -refer to the documentation for each {apm-agents-ref}[APM Agent] you've implemented. -==== - -[[rum-transaction-overview]] -==== RUM Transaction overview - -The transaction overview page is customized for the JavaScript RUM Agent. -Specifically, the page highlights *page load times* for your service: - -[role="screenshot"] -image::apm/images/apm-geo-ui.png[average page load duration distribution] - -Additional RUM goodies, like core vitals, and visitor breakdown by browser, location, and device, -are available in the Observability User Experience tab. -// To do -// Add link to the Observability UE docs when complete - -[[transaction-details]] -==== Transaction details - -Selecting a transaction group will bring you to the *transaction* details. -This page is visually similar to the transaction overview, but it shows data from all transactions within -the selected transaction group. - -[role="screenshot"] -image::apm/images/apm-transaction-response-dist.png[Example view of response time distribution] - -Up to ten sampled transactions are also displayed. -These sampled transactions are based on the _bucket_ selection in the *Transactions duration distribution* chart. -You can update the sampled transactions by selecting a new _bucket_. -The number of requests per bucket is displayed when hovering over the graph, -and the selected bucket is highlighted to stand out. - -The screenshot below shows a typical distribution, and indicates most of our requests were served quickly--awesome! -It's the requests on the right, the ones taking longer than average, that we probably want to focus on. - -[role="screenshot"] -image::apm/images/apm-transaction-duration-dist.png[Example view of transactions duration distribution graph] - -When you select a bucket, -you're presented with up to ten trace samples. -Each sample has a trace timeline waterfall that shows how a typical request in that bucket executed. -This waterfall is useful for understanding the parent/child hierarchy of transactions and spans, -and ultimately determining _why_ a request was slow. -For large waterfalls, expand problematic transactions and collapse well-performing ones -for easier problem isolation and troubleshooting. - -[role="screenshot"] -image::apm/images/apm-transaction-sample.png[Example view of transactions sample] - -NOTE: More information on timeline waterfalls is available in <<spans, spans>>. - -For a particular transaction sample, we can get even more information in the *metadata* tab: - -* Labels - Custom labels added by agents -* HTTP request/response information -* Host information -* Container information -* Service - The service/application runtime, agent, name, etc.. -* Process - The process id that served up the request. -* Agent information -* URL -* User - Requires additional configuration, but allows you to see which user experienced the current transaction. -* Custom - You can configure your agent to add custom contextual information on transactions. - -TIP: All of this data is stored in documents in Elasticsearch. -This means you can select "Actions - View sample document" to see the actual Elasticsearch document under the discover tab. diff --git a/docs/apm/troubleshooting.asciidoc b/docs/apm/troubleshooting.asciidoc deleted file mode 100644 index f911ec0be8bc..000000000000 --- a/docs/apm/troubleshooting.asciidoc +++ /dev/null @@ -1,199 +0,0 @@ -[[troubleshooting]] -== Troubleshoot common problems - -++++ -<titleabbrev>Troubleshooting</titleabbrev> -++++ - -If you have something to add to this section, please consider creating a pull request with -your proposed changes in the https://github.com/elastic/kibana[Kibana repository]. - -Also, check out the https://discuss.elastic.co/c/apm[APM discussion forum]. - -* <<no-apm-data-found>> -* <<troubleshooting-too-many-transactions>> -* <<troubleshooting-unknown-route>> -* <<troubleshooting-fields-unsearchable>> -* <<service-map-rum-connections>> - -[float] -[[no-apm-data-found]] -=== No APM data found - -This section can help with any of the following: - -* Data isn't displaying in the APM app -* You see a message like "No Services Found", -* You see errors like "Fielddata is disabled on text fields by default..." - -There are a number of factors that could be at play here. -One important thing to double-check first is your index template. - -*Index template* -An APM index template must exist for the APM app to work correctly. -By default, this index template is created by APM Server on startup. -However, this only happens if `setup.template.enabled` is `true` in `apm-server.yml`. -You can create the index template manually by running `apm-server setup`. -Take note that index templates *cannot* be applied retroactively -- they are only applied at index creation time. -More information is available in {apm-server-ref}/apm-server-configuration.html[Set up and configure]. - -You can check for the existence of an APM index template using the -{ref}/indices-get-template.html[Get index template API]. -If you're using the default index naming pattern, that request would be: - -[source,js] --------------------------------------------------- -GET /_template/apm-{version} --------------------------------------------------- -// CONSOLE - -*Using Logstash, Kafka, etc.* -If you're not outputting data directly from APM Server to Elasticsearch (perhaps you're using Logstash or Kafka), -then the index template will not be set up automatically. Instead, you'll need to -{apm-server-ref}/apm-server-template.html[load the template manually]. - -*Using a custom index names* -This problem can also occur if you've customized the index name that you write APM data to. -The default index name that APM writes events to can be found -{apm-server-ref}/elasticsearch-output.html#index-option-es[here]. -If you change the default, you must also configure the `setup.template.name` and `setup.template.pattern` options. -See {apm-server-ref}/configuration-template.html[Load the Elasticsearch index template]. -If the Elasticsearch index template has already been successfully loaded to the index, -you can customize the indices that the APM app uses to display data. -Navigate to *APM* > *Settings* > *Indices*, and change all `apm_oss.*Pattern` values to -include the new index pattern. For example: `customIndexName-*`. - -[float] -[[troubleshooting-too-many-transactions]] -=== Too many unique transaction names - -Transaction names are defined in each APM Agent; when an Agent supports a framework, -it includes logic for naming the transactions that the framework creates. -In some cases though, like when using an Agent's API to create custom transactions, -it is up to the user to define a pattern for transaction naming. -When transactions are named incorrectly, each unique URL can be associated with a unique transaction group—causing -an explosion in the number of transaction groups per service, and leading to inaccuracies in the APM app. - -To fix a large number of unique transaction names, -you need to change how you are using the Agent API to name your transactions. -To do this, ensure you are **not** naming based on parameters that can change. -For example, user ids, product ids, order numbers, query parameters, etc., -should be stripped away, and commonality should be found between your unique URLs. - -Let's look at an example from the RUM Agent documentation. Here are a few URLs you might find on Elastic.co: - -[source,yml] ----- -// Blog Posts -https://www.elastic.co/blog/reflections-on-three-years-in-the-elastic-public-sector -https://www.elastic.co/blog/say-heya-to-the-elastic-search-awards -https://www.elastic.co/blog/and-the-winner-of-the-elasticon-2018-training-subscription-drawing-is - -// Documentation -https://www.elastic.co/guide/en/elastic-stack/current/index.html -https://www.elastic.co/guide/en/apm/get-started/current/index.html -https://www.elastic.co/guide/en/infrastructure/guide/current/index.html ----- - -These URLs, like most, include unique names. -If we named transactions based on each unique URL, we'd end up with the problem described above—a -very large number of different transaction names. -Instead, we should strip away the unique information and group our transactions based on common information. -In this case, that means naming all blog transactions, `/blog`, and all documentation transactions, `/guide`. - -If you feel like you'd be losing valuable information by following this naming convention, don't fret! -You can always add additional metadata to your transactions using {apm-overview-ref-v}/metadata.html#labels-fields[labels] (indexed) or -{apm-overview-ref-v}/metadata.html#custom-fields[custom context] (non-indexed). - -After ensuring you've correctly named your transactions, -you might still see an error in the APM app related to too many transaction names. -If this is the case, you can increase the default number of transaction groups displayed in the APM app by configuring -<<apm-settings-kb,`xpack.apm.ui.transactionGroupBucketSize`>>. - -**More information** - -While this can happen with any APM Agent, it typically occurs with the RUM Agent. -For more information on how to correctly set `transaction.name` in the RUM Agent, -see {apm-rum-ref}/custom-transaction-name.html[custom initial page load transaction names]. - -The RUM Agent can also set the `transaction.name` when observing for transaction events. -See {apm-rum-ref}/agent-api.html#observe[`apm.observe()`] for more information. - -If your problem is occurring in a different Agent, the tips above still apply. -See the relevant {apm-agents-ref}[Agent API documentation] to adjust how you're naming your transactions. - -[float] -[[troubleshooting-unknown-route]] -=== Unknown route - -The {apm-app-ref}/transactions.html[transaction overview] will only display helpful information -when the transactions in your services are named correctly. -If you're seeing "GET unknown route" or "unknown route" in the APM app, -it could be a sign that something isn't working as it should. - -Elastic APM Agents come with built-in support for popular frameworks out-of-the-box. -This means, among other things, that the Agent will try to automatically name HTTP requests. -As an example, the Node.js Agent uses the route that handled the request, while the Java Agent uses the Servlet name. - -"Unknown route" indicates that the Agent can't determine what to name the request, -perhaps because the technology you're using isn't supported, the Agent has been installed incorrectly, -or because something is happening to the request that the Agent doesn't understand. - -To resolve this, you'll need to head over to the relevant {apm-agents-ref}[Agent documentation]. -Specifically, view the Agent's supported technologies page. -You can also use the Agent's public API to manually set a name for the transaction. - -[float] -[[troubleshooting-fields-unsearchable]] -=== Fields are not searchable - -In Elasticsearch, index templates are used to define settings and mappings that determine how fields should be analyzed. -The recommended index template file for APM Server is installed by the APM Server packages. -This template, by default, enables and disables indexing on certain fields. - -As an example, some agents store cookie values in `http.request.cookies`. -Since `http.request` has disabled dynamic indexing, and `http.request.cookies` is not declared in a custom mapping, -the values in `http.request.cookies` are not indexed and thus not searchable. - -*Ensure an index pattern exists* -As a first step, you should ensure the correct index pattern exists. -Open the main menu, then click *Stack Management > Index Patterns*. -In the pattern list, you should see an apm index pattern; The default is `apm-*`. -If you don't, the index pattern doesn't exist. See <<no-apm-data-found>> for information on how to fix this problem. - -Selecting the `apm-*` index pattern shows a listing of every field defined in the pattern. - -*Ensure a field is searchable* -There are two things you can do to if you'd like to ensure a field is searchable: - -1. Index your additional data as {apm-overview-ref-v}/metadata.html[labels] instead. -These are dynamic by default, which means they will be indexed and become searchable and aggregatable. - -2. Use the {apm-server-ref}/configuration-template.html[`append_fields`] feature. As an example, -adding the following to `apm-server.yml` will enable dynamic indexing for `http.request.cookies`: - -[source,yml] ----- -setup.template.enabled: true -setup.template.overwrite: true -setup.template.append_fields: - - name: http.request.cookies - type: object - dynamic: true ----- - -[float] -[[service-map-rum-connections]] -=== Service maps: no connection between client and server - -If the service map is not showing an expected connection between the client and server, -it's likely because you haven't configured -{apm-agent-rum}/configuration.html#distributed-tracing-origins[`distributedTracingOrigins`]. - - -This setting is necessary, for example, for cross-origin requests. -If you have a basic web application that provides data via an API on `localhost:4000`, -and serves HTML from `localhost:4001`, you'd need to set `distributedTracingOrigins: ['https://localhost:4000']` -to ensure the origin is monitored as a part of distributed tracing. -In other words, `distributedTracingOrigins` is consulted prior to the agent adding the -distributed tracing `traceparent` header to each request. diff --git a/docs/canvas/canvas-edit-workpads.asciidoc b/docs/canvas/canvas-edit-workpads.asciidoc deleted file mode 100644 index 6ad2d89be4a4..000000000000 --- a/docs/canvas/canvas-edit-workpads.asciidoc +++ /dev/null @@ -1,136 +0,0 @@ -[role="xpack"] -[[edit-workpads]] -== Edit workpads - -To create the look and feel that you want, apply format settings to the entire workpad, or individual elements. - -[float] -[[create-variables]] -=== Create variables - -When you frequently use copy and paste, create variables to easily reuse strings and patterns. For example, when you clone a large workpad and need to connect your elements to a new index, use variables to update -each element instead of updating them manually. - -. Create the variables. -.. Click *Add a variable*. -.. Specify the variable options, then click *Save changes*. - -. Apply the variable. -.. Copy the variable. -.. Select the element you want to change, then open the expression editor. -.. Paste the variable. - -For example, to change the index pattern for a set of charts: - -Specify the variable options. - -[role="screenshot"] -image::images/specify_variable_syntax.png[Image describing how to specify the variable syntax] - -Copy the variable, then apply it to each element you want to update in the *Expression editor*. - -[role="screenshot"] -image::images/copy_variable_syntax.png[Image demonstrating expression editor] - -[float] -[[apply-changes-to-the-entire-workpad]] -=== Apply changes to the entire workpad - -With stylesheets, you can change the look of the entire workpad, including fonts, colors, layout, and more. - -To get started, enter the changes you want to make in the *Global CSS overrides* text editor, then click *Apply stylesheet*. - -For example, to change the background for the entire workpad, enter: - -[source,text] --------------------------------------------------- -.canvasPage { -background-color: #3990e6; -} --------------------------------------------------- - -[float] -[[change-the-element-settings]] -=== Change the element settings - -Element settings enable you to change the display options at the element level. For example, use the element settings to change the dimensions, style, or location of an element. - -[float] -[[change-the-display-options]] -==== Change the display options - -Choose the display options for your elements. The options available depend on the element you select. - -To change the element display options, click *Display*, then make your changes in the editor. - -To use CSS overrides: - -. Click *+* next to *Element style*, then select *CSS*. -. In the *CSS* text editor, enter the changes you want to make, then click *Apply stylesheet*. - -For example, to center an element, enter: - -[source,text] --------------------------------------------------- -.canvasRenderEl h1 { -text.align: center; -} --------------------------------------------------- - -[float] -[[clone-elements]] -==== Clone elements -To use an element with the same functionality and appearance in multiple places, clone the element. - -Select the element, then click *Edit > Clone*. - -[role="screenshot"] -image::images/clone_element.gif[Image showing how to clone elements] - -[float] -[[move-and-resize-elements]] -==== Move and resize elements - -Canvas provides you with many options to move and resize the elements on your workpad. - -* To move elements, click and hold the element, then drag to the new location. - -* To move elements by 1 pixel, select the element, press and hold Shift, then use your arrow keys. - -* To move elements by 10 pixels, select the element, then use your arrow keys. - -* To resize elements, click and drag the resize handles to the new dimensions. - -[float] -[[edit-elements]] -==== Edit elements - -The element editing options allow you to arrange and organize the elements on your workpad page. - -To align two or more elements: - -. Press and hold Shift, then select the elements you want to align. - -. Click *Edit > Alignment*, then select the alignment option. - -To distribute three or more elements: - -. Press and hold Shift, then select the elements you want to distribute. - -. Click *Edit > Distribution*, then select the distribution option. - -To reorder elements: - -. Select the element you want to reorder. - -. Click *Edit > Order*, then select the order option. - -[float] -[[delete-elements]] -==== Delete elements - -When you no longer need an element, delete it from your workpad. - -. Select the element you want to delete. - -. Click *Edit > Delete*. diff --git a/docs/canvas/canvas-elements.asciidoc b/docs/canvas/canvas-elements.asciidoc deleted file mode 100644 index 782bae061b8c..000000000000 --- a/docs/canvas/canvas-elements.asciidoc +++ /dev/null @@ -1,167 +0,0 @@ -[role="xpack"] -[[add-canvas-elements]] -=== Add elements - -Create a story about your data by adding elements to your workpad that include images, text, charts, and more. You can create your own elements and connect them to your data sources, add saved objects, and add your own images. - -[float] -[[create-canvas-element]] -==== Create an element - -Choose the type of element you want to use, then connect it to your own data. - -. Click *Add element*, then select the element you want to use. -+ -[role="screenshot"] -image::images/canvas-element-select.gif[Canvas elements] - -. To familiarize yourself with the element, use the preconfigured data demo data. -+ -By default, most of the elements you create use demo data until you change the data source. The demo data includes a small data set that you can use to experiment with your element. - -. To connect the element to your data, select *Data*, then select one of the following data sources: - -* *{es} SQL* — Access your data in {es} using SQL syntax. For information about SQL syntax, refer to {ref}/sql-spec.html[SQL language]. - -* *{es} documents* — Access your data in {es} without using aggregations. To use, select an index and fields, and optionally enter a query using the <<lucene-query,Lucene Query Syntax>>. Use the *{es} documents* data source when you have low volume datasets, to view raw documents, or to plot exact, non-aggregated values on a chart. - -* *Timelion* — Access your time series data using <<timelion,Timelion>> queries. To use Timelion queries, you can enter a query using the <<lucene-query,Lucene Query Syntax>>. - -Each element can display a different data source. Pages and workpads often contain multiple data sources. - -[float] -[[canvas-add-object]] -==== Add a saved object - -Add <<managing-saved-objects,saved objects>> to your workpad, such as maps and visualizations. - -. Click *Add element > Add from Visualize Library*. - -. Select the saved object you want to add. -+ -[role="screenshot"] -image::images/canvas-map-embed.gif[] - -. To use the customization options, click the panel menu, then select one of the following options: - -* *Edit map* — Opens <<maps,Maps>> or <<create-panels,Dashboard>> so that you can edit the original saved object. - -* *Edit panel title* — Adds a title to the saved object. - -* *Customize time range* — Exposes a time filter dedicated to the saved object. - -* *Inspect* — Allows you to drill down into the element data. - -[float] -[[canvas-add-image]] -==== Add your own image - -To personalize your workpad, add your own logos and graphics. - -. Click *Add element > Manage assets*. - -. On the *Manage workpad assets* window, drag and drop your images. - -. To add the image to the workpad, click the *Create image element* icon. -+ -[role="screenshot"] -image::images/canvas-add-image.gif[] - -[float] -[[move-canvas-elements]] -==== Organize elements - -Move and resize your elements to meet your design needs. - -* To move, click and hold the element, then drag to the new location. - -* To move by 1 pixel, select the element, press and hold Shift, then use your arrow keys. - -* To move by 10 pixels, select the element, then use your arrow keys. - -* To resize, click and drag the resize handles to the new dimensions. - -[float] -[[format-canvas-elements]] -==== Format elements - -For consistency and readability across your workpad pages, align, distribute, and reorder elements. - -To align two or more elements: - -. Press and hold Shift, then select the elements you want to align. - -. Click *Edit > Alignment*, then select the alignment option. - -To distribute three or more elements: - -. Press and hold Shift, then select the elements you want to distribute. - -. Click *Edit > Distribution*, then select the distribution option. - -To reorder elements: - -. Select the element you want to reorder. - -. Click *Edit > Order*, then select the order option. - -[float] -[[data-display]] -==== Change the element display options - -Each element has its own display options to fit your design needs. - -To choose the display options, click *Display*, then make your changes. - -To define the appearance of the container and border: - -. Next to *Element style*, click *+*, then select *Container style*. - -. Expand *Container style*. - -. Change the *Appearance* and *Border* options. - -To apply CSS overrides: - -. Next to *Element style*, click *+*, then select *CSS*. - -. Enter the *CSS*. -+ -For example, to center the Markdown element, enter: -+ -[source,text] --------------------------------------------------- -.canvasRenderEl h1 { -text.align: center; -} --------------------------------------------------- - -. Click *Apply stylesheet*. - -[float] -[[save-elements]] -==== Save elements - -To use the elements across all workpads, save the elements. - -When you're ready to save your element, select the element, then click *Edit > Save as new element*. - -[role="screenshot"] -image::images/canvas_save_element.png[] - -To save a group of elements, press and hold Shift, select the elements you want to save, then click *Edit > Save as new element*. - -To access your saved elements, click *Add element > My elements*. - -[float] -[[delete-elements]] -==== Delete elements - -When you no longer need an element, delete it from your workpad. - -. Select the element you want to delete. - -. Click *Edit > Delete*. -+ -[role="screenshot"] -image::images/canvas_element_options.png[] diff --git a/docs/canvas/canvas-expression-lifecycle.asciidoc b/docs/canvas/canvas-expression-lifecycle.asciidoc deleted file mode 100644 index 7d48c593f9e1..000000000000 --- a/docs/canvas/canvas-expression-lifecycle.asciidoc +++ /dev/null @@ -1,261 +0,0 @@ -[role="xpack"] -[[canvas-expression-lifecycle]] -== Canvas expression lifecycle - -Elements in Canvas are all created using an *expression language* that defines how to retrieve, manipulate, and ultimately visualize data. The goal is to allow you to do most of what you need without understanding the *expression language*, but learning how it works unlocks a lot of Canvas's power. - - -[[canvas-expressions-always-start-with-a-function]] -=== Expressions always start with a function - -Expressions simply execute <<canvas-function-reference, functions>> in a specific order, which produce some output value. That output can then be inserted into another function, and another after that, until it produces the output you need. - -To use demo dataset available in Canvas to produce a table, run the following expression: - -[source,text] ----- -filters -| demodata -| table -| render ----- - -This expression starts out with the <<filters_fn, filters>> function, which provides the value of any time filters or dropdown filters in the workpad. This is then inserted into <<demodata_fn, demodata>>, a function that returns exactly what you expect, demo data. Because the <<demodata_fn, demodata>> function receives the filter information from the <<filters_fn, filters>> function before it, it applies those filters to reduce the set of data it returns. We call the output from the previous function _context_. - -The filtered <<demodata_fn, demo data>> becomes the _context_ of the next function, <<table_fn, table>>, which creates a table visualization from this data set. The <<table_fn, table>> function isn’t strictly required, but by being explicit, you have the option of providing arguments to control things like the font used in the table. The output of the <<table_fn, table>> function becomes the _context_ of the <<render_fn, render>> function. Like the <<table_fn, table>>, the <<render_fn, render>> function isn’t required either, but it allows access to other arguments, such as styling the border of the element or injecting custom CSS. - - -[[canvas-function-arguments]] -=== Function arguments - -Let’s look at another expression, which uses the same <<demodata_fn, demodata>> function, but instead produces a pie chart. - -image::images/canvas-functions-can-take-arguments-pie-chart.png[Pie chart showing output of demodata function] -[source,text] ----- -filters -| demodata -| pointseries color="state" size="max(price)" -| pie -| render ----- - -To produce a filtered set of random data, the expression uses the <<filters_fn, filters>> and <<demodata_fn, demodata>> functions. This time, however, the output becomes the context for the <<pointseries_fn, pointseries>> function, which is a way to aggregate your data, similar to how Elasticsearch works, but more generalized. In this case, the data is split up using the `color` and `size` dimensions, using arguments on the <<pointseries_fn, pointseries>> function. Each unique value in the state column will have an associated size value, which in this case, will be the maximum value of the price column. - -If the expression stopped there, it would produce a `pointseries` data type as the output of this expression. But instead of looking at the raw values, the result is inserted into the <<pie_fn, pie>> function, which will produce an output that will render a pie visualization. And just like before, this is inserted into the <<render_fn, render>> function, which is useful for its arguments. - -The end result is a simple pie chart that uses the default color palette, but the <<pie_fn, pie>> function can take additional arguments that control how it gets rendered. For example, you can provide a `hole` argument to turn your pie chart into a donut chart by changing the expression to: - - -image::images/canvas-functions-can-take-arguments-donut-chart.png[Alternative output as donut chart] -[source,text] ----- -filters -| demodata -| pointseries color="state" size="max(price)" -| pie hole=50 -| render ----- - - -[[canvas-aliases-and-unnamed-arguments]] -=== Aliases and unnamed arguments - -Argument definitions have one canonical name, which is always provided in the underlying code. When argument definitions are used in an expression, they often include aliases that make them easier or faster to type. - -For example, the <<mapColumn_fn, mapColumn>> function has 2 arguments: - -* `expression` - Produces a calculated value. -* `name` - The name of column. - -The `expression` argument includes some aliases, namely `exp`, `fn`, and `function`. That means that you can use any of those four options to provide that argument’s value. - -So `mapColumn name=newColumn fn={string example}` is equal to `mapColumn name=newColumn expression={string example}`. - -There’s also a special type of alias which allows you to leave off the argument’s name entirely. The alias for this is an underscore, which indicates that the argument is an _unnamed_ argument and can be provided without explicitly naming it in the expression. The `name` argument here uses the _unnamed_ alias, which means that you can further simplify our example to `mapColumn newColumn fn={string example}`. - -NOTE: There can only be one _unnamed_ argument for each function. - - -[[canvas-change-your-expression-change-your-output]] -=== Change your expression, change your output -You can substitute one function for another to change the output. For example, you could change the visualization by swapping out the <<pie_fn, pie>> function for another renderer, a function that returns a `render` data type. - -Let’s change that last pie chart into a bubble chart by replacing the <<pie_fn, pie>> function with the <<plot_fn, plot>> function. This is possible because both functions can accept a `pointseries` data type as their _context_. Switching the functions will work, but it won’t produce a useful visualization on its own since you don’t have the x-axis and y-axis defined. You will also need to modify the <<pointseries_fn, pointseries>> function to change its output. In this case, you can change the `size` argument to `y`, so the maximum price values are plotted on the y-axis, and add an `x` argument using the `@timestamp` field in the data to plot those values over time. This leaves you with the following expression and produces a bubble chart showing the max price of each state over time: - -image::images/canvas-change-your-expression-chart.png[Bubble Chart, with price along x axis, and time along y axis] -[source,text] ----- -filters -| demodata -| pointseries color="state" y="max(price)" x="@timestamp" -| plot -| render ----- - -Similar to the <<pie_fn, pie>> function, the <<plot_fn, plot>> function takes arguments that control the design elements of the visualization. As one example, passing a `legend` argument with a value of `false` to the function will hide the legend on the chart. - -image::images/canvas-change-your-expression-chart-no-legend.png[Bubble Chart Without Legend] -[source,text,subs=+quotes] ----- -filters -| demodata -| pointseries color="state" y="max(price)" x="@timestamp" -| plot *legend=false* -| render ----- - - -[[canvas-fetch-and-manipulate-data]] -=== Fetch and manipulate data -So far, you have only seen expressions as a way to produce visualizations, but that’s not really what’s happening. Expressions only produce data, which is then used to create something, which in the case of Canvas, means rendering an element. An element can be a visualization, driven by data, but it can also be something much simpler, like a static image. Either way, an expression is used to produce an output that is used to render the desired result. For example, here’s an expression that shows an image: - -[source,text] ----- -image dataurl=https://placekitten.com/160/160 mode="cover" ----- - -But as mentioned, this doesn’t actually _render that image_, but instead it _produces some output that can be used to render that image_. That’s an important distinction, and you can see the actual output by adding in the render function and telling it to produce debug output. For example: - -[source,text] ----- -image dataurl=https://placekitten.com/160/160 mode="cover" -| render as=debug ----- - -The follow appears as JSON output: - -[source,JSON] ----- -{ - "type": "image", - "mode": "cover", - "dataurl": "https://placekitten.com/160/160" -} ----- - -NOTE: You may need to expand the element’s size to see the whole output. - -Canvas uses this output’s data type to map to a specific renderer and passes the entire output into it. It’s up to the image render function to produce an image on the workpad’s page. In this case, the expression produces some JSON output, but expressions can also produce other, simpler data, like a string or a number. Typically, useful results use JSON. - -Canvas uses the output to render an element, but other applications can use expressions to do pretty much anything. As stated previously, expressions simply execute functions, and the functions are all written in Javascript. That means if you can do something in Javascript, you can do it with an expression. - -This can include: - -* Sending emails -* Sending notifications -* Reading from a file -* Writing to a file -* Controlling devices with WebUSB or Web Bluetooth -* Consuming external APIs - -If your Javascript works in the environment where the code will run, such as in Node.js or in a browser, you can do it with an expression. - -[[canvas-expressions-compose-functions-with-subexpressions]] -=== Compose functions with sub-expressions - -You may have noticed another syntax in examples from other sections, namely expressions inside of curly brackets. These are called sub-expressions, and they can be used to provide a calculated value to another expression, instead of just a static one. - -A simple example of this is when you upload your own images to a Canvas workpad. That upload becomes an asset, and that asset can be retrieved using the `asset` function. Usually you’ll just do this from the UI, adding an image element to the page and uploading your image from the control in the sidebar, or picking an existing asset from there as well. In both cases, the system will consume that asset via the `asset` function, and you’ll end up with an expression similar to this: - -[source,text] ----- -image dataurl={asset 3cb3ec3a-84d7-48fa-8709-274ad5cc9e0b} ----- - -Sub-expressions are executed before the function that uses them is executed. In this case, `asset` will be run first, it will produce a value, the base64-encoded value of the image and that value will be used as the value for the `dataurl` argument in the <<image_fn, image>> function. After the asset function executes, you will get the following output: - -[source,text] ----- -image dataurl="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0" ----- - -Since all of the sub-expressions are now resolved into actual values, the <<image_fn, image>> function can be executed to produce its JSON output, just as it’s explained previously. In the case of images, the ability to nest sub-expressions is particularly useful to show one of several images conditionally. For example, you could swap between two images based on some calculated value by mixing in the <<if_fn, if>> function, like in this example expression: - -[source,text] ----- -demodata -| image dataurl={ - if condition={getCell price | gte 100} - then={asset 3cb3ec3a-84d7-48fa-8709-274ad5cc9e0b} - else={asset cbc11a1f-8f25-4163-94b4-2c3a060192e7} -} ----- - -NOTE: The examples in this section can’t be copy and pasted directly, since the values used throughout will not exist in your workpad. - -Here, the expression to use for the value of the `condition` argument, `getCell price | gte 100`, runs first since it is nested deeper. - -The expression does the following: - -* Retrieves the value from the *price* column in the first row of the `demodata` data table -* Inputs the value to the `gte` function -* Compares the value to `100` -* Returns `true` if the value is 100 or greater, and `false` if the value is 100 or less - -That boolean value becomes the value for the `condition` argument. The output from the `then` expression is used as the output when `condition` is `true`. The output from the `else` expression is used when `condition` is false. In both cases, a base64-encoded image will be returned, and one of the two images will be displayed. - -You might be wondering how the <<getCell_fn, getCell>> function in the sub-expression accessed the data from the <<demodata_fn, demoData>> function, even though <<demodata_fn, demoData>> was not being directly inserted into <<getCell_fn, getCell>>. The answer is simple, but important to understand. When nested sub-expressions are executed, they automatically receive the same _context_, or output of the previous function that its parent function receives. In this specific expression, demodata’s data table is automatically provided to the nested expression’s `getCell` function, which allows that expression to pull out a value and compare it to another value. - -The passing of the _context_ is automatic, and it happens no matter how deeply you nest your sub-expressions. To demonstrate this, let’s modify the expression slightly to compare the value of the price against multiple conditions using the <<all_fn, all>> function. - -[source,text] ----- -demodata -| image dataurl={ - if condition={getCell price | all {gte 100} {neq 105}} - then={asset 3cb3ec3a-84d7-48fa-8709-274ad5cc9e0b} - else={asset cbc11a1f-8f25-4163-94b4-2c3a060192e7} -} ----- - -This time, `getCell price` is run, and the result is passed into the next function as the context. Then, each sub-expression of the <<all_fn, all>> function is run, with the context given to their parent, which in this case is the result of `getCell price`. If `all` of these sub-expressions evaluate to `true`, then the `if` condition argument will be true. - -Sub-expressions can seem a little foreign, especially if you aren’t a developer, but they’re worth getting familiar with, since they provide a ton of power and flexibility. Since you can nest any expression you want, you can also use this behavior to mix data from multiple indices, or even data from multiple sources. As an example, you could query an API for a value to use as part of the query provided to <<essql_fn, essql>>. - -This whole section is really just scratching the surface, but hopefully after reading it, you at least understand how to read expressions and make sense of what they are doing. With a little practice, you’ll get the hang of mixing _context_ and sub-expressions together to turn any input into your desired output. - -[[canvas-handling-context-and-argument-types]] -=== Handling context and argument types -If you look through the <<canvas-function-reference,function docs>>, you may notice that all of them define what a function accepts and what it returns. Additionally, every argument includes a type property that specifies the kind of data that can be used. These two types of values are actually the same, and can be used as a guide for how to deal with piping to other functions and using subexpressions for argument values. - -To explain how this works, consider the following expression from the previous section: - -[source,text] ----- -image dataurl={asset 3cb3ec3a-84d7-48fa-8709-274ad5cc9e0b} ----- - -If you <<image_fn,look at the docs>> for the `image` function, you’ll see that it accepts the `null` data type and returns an `image` data type. Accepting `null` effectively means that it does not use context at all, so if you insert anything to `image`, the value that was produced previously will be ignored. When the function executes, it will produce an `image` output, which is simply an object of type `image` that contains the information required to render an image. - -NOTE: The function does not render an image itself. - -As explained in the "<<canvas-fetch-and-manipulate-data, Fetch and manipulate data>>" section, the output of an expression is just data. So the `image` type here is just a specific shape of data, not an actual image. - -Next, let’s take a look at the `asset` function. Like `image`, it accepts `null`, but it returns something different, a `string` in this case. Because `asset` will produce a string, its output can be used as the input for any function or argument that accepts a string. - -<<asset_fn,Looking at the docs>> for the `dataurl` argument, its type is `string`, meaning it will accept any kind of string. There are some rules about the value of the string that the function itself enforces, but as far as the interpreter is concerned, that expression is valid because the argument accepts a string and the output of `asset` is a string. - -The interpreter also attempts to cast some input types into others, which allows you to use a string input even when the function or argument calls for a number. Keep in mind that it’s not able to convert any string value, but if the string is a number, it can easily be cast into a `number` type. Take the following expression for example: - -[source,text] ----- -string "0.4" -| revealImage image={asset asset-06511b39-ec44-408a-a5f3-abe2da44a426} ----- - -If you <<revealImage_fn,check the docs>> for the `revealImage` function, you’ll see that it accepts a `number` but the `string` function returns a `string` type. In this case, because the string value is a number, it can be converted into a `number` type and used without you having to do anything else. - -Most `primitive` types can be converted automatically, as you might expect. You just saw that a `string` can be cast into a `number`, but you can also pretty easily cast things into `boolean` too, and you can cast anything to `null`. - -There are other useful type casting options available. For example, something of type `datatable` can be cast to a type `pointseries` simply by only preserving specific columns from the data (namely x, y, size, color, and text). This allows you to treat your source data, which is generally of type `datatable`, like a `pointseries` type simply by convention. - -You can fetch data from Elasticsearch using `essql`, which allows you to aggregate the data, provide a custom name for the value, and insert that data directly to another function that only accepts `pointseries` even though `essql` will output a `datatable` type. This makes the following example expression valid: - -[source,text] ----- -essql "SELECT user AS x, sum(cost) AS y FROM index GROUP BY user" -| plot ----- - -In the docs you can see that `essql` returns a `datatable` type, but `plot` expects a `pointseries` context. This works because the `datatable` output will have the columns `x` and `y` as a result of using `AS` in the sql statement to name them. Because the data follows the convention of the `pointseries` data type, casting it into `pointseries` is possible, and it can be passed directly to `plot` as a result. diff --git a/docs/canvas/canvas-function-reference.asciidoc b/docs/canvas/canvas-function-reference.asciidoc deleted file mode 100644 index 6a6c840074f0..000000000000 --- a/docs/canvas/canvas-function-reference.asciidoc +++ /dev/null @@ -1,2926 +0,0 @@ -[role="xpack"] -[[canvas-function-reference]] -== Canvas function reference - -Behind the scenes, Canvas is driven by a powerful expression language, -with dozens of functions and other capabilities, including table transforms, -type casting, and sub-expressions. - -The Canvas expression language also supports <<canvas-tinymath-functions>>, which -perform complex math calculations. - -A *** denotes a required argument. - -A † denotes an argument can be passed multiple times. - -<<a_fns>> | B | <<c_fns>> | <<d_fns>> | <<e_fns>> | <<f_fns>> | <<g_fns>> | <<h_fns>> | <<i_fns>> | <<j_fns>> | K | <<l_fns>> | <<m_fns>> | <<n_fns>> | O | <<p_fns>> | Q | <<r_fns>> | <<s_fns>> | <<t_fns>> | <<u_fns>> | <<v_fns>> | W | X | Y | Z - -[float] -[[a_fns]] -== A - -[float] -[[all_fn]] -=== `all` - -Returns `true` if all of the conditions are met. See also <<any_fn>>. - -*Expression syntax* -[source,js] ----- -all {neq "foo"} {neq "bar"} {neq "fizz"} -all condition={gt 10} condition={lt 20} ----- - -*Code example* -[source,text] ----- -filters -| demodata -| math "mean(percent_uptime)" -| formatnumber "0.0%" -| metric "Average uptime" - metricFont={ - font size=48 family="'Open Sans', Helvetica, Arial, sans-serif" - color={ - if {all {gte 0} {lt 0.8}} then="red" else="green" - } - align="center" lHeight=48 - } -| render ----- -This sets the color of the metric text to `"red"` if the context passed into `metric` is greater than or equal to 0 and less than 0.8. Otherwise, the color is set to `"green"`. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** † - -Alias: `condition` -|`boolean` -|The conditions to check. -|=== - -*Returns:* `boolean` - - -[float] -[[alterColumn_fn]] -=== `alterColumn` - -Converts between core types, including `string`, `number`, `null`, `boolean`, and `date`, and renames columns. See also <<mapColumn_fn>> and <<staticColumn_fn>>. - -*Expression syntax* -[source,js] ----- -alterColumn "cost" type="string" -alterColumn column="@timestamp" name="foo" ----- - -*Code example* -[source,text] ----- -filters -| demodata -| alterColumn "time" name="time_in_ms" type="number" -| table -| render ----- -This renames the `time` column to `time_in_ms` and converts the type of the column’s values from `date` to `number`. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `column` -|`string` -|The name of the column to alter. - -|`name` -|`string` -|The resultant column name. Leave blank to not rename. - -|`type` -|`string` -|The type to convert the column to. Leave blank to not change the type. -|=== - -*Returns:* `datatable` - - -[float] -[[any_fn]] -=== `any` - -Returns `true` if at least one of the conditions is met. See also <<all_fn>>. - -*Expression syntax* -[source,js] ----- -any {eq "foo"} {eq "bar"} {eq "fizz"} -any condition={lte 10} condition={gt 30} ----- - -*Code example* -[source,text] ----- -filters -| demodata -| filterrows { - getCell "project" | any {eq "elasticsearch"} {eq "kibana"} {eq "x-pack"} - } -| pointseries color="project" size="max(price)" -| pie -| render ----- -This filters out any rows that don’t contain `"elasticsearch"`, `"kibana"` or `"x-pack"` in the `project` field. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** † - -Alias: `condition` -|`boolean` -|The conditions to check. -|=== - -*Returns:* `boolean` - - -[float] -[[as_fn]] -=== `as` - -Creates a `datatable` with a single value. See also <<getCell_fn>>. - -*Expression syntax* -[source,js] ----- -as -as "foo" -as name="bar" ----- - -*Code example* -[source,text] ----- -filters -| demodata -| ply by="project" fn={math "count(username)" | as "num_users"} fn={math "mean(price)" | as "price"} -| pointseries x="project" y="num_users" size="price" color="project" -| plot -| render ----- -`as` casts any primitive value (`string`, `number`, `date`, `null`) into a `datatable` with a single row and a single column with the given name (or defaults to `"value"` if no name is provided). This is useful when piping a primitive value into a function that only takes `datatable` as an input. - -In the example, `ply` expects each `fn` subexpression to return a `datatable` in order to merge the results of each `fn` back into a `datatable`, but using a `math` aggregation in the subexpressions returns a single `math` value, which is then cast into a `datatable` using `as`. - -*Accepts:* `string`, `boolean`, `number`, `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `name` -|`string` -|The name to give the column. - -Default: `"value"` -|=== - -*Returns:* `datatable` - - -[float] -[[asset_fn]] -=== `asset` - -Retrieves Canvas workpad asset objects to provide as argument values. Usually images. - -*Expression syntax* -[source,js] ----- -asset "asset-52f14f2b-fee6-4072-92e8-cd2642665d02" -asset id="asset-498f7429-4d56-42a2-a7e4-8bf08d98d114" ----- - -*Code example* -[source,text] ----- -image dataurl={asset "asset-c661a7cc-11be-45a1-a401-d7592ea7917a"} mode="contain" -| render ----- -The image asset stored with the ID `"asset-c661a7cc-11be-45a1-a401-d7592ea7917a"` is passed into the `dataurl` argument of the `image` function to display the stored asset. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `id` -|`string` -|The ID of the asset to retrieve. -|=== - -*Returns:* `string` - - -[float] -[[axisConfig_fn]] -=== `axisConfig` - -Configures the axis of a visualization. Only used with <<plot_fn>>. - -*Expression syntax* -[source,js] ----- -axisConfig show=false -axisConfig position="right" min=0 max=10 tickSize=1 ----- - -*Code example* -[source,text] ----- -filters -| demodata -| pointseries x="size(cost)" y="project" color="project" -| plot defaultStyle={seriesStyle bars=0.75 horizontalBars=true} - legend=false - xaxis={axisConfig position="top" min=0 max=400 tickSize=100} - yaxis={axisConfig position="right"} -| render ----- -This sets the `x-axis` to display on the top of the chart and sets the range of values to `0-400` with ticks displayed at `100` intervals. The `y-axis` is configured to display on the `right`. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`max` -|`number`, `string`, `null` -|The maximum value displayed in the axis. Must be a number, a date in milliseconds since epoch, or an ISO8601 string. - -|`min` -|`number`, `string`, `null` -|The minimum value displayed in the axis. Must be a number, a date in milliseconds since epoch, or an ISO8601 string. - -|`position` -|`string` -|The position of the axis labels. For example, `"top"`, `"bottom"`, `"left"`, or `"right"`. - -Default: `"left"` - -|`show` -|`boolean` -|Show the axis labels? - -Default: `true` - -|`tickSize` -|`number`, `null` -|The increment size between each tick. Use for `number` axes only. -|=== - -*Returns:* `axisConfig` - -[float] -[[c_fns]] -== C - -[float] -[[case_fn]] -=== `case` - -Builds a <<case_fn>>, including a condition and a result, to pass to the <<switch_fn>> function. - -*Expression syntax* -[source,js] ----- -case 0 then="red" -case when=5 then="yellow" -case if={lte 50} then="green" ----- - -*Code example* -[source,text] ----- -math "random()" -| progress shape="gauge" label={formatnumber "0%"} - font={ - font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" align="center" - color={ - switch {case if={lte 0.5} then="green"} - {case if={all {gt 0.5} {lte 0.75}} then="orange"} - default="red" - } - } - valueColor={ - switch {case if={lte 0.5} then="green"} - {case if={all {gt 0.5} {lte 0.75}} then="orange"} - default="red" - } -| render ----- -This sets the color of the progress indicator and the color of the label to `"green"` if the value is less than or equal to `0.5`, `"orange"` if the value is greater than `0.5` and less than or equal to `0.75`, and `"red"` if `none` of the case conditions are met. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `when` -|`any` -|The value compared to the _context_ to see if they are equal. The `when` argument is ignored when the `if` argument is also specified. - -|`if` -|`boolean` -|This value indicates whether the condition is met. The `if` argument overrides the `when` argument when both are provided. - -|`then` *** -|`any` -|The value returned if the condition is met. -|=== - -*Returns:* `case` - - -[float] -[[clear_fn]] -=== `clear` - -Clears the _context_, and returns `null`. - -*Accepts:* `null` - -*Returns:* `null` - - -[float] -[[columns_fn]] -=== `columns` - -Includes or excludes columns from a `datatable`. When both arguments are specified, the excluded columns will be removed first. - -*Expression syntax* -[source,js] ----- -columns include="@timestamp, projects, cost" -columns exclude="username, country, age" ----- - -*Code example* -[source,text] ----- -filters -| demodata -| columns include="price, cost, state, project" -| table -| render ----- -This only keeps the `price`, `cost`, `state`, and `project` columns from the `demodata` data source and removes all other columns. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `include` -|`string` -|A comma-separated list of column names to keep in the `datatable`. - -|`exclude` -|`string` -|A comma-separated list of column names to remove from the `datatable`. -|=== - -*Returns:* `datatable` - - -[float] -[[compare_fn]] -=== `compare` - -Compares the _context_ to specified value to determine `true` or `false`. Usually used in combination with `<<if_fn>>` or <<case_fn>>. This only works with primitive types, such as `number`, `string`, `boolean`, `null`. See also <<eq_fn>>, <<gt_fn>>, <<gte_fn>>, <<lt_fn>>, <<lte_fn>>, <<neq_fn>> - -*Expression syntax* -[source,js] ----- -compare "neq" to="elasticsearch" -compare op="lte" to=100 ----- - -*Code example* -[source,text] ----- -filters -| demodata -| mapColumn project - fn={getCell project | - switch - {case if={compare eq to=kibana} then=kibana} - {case if={compare eq to=elasticsearch} then=elasticsearch} - default="other" - } -| pointseries size="size(cost)" color="project" -| pie -| render ----- -This maps all `project` values that aren’t `"kibana"` and `"elasticsearch"` to `"other"`. Alternatively, you can use the individual comparator functions instead of compare. - -*Accepts:* `string`, `number`, `boolean`, `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `op` -|`string` -|The operator to use in the comparison: `"eq"` (equal to), `"gt"` (greater than), `"gte"` (greater than or equal to), `"lt"` (less than), `"lte"` (less than or equal to), `"ne"` or `"neq"` (not equal to). - -Default: `"eq"` - -|`to` - -Aliases: `b`, `this` -|`any` -|The value compared to the _context_. -|=== - -*Returns:* `boolean` - - -[float] -[[containerStyle_fn]] -=== `containerStyle` - -Creates an object used for styling an element's container, including background, border, and opacity. - -*Expression syntax* -[source,js] ----- -containerStyle backgroundColor="red"’ -containerStyle borderRadius="50px" -containerStyle border="1px solid black" -containerStyle padding="5px" -containerStyle opacity="0.5" -containerStyle overflow="hidden" -containerStyle backgroundImage={asset id=asset-f40d2292-cf9e-4f2c-8c6f-a504a25e949c} - backgroundRepeat="no-repeat" - backgroundSize="cover" ----- - -*Code example* -[source,text] ----- -shape "star" fill="#E61D35" maintainAspect=true -| render containerStyle={ - containerStyle backgroundColor="#F8D546" - borderRadius="200px" - border="4px solid #05509F" - padding="0px" - opacity="0.9" - overflow="hidden" - } ----- - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`backgroundColor` -|`string` -|A valid CSS background color. - -|`backgroundImage` -|`string` -|A valid CSS background image. - -|`backgroundRepeat` -|`string` -|A valid CSS background repeat. - -Default: `"no-repeat"` - -|`backgroundSize` -|`string` -|A valid CSS background size. - -Default: `"contain"` - -|`border` -|`string` -|A valid CSS border. - -|`borderRadius` -|`string` -|The number of pixels to use when rounding the corners. - -|`opacity` -|`number` -|A number between 0 and 1 that represents the degree of transparency of the element. - -|`overflow` -|`string` -|A valid CSS overflow. - -Default: `"hidden"` - -|`padding` -|`string` -|The distance of the content, in pixels, from the border. -|=== - -*Returns:* `containerStyle` - - -[float] -[[context_fn]] -=== `context` - -Returns whatever you pass into it. This can be useful when you need to use _context_ as argument to a function as a sub-expression. - -*Expression syntax* -[source,js] ----- -context ----- - -*Code example* -[source,text] ----- -date -| formatdate "LLLL" -| markdown "Last updated: " {context} -| render ----- -Using the `context` function allows us to pass the output, or _context_, of the previous function as a value to an argument in the next function. Here we get the formatted date string from the previous function and pass it as `content` for the markdown element. - -*Accepts:* `any` - -*Returns:* Depends on your input and arguments - - -[float] -[[csv_fn]] -=== `csv` - -Creates a `datatable` from CSV input. - -*Expression syntax* -[source,js] ----- -csv "fruit, stock - kiwi, 10 - Banana, 5" ----- - -*Code example* -[source,text] ----- -csv "fruit,stock - kiwi,10 - banana,5" -| pointseries color=fruit size=stock -| pie -| render ----- -This creates a `datatable` with `fruit` and `stock` columns with two rows. This is useful for quickly mocking data. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `data` -|`string` -|The CSV data to use. - -|`delimiter` -|`string` -|The data separation character. - -|`newline` -|`string` -|The row separation character. -|=== - -*Returns:* `datatable` - -[float] -[[d_fns]] -== D - -[float] -[[date_fn]] -=== `date` - -Returns the current time, or a time parsed from a specified string, as milliseconds since epoch. - -*Expression syntax* -[source,js] ----- -date -date value=1558735195 -date "2019-05-24T21:59:55+0000" -date "01/31/2019" format="MM/DD/YYYY" ----- - -*Code example* -[source,text] ----- -date -| formatdate "LLL" -| markdown {context} - font={font family="Arial, sans-serif" size=30 align="left" - color="#000000" - weight="normal" - underline=false - italic=false} -| render ----- -Using `date` without passing any arguments will return the current date and time. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `value` -|`string` -|An optional date string that is parsed into milliseconds since epoch. The date string can be either a valid JavaScript `Date` input or a string to parse using the `format` argument. Must be an ISO8601 string, or you must provide the format. - -|`format` -|`string` -|The MomentJS format used to parse the specified date string. For more information, see https://momentjs.com/docs/#/displaying/. -|=== - -*Returns:* `number` - - -[float] -[[demodata_fn]] -=== `demodata` - -A sample data set that includes project CI times with usernames, countries, and run phases. - -*Expression syntax* -[source,js] ----- -demodata -demodata "ci" -demodata type="shirts" ----- - -*Code example* -[source,text] ----- -filters -| demodata -| table -| render ----- -`demodata` is a mock data set that you can use to start playing around in Canvas. - -*Accepts:* `filter` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `type` -|`string` -|The name of the demo data set to use. - -Default: `"ci"` -|=== - -*Returns:* `datatable` - - -[float] -[[do_fn]] -=== `do` - -Executes multiple sub-expressions, then returns the original _context_. Use for running functions that produce an action or a side effect without changing the original _context_. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ † - -Aliases: `exp`, `expression`, `fn`, `function` -|`any` -|The sub-expressions to execute. The return values of these sub-expressions are not available in the root pipeline as this function simply returns the original _context_. -|=== - -*Returns:* Depends on your input and arguments - - -[float] -[[dropdownControl_fn]] -=== `dropdownControl` - -Configures a dropdown filter control element. - -*Expression syntax* -[source,js] ----- -dropdownControl valueColumn=project filterColumn=project -dropdownControl valueColumn=agent filterColumn=agent.keyword filterGroup=group1 ----- - -*Code example* -[source,text] ----- -demodata -| dropdownControl valueColumn=project filterColumn=project -| render ----- -This creates a dropdown filter element. It requires a data source and uses the unique values from the given `valueColumn` (i.e. `project`) and applies the filter to the `project` column. Note: `filterColumn` should point to a keyword type field for Elasticsearch data sources. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`filterColumn` *** -|`string` -|The column or field that you want to filter. - -|`filterGroup` -|`string` -|The group name for the filter. - -|`valueColumn` *** -|`string` -|The column or field from which to extract the unique values for the dropdown control. -|=== - -*Returns:* `render` - -[float] -[[e_fns]] -== E - -[float] -[[eq_fn]] -=== `eq` - -Returns whether the _context_ is equal to the argument. - -*Expression syntax* -[source,js] ----- -eq true -eq null -eq 10 -eq "foo" ----- - -*Code example* -[source,text] ----- -filters -| demodata -| mapColumn project - fn={getCell project | - switch - {case if={eq kibana} then=kibana} - {case if={eq elasticsearch} then=elasticsearch} - default="other" - } -| pointseries size="size(cost)" color="project" -| pie -| render ----- -This changes all values in the project column that don’t equal `"kibana"` or `"elasticsearch"` to `"other"`. - -*Accepts:* `boolean`, `number`, `string`, `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `value` -|`boolean`, `number`, `string`, `null` -|The value compared to the _context_. -|=== - -*Returns:* `boolean` - - -[float] -[[escount_fn]] -=== `escount` - -Query Elasticsearch for the number of hits matching the specified query. - -*Expression syntax* -[source,js] ----- -escount index="logstash-*" -escount "currency:"EUR"" index="kibana_sample_data_ecommerce" -escount query="response:404" index="kibana_sample_data_logs" ----- - -*Code example* -[source,text] ----- -filters -| escount "Cancelled:true" index="kibana_sample_data_flights" -| math "value" -| progress shape="semicircle" - label={formatnumber 0,0} - font={font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center} - max={filters | escount index="kibana_sample_data_flights"} -| render ----- -The first `escount` expression retrieves the number of flights that were cancelled. The second `escount` expression retrieves the total number of flights. - -*Accepts:* `filter` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `q`, `query` -|`string` -|A Lucene query string. - -Default: `"-_index:.kibana"` - -|`index` -|`string` -|An index or index pattern. For example, `"logstash-*"`. - -Default: `"_all"` -|=== - -*Returns:* `number` - - -[float] -[[esdocs_fn]] -=== `esdocs` - -Query Elasticsearch for raw documents. Specify the fields you want to retrieve, especially if you are asking for a lot of rows. - -*Expression syntax* -[source,js] ----- -esdocs index="logstash-*" -esdocs "currency:"EUR"" index="kibana_sample_data_ecommerce" -esdocs query="response:404" index="kibana_sample_data_logs" -esdocs index="kibana_sample_data_flights" count=100 -esdocs index="kibana_sample_data_flights" sort="AvgTicketPrice, asc" ----- - -*Code example* -[source,text] ----- -filters -| esdocs index="kibana_sample_data_ecommerce" - fields="customer_gender, taxful_total_price, order_date" - sort="order_date, asc" - count=10000 -| mapColumn "order_date" - fn={getCell "order_date" | date {context} | rounddate "YYYY-MM-DD"} -| alterColumn "order_date" type="date" -| pointseries x="order_date" y="sum(taxful_total_price)" color="customer_gender" -| plot defaultStyle={seriesStyle lines=3} - palette={palette "#7ECAE3" "#003A4D" gradient=true} -| render ----- -This retrieves the first 10000 documents data from the `kibana_sample_data_ecommerce` index sorted by `order_date` in ascending order, and only requests the `customer_gender`, `taxful_total_price`, and `order_date` fields. - -*Accepts:* `filter` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `q`, `query` -|`string` -|A Lucene query string. - -Default: `"-_index:.kibana"` - -|`count` -|`number` -|The number of documents to retrieve. For better performance, use a smaller data set. - -Default: `1000` - -|`fields` -|`string` -|A comma-separated list of fields. For better performance, use fewer fields. - -|`index` -|`string` -|An index or index pattern. For example, `"logstash-*"`. - -Default: `"_all"` - -|`metaFields` -|`string` -|Comma separated list of meta fields. For example, `"_index,_type"`. - -|`sort` -|`string` -|The sort direction formatted as `"field, direction"`. For example, `"@timestamp, desc"` or `"bytes, asc"`. -|=== - -*Returns:* `datatable` - - -[float] -[[essql_fn]] -=== `essql` - -Queries Elasticsearch using Elasticsearch SQL. - -*Expression syntax* -[source,js] ----- -essql query="SELECT * FROM "logstash*"" -essql "SELECT * FROM "apm*"" count=10000 ----- - -*Code example* -[source,text] ----- -filters -| essql query="SELECT Carrier, FlightDelayMin, AvgTicketPrice FROM "kibana_sample_data_flights"" -| table -| render ----- -This retrieves the `Carrier`, `FlightDelayMin`, and `AvgTicketPrice` fields from the "kibana_sample_data_flights" index. - -*Accepts:* `filter` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `q`, `query` -|`string` -|An Elasticsearch SQL query. - -|`count` -|`number` -|The number of documents to retrieve. For better performance, use a smaller data set. - -Default: `1000` - -|`timezone` - -Alias: `tz` -|`string` -|The timezone to use for date operations. Valid ISO8601 formats and UTC offsets both work. - -Default: `"UTC"` -|=== - -*Returns:* `datatable` - - -[float] -[[exactly_fn]] -=== `exactly` - -Creates a filter that matches a given column to an exact value. - -*Expression syntax* -[source,js] ----- -exactly "state" value="running" -exactly "age" value=50 filterGroup="group2" -exactly column="project" value="beats" ----- - -*Code example* -[source,text] ----- -filters -| exactly column=project value=elasticsearch -| demodata -| pointseries x=project y="mean(age)" -| plot defaultStyle={seriesStyle bars=1} -| render ----- -The `exactly` filter here is added to existing filters retrieved by the `filters` function and further filters down the data to only have `"elasticsearch"` data. The `exactly` filter only applies to this one specific element and will not affect other elements in the workpad. - -*Accepts:* `filter` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`column` *** - -Aliases: `c`, `field` -|`string` -|The column or field that you want to filter. - -|`filterGroup` -|`string` -|The group name for the filter. - -|`value` *** - -Aliases: `v`, `val` -|`string` -|The value to match exactly, including white space and capitalization. -|=== - -*Returns:* `filter` - -[float] -[[f_fns]] -== F - -[float] -[[filterrows_fn]] -=== `filterrows` - -Filters rows in a `datatable` based on the return value of a sub-expression. - -*Expression syntax* -[source,js] ----- -filterrows {getCell "project" | eq "kibana"} -filterrows fn={getCell "age" | gt 50} ----- - -*Code example* -[source,text] ----- -filters -| demodata -| filterrows {getCell "country" | any {eq "IN"} {eq "US"} {eq "CN"}} -| mapColumn "@timestamp" - fn={getCell "@timestamp" | rounddate "YYYY-MM"} -| alterColumn "@timestamp" type="date" -| pointseries x="@timestamp" y="mean(cost)" color="country" -| plot defaultStyle={seriesStyle points="2" lines="1"} - palette={palette "#01A4A4" "#CC6666" "#D0D102" "#616161" "#00A1CB" "#32742C" "#F18D05" "#113F8C" "#61AE24" "#D70060" gradient=false} -| render ----- -This uses `filterrows` to only keep data from India (`IN`), the United States (`US`), and China (`CN`). - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Aliases: `exp`, `expression`, `fn`, `function` -|`boolean` -|An expression to pass into each row in the `datatable`. The expression should return a `boolean`. A `true` value preserves the row, and a `false` value removes it. -|=== - -*Returns:* `datatable` - - -[float] -[[filters_fn]] -=== `filters` - -Aggregates element filters from the workpad for use elsewhere, usually a data source. - -*Expression syntax* -[source,js] ----- -filters -filters group="timefilter1" -filters group="timefilter2" group="dropdownfilter1" ungrouped=true ----- - -*Code example* -[source,text] ----- -filters group=group2 ungrouped=true -| demodata -| pointseries x="project" y="size(cost)" color="project" -| plot defaultStyle={seriesStyle bars=0.75} legend=false - font={ - font size=14 - family="'Open Sans', Helvetica, Arial, sans-serif" - align="left" - color="#FFFFFF" - weight="lighter" - underline=true - italic=true - } -| render ----- -`filters` sets the existing filters as context and accepts a `group` parameter to opt into specific filter groups. Setting `ungrouped` to `true` opts out of using global filters. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ † - -Alias: `group` -|`string` -|The name of the filter group to use. - -|`ungrouped` - -Aliases: `nogroup`, `nogroups` -|`boolean` -|Exclude filters that belong to a filter group? - -Default: `false` -|=== - -*Returns:* `filter` - - -[float] -[[font_fn]] -=== `font` - -Create a font style. - -*Expression syntax* -[source,js] ----- -font size=12 -font family=Arial -font align=middle -font color=pink -font weight=lighter -font underline=true -font italic=false -font lHeight=32 ----- - -*Code example* -[source,text] ----- -filters -| demodata -| pointseries x="project" y="size(cost)" color="project" -| plot defaultStyle={seriesStyle bars=0.75} legend=false - font={ - font size=14 - family="'Open Sans', Helvetica, Arial, sans-serif" - align="left" - color="#FFFFFF" - weight="lighter" - underline=true - italic=true - } -| render ----- - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`align` -|`string` -|The horizontal text alignment. - -Default: `"left"` - -|`color` -|`string` -|The text color. - -|`family` -|`string` -|An acceptable CSS web font string - -Default: `"'Open Sans', Helvetica, Arial, sans-serif"` - -|`italic` -|`boolean` -|Italicize the text? - -Default: `false` - -|`lHeight` - -Alias: `lineHeight` -|`number`, `null` -|The line height in pixels - -Default: `null` - -|`size` -|`number` -|The font size in pixels - -Default: `14` - -|`underline` -|`boolean` -|Underline the text? - -Default: `false` - -|`weight` -|`string` -|The font weight. For example, `"normal"`, `"bold"`, `"bolder"`, `"lighter"`, `"100"`, `"200"`, `"300"`, `"400"`, `"500"`, `"600"`, `"700"`, `"800"`, or `"900"`. - -Default: `"normal"` -|=== - -*Returns:* `style` - - -[float] -[[formatdate_fn]] -=== `formatdate` - -Formats an ISO8601 date string or a date in milliseconds since epoch using MomentJS. See https://momentjs.com/docs/#/displaying/. - -*Expression syntax* -[source,js] ----- -formatdate format="YYYY-MM-DD" -formatdate "MM/DD/YYYY" ----- - -*Code example* -[source,text] ----- -filters -| demodata -| mapColumn "time" fn={getCell time | formatdate "MMM 'YY"} -| pointseries x="time" y="sum(price)" color="state" -| plot defaultStyle={seriesStyle points=5} -| render ----- -This transforms the dates in the `time` field into strings that look like `"Jan ‘19"`, `"Feb ‘19"`, etc. using a MomentJS format. - -*Accepts:* `number`, `string` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `format` -|`string` -|A MomentJS format. For example, `"MM/DD/YYYY"`. See https://momentjs.com/docs/#/displaying/. -|=== - -*Returns:* `string` - - -[float] -[[formatnumber_fn]] -=== `formatnumber` - -Formats a number into a formatted number string using the Numeral pattern. - -*Expression syntax* -[source,js] ----- -formatnumber format="$0,0.00" -formatnumber "0.0a" ----- - -*Code example* -[source,text] ----- -filters -| demodata -| math "mean(percent_uptime)" -| progress shape="gauge" - label={formatnumber "0%"} - font={font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align="center"} -| render ----- -The `formatnumber` subexpression receives the same `context` as the `progress` function, which is the output of the `math` function. It formats the value into a percentage. - -*Accepts:* `number` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `format` -|`string` -|A Numeral pattern format string. For example, `"0.0a"` or `"0%"`. -|=== - -*Returns:* `string` - -[float] -[[g_fns]] -== G - -[float] -[[getCell_fn]] -=== `getCell` - -Fetches a single cell from a `datatable`. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `c`, `column` -|`string` -|The name of the column to fetch the value from. If not provided, the value is retrieved from the first column. - -|`row` - -Alias: `r` -|`number` -|The row number, starting at 0. - -Default: `0` -|=== - -*Returns:* Depends on your input and arguments - - -[float] -[[gt_fn]] -=== `gt` - -Returns whether the _context_ is greater than the argument. - -*Accepts:* `number`, `string` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `value` -|`number`, `string` -|The value compared to the _context_. -|=== - -*Returns:* `boolean` - - -[float] -[[gte_fn]] -=== `gte` - -Returns whether the _context_ is greater or equal to the argument. - -*Accepts:* `number`, `string` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `value` -|`number`, `string` -|The value compared to the _context_. -|=== - -*Returns:* `boolean` - -[float] -[[h_fns]] -== H - -[float] -[[head_fn]] -=== `head` - -Retrieves the first N rows from the `datatable`. See also <<tail_fn>>. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `count` -|`number` -|The number of rows to retrieve from the beginning of the `datatable`. - -Default: `1` -|=== - -*Returns:* `datatable` - -[float] -[[i_fns]] -== I - -[float] -[[if_fn]] -=== `if` - -Performs conditional logic. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `condition` -|`boolean` -|A `true` or `false` indicating whether a condition is met, usually returned by a sub-expression. When unspecified, the original _context_ is returned. - -|`else` -|`any` -|The return value when the condition is `false`. When unspecified and the condition is not met, the original _context_ is returned. - -|`then` -|`any` -|The return value when the condition is `true`. When unspecified and the condition is met, the original _context_ is returned. -|=== - -*Returns:* Depends on your input and arguments - - -[float] -[[image_fn]] -=== `image` - -Displays an image. Provide an image asset as a `base64` data URL, or pass in a sub-expression. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `dataurl`, `url` -|`string`, `null` -|The HTTP(S) URL or `base64` data URL of an image. - -Example value for the _Unnamed_ argument, formatted as a `base64` data URL: -[source, url] ------------- -data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDI3MC42MDAwMSAyNjkuNTQ2NjYiCiAgIGhlaWdodD0iMjY5LjU0NjY2IgogICB3aWR0aD0iMjcwLjYwMDAxIgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIj48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNiIgLz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsLTEuMzMzMzMzMywwLDI2OS41NDY2NykiCiAgICAgaWQ9ImcxMCI+PGcKICAgICAgIHRyYW5zZm9ybT0ic2NhbGUoMC4xKSIKICAgICAgIGlkPSJnMTIiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMTQiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMjAyOS40OCw5NjIuNDQxIGMgMCwxNzAuMDk5IC0xMDUuNDYsMzE4Ljc5OSAtMjY0LjE3LDM3Ni42NTkgNi45OCwzNS44NiAxMC42Miw3MS43MSAxMC42MiwxMDkuMDUgMCwzMTYuMTkgLTI1Ny4yNCw1NzMuNDMgLTU3My40Nyw1NzMuNDMgLTE4NC43MiwwIC0zNTYuNTU4LC04OC41OSAtNDY0LjUzLC0yMzcuODUgLTUzLjA5LDQxLjE4IC0xMTguMjg1LDYzLjc1IC0xODYuMzA1LDYzLjc1IC0xNjcuODM2LDAgLTMwNC4zODMsLTEzNi41NCAtMzA0LjM4MywtMzA0LjM4IDAsLTM3LjA4IDYuNjE3LC03Mi41OCAxOS4wMzEsLTEwNi4wOCBDIDEwOC40ODgsMTM4MC4wOSAwLDEyMjcuODkgMCwxMDU4Ljg4IDAsODg3LjkxIDEwNS45NzcsNzM4LjUzOSAyNjUuMzk4LDY4MS4wOSBjIC02Ljc2OSwtMzUuNDQyIC0xMC40NiwtNzIuMDIgLTEwLjQ2LC0xMDkgQyAyNTQuOTM4LDI1Ni42MjEgNTExLjU2NiwwIDgyNy4wMjcsMCAxMDEyLjIsMCAxMTgzLjk0LDg4Ljk0MTQgMTI5MS4zLDIzOC44MzIgYyA1My40NSwtNDEuOTYxIDExOC44LC02NC45OTIgMTg2LjU2LC02NC45OTIgMTY3LjgzLDAgMzA0LjM4LDEzNi40OTIgMzA0LjM4LDMwNC4zMzIgMCwzNy4wNzggLTYuNjIsNzIuNjI5IC0xOS4wMywxMDYuMTI5IDE1Ny43OCw1Ni44NzkgMjY2LjI3LDIwOS4xMjkgMjY2LjI3LDM3OC4xNCIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDE2IgogICAgICAgICBzdHlsZT0iZmlsbDojZmFjZjA5O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDc5Ny44OTgsMTE1MC45MyA0NDQuMDcyLC0yMDIuNDUgNDQ4LjA1LDM5Mi41OCBjIDYuNDksMzIuMzkgOS42Niw2NC42NyA5LjY2LDk4LjQ2IDAsMjc2LjIzIC0yMjQuNjgsNTAwLjk1IC01MDAuOSw1MDAuOTUgLTE2NS4yNCwwIC0zMTkuMzcsLTgxLjM2IC00MTMuMDUzLC0yMTcuNzkgbCAtNzQuNTI0LC0zODYuNjQgODYuNjk1LC0xODUuMTEiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgxOCIKICAgICAgICAgc3R5bGU9ImZpbGw6IzQ5YzFhZTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguMjIzLDY4MC42NzIgYyAtNi40ODksLTMyLjM4MyAtOS44MDksLTY1Ljk4MSAtOS44MDksLTk5Ljk3MyAwLC0yNzYuOTI5IDIyNS4zMzYsLTUwMi4yNTc2IDUwMi4zMTMsLTUwMi4yNTc2IDE2Ni41OTMsMCAzMjEuNDczLDgyLjExNzYgNDE1LjAxMywyMTkuOTQ5NiBsIDczLjk3LDM4NS4zNDcgLTk4LjcyLDE4OC42MjEgTCA3NzUuMTU2LDEwNzUuNTcgMzM4LjIyMyw2ODAuNjcyIiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNlZjI5OWI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM1LjQxLDE0NDkuMTggMzA0LjMzMiwtNzEuODYgNjYuNjgsMzQ2LjAyIGMgLTQxLjU4NiwzMS43OCAtOTIuOTMsNDkuMTggLTE0NS43MzEsNDkuMTggLTEzMi4yNSwwIC0yMzkuODEyLC0xMDcuNjEgLTIzOS44MTIsLTIzOS44NyAwLC0yOS4yMSA0Ljg3OSwtNTcuMjIgMTQuNTMxLC04My40NyIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDIyIgogICAgICAgICBzdHlsZT0iZmlsbDojNGNhYmU0O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJNIDMwOC45OTIsMTM3Ni43IEMgMTczLjAyLDEzMzEuNjQgNzguNDgwNSwxMjAxLjMgNzguNDgwNSwxMDU3LjkzIDc4LjQ4MDUsOTE4LjM0IDE2NC44Miw3OTMuNjggMjk0LjQwNiw3NDQuMzUyIGwgNDI2Ljk4MSwzODUuOTM4IC03OC4zOTUsMTY3LjUxIC0zMzQsNzguOSIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICBzdHlsZT0iZmlsbDojODVjZTI2O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDEzMjMuOCwyOTguNDEgYyA0MS43NCwtMzIuMDkgOTIuODMsLTQ5LjU5IDE0NC45OCwtNDkuNTkgMTMyLjI1LDAgMjM5LjgxLDEwNy41NTkgMjM5LjgxLDIzOS44MjEgMCwyOS4xNiAtNC44OCw1Ny4xNjggLTE0LjUzLDgzLjQxOCBsIC0zMDQuMDgsNzEuMTYgLTY2LjE4LC0zNDQuODA5IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjYiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMzMTc3YTc7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMTM4NS42Nyw3MjIuOTMgMzM0Ljc2LC03OC4zMDEgYyAxMzYuMDIsNDQuOTYxIDIzMC41NiwxNzUuMzUxIDIzMC41NiwzMTguNzYyIDAsMTM5LjMzOSAtODYuNTQsMjYzLjg1OSAtMjE2LjM4LDMxMy4wMzkgbCAtNDM3Ljg0LC0zODMuNTkgODguOSwtMTY5LjkxIiAvPjwvZz48L2c+PC9zdmc+ ------------- - -|`mode` -|`string` -|`"contain"` shows the entire image, scaled to fit. `"cover"` fills the container with the image, cropping from the sides or bottom as needed. `"stretch"` resizes the height and width of the image to 100% of the container. - -Default: `"contain"` -|=== - -*Returns:* `image` - -[float] -[[j_fns]] -== J - -[float] -[[joinRows_fn]] -=== `joinRows` - -Concatenates values from rows in a `datatable` into a single string. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `column` -|`string` -|The column or field from which to extract the values. - -|`distinct` -|`boolean` -|Extract only unique values? - -Default: `true` - -|`quote` -|`string` -|The quote character to wrap around each extracted value. - -Default: `"'"` - -|`separator` - -Aliases: `delimiter`, `sep` -|`string` -|The delimiter to insert between each extracted value. - -Default: `","` -|=== - -*Returns:* `string` - -[float] -[[l_fns]] -== L - -[float] -[[location_fn]] -=== `location` - -Find your current location using the Geolocation API of the browser. Performance can vary, but is fairly accurate. See https://developer.mozilla.org/en-US/docs/Web/API/Navigator/geolocation. Don’t use <<location_fn>> if you plan to generate PDFs as this function requires user input. - -*Accepts:* `null` - -*Returns:* `datatable` - - -[float] -[[lt_fn]] -=== `lt` - -Returns whether the _context_ is less than the argument. - -*Accepts:* `number`, `string` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `value` -|`number`, `string` -|The value compared to the _context_. -|=== - -*Returns:* `boolean` - - -[float] -[[lte_fn]] -=== `lte` - -Returns whether the _context_ is less than or equal to the argument. - -*Accepts:* `number`, `string` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `value` -|`number`, `string` -|The value compared to the _context_. -|=== - -*Returns:* `boolean` - -[float] -[[m_fns]] -== M - -[float] -[[mapCenter_fn]] -=== `mapCenter` - -Returns an object with the center coordinates and zoom level of the map. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`lat` *** -|`number` -|Latitude for the center of the map - -|`lon` *** -|`number` -|Longitude for the center of the map - -|`zoom` *** -|`number` -|Zoom level of the map -|=== - -*Returns:* `mapCenter` - - -[float] -[[mapColumn_fn]] -=== `mapColumn` - -Adds a column calculated as the result of other columns. Changes are made only when you provide arguments.See also <<alterColumn_fn>> and <<staticColumn_fn>>. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Aliases: `column`, `name` -|`string` -|The name of the resulting column. - -|`expression` *** - -Aliases: `exp`, `fn`, `function` -|`boolean`, `number`, `string`, `null` -|A Canvas expression that is passed to each row as a single row `datatable`. -|=== - -*Returns:* `datatable` - - -[float] -[[markdown_fn]] -=== `markdown` - -Adds an element that renders Markdown text. TIP: Use the <<markdown_fn>> function for single numbers, metrics, and paragraphs of text. - -*Accepts:* `datatable`, `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ † - -Aliases: `content`, `expression` -|`string` -|A string of text that contains Markdown. To concatenate, pass the `string` function multiple times. - -Default: `""` - -|`font` -|`style` -|The CSS font properties for the content. For example, "font-family" or "font-weight". - -Default: `${font}` - -|`openLinksInNewTab` -|`boolean` -|A true or false value for opening links in a new tab. The default value is `false`. Setting to `true` opens all links in a new tab. - -Default: `false` -|=== - -*Returns:* `render` - - -[float] -[[math_fn]] -=== `math` - -Interprets a `TinyMath` math expression using a `number` or `datatable` as _context_. The `datatable` columns are available by their column name. If the _context_ is a number it is available as `value`. - -*Accepts:* `number`, `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `expression` -|`string` -|An evaluated `TinyMath` expression. See https://www.elastic.co/guide/en/kibana/current/canvas-tinymath-functions.html. -|=== - -*Returns:* `number` - - -[float] -[[metric_fn]] -=== `metric` - -Displays a number over a label. - -*Accepts:* `number`, `string`, `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `description`, `label`, `text` -|`string` -|The text describing the metric. - -Default: `""` - -|`labelFont` -|`style` -|The CSS font properties for the label. For example, `font-family` or `font-weight`. - -Default: `${font size=14 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}` - -|`metricFont` -|`style` -|The CSS font properties for the metric. For example, `font-family` or `font-weight`. - -Default: `${font size=48 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center lHeight=48}` - -|`metricFormat` - -Alias: `format` -|`string` -|A Numeral pattern format string. For example, `"0.0a"` or `"0%"`. -|=== - -*Returns:* `render` - -[float] -[[n_fns]] -== N - -[float] -[[neq_fn]] -=== `neq` - -Returns whether the _context_ is not equal to the argument. - -*Accepts:* `boolean`, `number`, `string`, `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `value` -|`boolean`, `number`, `string`, `null` -|The value compared to the _context_. -|=== - -*Returns:* `boolean` - -[float] -[[p_fns]] -== P - -[float] -[[palette_fn]] -=== `palette` - -Creates a color palette. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ † - -Alias: `color` -|`string` -|The palette colors. Accepts an HTML color name, HEX, HSL, HSLA, RGB, or RGBA. - -|`gradient` -|`boolean` -|Make a gradient palette where supported? - -Default: `false` - -|`reverse` -|`boolean` -|Reverse the palette? - -Default: `false` -|=== - -*Returns:* `palette` - - -[float] -[[pie_fn]] -=== `pie` - -Configures a pie chart element. - -*Accepts:* `pointseries` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`font` -|`style` -|The CSS font properties for the labels. For example, `font-family` or `font-weight`. - -Default: `${font}` - -|`hole` -|`number` -|Draws a hole in the pie, between `0` and `100`, as a percentage of the pie radius. - -Default: `0` - -|`labelRadius` -|`number` -|The percentage of the container area to use as a radius for the label circle. - -Default: `100` - -|`labels` -|`boolean` -|Display the pie labels? - -Default: `true` - -|`legend` -|`string`, `boolean` -|The legend position. For example, `"nw"`, `"sw"`, `"ne"`, `"se"`, or `false`. When `false`, the legend is hidden. - -Default: `false` - -|`palette` -|`palette` -|A `palette` object for describing the colors to use in this pie chart. - -Default: `${palette}` - -|`radius` -|`string`, `number` -|The radius of the pie as a percentage, between `0` and `1`, of the available space. To automatically set the radius, use `"auto"`. - -Default: `"auto"` - -|`seriesStyle` † -|`seriesStyle` -|A style of a specific series - -|`tilt` -|`number` -|The percentage of tilt where `1` is fully vertical, and `0` is completely flat. - -Default: `1` -|=== - -*Returns:* `render` - - -[float] -[[plot_fn]] -=== `plot` - -Configures a chart element. - -*Accepts:* `pointseries` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`defaultStyle` -|`seriesStyle` -|The default style to use for every series. - -Default: `${seriesStyle points=5}` - -|`font` -|`style` -|The CSS font properties for the labels. For example, `font-family` or `font-weight`. - -Default: `${font}` - -|`legend` -|`string`, `boolean` -|The legend position. For example, `"nw"`, `"sw"`, `"ne"`, `"se"`, or `false`. When `false`, the legend is hidden. - -Default: `"ne"` - -|`palette` -|`palette` -|A `palette` object for describing the colors to use in this chart. - -Default: `${palette}` - -|`seriesStyle` † -|`seriesStyle` -|A style of a specific series - -|`xaxis` -|`boolean`, `axisConfig` -|The axis configuration. When `false`, the axis is hidden. - -Default: `true` - -|`yaxis` -|`boolean`, `axisConfig` -|The axis configuration. When `false`, the axis is hidden. - -Default: `true` -|=== - -*Returns:* `render` - - -[float] -[[ply_fn]] -=== `ply` - -Subdivides a `datatable` by the unique values of the specified columns, and passes the resulting tables into an expression, then merges the outputs of each expression. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`by` † -|`string` -|The column to subdivide the `datatable`. - -|`expression` † - -Aliases: `exp`, `fn`, `function` -|`datatable` -|An expression to pass each resulting `datatable` into. Tips: Expressions must return a `datatable`. Use <<as_fn>> to turn literals into `datatable`s. Multiple expressions must return the same number of rows.If you need to return a different row count, pipe into another instance of <<ply_fn>>. If multiple expressions returns the columns with the same name, the last one wins. -|=== - -*Returns:* `datatable` - - -[float] -[[pointseries_fn]] -=== `pointseries` - -Turn a `datatable` into a point series model. Currently we differentiate measure from dimensions by looking for a `TinyMath` expression. See https://www.elastic.co/guide/en/kibana/current/canvas-tinymath-functions.html. If you enter a `TinyMath` expression in your argument, we treat that argument as a measure, otherwise it is a dimension. Dimensions are combined to create unique keys. Measures are then deduplicated by those keys using the specified `TinyMath` function - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`color` -|`string` -|An expression to use in determining the mark's color. - -|`size` -|`string` -|The size of the marks. Only applicable to supported elements. - -|`text` -|`string` -|The text to show on the mark. Only applicable to supported elements. - -|`x` -|`string` -|The values along the X-axis. - -|`y` -|`string` -|The values along the Y-axis. -|=== - -*Returns:* `pointseries` - - -[float] -[[progress_fn]] -=== `progress` - -Configures a progress element. - -*Accepts:* `number` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `shape` -|`string` -|Select `"gauge"`, `"horizontalBar"`, `"horizontalPill"`, `"semicircle"`, `"unicorn"`, `"verticalBar"`, `"verticalPill"`, or `"wheel"`. - -Default: `"gauge"` - -|`barColor` -|`string` -|The color of the background bar. - -Default: `"#f0f0f0"` - -|`barWeight` -|`number` -|The thickness of the background bar. - -Default: `20` - -|`font` -|`style` -|The CSS font properties for the label. For example, `font-family` or `font-weight`. - -Default: `${font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}` - -|`label` -|`boolean`, `string` -|To show or hide the label, use `true` or `false`. Alternatively, provide a string to display as a label. - -Default: `true` - -|`max` -|`number` -|The maximum value of the progress element. - -Default: `1` - -|`valueColor` -|`string` -|The color of the progress bar. - -Default: `"#1785b0"` - -|`valueWeight` -|`number` -|The thickness of the progress bar. - -Default: `20` -|=== - -*Returns:* `render` - -[float] -[[r_fns]] -== R - -[float] -[[render_fn]] -=== `render` - -Renders the _context_ as a specific element and sets element level options, such as background and border styling. - -*Accepts:* `render` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`as` -|`string` -|The element type to render. You probably want a specialized function instead, such as <<plot_fn>> or <<shape_fn>>. - -|`containerStyle` -|`containerStyle` -|The style for the container, including background, border, and opacity. - -Default: `${containerStyle}` - -|`css` -|`string` -|Any block of custom CSS to be scoped to the element. - -Default: `".canvasRenderEl${}"` -|=== - -*Returns:* `render` - - -[float] -[[repeatImage_fn]] -=== `repeatImage` - -Configures a repeating image element. - -*Accepts:* `number` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`emptyImage` -|`string`, `null` -|Fills the difference between the _context_ and `max` parameter for the element with this image. Provide an image asset as a `base64` data URL, or pass in a sub-expression. - -Default: `null` - -|`image` -|`string`, `null` -|The image to repeat. Provide an image asset as a `base64` data URL, or pass in a sub-expression. - -Example value for the `image` argument, formatted as a `base64` data URL: -[source, url] ------------- -data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20viewBox%3D%22-3.948730230331421%20-1.7549896240234375%20245.25946044921875%20241.40370178222656%22%20width%3D%22245.25946044921875%22%20height%3D%22241.40370178222656%22%20style%3D%22enable-background%3Anew%200%200%20686.2%20235.7%3B%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%09.st0%7Bfill%3A%232D2D2D%3B%7D%0A%3C%2Fstyle%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3Cg%20transform%3D%22matrix%281%2C%200%2C%200%2C%201%2C%200%2C%200%29%22%3E%0A%20%20%20%20%3Cg%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M329.4%2C160.3l4.7-0.5l0.3%2C9.6c-12.4%2C1.7-23%2C2.6-31.8%2C2.6c-11.7%2C0-20-3.4-24.9-10.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-4.9-6.8-7.3-17.4-7.3-31.7c0-28.6%2C11.4-42.9%2C34.1-42.9c11%2C0%2C19.2%2C3.1%2C24.6%2C9.2c5.4%2C6.1%2C8.1%2C15.8%2C8.1%2C28.9l-0.7%2C9.3h-53.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0%2C9%2C1.6%2C15.7%2C4.9%2C20c3.3%2C4.3%2C8.9%2C6.5%2C17%2C6.5C312.8%2C161.2%2C321.1%2C160.9%2C329.4%2C160.3z%20M325%2C124.9c0-10-1.6-17.1-4.8-21.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.2-4.1-8.4-6.2-15.6-6.2c-7.2%2C0-12.7%2C2.2-16.3%2C6.5c-3.6%2C4.3-5.5%2C11.3-5.6%2C20.9H325z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M354.3%2C171.4V64h12.2v107.4H354.3z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M443.5%2C113.5v41.1c0%2C4.1%2C10.1%2C3.9%2C10.1%2C3.9l-0.6%2C10.8c-8.6%2C0-15.7%2C0.7-20-3.4c-9.8%2C4.3-19.5%2C6.1-29.3%2C6.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.5%2C0-13.2-2.1-17.1-6.4c-3.9-4.2-5.9-10.3-5.9-18.3c0-7.9%2C2-13.8%2C6-17.5c4-3.7%2C10.3-6.1%2C18.9-6.9l25.6-2.4v-7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0-5.5-1.2-9.5-3.6-11.9c-2.4-2.4-5.7-3.6-9.8-3.6l-32.1%2C0V87.2h31.3c9.2%2C0%2C15.9%2C2.1%2C20.1%2C6.4C441.4%2C97.8%2C443.5%2C104.5%2C443.5%2C113.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bz%20M393.3%2C146.7c0%2C10%2C4.1%2C15%2C12.4%2C15c7.4%2C0%2C14.7-1.2%2C21.8-3.7l3.7-1.3v-26.9l-24.1%2C2.3c-4.9%2C0.4-8.4%2C1.8-10.6%2C4.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3BC394.4%2C138.7%2C393.3%2C142.2%2C393.3%2C146.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M491.2%2C98.2c-11.8%2C0-17.8%2C4.1-17.8%2C12.4c0%2C3.8%2C1.4%2C6.5%2C4.1%2C8.1c2.7%2C1.6%2C8.9%2C3.2%2C18.6%2C4.9%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc9.7%2C1.7%2C16.5%2C4%2C20.5%2C7.1c4%2C3%2C6%2C8.7%2C6%2C17.1c0%2C8.4-2.7%2C14.5-8.1%2C18.4c-5.4%2C3.9-13.2%2C5.9-23.6%2C5.9c-6.7%2C0-29.2-2.5-29.2-2.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bl0.7-10.6c12.9%2C1.2%2C22.3%2C2.2%2C28.6%2C2.2c6.3%2C0%2C11.1-1%2C14.4-3c3.3-2%2C5-5.4%2C5-10.1c0-4.7-1.4-7.9-4.2-9.6c-2.8-1.7-9-3.3-18.6-4.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-9.6-1.5-16.4-3.7-20.4-6.7c-4-2.9-6-8.4-6-16.3c0-7.9%2C2.8-13.8%2C8.4-17.6c5.6-3.8%2C12.6-5.7%2C20.9-5.7c6.6%2C0%2C29.6%2C1.7%2C29.6%2C1.7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bv10.7C508.1%2C99%2C498.2%2C98.2%2C491.2%2C98.2z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M581.7%2C99.5h-25.9v39c0%2C9.3%2C0.7%2C15.5%2C2%2C18.4c1.4%2C2.9%2C4.6%2C4.4%2C9.7%2C4.4l14.5-1l0.8%2C10.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.3%2C1.2-12.8%2C1.8-16.6%2C1.8c-8.5%2C0-14.3-2.1-17.6-6.2c-3.3-4.1-4.9-12-4.9-23.6V99.5h-11.6V88.9h11.6V63.9h12.1v24.9h25.9V99.5z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M598.7%2C78.4V64.3h12.2v14.2H598.7z%20M598.7%2C171.4V88.9h12.2v82.5H598.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M663.8%2C87.2c3.6%2C0%2C9.7%2C0.7%2C18.3%2C2l3.9%2C0.5l-0.5%2C9.9c-8.7-1-15.1-1.5-19.2-1.5c-9.2%2C0-15.5%2C2.2-18.8%2C6.6%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.3%2C4.4-5%2C12.6-5%2C24.5c0%2C11.9%2C1.5%2C20.2%2C4.6%2C24.9c3.1%2C4.7%2C9.5%2C7%2C19.3%2C7l19.2-1.5l0.5%2C10.1c-10.1%2C1.5-17.7%2C2.3-22.7%2C2.3%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-12.7%2C0-21.5-3.3-26.3-9.8c-4.8-6.5-7.3-17.5-7.3-33c0-15.5%2C2.6-26.4%2C7.8-32.6C643%2C90.4%2C651.7%2C87.2%2C663.8%2C87.2z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M236.6%2C123.5c0-19.8-12.3-37.2-30.8-43.9c0.8-4.2%2C1.2-8.4%2C1.2-12.7C207%2C30%2C177%2C0%2C140.2%2C0%26%2310%3B%26%239%3B%26%239%3BC118.6%2C0%2C98.6%2C10.3%2C86%2C27.7c-6.2-4.8-13.8-7.4-21.7-7.4c-19.6%2C0-35.5%2C15.9-35.5%2C35.5c0%2C4.3%2C0.8%2C8.5%2C2.2%2C12.4%26%2310%3B%26%239%3B%26%239%3BC12.6%2C74.8%2C0%2C92.5%2C0%2C112.2c0%2C19.9%2C12.4%2C37.3%2C30.9%2C44c-0.8%2C4.1-1.2%2C8.4-1.2%2C12.7c0%2C36.8%2C29.9%2C66.7%2C66.7%2C66.7%26%2310%3B%26%239%3B%26%239%3Bc21.6%2C0%2C41.6-10.4%2C54.1-27.8c6.2%2C4.9%2C13.8%2C7.6%2C21.7%2C7.6c19.6%2C0%2C35.5-15.9%2C35.5-35.5c0-4.3-0.8-8.5-2.2-12.4%26%2310%3B%26%239%3B%26%239%3BC223.9%2C160.9%2C236.6%2C143.2%2C236.6%2C123.5z%20M91.6%2C34.8c10.9-15.9%2C28.9-25.4%2C48.1-25.4c32.2%2C0%2C58.4%2C26.2%2C58.4%2C58.4%26%2310%3B%26%239%3B%26%239%3Bc0%2C3.9-0.4%2C7.7-1.1%2C11.5l-52.2%2C45.8L93%2C101.5L82.9%2C79.9L91.6%2C34.8z%20M65.4%2C29c6.2%2C0%2C12.1%2C2%2C17%2C5.7l-7.8%2C40.3l-35.5-8.4%26%2310%3B%26%239%3B%26%239%3Bc-1.1-3.1-1.7-6.3-1.7-9.7C37.4%2C41.6%2C49.9%2C29%2C65.4%2C29z%20M9.1%2C112.3c0-16.7%2C11-31.9%2C26.9-37.2L75%2C84.4l9.1%2C19.5l-49.8%2C45%26%2310%3B%26%239%3B%26%239%3BC19.2%2C143.1%2C9.1%2C128.6%2C9.1%2C112.3z%20M145.2%2C200.9c-10.9%2C16.1-29%2C25.6-48.4%2C25.6c-32.3%2C0-58.6-26.3-58.6-58.5c0-4%2C0.4-7.9%2C1.1-11.7%26%2310%3B%26%239%3B%26%239%3Bl50.9-46l52%2C23.7l11.5%2C22L145.2%2C200.9z%20M171.2%2C206.6c-6.1%2C0-12-2-16.9-5.8l7.7-40.2l35.4%2C8.3c1.1%2C3.1%2C1.7%2C6.3%2C1.7%2C9.7%26%2310%3B%26%239%3B%26%239%3BC199.2%2C194.1%2C186.6%2C206.6%2C171.2%2C206.6z%20M200.5%2C160.5l-39-9.1l-10.4-19.8l51-44.7c15.1%2C5.7%2C25.2%2C20.2%2C25.2%2C36.5%26%2310%3B%26%239%3B%26%239%3BC227.4%2C140.1%2C216.4%2C155.3%2C200.5%2C160.5z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E ------------- - -|`max` -|`number` -|The maximum number of times the image can repeat. - -Default: `1000` - -|`size` -|`number` -|The maximum height or width of the image, in pixels. When the image is taller than it is wide, this function limits the height. - -Default: `100` -|=== - -*Returns:* `render` - - -[float] -[[replace_fn]] -=== `replace` - -Uses a regular expression to replace parts of a string. - -*Accepts:* `string` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `pattern`, `regex` -|`string` -|The text or pattern of a JavaScript regular expression. For example, `"[aeiou]"`. You can use capturing groups here. - -|`flags` - -Alias: `modifiers` -|`string` -|Specify flags. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp. - -Default: `"g"` - -|`replacement` -|`string` -|The replacement for the matching parts of string. Capturing groups can be accessed by their index. For example, `"$1"`. - -Default: `""` -|=== - -*Returns:* `string` - - -[float] -[[revealImage_fn]] -=== `revealImage` - -Configures an image reveal element. - -*Accepts:* `number` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`emptyImage` -|`string`, `null` -|An optional background image to reveal over. Provide an image asset as a ``base64`` data URL, or pass in a sub-expression. - -Default: `null` - -|`image` -|`string`, `null` -|The image to reveal. Provide an image asset as a `base64` data URL, or pass in a sub-expression. - -Example value for the `image` argument, formatted as a `base64` data URL: -[source, url] ------------- -data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20viewBox%3D%22-3.948730230331421%20-1.7549896240234375%20245.25946044921875%20241.40370178222656%22%20width%3D%22245.25946044921875%22%20height%3D%22241.40370178222656%22%20style%3D%22enable-background%3Anew%200%200%20686.2%20235.7%3B%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%09.st0%7Bfill%3A%232D2D2D%3B%7D%0A%3C%2Fstyle%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3Cg%20transform%3D%22matrix%281%2C%200%2C%200%2C%201%2C%200%2C%200%29%22%3E%0A%20%20%20%20%3Cg%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M329.4%2C160.3l4.7-0.5l0.3%2C9.6c-12.4%2C1.7-23%2C2.6-31.8%2C2.6c-11.7%2C0-20-3.4-24.9-10.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-4.9-6.8-7.3-17.4-7.3-31.7c0-28.6%2C11.4-42.9%2C34.1-42.9c11%2C0%2C19.2%2C3.1%2C24.6%2C9.2c5.4%2C6.1%2C8.1%2C15.8%2C8.1%2C28.9l-0.7%2C9.3h-53.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0%2C9%2C1.6%2C15.7%2C4.9%2C20c3.3%2C4.3%2C8.9%2C6.5%2C17%2C6.5C312.8%2C161.2%2C321.1%2C160.9%2C329.4%2C160.3z%20M325%2C124.9c0-10-1.6-17.1-4.8-21.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.2-4.1-8.4-6.2-15.6-6.2c-7.2%2C0-12.7%2C2.2-16.3%2C6.5c-3.6%2C4.3-5.5%2C11.3-5.6%2C20.9H325z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M354.3%2C171.4V64h12.2v107.4H354.3z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M443.5%2C113.5v41.1c0%2C4.1%2C10.1%2C3.9%2C10.1%2C3.9l-0.6%2C10.8c-8.6%2C0-15.7%2C0.7-20-3.4c-9.8%2C4.3-19.5%2C6.1-29.3%2C6.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.5%2C0-13.2-2.1-17.1-6.4c-3.9-4.2-5.9-10.3-5.9-18.3c0-7.9%2C2-13.8%2C6-17.5c4-3.7%2C10.3-6.1%2C18.9-6.9l25.6-2.4v-7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc0-5.5-1.2-9.5-3.6-11.9c-2.4-2.4-5.7-3.6-9.8-3.6l-32.1%2C0V87.2h31.3c9.2%2C0%2C15.9%2C2.1%2C20.1%2C6.4C441.4%2C97.8%2C443.5%2C104.5%2C443.5%2C113.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bz%20M393.3%2C146.7c0%2C10%2C4.1%2C15%2C12.4%2C15c7.4%2C0%2C14.7-1.2%2C21.8-3.7l3.7-1.3v-26.9l-24.1%2C2.3c-4.9%2C0.4-8.4%2C1.8-10.6%2C4.2%26%2310%3B%26%239%3B%26%239%3B%26%239%3BC394.4%2C138.7%2C393.3%2C142.2%2C393.3%2C146.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M491.2%2C98.2c-11.8%2C0-17.8%2C4.1-17.8%2C12.4c0%2C3.8%2C1.4%2C6.5%2C4.1%2C8.1c2.7%2C1.6%2C8.9%2C3.2%2C18.6%2C4.9%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc9.7%2C1.7%2C16.5%2C4%2C20.5%2C7.1c4%2C3%2C6%2C8.7%2C6%2C17.1c0%2C8.4-2.7%2C14.5-8.1%2C18.4c-5.4%2C3.9-13.2%2C5.9-23.6%2C5.9c-6.7%2C0-29.2-2.5-29.2-2.5%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bl0.7-10.6c12.9%2C1.2%2C22.3%2C2.2%2C28.6%2C2.2c6.3%2C0%2C11.1-1%2C14.4-3c3.3-2%2C5-5.4%2C5-10.1c0-4.7-1.4-7.9-4.2-9.6c-2.8-1.7-9-3.3-18.6-4.8%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-9.6-1.5-16.4-3.7-20.4-6.7c-4-2.9-6-8.4-6-16.3c0-7.9%2C2.8-13.8%2C8.4-17.6c5.6-3.8%2C12.6-5.7%2C20.9-5.7c6.6%2C0%2C29.6%2C1.7%2C29.6%2C1.7%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bv10.7C508.1%2C99%2C498.2%2C98.2%2C491.2%2C98.2z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M581.7%2C99.5h-25.9v39c0%2C9.3%2C0.7%2C15.5%2C2%2C18.4c1.4%2C2.9%2C4.6%2C4.4%2C9.7%2C4.4l14.5-1l0.8%2C10.1%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-7.3%2C1.2-12.8%2C1.8-16.6%2C1.8c-8.5%2C0-14.3-2.1-17.6-6.2c-3.3-4.1-4.9-12-4.9-23.6V99.5h-11.6V88.9h11.6V63.9h12.1v24.9h25.9V99.5z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M598.7%2C78.4V64.3h12.2v14.2H598.7z%20M598.7%2C171.4V88.9h12.2v82.5H598.7z%22%2F%3E%0A%20%20%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M663.8%2C87.2c3.6%2C0%2C9.7%2C0.7%2C18.3%2C2l3.9%2C0.5l-0.5%2C9.9c-8.7-1-15.1-1.5-19.2-1.5c-9.2%2C0-15.5%2C2.2-18.8%2C6.6%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-3.3%2C4.4-5%2C12.6-5%2C24.5c0%2C11.9%2C1.5%2C20.2%2C4.6%2C24.9c3.1%2C4.7%2C9.5%2C7%2C19.3%2C7l19.2-1.5l0.5%2C10.1c-10.1%2C1.5-17.7%2C2.3-22.7%2C2.3%26%2310%3B%26%239%3B%26%239%3B%26%239%3Bc-12.7%2C0-21.5-3.3-26.3-9.8c-4.8-6.5-7.3-17.5-7.3-33c0-15.5%2C2.6-26.4%2C7.8-32.6C643%2C90.4%2C651.7%2C87.2%2C663.8%2C87.2z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%3Cpath%20class%3D%22st0%22%20d%3D%22M236.6%2C123.5c0-19.8-12.3-37.2-30.8-43.9c0.8-4.2%2C1.2-8.4%2C1.2-12.7C207%2C30%2C177%2C0%2C140.2%2C0%26%2310%3B%26%239%3B%26%239%3BC118.6%2C0%2C98.6%2C10.3%2C86%2C27.7c-6.2-4.8-13.8-7.4-21.7-7.4c-19.6%2C0-35.5%2C15.9-35.5%2C35.5c0%2C4.3%2C0.8%2C8.5%2C2.2%2C12.4%26%2310%3B%26%239%3B%26%239%3BC12.6%2C74.8%2C0%2C92.5%2C0%2C112.2c0%2C19.9%2C12.4%2C37.3%2C30.9%2C44c-0.8%2C4.1-1.2%2C8.4-1.2%2C12.7c0%2C36.8%2C29.9%2C66.7%2C66.7%2C66.7%26%2310%3B%26%239%3B%26%239%3Bc21.6%2C0%2C41.6-10.4%2C54.1-27.8c6.2%2C4.9%2C13.8%2C7.6%2C21.7%2C7.6c19.6%2C0%2C35.5-15.9%2C35.5-35.5c0-4.3-0.8-8.5-2.2-12.4%26%2310%3B%26%239%3B%26%239%3BC223.9%2C160.9%2C236.6%2C143.2%2C236.6%2C123.5z%20M91.6%2C34.8c10.9-15.9%2C28.9-25.4%2C48.1-25.4c32.2%2C0%2C58.4%2C26.2%2C58.4%2C58.4%26%2310%3B%26%239%3B%26%239%3Bc0%2C3.9-0.4%2C7.7-1.1%2C11.5l-52.2%2C45.8L93%2C101.5L82.9%2C79.9L91.6%2C34.8z%20M65.4%2C29c6.2%2C0%2C12.1%2C2%2C17%2C5.7l-7.8%2C40.3l-35.5-8.4%26%2310%3B%26%239%3B%26%239%3Bc-1.1-3.1-1.7-6.3-1.7-9.7C37.4%2C41.6%2C49.9%2C29%2C65.4%2C29z%20M9.1%2C112.3c0-16.7%2C11-31.9%2C26.9-37.2L75%2C84.4l9.1%2C19.5l-49.8%2C45%26%2310%3B%26%239%3B%26%239%3BC19.2%2C143.1%2C9.1%2C128.6%2C9.1%2C112.3z%20M145.2%2C200.9c-10.9%2C16.1-29%2C25.6-48.4%2C25.6c-32.3%2C0-58.6-26.3-58.6-58.5c0-4%2C0.4-7.9%2C1.1-11.7%26%2310%3B%26%239%3B%26%239%3Bl50.9-46l52%2C23.7l11.5%2C22L145.2%2C200.9z%20M171.2%2C206.6c-6.1%2C0-12-2-16.9-5.8l7.7-40.2l35.4%2C8.3c1.1%2C3.1%2C1.7%2C6.3%2C1.7%2C9.7%26%2310%3B%26%239%3B%26%239%3BC199.2%2C194.1%2C186.6%2C206.6%2C171.2%2C206.6z%20M200.5%2C160.5l-39-9.1l-10.4-19.8l51-44.7c15.1%2C5.7%2C25.2%2C20.2%2C25.2%2C36.5%26%2310%3B%26%239%3B%26%239%3BC227.4%2C140.1%2C216.4%2C155.3%2C200.5%2C160.5z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E ------------- - -|`origin` -|`string` -|The position to start the image fill. For example, `"top"`, `"bottom"`, `"left"`, or right. - -Default: `"bottom"` -|=== - -*Returns:* `render` - - -[float] -[[rounddate_fn]] -=== `rounddate` - -Uses a MomentJS formatting string to round milliseconds since epoch, and returns milliseconds since epoch. - -*Accepts:* `number` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `format` -|`string` -|The MomentJS format to use for bucketing. For example, `"YYYY-MM"` rounds to months. See https://momentjs.com/docs/#/displaying/. -|=== - -*Returns:* `number` - - -[float] -[[rowCount_fn]] -=== `rowCount` - -Returns the number of rows. Pairs with <<ply_fn>> to get the count of unique column values, or combinations of unique column values. - -*Accepts:* `datatable` - -*Returns:* `number` - -[float] -[[s_fns]] -== S - -[float] -[[savedLens_fn]] -=== `savedLens` - -Returns an embeddable for a saved Lens visualization object. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`id` -|`string` -|The ID of the saved Lens visualization object - -|`timerange` -|`timerange` -|The timerange of data that should be included - -|`title` -|`string` -|The title for the Lens visualization object -|=== - -*Returns:* `embeddable` - - -[float] -[[savedMap_fn]] -=== `savedMap` - -Returns an embeddable for a saved map object. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`center` -|`mapCenter` -|The center and zoom level the map should have - -|`hideLayer` † -|`string` -|The IDs of map layers that should be hidden - -|`id` -|`string` -|The ID of the saved map object - -|`timerange` -|`timerange` -|The timerange of data that should be included - -|`title` -|`string` -|The title for the map -|=== - -*Returns:* `embeddable` - - -[float] -[[savedVisualization_fn]] -=== `savedVisualization` - -Returns an embeddable for a saved visualization object. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`colors` † -|`seriesStyle` -|Defines the color to use for a specific series - -|`hideLegend` -|`boolean` -|Specifies the option to hide the legend - -|`id` -|`string` -|The ID of the saved visualization object - -|`timerange` -|`timerange` -|The timerange of data that should be included -|=== - -*Returns:* `embeddable` - - -[float] -[[seriesStyle_fn]] -=== `seriesStyle` - -Creates an object used for describing the properties of a series on a chart. Use <<seriesStyle_fn>> inside of a charting function, like <<plot_fn>> or <<pie_fn>>. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`bars` -|`number` -|The width of bars. - -|`color` -|`string` -|The line color. - -|`fill` -|`number`, `boolean` -|Should we fill in the points? - -Default: `false` - -|`horizontalBars` -|`boolean` -|Sets the orientation of the bars in the chart to horizontal. - -|`label` -|`string` -|The name of the series to style. - -|`lines` -|`number` -|The width of the line. - -|`points` -|`number` -|The size of points on line. - -|`stack` -|`number`, `null` -|Specifies if the series should be stacked. The number is the stack ID. Series with the same stack ID are stacked together. -|=== - -*Returns:* `seriesStyle` - - -[float] -[[shape_fn]] -=== `shape` - -Creates a shape. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `shape` -|`string` -|Pick a shape. - -Default: `"square"` - -|`border` - -Alias: `stroke` -|`string` -|An SVG color for the border outlining the shape. - -|`borderWidth` - -Alias: `strokeWidth` -|`number` -|The thickness of the border. - -Default: `0` - -|`fill` -|`string` -|An SVG color to fill the shape. - -Default: `"black"` - -|`maintainAspect` -|`boolean` -|Maintain the shape's original aspect ratio? - -Default: `false` -|=== - -*Returns:* `shape` - - -[float] -[[sort_fn]] -=== `sort` - -Sorts a `datatable` by the specified column. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `by`, `column` -|`string` -|The column to sort by. When unspecified, the `datatable` is sorted by the first column. - -|`reverse` -|`boolean` -|Reverses the sorting order. When unspecified, the `datatable` is sorted in ascending order. - -Default: `false` -|=== - -*Returns:* `datatable` - - -[float] -[[staticColumn_fn]] -=== `staticColumn` - -Adds a column with the same static value in every row. See also <<alterColumn_fn>> and <<mapColumn_fn>>. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Aliases: `column`, `name` -|`string` -|The name of the new column. - -|`value` -|`string`, `number`, `boolean`, `null` -|The value to insert in each row in the new column. TIP: use a sub-expression to rollup other columns into a static value. - -Default: `null` -|=== - -*Returns:* `datatable` - - -[float] -[[string_fn]] -=== `string` - -Concatenates all of the arguments into a single string. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ † - -Alias: `value` -|`string`, `number`, `boolean` -|The values to join together into one string. Include spaces where needed. -|=== - -*Returns:* `string` - - -[float] -[[switch_fn]] -=== `switch` - -Performs conditional logic with multiple conditions. See also <<case_fn>>, which builds a `case` to pass to the <<switch_fn>> function. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** † - -Alias: `case` -|`case` -|The conditions to check. - -|`default` - -Alias: `finally` -|`any` -|The value returned when no conditions are met. When unspecified and no conditions are met, the original _context_ is returned. -|=== - -*Returns:* Depends on your input and arguments - -[float] -[[t_fns]] -== T - -[float] -[[table_fn]] -=== `table` - -Configures a table element. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`font` -|`style` -|The CSS font properties for the contents of the table. For example, `font-family` or `font-weight`. - -Default: `${font}` - -|`paginate` -|`boolean` -|Show pagination controls? When `false`, only the first page is displayed. - -Default: `true` - -|`perPage` -|`number` -|The number of rows to display on each page. - -Default: `10` - -|`showHeader` -|`boolean` -|Show or hide the header row with titles for each column. - -Default: `true` -|=== - -*Returns:* `render` - - -[float] -[[tail_fn]] -=== `tail` - -Retrieves the last N rows from the end of a `datatable`. See also <<head_fn>>. - -*Accepts:* `datatable` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Alias: `count` -|`number` -|The number of rows to retrieve from the end of the `datatable`. - -Default: `1` -|=== - -*Returns:* `datatable` - - -[float] -[[timefilter_fn]] -=== `timefilter` - -Creates a time filter for querying a source. - -*Accepts:* `filter` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`column` - -Aliases: `c`, `field` -|`string` -|The column or field that you want to filter. - -Default: `"@timestamp"` - -|`filterGroup` -|`string` -|The group name for the filter - -|`from` - -Aliases: `f`, `start` -|`string` -|The beginning of the range, in ISO8601 or Elasticsearch `datemath` format - -|`to` - -Aliases: `end`, `t` -|`string` -|The end of the range, in ISO8601 or Elasticsearch `datemath` format -|=== - -*Returns:* `filter` - - -[float] -[[timefilterControl_fn]] -=== `timefilterControl` - -Configures a time filter control element. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`column` - -Aliases: `c`, `field` -|`string` -|The column or field that you want to filter. - -Default: `"@timestamp"` - -|`compact` -|`boolean` -|Shows the time filter as a button, which triggers a popover. - -Default: `true` - -|`filterGroup` -|`string` -|The group name for the filter. -|=== - -*Returns:* `render` - - -[float] -[[timelion_fn]] -=== `timelion` - -Uses Timelion to extract one or more time series from many sources. - -*Accepts:* `filter` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ - -Aliases: `q`, `query` -|`string` -|A Timelion query - -Default: `".es(*)"` - -|`from` -|`string` -|The Elasticsearch `datemath` string for the beginning of the time range. - -Default: `"now-1y"` - -|`interval` -|`string` -|The bucket interval for the time series. - -Default: `"auto"` - -|`timezone` -|`string` -|The timezone for the time range. See https://momentjs.com/timezone/. - -Default: `"UTC"` - -|`to` -|`string` -|The Elasticsearch `datemath` string for the end of the time range. - -Default: `"now"` -|=== - -*Returns:* `datatable` - - -[float] -[[timerange_fn]] -=== `timerange` - -An object that represents a span of time. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|`from` *** -|`string` -|The start of the time range - -|`to` *** -|`string` -|The end of the time range -|=== - -*Returns:* `timerange` - - -[float] -[[to_fn]] -=== `to` - -Explicitly casts the type of the _context_ from one type to the specified type. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ † - -Alias: `type` -|`string` -|A known data type in the expression language. -|=== - -*Returns:* Depends on your input and arguments - -[float] -[[u_fns]] -== U - -[float] -[[urlparam_fn]] -=== `urlparam` - -Retrieves a URL parameter to use in an expression. The <<urlparam_fn>> function always returns a `string`. For example, you can retrieve the value `"20"` from the parameter `myVar` from the URL `https://localhost:5601/app/canvas?myVar=20`. - -*Accepts:* `null` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Aliases: `param`, `var`, `variable` -|`string` -|The URL hash parameter to retrieve. - -|`default` -|`string` -|The string returned when the URL parameter is unspecified. - -Default: `""` -|=== - -*Returns:* `string` - -[float] -[[v_fns]] -== V - -[float] -[[var_fn]] -=== `var` - -Updates the Kibana global context. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `name` -|`string` -|Specify the name of the variable. -|=== - -*Returns:* Depends on your input and arguments - - -[float] -[[var_set_fn]] -=== `var_set` - -Updates the Kibana global context. - -*Accepts:* `any` - -[cols="3*^<"] -|=== -|Argument |Type |Description - -|_Unnamed_ *** - -Alias: `name` -|`string` -|Specify the name of the variable. - -|`value` - -Alias: `val` -|`any` -|Specify the value for the variable. When unspecified, the input context is used. -|=== - -*Returns:* Depends on your input and arguments diff --git a/docs/canvas/canvas-present-workpad.asciidoc b/docs/canvas/canvas-present-workpad.asciidoc deleted file mode 100644 index b1492f57e46f..000000000000 --- a/docs/canvas/canvas-present-workpad.asciidoc +++ /dev/null @@ -1,51 +0,0 @@ -[role="xpack"] -[[canvas-present-workpad]] -== Present your workpad - -When you are ready to present your workpad, use and enable the presentation options. - -. Configure the autoplay options. - -.. From the workpad menu, click *View > Autoplay settings*. - -.. Under *Change cycling interval*, select the interval you want to use, or *Set a custom interval*. -+ -[role="screenshot"] -image::images/canvas-autoplay-interval.png[Element autoplay interval] - -. To enable autoplay, click *View > Turn autoplay on*. - -. To start your presentation, click *View > Enter fullscreen mode*. -+ -[role="screenshot"] -image::images/canvas-fullscreen.png[Image showing how to enter fullscreen mode from view dropdown] - -. When you are ready to exit fullscreen mode, press the Esc (Escape) key. - -[float] -[[zoom-in-out]] -=== Use the zoom options - -To get a closer look at a portion of your workpad, use the zoom options. - -. Click *View > Zoom*. - -. Select the zoom option. -+ -[role="screenshot"] -image::images/canvas-zoom-controls.png[Zoom controls, also in view dropdown] - -[float] -[[configure-auto-refresh-interval]] -=== Change the auto-refresh interval - -Change how often the data refreshes on your workpad. - -. Click *View > Auto refresh settings*. - -. Select the interval you want to use, or *Set a custom interval*. -+ -[role="screenshot"] -image::images/canvas-refresh-interval.png[Element data refresh interval] -+ -To manually refresh the data, click image:canvas/images/canvas-refresh-data.png[]. diff --git a/docs/canvas/canvas-share-workpad.asciidoc b/docs/canvas/canvas-share-workpad.asciidoc deleted file mode 100644 index f49e2a944c90..000000000000 --- a/docs/canvas/canvas-share-workpad.asciidoc +++ /dev/null @@ -1,65 +0,0 @@ -[role="xpack"] -[[workpad-share-options]] -== Share your workpad - -When you've finished your workpad, you can share it outside of {kib}. - -[float] -[[export-single-workpad]] -=== Export workpads - -Create a JSON file of your workpad that you can export outside of {kib}. - -To begin, click *Share > Download as JSON*. - -[role="screenshot"] -image::images/canvas-export-workpad.png[Export single workpad through JSON, from Share dropdown] - -Want to export multiple workpads? Go to the *Canvas* home page, select the workpads you want to export, then click *Export*. - -[float] -[[create-workpad-pdf]] -=== Create a PDF - -If you have a subscription that supports the {report-features}, you can create a PDF copy of your workpad that you can save and share outside {kib}. - -To begin, click *Share > PDF reports > Generate PDF*. - -[role="screenshot"] -image::images/canvas-generate-pdf.gif[Image showing how to generate a PDF] - -For more information, refer to <<reporting-getting-started, Reporting from Kibana>>. - -[float] -[[create-workpad-URL]] -=== Create a POST URL - -If you have a subscription that supports the {report-features}, you can create a POST URL that you can use to automatically generate PDF reports using <<watcher-ui,Watcher>> or a script. - -To begin, click *Share > PDF reports > Copy POST URL*. - -[role="screenshot"] -image::images/canvas-create-URL.gif[Image showing how to create POST URL] - -For more information, refer to <<automating-report-generation, Automating report generation>>. - -[float] -[[add-workpad-website]] -=== Share the workpad on a website - -beta[] Canvas allows you to create _shareables_, which are workpads that you download and securely share on any website. To customize the behavior of the workpad on your website, you can choose to autoplay the pages or hide the workpad toolbar. - -. Click *Share > Share on a website*. - -. Follow the *Share on a website* instructions. - -. To customize the workpad behavior to autoplay the pages or hide the toolbar, use the inline parameters. -+ -To make sure that your data remains secure, the data in the JSON file is not connected to {kib}. Canvas does not display elements that manipulate the data on the workpad. -+ -[role="screenshot"] -image::canvas/images/canvas-embed_workpad.gif[Image showing how to share the workpad on a website] -+ -NOTE: Shareable workpads encode the current state of the workpad in a JSON file. When you make changes to the workpad, the changes do not appear in the shareable workpad on your website. - -. To change the settings, click the settings icon, then choose the settings you want to use. diff --git a/docs/canvas/canvas-tinymath-functions.asciidoc b/docs/canvas/canvas-tinymath-functions.asciidoc deleted file mode 100644 index f92f7c642a2e..000000000000 --- a/docs/canvas/canvas-tinymath-functions.asciidoc +++ /dev/null @@ -1,974 +0,0 @@ -[role="xpack"] -[[canvas-tinymath-functions]] -=== TinyMath functions - -TinyMath provides a set of functions that can be used with the Canvas expression -language to perform complex math calculations. Read on for detailed information about -the functions available in TinyMath, including what parameters each function accepts, -the return value of that function, and examples of how each function behaves. - -Most of the functions accept arrays and apply JavaScript Math methods to -each element of that array. For the functions that accept multiple arrays as -parameters, the function generally does the calculation index by index. - -Any function can be wrapped by another function as long as the return type -of the inner function matches the acceptable parameter type of the outer function. - -[float] -=== abs( a ) - -Calculates the absolute value of a number. For arrays, the function will be -applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The absolute value of `a`. Returns -an array with the absolute values of each element if `a` is an array. - -*Example* -[source, js] ------------- -abs(-1) // returns 1 -abs(2) // returns 2 -abs([-1 , -2, 3, -4]) // returns [1, 2, 3, 4] ------------- - -[float] -=== add( ...args ) - -Calculates the sum of one or more numbers/arrays passed into the function. If at -least one array of numbers is passed into the function, the function will calculate the sum by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The sum of all numbers in `args` if `args` -contains only numbers. Returns an array of sums of the elements at each index, -including all scalar numbers in `args` in the calculation at each index if `args` -contains at least one array. - -*Throws*: `'Array length mismatch'` if `args` contains arrays of different lengths - -*Example* -[source, js] ------------- -add(1, 2, 3) // returns 6 -add([10, 20, 30, 40], 10, 20, 30) // returns [70, 80, 90, 100] -add([1, 2], 3, [4, 5], 6) // returns [(1 + 3 + 4 + 6), (2 + 3 + 5 + 6)] = [14, 16] ------------- - -[float] -=== cbrt( a ) - -Calculates the cube root of a number. For arrays, the function will be applied -index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The cube root of `a`. Returns an array with -the cube roots of each element if `a` is an array. - -*Example* -[source, js] ------------- -cbrt(-27) // returns -3 -cbrt(94) // returns 4.546835943776344 -cbrt([27, 64, 125]) // returns [3, 4, 5] ------------- - -[float] -=== ceil( a ) - -Calculates the ceiling of a number, i.e., rounds a number towards positive infinity. -For arrays, the function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The ceiling of `a`. Returns an array with -the ceilings of each element if `a` is an array. - -*Example* -[source, js] ------------- -ceil(1.2) // returns 2 -ceil(-1.8) // returns -1 -ceil([1.1, 2.2, 3.3]) // returns [2, 3, 4] ------------- - -[float] -=== clamp( ...a, min, max ) - -Restricts value to a given range and returns closed available value. If only `min` -is provided, values are restricted to only a lower bound. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...a -|number \| Array.<number> -|one or more numbers or arrays of numbers - -|min -|number \| Array.<number> -|(optional) The minimum value this function will return. - -|max -|number \| Array.<number> -|(optional) The maximum value this function will return. -|=== - -*Returns*: `number` | `Array.<number>`. The closest value between `min` (inclusive) -and `max` (inclusive). Returns an array with values greater than or equal to `min` -and less than or equal to `max` (if provided) at each index. - -*Throws*: - -- `'Array length mismatch'` if a `min` and/or `max` are arrays of different lengths - -- `'Min must be less than max'` if `max` is less than `min` - -*Example* -[source, js] ------------- -clamp(1, 2, 3) // returns 2 -clamp([10, 20, 30, 40], 15, 25) // returns [15, 20, 25, 25] -clamp(10, [15, 2, 4, 20], 25) // returns [15, 10, 10, 20] -clamp(35, 10, [20, 30, 40, 50]) // returns [20, 30, 35, 35] -clamp([1, 9], 3, [4, 5]) // returns [clamp([1, 3, 4]), clamp([9, 3, 5])] = [3, 5] ------------- - -[float] -=== count( a ) - -Returns the length of an array. Alias for size. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|Array.<any> -|array of any values -|=== - -*Returns*: `number`. The length of the array. - -*Throws*: `'Must pass an array'` if `a` is not an array. - -*Example* -[source, js] ------------- -count([]) // returns 0 -count([-1, -2, -3, -4]) // returns 4 -count(100) // returns 1 ------------- - -[float] -=== cube( a ) - -Calculates the cube of a number. For arrays, the function will be applied -index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The cube of `a`. Returns an array -with the cubes of each element if `a` is an array. - -*Example* -[source, js] ------------- -cube(-3) // returns -27 -cube([3, 4, 5]) // returns [27, 64, 125] ------------- - -[float] -=== divide( a, b ) - -Divides two numbers. If at least one array of numbers is passed into the function, -the function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|dividend, a number or an array of numbers - -|b -|number \| Array.<number> -|divisor, a number or an array of numbers, b != 0 -|=== - -*Returns*: `number` | `Array.<number>`. Returns the quotient of `a` and `b` -if both are numbers. Returns an array with the quotients applied index-wise to -each element if `a` or `b` is an array. - -*Throws*: - -- `'Array length mismatch'` if `a` and `b` are arrays with different lengths - -- `'Cannot divide by 0'` if `b` equals 0 or contains 0 - -*Example* -[source, js] ------------- -divide(6, 3) // returns 2 -divide([10, 20, 30, 40], 10) // returns [1, 2, 3, 4] -divide(10, [1, 2, 5, 10]) // returns [10, 5, 2, 1] -divide([14, 42, 65, 108], [2, 7, 5, 12]) // returns [7, 6, 13, 9] ------------- - -[float] -=== exp( a ) - -Calculates _e^x_ where _e_ is Euler's number. For arrays, the function will be applied -index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. Returns an array with the values of -`e^x` evaluated where `x` is each element of `a` if `a` is an array. - -*Example* -[source, js] ------------- -exp(2) // returns e^2 = 7.3890560989306495 -exp([1, 2, 3]) // returns [e^1, e^2, e^3] = [2.718281828459045, 7.3890560989306495, 20.085536923187668] ------------- - -[float] -=== first( a ) - -Returns the first element of an array. If anything other than an array is passed -in, the input is returned. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|Array.<any> -|array of any values -|=== - -*Returns*: `*`. The first element of `a`. Returns `a` if `a` is not an array. - -*Example* -[source, js] ------------- -first(2) // returns 2 -first([1, 2, 3]) // returns 1 ------------- - -[float] -=== fix( a ) - -Calculates the fix of a number, i.e., rounds a number towards 0. For arrays, the -function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The fix of `a`. Returns an array with -the fixes for each element if `a` is an array. - -*Example* -[source, js] ------------- -fix(1.2) // returns 1 -fix(-1.8) // returns -1 -fix([1.8, 2.9, -3.7, -4.6]) // returns [1, 2, -3, -4] ------------- - -[float] -=== floor( a ) - -Calculates the floor of a number, i.e., rounds a number towards negative infinity. -For arrays, the function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The floor of `a`. Returns an array -with the floor of each element if `a` is an array. - -*Example* -[source, js] ------------- -floor(1.8) // returns 1 -floor(-1.2) // returns -2 -floor([1.7, 2.8, 3.9]) // returns [1, 2, 3] ------------- - -[float] -=== last( a ) - -Returns the last element of an array. If anything other than an array is passed -in, the input is returned. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|Array.<any> -|array of any values -|=== - -*Returns*: `*`. The last element of `a`. Returns `a` if `a` is not an array. - -*Example* -[source, js] ------------- -last(2) // returns 2 -last([1, 2, 3]) // returns 3 ------------- - -[float] -=== log( a, b ) - -Calculates the logarithm of a number. For arrays, the function will be applied -index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers, `a` must be greater than 0 - -|b -|Object -|(optional) base for the logarithm. If not provided a value, the default base is e, and the natural log is calculated. -|=== - -*Returns*: `number` | `Array.<number>`. The logarithm of `a`. Returns an array -with the the logarithms of each element if `a` is an array. - -*Throws*: - -- `'Base out of range'` if `b` <= 0 - -- `'Must be greater than 0'` if `a` > 0 - -*Example* -[source, js] ------------- -log(1) // returns 0 -log(64, 8) // returns 2 -log(42, 5) // returns 2.322344707681546 -log([2, 4, 8, 16, 32], 2) // returns [1, 2, 3, 4, 5] ------------- - -[float] -=== log10( a ) - -Calculates the logarithm base 10 of a number. For arrays, the function will be -applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers, `a` must be greater than 0 -|=== - -*Returns*: `number` | `Array.<number>`. The logarithm of `a`. Returns an array -with the the logarithms base 10 of each element if `a` is an array. - -*Throws*: `'Must be greater than 0'` if `a` < 0 - -*Example* -[source, js] ------------- -log(10) // returns 1 -log(100) // returns 2 -log(80) // returns 1.9030899869919433 -log([10, 100, 1000, 10000, 100000]) // returns [1, 2, 3, 4, 5] ------------- - -[float] -=== max( ...args ) - -Finds the maximum value of one of more numbers/arrays of numbers passed into the function. -If at least one array of numbers is passed into the function, the function will -find the maximum by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The maximum value of all numbers if -`args` contains only numbers. Returns an array with the the maximum values at each -index, including all scalar numbers in `args` in the calculation at each index if -`args` contains at least one array. - -*Throws*: `'Array length mismatch'` if `args` contains arrays of different lengths - -*Example* -[source, js] ------------- -max(1, 2, 3) // returns 3 -max([10, 20, 30, 40], 15) // returns [15, 20, 30, 40] -max([1, 9], 4, [3, 5]) // returns [max([1, 4, 3]), max([9, 4, 5])] = [4, 9] ------------- - -[float] -=== mean( ...args ) - -Finds the mean value of one of more numbers/arrays of numbers passed into the function. -If at least one array of numbers is passed into the function, the function will -find the mean by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The mean value of all numbers if `args` -contains only numbers. Returns an array with the the mean values of each index, -including all scalar numbers in `args` in the calculation at each index if `args` -contains at least one array. - -*Example* -[source, js] ------------- -mean(1, 2, 3) // returns 2 -mean([10, 20, 30, 40], 20) // returns [15, 20, 25, 30] -mean([1, 9], 5, [3, 4]) // returns [mean([1, 5, 3]), mean([9, 5, 4])] = [3, 6] ------------- - -[float] -=== median( ...args ) - -Finds the median value(s) of one of more numbers/arrays of numbers passed into the function. -If at least one array of numbers is passed into the function, the function will -find the median by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The median value of all numbers if `args` -contains only numbers. Returns an array with the the median values of each index, -including all scalar numbers in `args` in the calculation at each index if `args` -contains at least one array. - -*Example* -[source, js] ------------- -median(1, 1, 2, 3) // returns 1.5 -median(1, 1, 2, 2, 3) // returns 2 -median([10, 20, 30, 40], 10, 20, 30) // returns [15, 20, 25, 25] -median([1, 9], 2, 4, [3, 5]) // returns [median([1, 2, 4, 3]), median([9, 2, 4, 5])] = [2.5, 4.5] ------------- - -[float] -=== min( ...args ) - -Finds the minimum value of one of more numbers/arrays of numbers passed into the function. -If at least one array of numbers is passed into the function, the function will -find the minimum by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The minimum value of all numbers if -`args` contains only numbers. Returns an array with the the minimum values of each -index, including all scalar numbers in `args` in the calculation at each index if `a` -is an array. - -*Throws*: `'Array length mismatch'` if `args` contains arrays of different lengths. - -*Example* -[source, js] ------------- -min(1, 2, 3) // returns 1 -min([10, 20, 30, 40], 25) // returns [10, 20, 25, 25] -min([1, 9], 4, [3, 5]) // returns [min([1, 4, 3]), min([9, 4, 5])] = [1, 4] ------------- - -[float] -=== mod( a, b ) - -Remainder after dividing two numbers. If at least one array of numbers is passed -into the function, the function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|dividend, a number or an array of numbers - -|b -|number \| Array.<number> -|divisor, a number or an array of numbers, b != 0 -|=== - -*Returns*: `number` | `Array.<number>`. The remainder of `a` divided by `b` if -both are numbers. Returns an array with the the remainders applied index-wise to -each element if `a` or `b` is an array. - -*Throws*: - -- `'Array length mismatch'` if `a` and `b` are arrays with different lengths - -- `'Cannot divide by 0'` if `b` equals 0 or contains 0 - -*Example* -[source, js] ------------- -mod(10, 7) // returns 3 -mod([11, 22, 33, 44], 10) // returns [1, 2, 3, 4] -mod(100, [3, 7, 11, 23]) // returns [1, 2, 1, 8] -mod([14, 42, 65, 108], [5, 4, 14, 2]) // returns [5, 2, 9, 0] ------------- - -[float] -=== mode( ...args ) - -Finds the mode value(s) of one of more numbers/arrays of numbers passed into the function. -If at least one array of numbers is passed into the function, the function will -find the mode by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<Array.<number>>`. An array of mode value(s) of all -numbers if `args` contains only numbers. Returns an array of arrays with mode value(s) -of each index, including all scalar numbers in `args` in the calculation at each index -if `args` contains at least one array. - -*Example* -[source, js] ------------- -mode(1, 1, 2, 3) // returns [1] -mode(1, 1, 2, 2, 3) // returns [1,2] -mode([10, 20, 30, 40], 10, 20, 30) // returns [[10], [20], [30], [10, 20, 30, 40]] -mode([1, 9], 1, 4, [3, 5]) // returns [mode([1, 1, 4, 3]), mode([9, 1, 4, 5])] = [[1], [4, 5, 9]] ------------- - -[float] -=== multiply( a, b ) - -Multiplies two numbers. If at least one array of numbers is passed into the function, -the function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers - -|b -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The product of `a` and `b` if both are -numbers. Returns an array with the the products applied index-wise to each element -if `a` or `b` is an array. - -*Throws*: `'Array length mismatch'` if `a` and `b` are arrays with different lengths - -*Example* -[source, js] ------------- -multiply(6, 3) // returns 18 -multiply([10, 20, 30, 40], 10) // returns [100, 200, 300, 400] -multiply(10, [1, 2, 5, 10]) // returns [10, 20, 50, 100] -multiply([1, 2, 3, 4], [2, 7, 5, 12]) // returns [2, 14, 15, 48] ------------- - -[float] -=== pow( a, b ) - -Calculates the cube root of a number. For arrays, the function will be applied -index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers - -|b -|number -|the power that `a` is raised to -|=== - -*Returns*: `number` | `Array.<number>`. `a` raised to the power of `b`. Returns -an array with the each element raised to the power of `b` if `a` is an array. - -*Throws*: `'Missing exponent'` if `b` is not provided - -*Example* -[source, js] ------------- -pow(2,3) // returns 8 -pow([1, 2, 3], 4) // returns [1, 16, 81] ------------- - -[float] -=== random( a, b ) - -Generates a random number within the given range where the lower bound is inclusive -and the upper bound is exclusive. If no numbers are passed in, it will return a -number between 0 and 1. If only one number is passed in, it will return a number -between 0 and the number passed in. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number -|(optional) must be greater than 0 if `b` is not provided - -|b -|number -|(optional) must be greater than `a` -|=== - -*Returns*: `number`. A random number between 0 and 1 if no numbers are passed in. -Returns a random number between 0 and `a` if only one number is passed in. Returns -a random number between `a` and `b` if two numbers are passed in. - -*Throws*: `'Min must be greater than max'` if `a` < 0 when only `a` is passed in -or if `a` > `b` when both `a` and `b` are passed in - -*Example* -[source, js] ------------- -random() // returns a random number between 0 (inclusive) and 1 (exclusive) -random(10) // returns a random number between 0 (inclusive) and 10 (exclusive) -random(-10,10) // returns a random number between -10 (inclusive) and 10 (exclusive) ------------- - -[float] -=== range( ...args ) - -Finds the range of one of more numbers/arrays of numbers passed into the function. If at -least one array of numbers is passed into the function, the function will find -the range by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The range value of all numbers if `args` -contains only numbers. Returns an array with the range values at each index, -including all scalar numbers in `args` in the calculation at each index if `args` -contains at least one array. - -*Example* -[source, js] ------------- -range(1, 2, 3) // returns 2 -range([10, 20, 30, 40], 15) // returns [5, 5, 15, 25] -range([1, 9], 4, [3, 5]) // returns [range([1, 4, 3]), range([9, 4, 5])] = [3, 5] ------------- - -[float] -=== range( ...args ) - -Finds the range of one of more numbers/arrays of numbers into the function. If at -least one array of numbers is passed into the function, the function will find -the range by index. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|...args -|number \| Array.<number> -|one or more numbers or arrays of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The range value of all numbers if `args` -contains only numbers. Returns an array with the the range values at each index, -including all scalar numbers in `args` in the calculation at each index if `args` -contains at least one array. - -*Example* -[source, js] ------------- -range(1, 2, 3) // returns 2 -range([10, 20, 30, 40], 15) // returns [5, 5, 15, 25] -range([1, 9], 4, [3, 5]) // returns [range([1, 4, 3]), range([9, 4, 5])] = [3, 5] ------------- - -[float] -=== round( a, b ) - -Rounds a number towards the nearest integer by default, or decimal place (if passed in as `b`). -For arrays, the function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers - -|b -|number -|(optional) number of decimal places, default value: 0 -|=== - -*Returns*: `number` | `Array.<number>`. The rounded value of `a`. Returns an -array with the the rounded values of each element if `a` is an array. - -*Example* -[source, js] ------------- -round(1.2) // returns 2 -round(-10.51) // returns -11 -round(-10.1, 2) // returns -10.1 -round(10.93745987, 4) // returns 10.9375 -round([2.9234, 5.1234, 3.5234, 4.49234324], 2) // returns [2.92, 5.12, 3.52, 4.49] ------------- - -[float] -=== size( a ) - -Returns the length of an array. Alias for count. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|Array.<any> -|array of any values -|=== - -*Returns*: `number`. The length of the array. - -*Throws*: `'Must pass an array'` if `a` is not an array - -*Example* -[source, js] ------------- -size([]) // returns 0 -size([-1, -2, -3, -4]) // returns 4 -size(100) // returns 1 ------------- - -[float] -=== sqrt( a ) - -Calculates the square root of a number. For arrays, the function will be applied -index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The square root of `a`. Returns an array -with the the square roots of each element if `a` is an array. - -*Throws*: `'Unable find the square root of a negative number'` if `a` < 0 - -*Example* -[source, js] ------------- -sqrt(9) // returns 3 -sqrt(30) //5.477225575051661 -sqrt([9, 16, 25]) // returns [3, 4, 5] ------------- - -[float] -=== square( a ) - -Calculates the square of a number. For arrays, the function will be applied -index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The square of `a`. Returns an array -with the the squares of each element if `a` is an array. - -*Example* -[source, js] ------------- -square(-3) // returns 9 -square([3, 4, 5]) // returns [9, 16, 25] ------------- - -[float] -=== subtract( a, b ) - -Subtracts two numbers. If at least one array of numbers is passed into the function, -the function will be applied index-wise to each element. - -[cols="3*^<"] -|=== -|Param |Type |Description - -|a -|number \| Array.<number> -|a number or an array of numbers - -|b -|number \| Array.<number> -|a number or an array of numbers -|=== - -*Returns*: `number` | `Array.<number>`. The difference of `a` and `b` if both are -numbers, or an array of differences applied index-wise to each element. - -*Throws*: `'Array length mismatch'` if `a` and `b` are arrays with different lengths - -*Example* -[source, js] ------------- -subtract(6, 3) // returns 3 -subtract([10, 20, 30, 40], 10) // returns [0, 10, 20, 30] -subtract(10, [1, 2, 5, 10]) // returns [9, 8, 5, 0] -subtract([14, 42, 65, 108], [2, 7, 5, 12]) // returns [12, 35, 52, 96] ------------- - -[float] -=== sum( ...args ) - -Calculates the sum of one or more numbers/arrays passed into the function. If at -least one array is passed, the function will sum up one or more numbers/arrays of -numbers and distinct values of an array. Sum accepts arrays of different lengths. - -*Returns*: `number`. The sum of one or more numbers/arrays of numbers including -distinct values in arrays - -*Example* -[source, js] ------------- -sum(1, 2, 3) // returns 6 -sum([10, 20, 30, 40], 10, 20, 30) // returns 160 -sum([1, 2], 3, [4, 5], 6) // returns sum(1, 2, 3, 4, 5, 6) = 21 -sum([10, 20, 30, 40], 10, [1, 2, 3], 22) // returns sum(10, 20, 30, 40, 10, 1, 2, 3, 22) = 138 ------------- - -[float] -=== unique( a ) - -Counts the number of unique values in an array. - -*Returns*: `number`. The number of unique values in the array. Returns 1 if `a` -is not an array. - -*Example* -[source, js] ------------- -unique(100) // returns 1 -unique([]) // returns 0 -unique([1, 2, 3, 4]) // returns 4 -unique([1, 2, 3, 4, 2, 2, 2, 3, 4, 2, 4, 5, 2, 1, 4, 2]) // returns 5 ------------- diff --git a/docs/canvas/canvas-tutorial.asciidoc b/docs/canvas/canvas-tutorial.asciidoc deleted file mode 100644 index 6456ba02bb8a..000000000000 --- a/docs/canvas/canvas-tutorial.asciidoc +++ /dev/null @@ -1,129 +0,0 @@ -[role="xpack"] -[[canvas-tutorial]] -== Tutorial: Create a workpad for monitoring sales - -To get up and running with Canvas, add the Sample eCommerce orders data, then use the data to create a workpad for monitoring sales at an eCommerce store. - -[float] -=== Before you begin - -For this tutorial, you'll need to add the <<add-sample-data, Sample eCommerce orders data>>. - -[float] -=== Create your workpad - -Your first step to working with Canvas is to create a workpad. - -. Open the main menu, then click *Canvas*. - -. On the *Canvas workpads* page, click *Create workpad*. - -[float] -=== Customize your workpad with images - -To customize your workpad to look the way you want, add your own images. - -. Click *Add element > Image > Image*. -+ -The default Elastic logo image appears on the page. - -. To replace the Elastic logo with your own image, select the image, then use the editor. - -[role="screenshot"] -image::images/canvas-image-element.png[Image showing how to add the image element] - -[float] -=== Customize your data with metrics - -Customize your data by connecting it to the Sample eCommerce orders data. - -. Click *Add element > Chart > Metric*. -+ -By default, the element is connected to the demo data, which enables you to experiment with the element before you connect it to your own data source. - -. To connect the element to your own data source, make sure that the element is selected, click *Data > Demo data > Elasticsearch SQL*. - -.. In the *Query* field, enter the following: -+ -`SELECT sum(taxless_total_price) AS sum_total_price FROM "kibana_sample_data_ecommerce"` - -.. Click *Save*. -+ -The query selects the total price field and sets it to the sum_total_price field. All fields are pulled from the kibana_sample_data_ecommerce index. - -. At this point, the element appears as an error, so you need to change the element display options. - -.. Click *Display* - -.. From the *Value* drop-down lists, make sure that *Unique* is selected, then select *sum_total_price*. - -.. Change the *Label* to `Total sales`. - -. The error is gone, but the element could use some formatting. To format the number, use the Canvas expression language. - -.. Click *Expression editor*. -+ -You're now looking at the raw data syntax that Canvas uses to display the element. - -.. Change `metricFormat="0,0.[000]"` to `metricFormat="$0a"`. - -.. Click *Run*. - -[role="screenshot"] -image::images/canvas-metric-element.png[Image showing changes to the Canvas workpad] - -[float] -=== Show off your data with charts - -To show what your data can do, add charts, graphs, progress monitors, and more to your workpad. - -. Click *Add element > Chart > Area*. - -. Make sure that the element is selected, then click *Data > Demo data > Elasticsearch SQL*. - -.. To obtain the taxless total price by date, enter the following in the *Query* field: -+ -`SELECT order_date, taxless_total_price FROM "kibana_sample_data_ecommerce" ORDER BY order_date` - -.. Click *Save*. - -. Change the display options. - -.. Click *Display* - -.. From the *X-axis* drop-down lists, select *Value*, then select *order_date*. - -.. From the *Y-axis* drop-down lists, select *Value*, then select *taxless_total_price*. - -[role="screenshot"] -image::images/canvas-chart-element.png[Image showing Canvas workpad with sample data graph] - -[float] -=== Show how your data changes over time - -To focus your data on a specific time range, add the time filter. - -. Click *Add element > Filter > Time filter*. - -. Click *Display* - -. To use the date time field from the sample data, enter `order_date` in the *Column* field, then click *Set*. - -[role="screenshot"] -image::images/canvas-timefilter-element.png[Image showing Canvas workpad with filtered sample data graph] - -To see how the data changes, set the time filter to *Last 7 days*. As you change the time filter options, the elements automatically update. - -Your workpad is complete! - -[float] -=== What's next? -Now that you know the Canvas basics, you're ready to explore on your own. - -Here are some things to try: - -* Play with the {kibana-ref}/add-sample-data.html[sample Canvas workpads]. - -* Build presentations of your own data with <<create-workpads,workpads>>. - -* Deep dive into the {kibana-ref}/canvas-function-reference.html[expression language and functions] that drive Canvas. diff --git a/docs/canvas/images/canvas-embed_workpad.gif b/docs/canvas/images/canvas-embed_workpad.gif deleted file mode 100644 index 1cda5b572ace..000000000000 Binary files a/docs/canvas/images/canvas-embed_workpad.gif and /dev/null differ diff --git a/docs/canvas/images/canvas-refresh-data.png b/docs/canvas/images/canvas-refresh-data.png deleted file mode 100644 index 7a71686f0449..000000000000 Binary files a/docs/canvas/images/canvas-refresh-data.png and /dev/null differ diff --git a/docs/canvas/images/canvas-zoom-controls.png b/docs/canvas/images/canvas-zoom-controls.png deleted file mode 100644 index 1407ca3cd862..000000000000 Binary files a/docs/canvas/images/canvas-zoom-controls.png and /dev/null differ diff --git a/docs/canvas/images/clone_element.gif b/docs/canvas/images/clone_element.gif deleted file mode 100644 index ef8f44223d24..000000000000 Binary files a/docs/canvas/images/clone_element.gif and /dev/null differ diff --git a/docs/canvas/images/copy_variable_syntax.png b/docs/canvas/images/copy_variable_syntax.png deleted file mode 100644 index e583812cafb5..000000000000 Binary files a/docs/canvas/images/copy_variable_syntax.png and /dev/null differ diff --git a/docs/canvas/images/specify_variable_syntax.png b/docs/canvas/images/specify_variable_syntax.png deleted file mode 100644 index 98168c3d62ee..000000000000 Binary files a/docs/canvas/images/specify_variable_syntax.png and /dev/null differ diff --git a/docs/dev-tools/grokdebugger/images/grok-debugger-custom-pattern.png b/docs/dev-tools/grokdebugger/images/grok-debugger-custom-pattern.png deleted file mode 100644 index 2cb6f1dbf722..000000000000 Binary files a/docs/dev-tools/grokdebugger/images/grok-debugger-custom-pattern.png and /dev/null differ diff --git a/docs/dev-tools/grokdebugger/images/grok-debugger-overview.png b/docs/dev-tools/grokdebugger/images/grok-debugger-overview.png deleted file mode 100644 index b6e9b734b307..000000000000 Binary files a/docs/dev-tools/grokdebugger/images/grok-debugger-overview.png and /dev/null differ diff --git a/docs/dev-tools/grokdebugger/index.asciidoc b/docs/dev-tools/grokdebugger/index.asciidoc deleted file mode 100644 index 82ae724f705f..000000000000 --- a/docs/dev-tools/grokdebugger/index.asciidoc +++ /dev/null @@ -1,119 +0,0 @@ -[role="xpack"] -[[xpack-grokdebugger]] -== Debugging grok expressions - -You can build and debug grok patterns in the {kib} *Grok Debugger* -before you use them in your data processing pipelines. Grok is a pattern -matching syntax that you can use to parse arbitrary text and -structure it. Grok is good for parsing syslog, apache, and other -webserver logs, mysql logs, and in general, any log format that is -written for human consumption. - -Grok patterns are supported in the ingest node -{ref}/grok-processor.html[grok processor] and the Logstash -{logstash-ref}/plugins-filters-grok.html[grok filter]. See -{logstash-ref}/plugins-filters-grok.html#_grok_basics[grok basics] -for more information on the syntax for a grok pattern. - -The Elastic Stack ships -with more than 120 reusable grok patterns. See -https://github.com/elastic/elasticsearch/tree/master/libs/grok/src/main/resources/patterns[Ingest node grok patterns] and https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns[Logstash grok patterns] -for the complete list of patterns. - -Because -ingest node and Logstash share the same grok implementation and pattern -libraries, any grok pattern that you create in the *Grok Debugger* will work -in ingest node and Logstash. - -[float] -[[grokdebugger-getting-started]] -=== Getting started with the Grok Debugger - -This example walks you through using the *Grok Debugger*. This tool -is automatically enabled in {kib}. - -NOTE: If you're using {stack-security-features}, you must have the `manage_pipeline` -permission to use the Grok Debugger. - -. Open the main menu, click *Dev Tools*, then click *Grok Debugger*. -. In *Sample Data*, enter a message that is representative of the data that you -want to parse. For example: -+ -[source,ruby] -------------------------------------------------------------------------------- -55.3.244.1 GET /index.html 15824 0.043 -------------------------------------------------------------------------------- - -. In *Grok Pattern*, enter the grok pattern that you want to apply to the data. -+ -To parse the log line in this example, use: -+ -[source,ruby] -------------------------------------------------------------------------------- -%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration} -------------------------------------------------------------------------------- - -. Click **Simulate**. -+ -You'll see the simulated event that results from applying the grok -pattern. -+ -[role="screenshot"] -image::dev-tools/grokdebugger/images/grok-debugger-overview.png["Grok Debugger"] - - -//TODO: Update LS and ingest node docs with pointers to the new grok debugger. Replace references to the Heroku app. - -[float] -[[grokdebugger-custom-patterns]] -=== Testing custom patterns - -If the default grok pattern dictionary doesn't contain the patterns you need, -you can define, test, and debug custom patterns using the Grok Debugger. - -Custom patterns that you enter in the Grok Debugger are not saved. Custom patterns -are only available for the current debugging session and have no side effects. - -Follow this example to define a custom pattern. - -. In *Sample Data*, enter the following sample message: -+ -[source,ruby] -------------------------------------------------------------------------------- -Jan 1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message-id=<20130101142543.5828399CCAF@mailserver14.example.com> -------------------------------------------------------------------------------- - -. Enter this grok pattern: -+ -[source,ruby] -------------------------------------------------------------------------------- -%{SYSLOGBASE} %{POSTFIX_QUEUEID:queue_id}: %{MSG:syslog_message} -------------------------------------------------------------------------------- -+ -Notice that the grok pattern references custom patterns called `POSTFIX_QUEUEID` -and `MSG`. - -. Expand **Custom Patterns** and enter pattern definitions for the custom -patterns that you want to use in the grok expression. You must specify each pattern definition -on its own line. -+ -For this example, you must specify pattern definitions -for `POSTFIX_QUEUEID` and `MSG`: -+ -[source,ruby] -------------------------------------------------------------------------------- -POSTFIX_QUEUEID [0-9A-F]{10,11} -MSG message-id=<%{GREEDYDATA}> -------------------------------------------------------------------------------- - -. Click **Simulate**. -+ -You'll see the simulated output event that results from applying -the grok pattern that contains the custom pattern: -+ -[role="screenshot"] -image::dev-tools/grokdebugger/images/grok-debugger-custom-pattern.png["Debugging a custom pattern"] -+ -If an error occurs, you can continue iterating over -the custom pattern until the output matches the event -that you expect. diff --git a/docs/dev-tools/painlesslab/images/painless-lab.png b/docs/dev-tools/painlesslab/images/painless-lab.png deleted file mode 100644 index fbfd54f69954..000000000000 Binary files a/docs/dev-tools/painlesslab/images/painless-lab.png and /dev/null differ diff --git a/docs/dev-tools/painlesslab/index.asciidoc b/docs/dev-tools/painlesslab/index.asciidoc deleted file mode 100644 index 5e329843843e..000000000000 --- a/docs/dev-tools/painlesslab/index.asciidoc +++ /dev/null @@ -1,17 +0,0 @@ -[role="xpack"] -[[painlesslab]] -== Painless Lab - -beta::[] - -The Painless Lab is an interactive code editor that lets you test and -debug {ref}/modules-scripting-painless.html[Painless scripts] in real-time. -You can use the Painless scripting -language to create <<scripted-fields, {kib} scripted fields>>, -process {ref}/docs-reindex.html[reindexed data], define complex -<<watcher-create-advanced-watch, Watcher conditions>>, -and work with data in other contexts. - -To get started, open the main menu, click *Dev Tools*, then click *Painless Lab*. - -image::dev-tools/painlesslab/images/painless-lab.png[Painless Lab] diff --git a/docs/dev-tools/searchprofiler/getting-started.asciidoc b/docs/dev-tools/searchprofiler/getting-started.asciidoc deleted file mode 100644 index 7cd54db5562b..000000000000 --- a/docs/dev-tools/searchprofiler/getting-started.asciidoc +++ /dev/null @@ -1,49 +0,0 @@ -[role="xpack"] -[[profiler-getting-started]] -=== Getting Started - -The {searchprofiler} is automatically enabled in {kib}. Open the main menu, click *Dev Tools*, then click *Search Profiler* -to get started. - -{searchprofiler} displays the names of the indices searched, the shards in each index, -and how long it took for the query to complete. To try it out, replace the default `match_all` query -with the query you want to profile and click *Profile*. - -The following example shows the results of profiling the `match_all` query. -If we take a closer look at the information for the `.kibana_1` sample index, the -Cumulative Time field shows us that the query took 1.279ms to execute. - -[role="screenshot"] -image::dev-tools/searchprofiler/images/overview.png["{searchprofiler} example"] - - -[NOTE] -==== -The Cumulative Time metric is the sum of individual shard times. -It is not necessarily the actual time it took for the query to return (wall clock time). -Because shards might be processed in parallel on multiple nodes, the wall clock time can -be significantly less than the Cumulative Time. However, if shards are colocated on the -same node and executed serially, the wall clock time is closer to the Cumulative Time. - -While the Cumulative Time metric is useful for comparing the performance of your -indices and shards, it doesn't necessarily represent the actual physical query times. -==== - -You can select the name of the shard and then click *View details* to see more profiling information, -including details about the query component(s) that ran on the shard, as well as the timing -breakdown of low-level Lucene methods. For more information, see {ref}/search-profile.html#profiling-queries[Profiling queries]. - -[float] -=== Index and type filtering - -By default, all queries executed by the {searchprofiler} are sent -to `GET /_search`. It searches across your entire cluster (all indices, all types). - -If you need to query a specific index or type (or several), you can use the Index -and Type filters. - -In the following example, the query is executed against the indices `test` and `kibana_1` -and the type `my_type`. This is equivalent making a request to `GET /test,kibana_1/my_type/_search`. - -[role="screenshot"] -image::dev-tools/searchprofiler/images/filter.png["Filtering by index and type"] diff --git a/docs/dev-tools/searchprofiler/gs-index.asciidoc b/docs/dev-tools/searchprofiler/gs-index.asciidoc deleted file mode 100644 index b4f5d48290f5..000000000000 --- a/docs/dev-tools/searchprofiler/gs-index.asciidoc +++ /dev/null @@ -1,20 +0,0 @@ -[role="xpack"] -[[xpack-profiler]] -= Profiling queries and aggregations - -[partintro] --- -{es} has a powerful {ref}/search-profile.html[Profile API] which can be used to inspect and analyze -your search queries. The response returns a large JSON blob, which can be -difficult to analyze manually. - -The {searchprofiler} tool can transform this JSON output -into a visualization that is easy to navigate, allowing you to diagnose and debug -poorly performing queries much faster. - -[role="screenshot"] -image::dev-tools/searchprofiler/images/overview.png["{searchprofiler} Visualization"] - --- - -include::getting-started.asciidoc[] diff --git a/docs/dev-tools/searchprofiler/images/filter.png b/docs/dev-tools/searchprofiler/images/filter.png deleted file mode 100644 index a740ec44b9d8..000000000000 Binary files a/docs/dev-tools/searchprofiler/images/filter.png and /dev/null differ diff --git a/docs/dev-tools/searchprofiler/images/gs10.png b/docs/dev-tools/searchprofiler/images/gs10.png deleted file mode 100644 index 6be78b2ce8eb..000000000000 Binary files a/docs/dev-tools/searchprofiler/images/gs10.png and /dev/null differ diff --git a/docs/dev-tools/searchprofiler/images/gs8.png b/docs/dev-tools/searchprofiler/images/gs8.png deleted file mode 100644 index 7ab8389897e4..000000000000 Binary files a/docs/dev-tools/searchprofiler/images/gs8.png and /dev/null differ diff --git a/docs/dev-tools/searchprofiler/images/overview.png b/docs/dev-tools/searchprofiler/images/overview.png deleted file mode 100644 index 19df1700a5ba..000000000000 Binary files a/docs/dev-tools/searchprofiler/images/overview.png and /dev/null differ diff --git a/docs/dev-tools/searchprofiler/images/pasting.png b/docs/dev-tools/searchprofiler/images/pasting.png deleted file mode 100644 index 466ab9159bfe..000000000000 Binary files a/docs/dev-tools/searchprofiler/images/pasting.png and /dev/null differ diff --git a/docs/dev-tools/searchprofiler/index.asciidoc b/docs/dev-tools/searchprofiler/index.asciidoc deleted file mode 100644 index aca96dbfe3ee..000000000000 --- a/docs/dev-tools/searchprofiler/index.asciidoc +++ /dev/null @@ -1,20 +0,0 @@ -[role="xpack"] -[[xpack-profiler]] -== Profiling queries and aggregations - -{es} has a powerful {ref}/search-profile.html[Profile API] which can be used to inspect and analyze -your search queries. The response returns a large JSON blob, which can be -difficult to analyze manually. - -The {searchprofiler} tool can transform this JSON output -into a visualization that is easy to navigate, allowing you to diagnose and debug -poorly performing queries much faster. - - -image::dev-tools/searchprofiler/images/overview.png["{searchprofiler} Visualization"] - -include::getting-started.asciidoc[] - -include::more-complicated.asciidoc[] - -include::pasting.asciidoc[] diff --git a/docs/dev-tools/searchprofiler/more-complicated.asciidoc b/docs/dev-tools/searchprofiler/more-complicated.asciidoc deleted file mode 100644 index 338341d65924..000000000000 --- a/docs/dev-tools/searchprofiler/more-complicated.asciidoc +++ /dev/null @@ -1,104 +0,0 @@ -[role="xpack"] -[[profiler-complicated]] -=== Profiling a more complicated query - -To understand how the query trees are displayed inside the {searchprofiler}, -let's look at a more complicated query. - -. Index the following data via *Console*: -+ --- -[source,js] --------------------------------------------------- -POST test/_bulk -{"index":{}} -{"name":"aaron","age":23,"hair":"brown"} -{"index":{}} -{"name":"sue","age":19,"hair":"red"} -{"index":{}} -{"name":"sally","age":19,"hair":"blonde"} -{"index":{}} -{"name":"george","age":19,"hair":"blonde"} -{"index":{}} -{"name":"fred","age":69,"hair":"blonde"} --------------------------------------------------- -// CONSOLE --- - -. From the {searchprofiler}, enter "test" in the *Index* field to restrict profiled -queries to the `test` index. - -. Replace the default `match_all` query in the query editor with a query that has two sub-query -components and includes a simple aggregation: -+ --- -[source,js] --------------------------------------------------- -{ - "query": { - "bool": { - "should": [ - { - "match": { - "name": "fred" - } - }, - { - "terms": { - "name": [ - "sue", - "sally" - ] - } - } - ] - } - }, - "aggs": { - "stats": { - "stats": { - "field": "price" - } - } - } -} --------------------------------------------------- -// NOTCONSOLE --- - -. Click *Profile* to profile the query and visualize the results. -. Select the shard to view the query details. -+ -[role="screenshot"] -image::dev-tools/searchprofiler/images/gs8.png["Profiling the more complicated query"] - - -The detail view contains a row for each query component: - - - The top-level `BooleanQuery` component corresponds to the bool in the query. - - The second `BooleanQuery` corresponds to the terms query, which is internally - converted to a `Boolean` of should clauses. It has two child queries that correspond - to "sue" and "sally" from the terms query. - - The `TermQuery` that's labeled with "name:fred" corresponds to match: fred in the query. - -If you look at the time columns, you can see that "Self time" and "Total time" are no longer -identical on all the rows. Self time represents how long the query component took to execute. -Total time is the time a query component and all its children took to execute. -Therefore, queries like the Boolean queries often have a larger total time than self time. - - -==== Aggregations - -This particular query also includes a aggregation (a `stats` agg on the `"age"` field). -Click *Aggregation Profile* to view aggregation profiling statistics (this tab -is only enabled if the query being profiled contains an aggregation). - - -Select the name of the shard to view the aggregation details and timing breakdown. - -[role="screenshot"] -image::dev-tools/searchprofiler/images/gs10.png["Drilling into the first shard's details"] - -For more information about how the {searchprofiler} works, how timings are calculated, and -how to interpret various results, see -{ref}/search-profile.html#profiling-queries[Profiling queries]. diff --git a/docs/dev-tools/searchprofiler/pasting.asciidoc b/docs/dev-tools/searchprofiler/pasting.asciidoc deleted file mode 100644 index 9257a4d84fb5..000000000000 --- a/docs/dev-tools/searchprofiler/pasting.asciidoc +++ /dev/null @@ -1,161 +0,0 @@ -[role="xpack"] -[[profiler-render]] -=== Rendering pre-captured profiler JSON - -The {searchprofiler} queries the cluster that the Kibana node is attached to. -It does this by executing the query against the cluster and collecting the results. - -But sometimes you may want to investigate performance problems that are temporal in nature. -For example, a query might only be slow at certain time of day when many customers are using your system. -You can setup a process to automatically profile slow queries when they occur and then -save those profile responses for later analysis. - -The {searchprofiler} supports this workflow by allowing you to paste the -pre-captured JSON in the query editor. The {searchprofiler} will detect that you -have entered a JSON response (rather than a query) and will just render the visualization, -rather than querying the cluster. - -To see how this works, copy and paste the following profile response into the -query editor and click *Profile*. - -[source,js] --------------------------------------------------- -{ - "took": 3, - "timed_out": false, - "_shards": { - "total": 1, - "successful": 1, - "failed": 0 - }, - "hits": { - "total": 1, - "max_score": 1.3862944, - "hits": [ - { - "_index": "test", - "_type": "test", - "_id": "AVi3aRDmGKWpaS38wV57", - "_score": 1.3862944, - "_source": { - "name": "fred", - "age": 69, - "hair": "blonde" - } - } - ] - }, - "profile": { - "shards": [ - { - "id": "[O-l25nM4QN6Z68UA5rUYqQ][test][0]", - "searches": [ - { - "query": [ - { - "type": "BooleanQuery", - "description": "+name:fred #(ConstantScore(*:*))^0.0", - "time": "0.5884370000ms", - "breakdown": { - "score": 7243, - "build_scorer_count": 1, - "match_count": 0, - "create_weight": 196239, - "next_doc": 9851, - "match": 0, - "create_weight_count": 1, - "next_doc_count": 2, - "score_count": 1, - "build_scorer": 375099, - "advance": 0, - "advance_count": 0 - }, - "children": [ - { - "type": "TermQuery", - "description": "name:fred", - "time": "0.3016880000ms", - "breakdown": { - "score": 4218, - "build_scorer_count": 1, - "match_count": 0, - "create_weight": 132425, - "next_doc": 2196, - "match": 0, - "create_weight_count": 1, - "next_doc_count": 2, - "score_count": 1, - "build_scorer": 162844, - "advance": 0, - "advance_count": 0 - } - }, - { - "type": "BoostQuery", - "description": "(ConstantScore(*:*))^0.0", - "time": "0.1223030000ms", - "breakdown": { - "score": 0, - "build_scorer_count": 1, - "match_count": 0, - "create_weight": 17366, - "next_doc": 0, - "match": 0, - "create_weight_count": 1, - "next_doc_count": 0, - "score_count": 0, - "build_scorer": 102329, - "advance": 2604, - "advance_count": 2 - }, - "children": [ - { - "type": "MatchAllDocsQuery", - "description": "*:*", - "time": "0.03307600000ms", - "breakdown": { - "score": 0, - "build_scorer_count": 1, - "match_count": 0, - "create_weight": 6068, - "next_doc": 0, - "match": 0, - "create_weight_count": 1, - "next_doc_count": 0, - "score_count": 0, - "build_scorer": 25615, - "advance": 1389, - "advance_count": 2 - } - } - ] - } - ] - } - ], - "rewrite_time": 168640, - "collector": [ - { - "name": "CancellableCollector", - "reason": "search_cancelled", - "time": "0.02952900000ms", - "children": [ - { - "name": "SimpleTopScoreDocCollector", - "reason": "search_top_hits", - "time": "0.01931700000ms" - } - ] - } - ] - } - ], - "aggregations": [] - } - ] - } -} --------------------------------------------------- -// NOTCONSOLE - -image::dev-tools/searchprofiler/images/pasting.png["Visualizing pre-collected responses"] diff --git a/docs/discover/search.asciidoc b/docs/discover/search.asciidoc deleted file mode 100644 index 45f0df5bd773..000000000000 --- a/docs/discover/search.asciidoc +++ /dev/null @@ -1,194 +0,0 @@ -[[search]] -== Search data -Many Kibana apps embed a query bar for real-time search, including -*Discover* and *Dashboard*. - -[float] -=== Search your data - -To search the indices that match the current <<index-patterns, index pattern>>, -enter your search criteria in the query bar. By default, you'll use -{kib}'s <<kuery-query, standard query language>> (KQL), which -features autocomplete and a simple, easy-to-use syntax. If you prefer to use -{kib}'s legacy query -language, based on the -Lucene https://lucene.apache.org/core/2_9_4/queryparsersyntax.html[query syntax], -you can switch to it from the KQL popup in the query bar. When you enable the -legacy query language, you can use the full -JSON-based {ref}/query-dsl.html[Elasticsearch Query DSL]. - - -[float] -[[autorefresh]] -=== Refresh search results -As more documents are added to the indices you're searching, the search results -shown in *Discover*, and used to display visualizations, get stale. Using the -time filter, you can -configure a refresh interval to periodically resubmit your searches to -retrieve the latest results. - -[role="screenshot"] -image::images/autorefresh-interval.png[Image showing what refresh interval option looks like. The configurable time interval is located in the dropdown] - -You can also manually refresh the search results by -clicking the *Refresh* button. - -[float] -=== Searching large amounts of data - -Sometimes you want to search through large amounts of data no matter how long -the search takes. While this might not happen often, there are times -that long-running queries are required. Consider a threat hunting scenario -where you need to search through years of data. - -If you run a query, and the run time gets close to the -timeout, you're presented the option to ignore the timeout. This enables you to -run queries with large amounts of data to completion. - -By default, a query times out after 30 seconds. -The timeout is in place to avoid unintentional load on the cluster. - - -include::kuery.asciidoc[] - -[[lucene-query]] -=== Lucene query syntax -Kibana's legacy query language was based on the Lucene query syntax. For the time being this syntax -is still available under the options menu in the Query Bar and in Advanced Settings. The following -are some tips that can help get you started. - -* To perform a free text search, simply enter a text string. For example, if -you're searching web server logs, you could enter `safari` to search all -fields for the term `safari`. - -* To search for a value in a specific field, prefix the value with the name -of the field. For example, you could enter `status:200` to find all of -the entries that contain the value `200` in the `status` field. - -* To search for a range of values, you can use the bracketed range syntax, -`[START_VALUE TO END_VALUE]`. For example, to find entries that have 4xx -status codes, you could enter `status:[400 TO 499]`. - -* To specify more complex search criteria, you can use the Boolean operators -`AND`, `OR`, and `NOT`. For example, to find entries that have 4xx status -codes and have an extension of `php` or `html`, you could enter `status:[400 TO -499] AND (extension:php OR extension:html)`. - -IMPORTANT: When you use the Lucene Query Syntax in the *KQL* search bar, {kib} is unable to search on nested objects and perform aggregations across fields that contain nested objects. -Using `include_in_parent` or `copy_to` as a workaround can cause {kib} to fail. - -For more detailed information about the Lucene query syntax, see the -{ref}/query-dsl-query-string-query.html#query-string-syntax[Query String Query] -docs. - -NOTE: These examples use the Lucene query syntax. When lucene is selected as your -query language you can also submit queries using the {ref}/query-dsl.html[Elasticsearch Query DSL]. - - -[[save-open-search]] -=== Save a search -A saved search persists your current view of Discover for later retrieval and reuse. You can reload a saved search into Discover, add it to a dashboard, and use it as the basis for a visualization. - -A saved search includes the query text, filters, and optionally, the time filter. A saved search also includes the selected columns in the document table, the sort order, and the current index pattern. - -[role="xpack"] -[[discover-read-only-access]] -==== Read-only access -When you have insufficient privileges to save searches, the following indicator in Kibana will be -displayed and the *Save* button won't be visible. For more information on granting access to -Kibana see <<xpack-security-authorization>>. - -[role="screenshot"] -image::discover/images/read-only-badge.png[Example of Discover's read only access indicator in Kibana's header] - -==== Save a search -To save the current search: - -. Click *Save* in the Kibana toolbar. -. Enter a name for the search and click *Save*. - -To import, export, and delete saved searches, open the main menu, -then click *Stack Management > Saved Objects*. - -==== Open a saved search -To load a saved search into Discover: - -. Click *Open* in the Kibana toolbar. -. Select the search you want to open. - -If the saved search is associated with a different index pattern than is currently -selected, opening the saved search changes the selected index pattern. The query language -used for the saved search will also be automatically selected. - -[[save-load-delete-query]] -=== Save a query -A saved query is a portable collection of query text and filters that you can reuse in <<discover, Discover>> and <<dashboard, Dashboard>>. Save a query when you want to: - -* Retrieve results from the same query at a later time without having to reenter the query text, add the filters or set the time filter -* View the results of the same query in multiple apps -* Share your query - -Saved queries don't include information specific to Discover, such as the currently selected columns in the document table, the sort order, and the index pattern. If you want to save your current view of Discover for later retrieval and reuse, create a <<save-open-search, saved search>> instead. - -[role="xpack"] -==== Read-only access -If you have insufficient privileges to save queries, the *Save current query* button isn't visible in the saved query management popover. For more information, see <<xpack-security-authorization, Granting access to Kibana>> - -==== Save a query -To save the current query text, filters, and time filter: - -. Click *#* in the search bar, next to the query text input. -. Click *Save current query* in the popover. -+ -[role="screenshot"] -image::discover/images/saved-query-management-component-all-privileges.png["Example of the saved query management popover with a list of saved queries with write access",width="80%"] -+ -. Enter a name, a description, and then select the filter options that you want to include. By default, filters are automatically included, but the time filter is not. -+ -[role="screenshot"] -image::discover/images/saved-query-save-form-default-filters.png["Example of the saved query management save form with the filters option included and the time filter option excluded",width="80%"] -. Click *Save*. - -==== Load a query -To load a saved query into Discover or Dashboard: - -. Click *#* in the search bar, next to the query text input. -. Select the query you want to load. You might need to scroll down to find the query you are looking for. - -==== Save changes to a query -If you load a query and then make changes to the query text, the filters, or the time filter, you can save the changes as a new query or update the existing query. - -To save the changes as a new query: - -. Click *#* in the search bar, next to the query text input. -. Click *Save as new* in the popover. -. Enter a name and a description, and then select the filter options that you want to include. -. Click *Save*. -+ -[role="screenshot"] -image::discover/images/saved-query-management-component-save-as-new-query.png["Example of the saved query management popover when a query is loaded and we have made changes to the query",width="80%"] - -To save the changes to the current query: - -. Click *#* in the search bar. -. Click *Save changes* in the popover. -. Enter a description, and then select the filter options that you want to include. -. Click *Save*. - -==== Clear a query -To clear a query that is currently loaded in an application: - -. Click *#* in the search bar. -. Click *Clear* in the popover. - -==== Delete a query -To completely delete a query: - -. Click *#* in the search bar, next to the query text input. -. Hover over the query you want to delete. -. Click the trash can icon. -+ -[role="screenshot"] -image::discover/images/saved-query-management-component-delete-query-button.png["Example of the saved query management popover when a query is hovered over and we are about to delete a query",width="80%"] - -You can import, export, and delete saved queries from <<managing-saved-objects, Saved Objects in Management>>. diff --git a/docs/fleet/fleet.asciidoc b/docs/fleet/fleet.asciidoc deleted file mode 100644 index 4777800ce5d5..000000000000 --- a/docs/fleet/fleet.asciidoc +++ /dev/null @@ -1,27 +0,0 @@ -[chapter] -[role="xpack"] -[[fleet]] -= {fleet} - -beta[] - -{fleet} in {kib} enables you to add and manage integrations for popular -services and platforms, as well as manage {elastic-agent} installations in -standalone or {fleet} mode. - -Standalone mode requires you to manually configure and manage the agent locally. - -{fleet} mode offers several advantages: - -* A central place to configure and monitor your {agent}s. -* An overview of the data ingest in your {es} cluster. -* Multiple integrations to collect and transform data. - -[role="screenshot"] -image::fleet/images/fleet-start.png[{fleet} app in {kib}] - -[float] -== Get started - -To get started with {fleet}, refer to the -{fleet-guide}/index.html[{fleet}] docs. diff --git a/docs/fleet/images/fleet-start.png b/docs/fleet/images/fleet-start.png deleted file mode 100644 index 0d0f7b8feec9..000000000000 Binary files a/docs/fleet/images/fleet-start.png and /dev/null differ diff --git a/docs/fleet/index.asciidoc b/docs/fleet/index.asciidoc deleted file mode 100644 index 638adf05506f..000000000000 --- a/docs/fleet/index.asciidoc +++ /dev/null @@ -1,14 +0,0 @@ -[chapter] -[role="xpack"] -[[xpack-ingest-manager]] -= Ingest Manager - -The {ingest-manager} app in Kibana enables you to add and manage integrations for popular services and platforms, as well as manage {elastic-agent} installations in standalone or {fleet} mode. - -[role="screenshot"] -image::ingest_manager/images/ingest-manager-start.png[Ingest Manager App in Kibana] - -[float] -=== Get started - -To get started with Ingest Management, refer to the LINK_TO_INGEST_MANAGEMENT_GUIDE[Ingest Management Guide]. diff --git a/docs/management/alerting/alert-details.asciidoc b/docs/management/alerting/alert-details.asciidoc deleted file mode 100644 index b108f79fe5ba..000000000000 --- a/docs/management/alerting/alert-details.asciidoc +++ /dev/null @@ -1,34 +0,0 @@ -[role="xpack"] -[[alert-details]] -=== Alert details - -beta[] - -The *Alert details* page tells you about the state of the alert and provides granular control over the actions it is taking. - -[role="screenshot"] -image::images/alerts-details-instances-active.png[Alert details page with three alert instances] - -In this example, alerts detect when a site serves more than a threshold number of bytes in a 24 hour period. Three sites are above the threshold. These are called alert instances - occurrences of the condition being detected - and the instance name, status, time of detection, and duration of the condition are shown in this view. - -Upon detection, each instance can trigger one or more actions. If the condition persists, the same actions will trigger either on the next scheduled alert check, or (if defined) after the re-notify period on the alert has passed. To prevent re-notification, you can suppress future actions by clicking on the eye icon to mute an individual alert instance. Muting means that the alert checks continue to run on a schedule, but that instance will not trigger any action. - -[role="screenshot"] -image::images/alerts-details-instance-muting.png[Muting an alert instance] - -Alert instances will come and go from the list depending on whether they meet the alert conditions or not - unless they are muted. If a muted instance no longer meets the alert conditions, it will appear as inactive in the list. This prevents an instance from triggering actions if it reappears in the future. - -[role="screenshot"] -image::images/alerts-details-instances-inactive.png[Alert details page with three inactive alert instances] - -If you want to suppress actions on all current and future instances, you can mute the entire alert. Alert checks continue to run and the instance list will update as instances activate or deactivate, but no actions will be triggered. - -[role="screenshot"] -image::images/alerts-details-muting.png[Use the mute toggle to suppress all action on current and future instances] - -You can also disable an alert altogether. When disabled, the alert stops running checks altogether and will clear any instances it is tracking. You may want to disable alerts that are not currently needed to reduce the load on {kib} and {es}. - -[role="screenshot"] -image::images/alerts-details-disabling.png[Use the disable toggle to turn off alert checks and clear instances tracked] - -* For further information on alerting concepts and examples, see <<alerting-getting-started>>. diff --git a/docs/management/alerting/alert-management.asciidoc b/docs/management/alerting/alert-management.asciidoc deleted file mode 100644 index f34881255097..000000000000 --- a/docs/management/alerting/alert-management.asciidoc +++ /dev/null @@ -1,59 +0,0 @@ -[role="xpack"] -[[alert-management]] -=== Managing Alerts - -beta[] - -The *Alerts* tab provides a cross-app view of alerting. Different {kib} apps like <<metrics-app,Metrics>>, <<xpack-apm,APM>>, <<uptime-app,Uptime>>, and <<xpack-siem,SIEM>> can offer their own alerts, and the *Alerts* tab provides a central place to: - -* <<create-edit-alerts, Create and edit>> alerts -* <<controlling-alerts, Control alerts>> including enabling/disabling, muting/unmuting, and deleting -* Drill-down to <<alert-details, alert details>> - -[role="screenshot"] -image:management/alerting/images/alerts-and-actions-ui.png[Example alert listing in the Alerts and Actions UI] - -For more information on alerting concepts and the types of alerts and actions available, see <<alerting-getting-started>>. - -[float] -==== Finding alerts - -The *Alerts* tab lists all alerts in the current space, including summary information about their execution frequency, tags, and type. - -The *search bar* can be used to quickly find alerts by name or tag. - -[role="screenshot"] -image::images/alerts-filter-by-search.png[Filtering the alerts list using the search bar] - -The *type* dropdown lets you filter to a subset of alert types. - -[role="screenshot"] -image::images/alerts-filter-by-type.png[Filtering the alerts list by types of alert] - -The *Action type* dropdown lets you filter by the type of action used in the alert. - -[role="screenshot"] -image::images/alerts-filter-by-action-type.png[Filtering the alert list by type of action] - -[float] -[[create-edit-alerts]] -==== Creating and editing alerts - -Many alerts must be created within the context of a {kib} app like <<metrics-app, Metrics>>, <<xpack-apm, APM>>, or <<uptime-app, Uptime>>, but others are generic. Generic alert types can be created in the *Alerts* management UI by clicking the *Create* button. This will launch a flyout that guides you through selecting an alert type and configuring it's properties. Refer to <<alert-types>> for details on what types of alerts are available and how to configure them. - -After an alert is created, you can re-open the flyout and change an alerts properties by clicking the *Edit* button shown on each row of the alert listing. - - -[float] -[[controlling-alerts]] -==== Controlling alerts - -The alert listing allows you to quickly mute/unmute, disable/enable, and delete individual alerts by clicking the action button. - -[role="screenshot"] -image:management/alerting/images/individual-mute-disable.png[The actions button allows an individual alert to be muted, disabled, or deleted] - -These operations can also be performed in bulk by multi-selecting alerts and clicking the *Manage alerts* button: - -[role="screenshot"] -image:management/alerting/images/bulk-mute-disable.png[The Manage alerts button lets you mute/unmute, enable/disable, and delete in bulk] diff --git a/docs/management/alerting/alerts-and-actions-intro.asciidoc b/docs/management/alerting/alerts-and-actions-intro.asciidoc deleted file mode 100644 index 35a2452e9995..000000000000 --- a/docs/management/alerting/alerts-and-actions-intro.asciidoc +++ /dev/null @@ -1,31 +0,0 @@ -[role="xpack"] -[[managing-alerts-and-actions]] -== Alerts and Actions - -beta[] - -The *Alerts and Actions* UI lets you <<alert-management, see and control all the alerts>> in a space, and provides tools to <<connector-management, create and manage connectors>> so that alerts can trigger actions like notification, indexing, and ticketing. - -To manage alerting and connectors, open the main menu, -then click *Stack Management > Alerts and Insights > Alerts and Actions*. - -[role="screenshot"] -image:management/alerting/images/alerts-and-actions-ui.png[Example alert listing in the Alerts and Actions UI] - -[NOTE] -============================================================================ -Similar to dashboards, alerts and connectors reside in a <<xpack-spaces, space>>. -The *Alerts and Actions* UI only shows alerts and connectors for the current space. -============================================================================ - -[NOTE] -============================================================================ -{es} also offers alerting capabilities through Watcher, which -can be managed through the <<watcher-ui, Watcher UI>>. See -<<alerting-concepts-differences>> for more information. -============================================================================ - -[float] -=== Required permissions - -Access to alerts and actions is granted based on your privileges to alerting-enabled features. See <<alerting-security, Alerting Security>> for more information. diff --git a/docs/management/alerting/connector-management.asciidoc b/docs/management/alerting/connector-management.asciidoc deleted file mode 100644 index 46e106e6e964..000000000000 --- a/docs/management/alerting/connector-management.asciidoc +++ /dev/null @@ -1,47 +0,0 @@ -[role="xpack"] -[[connector-management]] -=== Managing Connectors - -beta[] - -Alerts use *Connectors* to route actions to different destinations like log files, ticketing systems, and messaging tools. While each {kib} app can offer their own types of alerts, they typically share connectors. The *Connectors* tab offers a central place to view and manage all the connectors in the current space. - -For more information on connectors and the types of actions available see <<action-types>>. - -[role="screenshot"] -image::images/connector-listing.png[Example connector listing in the Alerts and Actions UI] - - -[float] -==== Connector list - -The *Connectors* tab lists all connectors in the current space. The *search bar* can be used to find specific connectors by name and/or type. - -[role="screenshot"] -image::images/connector-filter-by-search.png[Filtering the connector list using the search bar] - - -The *type* dropdown also lets you filter to a subset of action types. - -[role="screenshot"] -image::images/connector-filter-by-type.png[Filtering the connector list by types of actions] - -The *Actions* column indicates the number of actions that reference the connector. This count helps you confirm a connector is unused before you delete it, and tells you how many actions will be affected when a connector is modified. - -[role="screenshot"] -image::images/connector-action-count.png[Filtering the connector list by types of actions] - -You can delete individual connectors using the trash icon. Connectors can also be deleted in bulk by multi-selecting them and clicking the *Delete* button to the left of the search box. - -[role="screenshot"] -image::images/connector-delete.png[Deleting connectors individually or in bulk] - -[NOTE] -============================================================================ -You can delete a connector even if there are still actions referencing it. -When this happens the action will fail to execute, and appear as errors in the {kib} logs. -============================================================================ - -==== Creating a new connector - -New connectors can be created by clicking the *Create connector* button, which will guide you to select the type of connector and configure it's properties. Refer to <<action-types>> for the types of connectors available and how to configure them. Once you create a connector it will be made available to you anytime you set up an action in the current space. diff --git a/docs/management/alerting/images/alerts-and-actions-ui.png b/docs/management/alerting/images/alerts-and-actions-ui.png deleted file mode 100644 index d46df21e6f6b..000000000000 Binary files a/docs/management/alerting/images/alerts-and-actions-ui.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-details-disabling.png b/docs/management/alerting/images/alerts-details-disabling.png deleted file mode 100644 index 7057afc8ad07..000000000000 Binary files a/docs/management/alerting/images/alerts-details-disabling.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-details-instance-muting.png b/docs/management/alerting/images/alerts-details-instance-muting.png deleted file mode 100644 index fd59e79d0727..000000000000 Binary files a/docs/management/alerting/images/alerts-details-instance-muting.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-details-instances-active.png b/docs/management/alerting/images/alerts-details-instances-active.png deleted file mode 100644 index 7506d1cb8c65..000000000000 Binary files a/docs/management/alerting/images/alerts-details-instances-active.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-details-instances-inactive.png b/docs/management/alerting/images/alerts-details-instances-inactive.png deleted file mode 100644 index a757d59e1236..000000000000 Binary files a/docs/management/alerting/images/alerts-details-instances-inactive.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-details-muting.png b/docs/management/alerting/images/alerts-details-muting.png deleted file mode 100644 index 29cdf707b491..000000000000 Binary files a/docs/management/alerting/images/alerts-details-muting.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-filter-by-action-type.png b/docs/management/alerting/images/alerts-filter-by-action-type.png deleted file mode 100644 index c0e495a87ecd..000000000000 Binary files a/docs/management/alerting/images/alerts-filter-by-action-type.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-filter-by-search.png b/docs/management/alerting/images/alerts-filter-by-search.png deleted file mode 100644 index df4b6d7d9d9a..000000000000 Binary files a/docs/management/alerting/images/alerts-filter-by-search.png and /dev/null differ diff --git a/docs/management/alerting/images/alerts-filter-by-type.png b/docs/management/alerting/images/alerts-filter-by-type.png deleted file mode 100644 index 859274e9b661..000000000000 Binary files a/docs/management/alerting/images/alerts-filter-by-type.png and /dev/null differ diff --git a/docs/management/alerting/images/bulk-mute-disable.png b/docs/management/alerting/images/bulk-mute-disable.png deleted file mode 100644 index 04cdc3f03f34..000000000000 Binary files a/docs/management/alerting/images/bulk-mute-disable.png and /dev/null differ diff --git a/docs/management/alerting/images/connector-action-count.png b/docs/management/alerting/images/connector-action-count.png deleted file mode 100644 index b792ae2cc11c..000000000000 Binary files a/docs/management/alerting/images/connector-action-count.png and /dev/null differ diff --git a/docs/management/alerting/images/connector-delete.png b/docs/management/alerting/images/connector-delete.png deleted file mode 100644 index ccb6bcea4bad..000000000000 Binary files a/docs/management/alerting/images/connector-delete.png and /dev/null differ diff --git a/docs/management/alerting/images/connector-filter-by-search.png b/docs/management/alerting/images/connector-filter-by-search.png deleted file mode 100644 index 1f052ea23a57..000000000000 Binary files a/docs/management/alerting/images/connector-filter-by-search.png and /dev/null differ diff --git a/docs/management/alerting/images/connector-filter-by-type.png b/docs/management/alerting/images/connector-filter-by-type.png deleted file mode 100644 index 06c7d6f4dad4..000000000000 Binary files a/docs/management/alerting/images/connector-filter-by-type.png and /dev/null differ diff --git a/docs/management/alerting/images/connector-listing.png b/docs/management/alerting/images/connector-listing.png deleted file mode 100644 index 43014ff88057..000000000000 Binary files a/docs/management/alerting/images/connector-listing.png and /dev/null differ diff --git a/docs/management/alerting/images/individual-mute-disable.png b/docs/management/alerting/images/individual-mute-disable.png deleted file mode 100644 index dc187c97de30..000000000000 Binary files a/docs/management/alerting/images/individual-mute-disable.png and /dev/null differ diff --git a/docs/management/index-patterns/images/create-index-pattern.png b/docs/management/index-patterns/images/create-index-pattern.png deleted file mode 100644 index 8d8efc7a6213..000000000000 Binary files a/docs/management/index-patterns/images/create-index-pattern.png and /dev/null differ diff --git a/docs/management/index-patterns/images/delete.png b/docs/management/index-patterns/images/delete.png deleted file mode 100755 index a5bb37368812..000000000000 Binary files a/docs/management/index-patterns/images/delete.png and /dev/null differ diff --git a/docs/management/index-patterns/images/edit-field-format.png b/docs/management/index-patterns/images/edit-field-format.png deleted file mode 100755 index 15ab0c5bf876..000000000000 Binary files a/docs/management/index-patterns/images/edit-field-format.png and /dev/null differ diff --git a/docs/management/index-patterns/images/edit_icon.png b/docs/management/index-patterns/images/edit_icon.png deleted file mode 100644 index d5af1751809c..000000000000 Binary files a/docs/management/index-patterns/images/edit_icon.png and /dev/null differ diff --git a/docs/management/index-patterns/images/new-index-pattern.png b/docs/management/index-patterns/images/new-index-pattern.png deleted file mode 100644 index 1bd034482699..000000000000 Binary files a/docs/management/index-patterns/images/new-index-pattern.png and /dev/null differ diff --git a/docs/management/index-patterns/images/refresh-icon.png b/docs/management/index-patterns/images/refresh-icon.png deleted file mode 100755 index 00d1a4c7653d..000000000000 Binary files a/docs/management/index-patterns/images/refresh-icon.png and /dev/null differ diff --git a/docs/management/index-patterns/images/star.png b/docs/management/index-patterns/images/star.png deleted file mode 100755 index f35408d1c3ee..000000000000 Binary files a/docs/management/index-patterns/images/star.png and /dev/null differ diff --git a/docs/management/ingest-pipelines/images/ingest-pipeline-list.png b/docs/management/ingest-pipelines/images/ingest-pipeline-list.png deleted file mode 100755 index 5080b4e0bd47..000000000000 Binary files a/docs/management/ingest-pipelines/images/ingest-pipeline-list.png and /dev/null differ diff --git a/docs/management/ingest-pipelines/images/ingest-pipeline-privileges.png b/docs/management/ingest-pipelines/images/ingest-pipeline-privileges.png deleted file mode 100755 index ad9451e02e2e..000000000000 Binary files a/docs/management/ingest-pipelines/images/ingest-pipeline-privileges.png and /dev/null differ diff --git a/docs/management/ingest-pipelines/images/ingest-pipeline-processor.png b/docs/management/ingest-pipelines/images/ingest-pipeline-processor.png deleted file mode 100644 index 2de7449affd0..000000000000 Binary files a/docs/management/ingest-pipelines/images/ingest-pipeline-processor.png and /dev/null differ diff --git a/docs/management/ingest-pipelines/ingest-pipelines.asciidoc b/docs/management/ingest-pipelines/ingest-pipelines.asciidoc deleted file mode 100644 index d9745bfef524..000000000000 --- a/docs/management/ingest-pipelines/ingest-pipelines.asciidoc +++ /dev/null @@ -1,170 +0,0 @@ -[role="xpack"] -[[ingest-node-pipelines]] -== Ingest Node Pipelines - -*Ingest Node Pipelines* enables you to create and manage {es} -pipelines that perform common transformations and -enrichments on your data. For example, you might remove a field, -rename an existing field, or set a new field. - -To begin, open the main menu, then click *Stack Management > Ingest Node Pipelines*. With *Ingest Node Pipelines*, you can: - -* View a list of your pipelines and drill down into details. -* Create a pipeline that defines a series of tasks, known as processors. -* Test a pipeline before feeding it with real data to ensure the pipeline works as expected. -* Delete a pipeline that is no longer needed. - -[role="screenshot"] -image:management/ingest-pipelines/images/ingest-pipeline-list.png["Ingest node pipeline list"] - -[float] -=== Required permissions - -The minimum required permissions to access *Ingest Node Pipelines* are -the `manage_pipeline` and `cluster:monitor/nodes/info` cluster privileges. - -To add privileges, open the main menu, then click *Stack Management > Roles*. - -[role="screenshot"] -image:management/ingest-pipelines/images/ingest-pipeline-privileges.png["Privileges required for Ingest Node Pipelines"] - -[float] -[[ingest-node-pipelines-manage]] -=== Manage pipelines - -From the list view, you can to drill down into the details of a pipeline. -To -edit, clone, or delete a pipeline, use the *Actions* menu. - -If you don’t have any pipelines, you can create one using the -*Create pipeline* form. You’ll define processors to transform documents -in a specific way. To handle exceptions, you can optionally define -failure processors to execute immediately after a failed processor. -Before creating the pipeline, you can verify it provides the expected output. - -[float] -[[ingest-node-pipelines-example]] -==== Example: Create a pipeline - -In this example, you’ll create a pipeline to handle server logs in the -Common Log Format. The log looks similar to this: - -[source,js] ----------------------------------- -212.87.37.154 - - [05/May/2020:16:21:15 +0000] \"GET /favicon.ico HTTP/1.1\" -200 3638 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) -AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36\" ----------------------------------- - -The log contains an IP address, timestamp, and user agent. You want to give -these three items their own field in {es} for fast search and visualization. -You also want to know where the request is coming from. - -. In *Ingest Node Pipelines*, click *Create a pipeline*. -. Provide a name and description for the pipeline. -. Add a grok processor to parse the log message: - -.. Click *Add a processor* and select the *Grok* processor type. -.. Set the field input to `message` and enter the following grok pattern: -+ -[source,js] ----------------------------------- -%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent} ----------------------------------- -+ -.. Click *Update* to save the processor. - -. Add processors to map the date, IP, and user agent fields. - -.. Map the appropriate field to each processor type: -+ --- -* **Date**: `timestamp` -* **GeoIP**: `clientip` -* **User agent**: `agent` - -For the **Date** processor, you also need to specify the date format you want to use: `dd/MMM/YYYY:HH:mm:ss Z`. --- -Your form should look similar to this: -+ -[role="screenshot"] -image:management/ingest-pipelines/images/ingest-pipeline-processor.png["Processors for Ingest Node Pipelines"] -+ -Alternatively, you can click the **Import processors** link and define the processors as JSON: -+ -[source,js] ----------------------------------- -{ - "processors": [ - { - "grok": { - "field": "message", - "patterns": ["%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \\[%{HTTPDATE:timestamp}\\] \"%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}"] - } - }, - { - "date": { - "field": "timestamp", - "formats": [ "dd/MMM/YYYY:HH:mm:ss Z" ] - } - }, - { - "geoip": { - "field": "clientip" - } - }, - { - "user_agent": { - "field": "agent" - } - } - ] -} ----------------------------------- -+ -The four {ref}/ingest-processors.html[processors] will run sequentially: -{ref}/grok-processor.html[grok], {ref}/date-processor.html[date], -{ref}/geoip-processor.html[geoip], and {ref}/user-agent-processor.html[user_agent]. You can reorder processors using the arrow icon next to each processor. - -. To test the pipeline to verify that it produces the expected results, click *Add documents*. - -. In the *Documents* tab, provide a sample document for testing: -+ -[source,js] ----------------------------------- -[ - { - "_source": { - "message": "212.87.37.154 - - [05/May/2020:16:21:15 +0000] \"GET /favicon.ico HTTP/1.1\" 200 3638 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36\"" - } - } -] ----------------------------------- - -. Click *Run the pipeline* and check if the pipeline worked as expected. -+ -You can also -view the verbose output and refresh the output from this view. - -. If everything looks correct, close the panel, and then click *Create pipeline*. -+ -At this point, you’re ready to use the Elasticsearch index API to load -the logs data. - -. In the Kibana Console, index a document with the pipeline -you created. -+ -[source,js] ----------------------------------- -PUT my-index/_doc/1?pipeline=access_logs -{ - "message": "212.87.37.154 - - [05/May/2020:16:21:15 +0000] \"GET /favicon.ico HTTP/1.1\" 200 3638 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36\"" -} ----------------------------------- - -. To verify, run: -+ -[source,js] ----------------------------------- -GET my-index/_doc/1 ----------------------------------- diff --git a/docs/management/managing-beats.asciidoc b/docs/management/managing-beats.asciidoc deleted file mode 100644 index 232efb60cadd..000000000000 --- a/docs/management/managing-beats.asciidoc +++ /dev/null @@ -1,108 +0,0 @@ -[[managing-beats]] -[role="xpack"] -== {beats} Central Management - -include::{asciidoc-dir}/../../shared/discontinued.asciidoc[tag=cm-discontinued] - -To use {beats} Central Management, open the main menu, click *Stack Management > -{beats} Central Management*, then define and -manage configurations in a central location in {kib} and quickly deploy -configuration changes to all {beats} running across your enterprise. For more -about central management, see the related {beats} documentation: - -* {filebeat-ref}/configuration-central-management.html[{filebeat} documentation] -* {metricbeat-ref}/configuration-central-management.html[{metricbeat} documentation] - -[NOTE] -==== -This feature requires an Elastic license that includes {beats} central -management. - -Don't have a license? You can start a 30-day trial. Open the main menu, then -click *Stack Management > License Management*. At the end of the trial -period, you can purchase a subscription to keep using central management. For -more information, see https://www.elastic.co/subscriptions and -<<managing-licenses>>. -==== - -{kib} makes it easy for you to use central management by walking you through the -enrollment and configuration process step by step the first time you use the -Central Management UI. - -[float] -=== Required permissions - -You must have the `beats_admin` role assigned to use **{beats} Central Management** - -To assign the role, open the menu, then click *Stack Management > Users*. - - -[float] -=== Enroll {beats} - -You need to enroll {beats} to register them in central management and establish -trust. Enrolled {beats} will have the credentials needed to retrieve -configurations from {kib}. - -[float] -=== Create configuration tags - -A _configuration tag_ is a group of configuration blocks that you can apply to -one or more {beats}. For example, you can create a tag called `development` to -group configurations for {beats} running in your development environment. - -The first time you walk through the enrollment process, you'll create a -configuration tag that's applied to the {beats} instance you're enrolling. - -After that, under *Configuration tags*, you can create additional tags and -apply them to any enrolled {beats}, and the {beats} will use the configurations -defined in the tag. - -[float] -=== Add configuration blocks - -Add one or more configuration blocks to the tag. A tag can have configuration -blocks for different types of {beats}. When the enrolled {beats} run, they will -use the configuration blocks that are valid for their type. - -Central management supports configuration settings for: - -* {filebeat} modules -* {metricbeat} modules -* {filebeat} inputs -* {filebeat} and {metricbeat} outputs - -NOTE: Central management supports the following outputs only: {es}, {ls}, Kafka, -and Redis. Other output types are not supported for {beats} that are enrolled in -central management. - -Use the Central Management UI to define and manage settings for supported -configuration blocks. You cannot define those settings in local {beats} -configuration files. For configuration blocks that are not supported by central -management, configure the settings in the local configuration file after -enrolling the Beat in central management. - -[float] -=== Manage enrolled {beats} - -Under *Enrolled {beats}*, you can view the list of enrolled {beats} to see -details, including the type, applied tags, configuration status, and the last -configuration update. Click the *Beat name* or *Type* column heading to sort the -list. To filter the list, enter a search string. If there are errors in a -configuration, you’ll see an Error status in the Central Management UI and need -to look at {beats} logs to troubleshoot the problem. - -You can add or remove tags, and the configuration changes are automatically -deployed to all {beats} that have the tag. Avoid applying tags with conflicting -configurations. Because the configurations for all assigned tags are merged, -conflicting configurations result in errors. - -You can unenroll {beats} to remove them from central management. - -[float] -=== Manage tags - -Under *Configuration tags*, you can select tags and delete them, or you can -drill down into a tag to add, modify, or remove configuration blocks from the -tag. When you change the configuration blocks or remove tags, the configuration -changes are automatically deployed to all {beats} that have the tag. diff --git a/docs/management/managing-licenses.asciidoc b/docs/management/managing-licenses.asciidoc deleted file mode 100644 index 8944414f6bfb..000000000000 --- a/docs/management/managing-licenses.asciidoc +++ /dev/null @@ -1,190 +0,0 @@ -[[managing-licenses]] -== License Management - -When you install the default distribution of {kib}, you receive free features -with no expiration date. For the full list of features, refer to -{subscriptions}. - -If you want to try out the full set of features, you can activate a free 30-day -trial. To view the status of your license, start a trial, or install a new -license, open the main menu, then click *Stack Management > License Management*. - -NOTE: You can start a trial only if your cluster has not already activated a -trial license for the current major product version. For example, if you have -already activated a trial for 6.0, you cannot start a new trial until -7.0. You can, however, request an extended trial at {extendtrial}. - -When you activate a new license level, new features appear in *Stack Management*. - -[role="screenshot"] -image::images/management-license.png[] - -At the end of the trial period, some features operate in a -<<license-expiration,degraded mode>>. You can revert to Basic, extend the trial, -or purchase a subscription. - -TIP: If {security-features} are enabled, unless you have a trial license, -you must configure Transport Layer Security (TLS) in {es}. -See {ref}/encrypting-communications.html[Encrypting communications]. -{kib} and the {ref}/start-basic.html[start basic API] provide a list of all of -the features that will no longer be supported if you revert to a basic license. - -[float] -=== Required permissions - -The `manage` cluster privilege is required to access *License Management*. - -To add the privilege, open the main menu, then click *Stack Management > Roles*. - -[discrete] -[[update-license]] -=== Update your license - -You can update your license at runtime without shutting down your {es} nodes. -License updates take effect immediately. The license is provided as a _JSON_ -file that you install in {kib} or by using the -{ref}/update-license.html[update license API]. - -TIP: If you are using a basic or trial license, {security-features} are disabled -by default. In all other licenses, {security-features} are enabled by default; -you must secure the {stack} or disable the {security-features}. - -[discrete] -[[license-expiration]] -=== License expiration - -Your license is time based and expires at a future date. If you're using -{monitor-features} and your license will expire within 30 days, a license -expiration warning is displayed prominently. Warnings are also displayed on -startup and written to the {es} log starting 30 days from the expiration date. -These error messages tell you when the license expires and what features will be -disabled if you do not update the license. - -IMPORTANT: You should update your license as soon as possible. You are -essentially flying blind when running with an expired license. Access to the -cluster health and stats APIs is critical for monitoring and managing an {es} -cluster. - -[discrete] -[[expiration-beats]] -==== Beats - -* Beats will continue to poll centrally-managed configuration. - -[discrete] -[[expiration-elasticsearch]] -==== {es} - -// Upgrade API is disabled -* The deprecation API is disabled. -* SQL support is disabled. -* Aggregations provided by the analytics plugin are no longer usable. - -[discrete] -[[expiration-watcher]] -==== {stack} {alert-features} - -* The PUT and GET watch APIs are disabled. The DELETE watch API continues to work. -* Watches execute and write to the history. -* The actions of the watches do not execute. - -[discrete] -[[expiration-graph]] -==== {stack} {graph-features} - -* Graph explore APIs are disabled. - -[discrete] -[[expiration-ml]] -==== {stack} {ml-features} - -* APIs to create {anomaly-jobs}, open jobs, send data to jobs, create {dfeeds}, -and start {dfeeds} are disabled. -* All started {dfeeds} are stopped. -* All open {anomaly-jobs} are closed. -* APIs to create and start {dfanalytics-jobs} are disabled. -* Existing {anomaly-job} and {dfanalytics-job} results continue to be available -by using {kib} or APIs. - -[discrete] -[[expiration-monitoring]] -==== {stack} {monitor-features} - -* The agent stops collecting cluster and indices metrics. -* The agent stops automatically cleaning indices older than -`xpack.monitoring.history.duration`. - -[discrete] -[[expiration-security]] -==== {stack} {security-features} - -* Cluster health, cluster stats, and indices stats operations are blocked. -* All data operations (read and write) continue to work. - -Once the license expires, calls to the cluster health, cluster stats, and index -stats APIs fail with a `security_exception` and return a 403 HTTP status code. - -[source,sh] ------------------------------------------------------ -{ - "error": { - "root_cause": [ - { - "type": "security_exception", - "reason": "current license is non-compliant for [security]", - "license.expired.feature": "security" - } - ], - "type": "security_exception", - "reason": "current license is non-compliant for [security]", - "license.expired.feature": "security" - }, - "status": 403 -} ------------------------------------------------------ - -This message enables automatic monitoring systems to easily detect the license -failure without immediately impacting other users. - -[discrete] -[[expiration-logstash]] -==== {ls} pipeline management - -* Cannot create new pipelines or edit or delete existing pipelines from the UI. -* Cannot list or view existing pipelines from the UI. -* Cannot run Logstash instances which are registered to listen to existing pipelines. -//TBD: * Logstash will continue to poll centrally-managed pipelines - -[discrete] -[[expiration-kibana]] -==== {kib} - -* Users can still log into {kib}. -* {kib} works for data exploration and visualization, but some features -are disabled. -* The license management UI is available to easily upgrade your license. See -<<update-license>> and <<managing-licenses>>. - -[discrete] -[[expiration-reporting]] -==== {kib} {report-features} - -* Reporting is no longer available in {kib}. -* Report generation URLs stop working. -* Existing reports are no longer accessible. - -[discrete] -[[expiration-rollups]] -==== {rollups-cap} - -* {rollup-jobs-cap} cannot be created or started. -* Existing {rollup-jobs} can be stopped and deleted. -* The get rollup caps and rollup search APIs continue to function. - -[discrete] -[[expiration-transforms]] -==== {transforms-cap} - -* {transforms-cap} cannot be created, previewed, started, or updated. -* Existing {transforms} can be stopped and deleted. -* Existing {transform} results continue to be available. diff --git a/docs/management/managing-saved-objects.asciidoc b/docs/management/managing-saved-objects.asciidoc deleted file mode 100644 index 9e26abca115f..000000000000 --- a/docs/management/managing-saved-objects.asciidoc +++ /dev/null @@ -1,100 +0,0 @@ -[[managing-saved-objects]] -== Saved Objects - -The *Saved Objects* UI helps you keep track of and manage your saved objects. These objects -store data for later use, including dashboards, visualizations, maps, index patterns, -Canvas workpads, and more. - -To get started, open the main menu, then click *Stack Management > Saved Objects*. - -[role="screenshot"] -image::images/management-saved-objects.png[Saved Objects] - -[float] -=== Required permissions - -The `Saved Objects Management` {kib} privilege is required to access the *Saved Objects* UI. - -To add the privilege, open the menu, then click *Stack Management > Roles*. - -NOTE: -Granting access to Saved Objects Management will authorize users to manage all saved objects in {kib}, including objects that are managed by applications they may not otherwise be authorized to access. - - -[float] -[[managing-saved-objects-view]] -=== View, edit, and delete - -* To view and edit an object in its associated application, click the object title. - -* To show objects that use this object, so you know the -impact of deleting it, click the actions icon image:images/actions_icon.png[Actions icon] -and select *Relationships*. - -* To delete one or more objects, select their checkboxes, and then click *Delete*. - -[float] -[[managing-saved-objects-export-objects]] -=== Import and export - -Using the import and export commands, you can move objects between different -{kib} instances. This action is useful when you -have multiple environments for development and production. -Import and export also work well when you have a large number -of objects to update and want to batch the process. - - -[float] -==== Import - -You can import multiple objects in a single operation. Click *Import* and -navigate to the NDJSON file that -represents the objects to import. By default, -saved objects already in {kib} are overwritten. - -[float] -==== Export - -You have two options for exporting saved objects. - -* Select the checkboxes of objects that you want to export, and then click *Export*. -* Click *Export x objects*, and export objects by type. - -This action creates an NDJSON with all your saved objects. By default, the NDJSON includes child objects that are related to the saved -objects. Exported dashboards include their associated index patterns. - -[float] -[role="xpack"] -[[managing-saved-objects-copy-to-space]] -=== Copy to other {kib} spaces - -To copy a saved object to another space, click the actions icon image:images/actions_icon.png[Actions icon] -and select *Copy to space*. From here, you can select the spaces in which to copy the object. -You can also select whether to automatically overwrite any conflicts in the target spaces, or -resolve them manually. - -WARNING: The copy operation automatically includes child objects that are related to the saved objects. If you don't want this behavior, use -the <<spaces-api-copy-saved-objects, copy saved objects to space API>> instead. - - -[float] -[[managing-saved-objects-object-definition]] -=== Advanced editing - -Some objects offer an advanced *Edit* page for modifying the object definition. -To open the page, click the actions icon image:images/actions_icon.png[Actions icon] -and select *Inspect*. -You can change the object title, add a description, and modify -the JSON that defines the object properties. - -If you access an object whose index has been deleted, you can: - -* Recreate the index so you can continue using the object. -* Delete the object and recreate it using a different index. -* Change the index name in the object's `reference` array to point to an existing -index pattern. This is useful if the index you were working with has been renamed. - -WARNING: Validation is not performed for object properties. Submitting an invalid -change will render the object unusable. A more failsafe approach is to use -*Discover* or *Dashboard* to create new objects instead of -directly editing an existing one. diff --git a/docs/management/rollups/create_and_manage_rollups.asciidoc b/docs/management/rollups/create_and_manage_rollups.asciidoc deleted file mode 100644 index bc876ab67bc6..000000000000 --- a/docs/management/rollups/create_and_manage_rollups.asciidoc +++ /dev/null @@ -1,168 +0,0 @@ -[role="xpack"] -[[data-rollups]] -== Rollup Jobs - - -A rollup job is a periodic task that aggregates data from indices specified -by an index pattern, and then rolls it into a new index. Rollup indices are a good way to -compactly store months or years of historical -data for use in visualizations and reports. - -To get started, open the main menu, then click *Stack Management > Rollup Jobs*. - -[role="screenshot"] -image::images/management_rollup_list.png[][List of currently active rollup jobs] - -Before using this feature, you should be familiar with how rollups work. -{ref}/xpack-rollup.html[Rolling up historical data] is a good source for more detailed information. - -[float] -=== Required permissions - -The `manage_rollup` cluster privilege is required to access *Rollup jobs*. - -To add the privilege, open the main menu, then click *Stack Management > Roles*. - -[float] -[[create-and-manage-rollup-job]] -=== Create a rollup job - -{kib} makes it easy for you to create a rollup job by walking you through -the process. You fill in the name, data flow, and how often you want to roll -up the data. Then you define a date histogram aggregation for the rollup job -and optionally define terms, histogram, and metrics aggregations. - -When defining the index pattern, you must enter a name that is different than -the output rollup index. Otherwise, the job -will attempt to capture the data in the rollup index. For example, if your index pattern is `metricbeat-*`, -you can name your rollup index `rollup-metricbeat`, but not `metricbeat-rollup`. - -[role="screenshot"] -image::images/management_create_rollup_job.png[][Wizard that walks you through creation of a rollup job] - -[float] -[[manage-rollup-job]] -=== Start, stop, and delete rollup jobs - -Once you’ve saved a rollup job, you’ll see it the *Rollup Jobs* overview page, -where you can drill down for further investigation. The *Manage* menu enables -you to start, stop, and delete the rollup job. -You must first stop a rollup job before deleting it. - -[role="screenshot"] -image::images/management_rollup_job_details.png[][Rollup job details] - -You can’t change a rollup job after you’ve created it. To select additional fields -or redefine terms, you must delete the existing job, and then create a new one -with the updated specifications. Be sure to use a different name for the new rollup -job—reusing the same name can lead to problems with mismatched job configurations. -You can read more at {ref}/rollup-job-config.html[rollup job configuration]. - -[float] -[[rollup-data-tutorial]] -=== Try it: Create and visualize rolled up data - -This example creates a rollup job to capture log data from sample web logs. -To follow along, add the sample web logs data set. - -In this example, you want data that is older than 7 days in the target index pattern `kibana_sample_data_logs` -to roll up once a day into the index `rollup_logstash`. You’ll bucket the -rolled up data on an hourly basis, using 60m for the time bucket configuration. -This allows for more granular queries, such as 2h and 12h. - -[float] -==== Create the rollup job - -As you walk through the *Create rollup job* UI, enter the data: - -|=== -|*Field* |*Value* - -|Name -|logs_job - -|Index pattern -|`kibana_sample_data_logs` - -|Rollup index name -|`rollup_logstash` - -|Frequency -|Every day at midnight - -|Page size -|1000 - -|Delay (latency buffer)|7d - -|Date field -|@timestamp - -|Time bucket size -|60m - -|Time zone -|UTC - -|Terms -|geo.src, machine.os.keyword - -|Histogram -|bytes, memory - -|Histogram interval -|1000 - -|Metrics -|bytes (average) -|=== - -The terms, histogram, and metrics fields reflect -the key information to retain in the rolled up data: where visitors are from (geo.src), -what operating system they are using (machine.os.keyword), -and how much data is being sent (bytes). - -You can now use the rolled up data for analysis at a fraction of the storage cost -of the original index. The original data can live side by side with the new -rollup index, or you can remove or archive it using <<creating-index-lifecycle-policies,Index Lifecycle Management>>. - -[float] -==== Visualize the rolled up data - -Your next step is to visualize your rolled up data in a vertical bar chart. -Most visualizations support rolled up data, with the exception of Timelion and Vega visualizations. - - -. Open the main menu, then click *Stack Management > Index Patterns*. - -. Click *Create index pattern*, and select *Rollup index pattern* from the dropdown. -+ -[role="screenshot"] -image::images/management-rollup-index-pattern.png[][Create rollup index pattern] - -. Enter *rollup_logstash,kibana_sample_logs* as your *Index Pattern* and `@timestamp` -as the *Time Filter field name*. -+ -The notation for a combination index pattern with both raw and rolled up data -is `rollup_logstash,kibana_sample_data_logs`. In this index pattern, `rollup_logstash` -matches the rolled up index pattern and `kibana_sample_data_logs` matches the index -pattern for raw data. - -. Open the main menu, click *Dashboard*, then create and add a vertical bar chart. - -. Choose `rollup_logstash,kibana_sample_data_logs` -as your source to see both the raw and rolled up data. -+ -[role="screenshot"] -image::images/management-create-rollup-bar-chart.png[][Create visualization of rolled up data] - -. Look at the data in your visualization. -+ -[role="screenshot"] -image::images/management_rollup_job_vis.png[][Visualization of rolled up data] - -. Optionally, create a dashboard that contains visualizations of the rolled up -data, raw data, or both. -+ -[role="screenshot"] -image::images/management_rollup_job_dashboard.png[][Dashboard with rolled up data] diff --git a/docs/management/snapshot-restore/images/create-policy-example.png b/docs/management/snapshot-restore/images/create-policy-example.png deleted file mode 100755 index e871c925f5fd..000000000000 Binary files a/docs/management/snapshot-restore/images/create-policy-example.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/create-policy.png b/docs/management/snapshot-restore/images/create-policy.png deleted file mode 100755 index d9a0dce0f419..000000000000 Binary files a/docs/management/snapshot-restore/images/create-policy.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/create_snapshot.png b/docs/management/snapshot-restore/images/create_snapshot.png deleted file mode 100644 index 14c1229a23ce..000000000000 Binary files a/docs/management/snapshot-restore/images/create_snapshot.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/register_repo.png b/docs/management/snapshot-restore/images/register_repo.png deleted file mode 100755 index 9e7ee9db4ce9..000000000000 Binary files a/docs/management/snapshot-restore/images/register_repo.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/repository_list.png b/docs/management/snapshot-restore/images/repository_list.png deleted file mode 100755 index a4678e87bfb2..000000000000 Binary files a/docs/management/snapshot-restore/images/repository_list.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/restore-status.png b/docs/management/snapshot-restore/images/restore-status.png deleted file mode 100755 index fa48e32d2fef..000000000000 Binary files a/docs/management/snapshot-restore/images/restore-status.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot-restore.png b/docs/management/snapshot-restore/images/snapshot-restore.png deleted file mode 100755 index 41a292f97c85..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot-restore.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot-retention.png b/docs/management/snapshot-restore/images/snapshot-retention.png deleted file mode 100755 index 7b390357a21b..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot-retention.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot_details.png b/docs/management/snapshot-restore/images/snapshot_details.png deleted file mode 100755 index 2bd226eecd84..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot_details.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot_list.png b/docs/management/snapshot-restore/images/snapshot_list.png deleted file mode 100755 index dcbb43ec2ab8..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot_list.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot_permissions.png b/docs/management/snapshot-restore/images/snapshot_permissions.png deleted file mode 100644 index 463d4d6e389c..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot_permissions.png and /dev/null differ diff --git a/docs/management/snapshot-restore/index.asciidoc b/docs/management/snapshot-restore/index.asciidoc deleted file mode 100644 index 62633441ef16..000000000000 --- a/docs/management/snapshot-restore/index.asciidoc +++ /dev/null @@ -1,316 +0,0 @@ -[role="xpack"] -[[snapshot-repositories]] -== Snapshot and Restore - -*Snapshot and Restore* enables you to backup your {es} -indices and clusters using data and state snapshots. -Snapshots are important because they provide a copy of your data in case -something goes wrong. If you need to roll back to an older version of your data, -you can restore a snapshot from the repository. - -To get started, open the main menu, then click *Stack Management > Snapshot and Restore*. -With this UI, you can: - -* Register a repository for storing your snapshots -* View a list of your snapshots and drill down into details -* Restore data into your cluster from a snapshot -* Create a policy to automate snapshot creation and deletion -* Delete a snapshot to free storage space - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot_list.png["Snapshot list"] - -Before using this feature, you should be familiar with how snapshots work. -{ref}/snapshot-restore.html[Snapshot and Restore] is a good source for -more detailed information. - -[float] -[[snapshot-permissions]] -=== Required permissions -The minimum required permissions to access *Snapshot and Restore* include: - -* Cluster privileges: `monitor`, `manage_slm`, `cluster:admin/snapshot`, and `cluster:admin/repository` -* Index privileges: `all` on the `monitor` index if you want to access content in the *Restore Status* tab - -To add privileges, open the main menu, then click *Stack Management > Roles*. - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot_permissions.png["Edit Role"] - -[float] -[[kib-snapshot-register-repository]] -=== Register a repository -A repository is where your snapshots live. You must register a snapshot -repository before you can perform snapshot and restore operations. - -If you don't have a repository, Kibana walks you through the process of -registering one. -{kib} supports three repository types -out of the box: shared file system, read-only URL, and source-only. -For more information on these repositories and their settings, -see {ref}/snapshots-register-repository.html[Repositories]. -To use other repositories, such as S3, see -{ref}/snapshots-register-repository.html#snapshots-repository-plugins[Repository plugins]. - - -Once you create a repository, it is listed in the *Repositories* -view. -Click a repository name to view its type, number of snapshots, and settings, -and to verify status. - -[role="screenshot"] -image:management/snapshot-restore/images/repository_list.png["Repository list"] - - -[float] -[[kib-view-snapshot]] -=== View your snapshots - -A snapshot is a backup taken from a running {es} cluster. You'll find an overview of -your snapshots in the *Snapshots* view, and you can drill down -into each snapshot for further investigation. - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot_details.png["Snapshot details"] - -If you don’t have any snapshots, you can create them from the {kib} <<console-kibana, Console>>. The -{ref}/snapshots-take-snapshot.html[snapshot API] -takes the current state and data in your index or cluster, and then saves it to a -shared repository. - -The snapshot process is "smart." Your first snapshot is a complete copy of -the data in your index or cluster. -All subsequent snapshots save the changes between the existing snapshots and -the new data. - -[float] -[[kib-restore-snapshot]] -=== Restore a snapshot - -The information stored in a snapshot is not tied to a specific -cluster or a cluster name. This enables you to -restore a snapshot made from one cluster to another cluster. You might -use the restore operation to: - -* Recover data lost due to a failure -* Migrate a current Elasticsearch cluster to a new version -* Move data from one cluster to another cluster - -To get started, go to the *Snapshots* view, find the -snapshot, and click the restore icon in the *Actions* column. -The Restore wizard presents -options for the restore operation, including which -indices to restore and whether to modify the index settings. -You can restore an existing index only if it’s closed and has the same -number of shards as the index in the snapshot. - -Once you initiate the restore, you're navigated to the *Restore Status* view, -where you can track the current state for each shard in the snapshot. - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot-restore.png["Snapshot details"] - - -[float] -[[kib-snapshot-policy]] -=== Create a snapshot lifecycle policy - -Use a {ref}/snapshot-lifecycle-management-api.html[snapshot lifecycle policy] -to automate the creation and deletion -of cluster snapshots. Taking automatic snapshots: - -* Ensures your {es} indices and clusters are backed up on a regular basis -* Ensures a recent and relevant snapshot is available if a situation -arises where a cluster needs to be recovered -* Allows you to manage your snapshots in {kib}, instead of using a -third-party tool - -If you don’t have any snapshot policies, follow the -*Create policy* wizard. It walks you through defining -when and where to take snapshots, the settings you want, -and how long to retain snapshots. - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot-retention.png["Snapshot details"] - -An overview of your policies is on the *Policies* view. -You can drill down into each policy to examine its settings and last successful and failed run. - -You can perform the following actions on a snapshot policy: - -* *Run* a policy immediately without waiting for the scheduled time. -This action is useful before an upgrade or before performing maintenance on indices. -* *Edit* a policy and immediately apply changes to the schedule. -* *Delete* a policy to prevent any future snapshots from being taken. -This action does not cancel any currently ongoing snapshots or remove any previously taken snapshots. - -[role="screenshot"] -image:management/snapshot-restore/images/create-policy.png["Snapshot details"] - -[float] -[[kib-delete-snapshot]] -=== Delete a snapshot - -Delete snapshots to manage your repository storage space. -Find the snapshot in the *Snapshots* view and click the trash icon in the -*Actions* column. To delete snapshots in bulk, select their checkboxes, -and then click *Delete snapshots*. - -[[snapshot-repositories-example]] - -[role="xpack"] -[[snapshot-restore-tutorial]] -=== Tutorial: Snapshot and Restore - - -Ready to try *Snapshot and Restore*? In this tutorial, you'll learn to: - -* Register a repository -* Add snapshots to the repository -* Create a snapshot lifecycle policy -* Restore a snapshot - -==== Before you begin - -This example shows you how to register a shared file system repository -and store snapshots. -Before you begin, you must register the location of the repository in the -{ref}/snapshots-register-repository.html#snapshots-filesystem-repository[path.repo] setting on -your master and data nodes. You can do this in one of two ways: - -* Edit your `elasticsearch.yml` to include the `path.repo` setting. - -* Pass the `path.repo` setting when you start Elasticsearch. -+ -`bin/elasticsearch -E path.repo=/tmp/es-backups` - -[float] -[[register-repo-example]] -==== Register a repository - -Use *Snapshot and Restore* to register the repository where your snapshots -will live. - -. Open the main menu, then click *Stack Management > Snapshot and Restore*. -. Click *Register a repository* in either the introductory message or *Repository view*. -. Enter a name for your repository, for example, `my_backup`. -. Select *Shared file system*. -+ -[role="screenshot"] -image:management/snapshot-restore/images/register_repo.png["Register repository"] - -. Click *Next*. -. In *File system location*, enter the path to the snapshot repository, `/tmp/es-backups`. -. In *Chunk size*, enter `100mb` so that snapshot files are not bigger than that size. -. Use the defaults for all other fields, and then click *Register*. -+ -Your new repository is listed on the *Repositories* view. -The repository currently doesn’t have any snapshots. - - -[float] -==== Add a snapshot to the repository -Use the {ref}/snapshots-take-snapshot.html[snapshot API] to create a snapshot. - -. Open the main menu, click *Dev Tools*, then select *Console*. -. Create the snapshot: -+ -[source,js] -PUT /_snapshot/my_backup/2019-04-25_snapshot?wait_for_completion=true -+ -In this example, the snapshot name is `2019-04-25_snapshot`. You can also -use {ref}/date-math-index-names.html[date math expression] for the snapshot name. -+ -[role="screenshot"] -image:management/snapshot-restore/images/create_snapshot.png["Create snapshot"] - -. Return to *Snapshot and Restore*. -+ -Your new snapshot is available in the *Snapshots* view. - -[[create-policy-example]] -==== Create a snapshot lifecycle policy - -Now you'll automate the creation and deletion of snapshots -using the repository created in the previous example. - -. Open the *Policies* view. -. Click *Create a policy*. -+ -[role="screenshot"] -image:management/snapshot-restore/images/create-policy-example.png["Create policy wizard"] - -. As you walk through the wizard, enter the following values: -+ -|=== -|*Logistics* | - -|Policy name -|`daily-snapshots` - -|Snapshot name -|`<daily-snap-{now/d}>` - -|Schedule -|Every day at 1:30 a.m. - -|Repository -|`my_backup` - -|*Snapshot settings* | - -|Indices -|Select the indices to back up. By default, all indices, including system indices, are backed up. - -|All other settings -|Use the defaults. - -|*Snapshot retention* | - -|Expiration -|`30 days` - -|Snapshots to retain -|Minimum count: `5`, Maximum count: `50` -|=== - -. Review your input, and then click *Create policy*. -+ -Your new policy is listed in the *Policies* view, and you see a summary of its details. - -[[restore-snapshot-example]] -==== Restore a snapshot -Finally, you'll restore indices from an existing snapshot. - -. In the *Snapshots* view, find the snapshot you want to restore, for example `2019-04-25_snapshot`. -. Click the restore icon in the *Actions* column. -. As you walk through the wizard, enter the following values: -+ -|=== -|*Logistics* | - -|Indices -|Toggle to choose specific indices to restore, or leave in place to restore all indices. - -|Rename indices -|Toggle to give your restored indices new names, or leave in place to restore under original index names. - -|All other fields -|Use the defaults. - -|*Index settings* | - -|Modify index settings -|Toggle to overwrite index settings when they are restored, -or leave in place to keep existing settings. - -|Reset index settings -|Toggle to reset index settings back to the default when they are restored, -or leave in place to keep existing settings. -|=== - -. Review your restore settings, and then click *Restore snapshot*. -+ -The operation loads for a few seconds, -and then you’re navigated to *Restore Status*, -where you can monitor the status of your restored indices. diff --git a/docs/management/upgrade-assistant/index.asciidoc b/docs/management/upgrade-assistant/index.asciidoc deleted file mode 100644 index 5f68eac16343..000000000000 --- a/docs/management/upgrade-assistant/index.asciidoc +++ /dev/null @@ -1,61 +0,0 @@ -[role="xpack"] -[[upgrade-assistant]] -== Upgrade Assistant - -The Upgrade Assistant helps you prepare for your upgrade to the next major {es} version. -For example, if you are using 6.8, the Upgrade Assistant helps you to upgrade to 7.0. -To access the assistant, open the main menu, then click *Stack Management > Upgrade Assistant*. - -The assistant identifies the deprecated settings in your cluster and indices -and guides you through the process of resolving issues, including reindexing. - -Before you upgrade, make sure that you are using the latest released minor -version of {es} to see the most up-to-date deprecation issues. -For example, if you want to upgrade to to 7.0, make sure that you are using 6.8. - -[float] -=== Required permissions - -The `manage` cluster privilege is required to access the *Upgrade assistant*. -Additional privileges may be needed to perform certain actions. - -To add the privilege, open the main menu, then click *Stack Management > Roles*. - -[float] -=== Reindexing - -The *Indices* page lists the indices that are incompatible with the next -major version of {es}. You can initiate a reindex to resolve the issues. - -[role="screenshot"] -image::images/management-upgrade-assistant-8.0.png[] - -For a preview of how the data will change during the reindex, select the -index name. A warning appears if the index requires destructive changes. -Back up your index, then proceed with the reindex by accepting each breaking change. - -You can follow the progress as the Upgrade Assistant makes the index read-only, -creates a new index, reindexes the documents, and creates an alias that points -from the old index to the new one. - -If the reindexing fails or is cancelled, the changes are rolled back, the -new index is deleted, and the original index becomes writable. An error -message explains the reason for the failure. - -You can reindex multiple indices at a time, but keep an eye on the -{es} metrics, including CPU usage, memory pressure, and disk usage. If a -metric is so high it affects query performance, cancel the reindex and -continue by reindexing fewer indices at a time. - -Additional considerations: - -* If you use {alert-features}, when you reindex the internal indices -(`.watches`), the {watcher} process pauses and no alerts are triggered. - -* If you use {ml-features}, when you reindex the internal indices (`.ml-state`), -the {ml} jobs pause and models are not trained or updated. - -* If you use {security-features}, before you reindex the internal indices -(`.security*`), it is a good idea to create a temporary superuser account in the -`file` realm. For more information, see -{ref}/configuring-file-realm.html[Configuring a file realm]. diff --git a/docs/management/watcher-ui/images/advanced-watch/advanced-watch-create.png b/docs/management/watcher-ui/images/advanced-watch/advanced-watch-create.png deleted file mode 100755 index 3cc9464b9b68..000000000000 Binary files a/docs/management/watcher-ui/images/advanced-watch/advanced-watch-create.png and /dev/null differ diff --git a/docs/management/watcher-ui/images/advanced-watch/advanced-watch-simulate.png b/docs/management/watcher-ui/images/advanced-watch/advanced-watch-simulate.png deleted file mode 100755 index 10c535e3531d..000000000000 Binary files a/docs/management/watcher-ui/images/advanced-watch/advanced-watch-simulate.png and /dev/null differ diff --git a/docs/management/watcher-ui/images/alerts-status.png b/docs/management/watcher-ui/images/alerts-status.png deleted file mode 100755 index 34fffc270e7b..000000000000 Binary files a/docs/management/watcher-ui/images/alerts-status.png and /dev/null differ diff --git a/docs/management/watcher-ui/images/execution-history.png b/docs/management/watcher-ui/images/execution-history.png deleted file mode 100755 index 3f7e1840eb8f..000000000000 Binary files a/docs/management/watcher-ui/images/execution-history.png and /dev/null differ diff --git a/docs/management/watcher-ui/images/threshold-alert/create-threshold-alert-created.png b/docs/management/watcher-ui/images/threshold-alert/create-threshold-alert-created.png deleted file mode 100755 index 9762452f767d..000000000000 Binary files a/docs/management/watcher-ui/images/threshold-alert/create-threshold-alert-created.png and /dev/null differ diff --git a/docs/management/watcher-ui/images/threshold-alert/threshold-alert-action.png b/docs/management/watcher-ui/images/threshold-alert/threshold-alert-action.png deleted file mode 100644 index 2972c5304115..000000000000 Binary files a/docs/management/watcher-ui/images/threshold-alert/threshold-alert-action.png and /dev/null differ diff --git a/docs/management/watcher-ui/images/threshold-alert/threshold-alert-condition.png b/docs/management/watcher-ui/images/threshold-alert/threshold-alert-condition.png deleted file mode 100755 index 1189df4d23a0..000000000000 Binary files a/docs/management/watcher-ui/images/threshold-alert/threshold-alert-condition.png and /dev/null differ diff --git a/docs/management/watcher-ui/images/watches.png b/docs/management/watcher-ui/images/watches.png deleted file mode 100755 index 0161e37ab014..000000000000 Binary files a/docs/management/watcher-ui/images/watches.png and /dev/null differ diff --git a/docs/management/watcher-ui/index.asciidoc b/docs/management/watcher-ui/index.asciidoc deleted file mode 100644 index 0bc636591886..000000000000 --- a/docs/management/watcher-ui/index.asciidoc +++ /dev/null @@ -1,243 +0,0 @@ -[role="xpack"] -[[watcher-ui]] -== Watcher - -Watcher is an {es} feature that you can use to create actions based on -conditions, which are periodically evaluated using queries on your data. -Watches are helpful for analyzing mission-critical and business-critical -streaming data. For example, you might watch application logs for performance -outages or audit access logs for security threats. - -To get started, open then main menu, -then click *Stack Management > Watcher*. -With this UI, you can: - -* <<watcher-create-threshold-alert, Create a simple threshold watch>> -* <<watcher-getting-started, View your watch history and action status>> -* <<watcher-deactivate, Deactivate and delete a watch>> -* <<watcher-create-advanced-watch, Create an advanced watch using API syntax>> - -[role="screenshot"] -image:management/watcher-ui/images/watches.png["Watcher list"] - -{ref}/xpack-alerting.html[Alerting on cluster and index events] -is a good source for detailed -information on how watches work. If you are using the UI to create a -threshold watch, take a look at the different watcher actions. If you are -creating an advanced watch, you should be familiar with the parts of a -watch—input, schedule, condition, and actions. - -NOTE: There are limitations in *Watcher* that affect {kib}. For information, refer to {ref}/watcher-limitations.html[Alerting]. - -[float] -[[watcher-security]] -=== Watcher security - -If the {es} {security-features} are enabled, you must have the -{ref}/security-privileges.html[`manage_watcher` or `monitor_watcher`] -cluster privileges to use Watcher in {kib}. - -Alternately, you can have the built-in `kibana_admin` role -and either of these watcher roles: - -* `watcher_admin`. You can perform all Watcher actions, including create and edit watches. -* `watcher_user`. You can view watches, but not create or edit them. - -To manage roles, open then main menu, then click *Stack Management > Roles*, or use the -<<role-management-api, Kibana Role Management API>>. Watches are shared between -all users with the same role. - -NOTE: If you are creating a threshold watch, you must also have the `view_index_metadata` index privilege. See -{ref}/index-mgmt.html[Index management] for detailed information. - -[float] -[[watcher-create-threshold-alert]] -=== Create a threshold alert - -A threshold alert is one of the most common types of watches that you can create. -This alert periodically checks when your data is above, below, equals, -or is in between a certain threshold within a given time interval. - -The following example walks you through creating a threshold alert. The alert -is triggered when the maximum total CPU usage on a machine goes above a -certain percentage. The example uses https://www.elastic.co/products/beats/metricbeat[Metricbeat] -to collect metrics from your systems and services. -{metricbeat-ref}/metricbeat-installation-configuration.html[Learn more] on how to install -and get started with Metricbeat. - -[float] -==== Define the watch input and schedule - -. Click *Create* and then select *Create threshold alert*. -+ -You're navigated to a page where you're asked to define the watch name, the data that you want to evaluate, and -how often you want to trigger the watch. - -. Enter a name that you want to call the alert, for example, `cpu_threshold_alert`. - -. In the *Indices to query* field, enter `metricbeat-*` and select `@timestamp` -as the time field. - -. Use the default schedule to run the watch every 1 minute. -+ -[role="screenshot"] -image:management/watcher-ui/images/threshold-alert/create-threshold-alert-created.png["Input and schedule for threshold alert"] - -[float] -==== Add a condition - -You should now see a panel with default conditions and a visualization of the -data based on those conditions. The condition evaluates the data you’ve loaded -into the watch and determines if any action is required. - -. Click the `WHEN` expression and change the value to `max()`. -+ -The `OF` expression now appears. - -. Search for `system.process.cpu.total.norm.pct` and select it from the list. - - -. Select the `IS ABOVE` expression and change the value to `.25` to trigger -an alert whenever the CPU is above 25%. -+ -As you change the condition, the visualization is automatically updated. The black -line represents the threshold (25%), while the green fluctuating line -represents the change in CPU over the set time period. -+ -[role="screenshot"] -image:management/watcher-ui/images/threshold-alert/threshold-alert-condition.png["Condition for threshold alert"] - -[float] -==== Add an action - -Now that the condition is set, you must add an action. The action triggers -when the watch condition is met. For a complete list of actions and how to configure them, see -{ref}/action-conditions.html[Adding conditions to actions]. - -In this example, you’ll configure an email action. You must have an {ref}/actions-email.html#configuring-email[email account configured] -in {es} for this example to work. - -. Click *Add action* and select *Email*. - -. In the *To email address* field, enter one or more email addresses to whom -you want to send the message when the condition is met. - -. Enter a subject and body for the email. -+ -[role="screenshot"] -image:management/watcher-ui/images/threshold-alert/threshold-alert-action.png["Action for threshold alert"] - -. To test the action before saving the watch, click *Send test email*. -+ -A sample email is sent using the configuration you set up. - -. Click *Create alert*. -+ -The alert appears on the Watcher overview page, where you can drill down into -the watch history and status. - -[float] -==== Delete the alert - -In this example, you set the threshold to 25% so you can see the watch fire. In -a real-world scenario, this threshold is likely too low because the alerts are -so frequent. Once you are done experimenting, you should delete the alert. -Find the alert on the Watcher overview page and click the trash icon in the *Actions* column. - -[float] -==== Edit the alert - -Alternatively, you can keep the alert and adjust the threshold value. To edit -an alert, find the alert on the Watcher overview page and click the pencil icon -in the *Actions* column. - -[float] -[[watcher-getting-started]] -=== View watch history and status -The Watcher overview page lists your watches and includes details such as state, -last fired, and last triggered. A watch has one of four states: - -* *Firing.* The watch is triggered and actively performing the associated actions. -* *Error.* The watch is not working properly. -* *OK.* The watch is not actively firing but working properly. -* *Disabled.* The watch will not fire under any circumstances. - -From this page you can drill down into a watch to investigate its history -and status. - -[float] -==== View watch history - -The *Execution history* tab shows each time the watch is triggered and the -results of the query, whether the condition was met, and what actions were taken. - -[role="screenshot"] -image:management/watcher-ui/images/execution-history.png["Execution history tab"] - -[float] -==== Acknowledge action status - -The *Action statuses* tab lists all actions associated with the watch and -the state of each action. If the action is firing, you can acknowledge the -watch to prevent too many executions of the same action for the same watch. -See {ref}/actions.html#actions-ack-throttle[Acknowledgement and throttling] for details. - -[role="screenshot"] -image:management/watcher-ui/images/alerts-status.png["Action status tab"] - -[float] -[[watcher-deactivate]] -=== Deactivate and delete a watch - -Actions for deactivating and deleting a watch are on each watch detail page: - -* *Deactivate a watch* if you know a situation is planned that will -cause a false alarm. You can reactivate the watch when the situation is resolved. -* *Delete a watch* to permanently remove it from the system. You can delete -the watch you are currently viewing, or go to the Watcher overview, and -delete watches in bulk. - -[float] -[[watcher-create-advanced-watch]] -=== Create an advanced watch - -Advanced watches are for users who are more familiar with {es} query syntax and -the Watcher framework. The UI is aligned with using the REST APIs. -For more information, see {ref}/query-dsl.html[Query DSL]. - -[float] -==== Create the watch - -On the Watch overview page, click *Create* and choose *Create advanced watch*. -An advanced watch requires a name and ID. Name is a user-friendly way to -identify the watch, and ID refers to the identifier used by {es}. Refer to -{ref}/how-watcher-works.html#watch-definition[Watch definition] for how -to input the watch JSON. - -[role="screenshot"] -image:management/watcher-ui/images/advanced-watch/advanced-watch-create.png["Create advanced watch"] - -[float] -==== Simulate the watch - -The *Simulate* tab allows you to override parts of the watch, and then run a -simulation. Be aware of these implementation details on overrides: - -* Trigger overrides use {ref}/common-options.html#date-math[date math]. -* Input overrides accepts a JSON blob. -* Condition overrides indicates if you want to force the condition to always be `true`. -* Action overrides support {ref}/watcher-api-execute-watch.html#watcher-api-execute-watch-action-mode[multiple options]. - -After starting the simulation, you’ll see a results screen. For more information -on the fields in the response, see the {ref}/watcher-api-execute-watch.html[Execute watch API]. - -[role="screenshot"] -image:management/watcher-ui/images/advanced-watch/advanced-watch-simulate.png["Create advanced watch"] - -[float] -==== Examples of advanced watches - -Refer to these examples for creating an advanced watch: - -* {ref}/watch-cluster-status.html[Watch the status of an {es} cluster] -* {ref}/watching-meetup-data.html[Watch event data] diff --git a/docs/maps/connect-to-ems.asciidoc b/docs/maps/connect-to-ems.asciidoc deleted file mode 100644 index 45ced2e64aa7..000000000000 --- a/docs/maps/connect-to-ems.asciidoc +++ /dev/null @@ -1,37 +0,0 @@ -[role="xpack"] -[[maps-connect-to-ems]] -== Connect to Elastic Maps Service - -https://www.elastic.co/elastic-maps-service[Elastic Maps Service (EMS)] is a service that hosts -tile layers and vector shapes of administrative boundaries. -If you are using Kibana's out-of-the-box settings, Maps is already configured to use EMS. - -EMS requests are made to the following domains: - -* tiles.maps.elastic.co -* vector.maps.elastic.co - -Maps makes requests directly from the browser to EMS. - -[float] -=== Connect to Elastic Maps Service from an internal network - -To connect to EMS when your Kibana server and browser are in an internal network: - -. Set `map.proxyElasticMapsServiceInMaps` to `true` in your <<settings, kibana.yml>> file to proxy EMS requests through the Kibana server. -. Update your firewall rules to allow connections from your Kibana server to the EMS domains. - -NOTE: Coordinate map and region map visualizations do not support `map.proxyElasticMapsServiceInMaps` and will not proxy EMS requests through the Kibana server. - - -[float] -=== Disable Elastic Maps Service - -You might experience EMS connection issues if your Kibana server or browser are on a private network or -behind a firewall. If this happens, you can disable the EMS connection to avoid unnecessary EMS requests. - -To disable EMS, change your <<settings, kibana.yml>> file. - -. Set `map.includeElasticMapsService` to `false` to turn off the EMS connection. -. Set `map.tilemap.url` to the URL of your tile server. This configures the default tile layer of Maps. -. (Optional) Set `map.regionmap` to the vector shapes of the administrative boundaries that you want to use. diff --git a/docs/maps/geojson-upload.asciidoc b/docs/maps/geojson-upload.asciidoc deleted file mode 100644 index 3c9bea11176c..000000000000 --- a/docs/maps/geojson-upload.asciidoc +++ /dev/null @@ -1,44 +0,0 @@ -[role="xpack"] -[[geojson-upload]] -== Upload GeoJSON data - -Maps makes it easy to import geospatial data into the Elastic Stack. -Using the GeoJSON Upload feature, you can drag and drop your point and shape -data files directly into {es}, and then use them as layers -in the map. You can also use the GeoJSON data in the broader Kibana ecosystem, -for example, in visualizations and Canvas workpads. - -[float] -=== Why GeoJSON? -GeoJSON is an open-standard file format for storing geospatial vector data. -Although many vector data formats are available in the GIS community, -GeoJSON is the most commonly used and flexible option. -[float] - -=== Upload a GeoJSON file -Follow these instructions to upload a GeoJSON data file, or try the -<<indexing-geojson-data-tutorial, end-to-end integrated example>>. - -. Open the main menu, click *Maps*, and then click *Add layer*. -. Click *Uploaded GeoJSON*. -+ -[role="screenshot"] -image::maps/images/fu_gs_select_source_file_upload.png[] - -. Use the file chooser to select a valid GeoJSON file. The file will load -a preview of the data on the map. -. Use the default *Index type* of {ref}/geo-point.html[geo_point] for point data, -or override it and select {ref}/geo-shape.html[geo_shape]. -All other shapes will default to a type of `geo_shape`. -. Leave the default *Index name* and *Index pattern* names (the name of the uploaded -file minus its extension). You might need to change the index name if it is invalid. -. Click *Import file*. -+ -Upon completing the indexing process and creating the associated index pattern, -the Elasticsearch responses are shown on the *Layer add panel* and the indexed data -appears on the map. The geospatial data on the map -should be identical to the locally-previewed data, but now it's indexed data from Elasticsearch. - -. To continue adding data to the map, click *Add layer*. -. In *Layer settings*, adjust any settings or <<maps-vector-style-properties, properties>> as needed. -. Click *Save & close*. diff --git a/docs/maps/heatmap-layer.asciidoc b/docs/maps/heatmap-layer.asciidoc deleted file mode 100644 index 9dc2781db44a..000000000000 --- a/docs/maps/heatmap-layer.asciidoc +++ /dev/null @@ -1,15 +0,0 @@ -[role="xpack"] -[[heatmap-layer]] -== Heat map layer - -Heat map layers cluster point data to show locations with higher densities. - -[role="screenshot"] -image::maps/images/heatmap_layer.png[] - -To add a heat map layer to your map, click *Add layer*, then select *Heat map*. -The index must contain at least one field mapped as {ref}/geo-point.html[geo_point] or {ref}/geo-shape.html[geo_shape]. - -NOTE: Only count, sum, unique count metric aggregations are available with the grid aggregation source and heat map layers. -Average, min, and max are turned off because the heat map will blend nearby values. -Blending two average values would make the cluster more prominent, even though it just might literally mean that these nearby areas are average. diff --git a/docs/maps/images/create_spatial_filter.png b/docs/maps/images/create_spatial_filter.png deleted file mode 100644 index 21614aa0f4e2..000000000000 Binary files a/docs/maps/images/create_spatial_filter.png and /dev/null differ diff --git a/docs/maps/images/embed_in_dashboard.jpeg b/docs/maps/images/embed_in_dashboard.jpeg deleted file mode 100644 index 7be233e7a036..000000000000 Binary files a/docs/maps/images/embed_in_dashboard.jpeg and /dev/null differ diff --git a/docs/maps/images/extended_stats_config.png b/docs/maps/images/extended_stats_config.png deleted file mode 100644 index 018acea96852..000000000000 Binary files a/docs/maps/images/extended_stats_config.png and /dev/null differ diff --git a/docs/maps/images/filter_icon.png b/docs/maps/images/filter_icon.png deleted file mode 100644 index 08fd9c6b10a3..000000000000 Binary files a/docs/maps/images/filter_icon.png and /dev/null differ diff --git a/docs/maps/images/fu_gs_final_map.png b/docs/maps/images/fu_gs_final_map.png deleted file mode 100644 index 1867e75bf64d..000000000000 Binary files a/docs/maps/images/fu_gs_final_map.png and /dev/null differ diff --git a/docs/maps/images/fu_gs_flight_paths.png b/docs/maps/images/fu_gs_flight_paths.png deleted file mode 100644 index 5376b4469c04..000000000000 Binary files a/docs/maps/images/fu_gs_flight_paths.png and /dev/null differ diff --git a/docs/maps/images/fu_gs_lightning_intensity.png b/docs/maps/images/fu_gs_lightning_intensity.png deleted file mode 100644 index d8ac8834a5d8..000000000000 Binary files a/docs/maps/images/fu_gs_lightning_intensity.png and /dev/null differ diff --git a/docs/maps/images/fu_gs_new_england_map.png b/docs/maps/images/fu_gs_new_england_map.png deleted file mode 100644 index 2a5c9d38f362..000000000000 Binary files a/docs/maps/images/fu_gs_new_england_map.png and /dev/null differ diff --git a/docs/maps/images/gear_icon.png b/docs/maps/images/gear_icon.png deleted file mode 100644 index 355d55dbbc37..000000000000 Binary files a/docs/maps/images/gear_icon.png and /dev/null differ diff --git a/docs/maps/images/global_search_bar.png b/docs/maps/images/global_search_bar.png deleted file mode 100644 index c1bb1e7835e3..000000000000 Binary files a/docs/maps/images/global_search_bar.png and /dev/null differ diff --git a/docs/maps/images/global_search_multiple_indices_query1.png b/docs/maps/images/global_search_multiple_indices_query1.png deleted file mode 100644 index f019f2c4e39d..000000000000 Binary files a/docs/maps/images/global_search_multiple_indices_query1.png and /dev/null differ diff --git a/docs/maps/images/global_search_multiple_indices_query2.png b/docs/maps/images/global_search_multiple_indices_query2.png deleted file mode 100644 index 51017039178f..000000000000 Binary files a/docs/maps/images/global_search_multiple_indices_query2.png and /dev/null differ diff --git a/docs/maps/images/grid_metrics_both.png b/docs/maps/images/grid_metrics_both.png deleted file mode 100644 index 244c65e10bdd..000000000000 Binary files a/docs/maps/images/grid_metrics_both.png and /dev/null differ diff --git a/docs/maps/images/grid_to_docs.gif b/docs/maps/images/grid_to_docs.gif deleted file mode 100644 index 11b396a4fe87..000000000000 Binary files a/docs/maps/images/grid_to_docs.gif and /dev/null differ diff --git a/docs/maps/images/gs_add_cloropeth_layer.png b/docs/maps/images/gs_add_cloropeth_layer.png deleted file mode 100644 index 1528f404026f..000000000000 Binary files a/docs/maps/images/gs_add_cloropeth_layer.png and /dev/null differ diff --git a/docs/maps/images/gs_add_es_document_layer.png b/docs/maps/images/gs_add_es_document_layer.png deleted file mode 100644 index f4ffbc581745..000000000000 Binary files a/docs/maps/images/gs_add_es_document_layer.png and /dev/null differ diff --git a/docs/maps/images/gs_dashboard_with_map.png b/docs/maps/images/gs_dashboard_with_map.png deleted file mode 100644 index 49b71c16c12b..000000000000 Binary files a/docs/maps/images/gs_dashboard_with_map.png and /dev/null differ diff --git a/docs/maps/images/gs_dashboard_with_terms_filter.png b/docs/maps/images/gs_dashboard_with_terms_filter.png deleted file mode 100644 index 21b5c044cb35..000000000000 Binary files a/docs/maps/images/gs_dashboard_with_terms_filter.png and /dev/null differ diff --git a/docs/maps/images/gs_plus_icon.png b/docs/maps/images/gs_plus_icon.png deleted file mode 100644 index 2620c5f373ba..000000000000 Binary files a/docs/maps/images/gs_plus_icon.png and /dev/null differ diff --git a/docs/maps/images/heatmap_layer.png b/docs/maps/images/heatmap_layer.png deleted file mode 100644 index 87a45146f95a..000000000000 Binary files a/docs/maps/images/heatmap_layer.png and /dev/null differ diff --git a/docs/maps/images/inspector.png b/docs/maps/images/inspector.png deleted file mode 100644 index 0d59394caeda..000000000000 Binary files a/docs/maps/images/inspector.png and /dev/null differ diff --git a/docs/maps/images/layer_search.png b/docs/maps/images/layer_search.png deleted file mode 100644 index 8e0e8ff62895..000000000000 Binary files a/docs/maps/images/layer_search.png and /dev/null differ diff --git a/docs/maps/images/locked_tooltip.png b/docs/maps/images/locked_tooltip.png deleted file mode 100644 index 2ffb5f693525..000000000000 Binary files a/docs/maps/images/locked_tooltip.png and /dev/null differ diff --git a/docs/maps/images/maki-icons.png b/docs/maps/images/maki-icons.png deleted file mode 100644 index 8dda8ed03bb2..000000000000 Binary files a/docs/maps/images/maki-icons.png and /dev/null differ diff --git a/docs/maps/images/multifeature_tooltip.png b/docs/maps/images/multifeature_tooltip.png deleted file mode 100644 index e4d5565d9114..000000000000 Binary files a/docs/maps/images/multifeature_tooltip.png and /dev/null differ diff --git a/docs/maps/images/point_to_point.png b/docs/maps/images/point_to_point.png deleted file mode 100644 index f7fe25a90fbb..000000000000 Binary files a/docs/maps/images/point_to_point.png and /dev/null differ diff --git a/docs/maps/images/quantitative_data_driven_styling.png b/docs/maps/images/quantitative_data_driven_styling.png deleted file mode 100644 index a7852ed20201..000000000000 Binary files a/docs/maps/images/quantitative_data_driven_styling.png and /dev/null differ diff --git a/docs/maps/images/read-only-badge.png b/docs/maps/images/read-only-badge.png deleted file mode 100644 index 50289ea80f60..000000000000 Binary files a/docs/maps/images/read-only-badge.png and /dev/null differ diff --git a/docs/maps/images/sample_data_ecommerce.png b/docs/maps/images/sample_data_ecommerce.png deleted file mode 100644 index 5b261bb53502..000000000000 Binary files a/docs/maps/images/sample_data_ecommerce.png and /dev/null differ diff --git a/docs/maps/images/sample_data_web_logs.png b/docs/maps/images/sample_data_web_logs.png deleted file mode 100644 index 3b0c2ba3f12c..000000000000 Binary files a/docs/maps/images/sample_data_web_logs.png and /dev/null differ diff --git a/docs/maps/images/spatial_filters.png b/docs/maps/images/spatial_filters.png deleted file mode 100644 index 991e7f62962d..000000000000 Binary files a/docs/maps/images/spatial_filters.png and /dev/null differ diff --git a/docs/maps/images/terms_join_metric_config.png b/docs/maps/images/terms_join_metric_config.png deleted file mode 100644 index ddd4f7a8cc7c..000000000000 Binary files a/docs/maps/images/terms_join_metric_config.png and /dev/null differ diff --git a/docs/maps/images/terms_join_shared_key_config.png b/docs/maps/images/terms_join_shared_key_config.png deleted file mode 100644 index 935ac8dfec2a..000000000000 Binary files a/docs/maps/images/terms_join_shared_key_config.png and /dev/null differ diff --git a/docs/maps/images/tile_layer.png b/docs/maps/images/tile_layer.png deleted file mode 100644 index fc1d571b3e9b..000000000000 Binary files a/docs/maps/images/tile_layer.png and /dev/null differ diff --git a/docs/maps/images/tools_icon.png b/docs/maps/images/tools_icon.png deleted file mode 100644 index 677b16eb8e48..000000000000 Binary files a/docs/maps/images/tools_icon.png and /dev/null differ diff --git a/docs/maps/images/top_hits.png b/docs/maps/images/top_hits.png deleted file mode 100644 index a791e23b869e..000000000000 Binary files a/docs/maps/images/top_hits.png and /dev/null differ diff --git a/docs/maps/images/vector_layer.png b/docs/maps/images/vector_layer.png deleted file mode 100644 index 6bc9701759ce..000000000000 Binary files a/docs/maps/images/vector_layer.png and /dev/null differ diff --git a/docs/maps/images/vector_style_class.png b/docs/maps/images/vector_style_class.png deleted file mode 100644 index 8c685dfcf0ab..000000000000 Binary files a/docs/maps/images/vector_style_class.png and /dev/null differ diff --git a/docs/maps/images/vector_style_dynamic.png b/docs/maps/images/vector_style_dynamic.png deleted file mode 100644 index aeaef412b522..000000000000 Binary files a/docs/maps/images/vector_style_dynamic.png and /dev/null differ diff --git a/docs/maps/images/vector_style_static.png b/docs/maps/images/vector_style_static.png deleted file mode 100644 index 47d9c3b21fcb..000000000000 Binary files a/docs/maps/images/vector_style_static.png and /dev/null differ diff --git a/docs/maps/import-geospatial-data.asciidoc b/docs/maps/import-geospatial-data.asciidoc deleted file mode 100644 index fb4250368086..000000000000 --- a/docs/maps/import-geospatial-data.asciidoc +++ /dev/null @@ -1,46 +0,0 @@ -[role="xpack"] -[[import-geospatial-data]] -== Import geospatial data - -To import geospatical data into the Elastic Stack, the data must be indexed as {ref}/geo-point.html[geo_point] or {ref}/geo-shape.html[geo_shape]. -Geospatial data comes in many formats. -Choose an import tool based on the format of your geospatial data. - -[discrete] -=== Upload CSV with latitude and longitude columns - -*File Data Visualizer* indexes CSV files with latitude and longitude columns as a geo_point. - -. Open the main menu, then click *Machine Learning*. -. Select the *Data Visualizer* tab, then click *Upload file*. -. Use the file chooser to select a CSV file. -. Click *Import*. -. Select the *Advanced* tab. -. Set *Index name*. -. Click *Add combined field*, then click *Add geo point field*. -. Fill out the form and click *Add*. -. Click *Import*. - -[discrete] -=== Upload a GeoJSON file - -*Upload GeoJSON* indexes GeoJSON features as a geo_point or geo_shape. - -. <<maps-create, Create a new map>>. -. Click *Add layer*. -. Select *Upload GeoJSON*. -. Use the file chooser to select a GeoJSON file. -. Click *Import file*. - -[discrete] -=== Upload data with IP addresses - -The GeoIP processor adds information about the geographical location of IP addresses. -See {ref}/geoip-processor.html[GeoIP processor] for details. -For private IP addresses, see https://www.elastic.co/blog/enriching-elasticsearch-data-geo-ips-internal-private-ip-addresses[Enriching data with GeoIPs from internal, private IP addresses]. - -[discrete] -=== Upload data with GDAL - -https://www.gdal.org/[GDAL] (Geospatial Data Abstraction Library) contains command line tools that can convert geospatial data between 75 different geospatial file formats and index that geospatial data into {es}. -See https://www.elastic.co/blog/how-to-ingest-geospatial-data-into-elasticsearch-with-gdal[Ingest geospatial data into Elasticsearch with GDAL] for details. diff --git a/docs/maps/index.asciidoc b/docs/maps/index.asciidoc deleted file mode 100644 index 3c3537826a6a..000000000000 --- a/docs/maps/index.asciidoc +++ /dev/null @@ -1,61 +0,0 @@ -[role="xpack"] -[[maps]] -= Maps - -[partintro] --- - -Maps enables you to parse through your geographical data at scale, with speed, and in real time. With features like multiple layers and indices in a map, plotting of raw documents, dynamic client-side styling, and global search across multiple layers, you can understand and monitor your data with ease. - -With Maps, you can: - -* Create maps with multiple layers and indices. -* Upload GeoJSON files into Elasticsearch. -* Embed your map in dashboards. -* Symbolize features using data values. -* Focus in on just the data you want. - -*Ready to get started?* Start your tour of Maps with the <<maps-getting-started, getting started tutorial>>. - -[float] -=== Create maps with multiple layers and indices -You can use multiple layers and indices to show all your data in a single map. This enables your map to show how data sits relative to physical features like weather patterns, human-made features like international borders, and business-specific features like sales regions. You can plot individual documents or use aggregations to plot any data set, no matter how large. - -[role="screenshot"] -image::maps/images/sample_data_ecommerce.png[] - -[float] -=== Upload GeoJSON files into Elasticsearch -Maps makes it easy to import geospatial data into the Elastic Stack. Using the GeoJSON Upload feature, you can drag and drop your point and shape data files directly into Elasticsearch, and then use them as layers in the map. - -[float] -=== Embed your map in dashboards -Viewing data from different angles provides better insights. Dimensions that are obscured in one visualization might be illuminated in another. Add your map to a dashboard and view your geospatial data alongside bar charts, pie charts, tag clouds, and more. - -This choropleth map shows the density of non-emergency service requests in San Diego by council district. The map is embedded in a dashboard, so users can better understand when services are requested and gain insight into the top requested services. - -[role="screenshot"] -image::maps/images/embed_in_dashboard.jpeg[] - -[float] -=== Symbolize features using data values -You can customize each layer to highlight meaningful dimensions in your data. For example, you can use dark colors to symbolize areas with more web log traffic, and lighter colors to symbolize areas with less traffic. - -[float] -=== Focus in on just the data you want -You can search across your Elasticsearch layers to focus in on just the data you want. Draw a polygon on the map or use the shape from features to create spatial filters to narrow search results to documents that either intersect with, are within, or do not intersect with the specified geometry. Filter individual layers to compares facets. - - --- - -include::maps-getting-started.asciidoc[] -include::heatmap-layer.asciidoc[] -include::tile-layer.asciidoc[] -include::vector-layer.asciidoc[] -include::maps-aggregations.asciidoc[] -include::search.asciidoc[] -include::map-settings.asciidoc[] -include::connect-to-ems.asciidoc[] -include::import-geospatial-data.asciidoc[] -include::indexing-geojson-data-tutorial.asciidoc[] -include::trouble-shooting.asciidoc[] diff --git a/docs/maps/indexing-geojson-data-tutorial.asciidoc b/docs/maps/indexing-geojson-data-tutorial.asciidoc deleted file mode 100644 index 434c9ab369a5..000000000000 --- a/docs/maps/indexing-geojson-data-tutorial.asciidoc +++ /dev/null @@ -1,136 +0,0 @@ -[role="xpack"] -[[indexing-geojson-data-tutorial]] -=== Tutorial: Index GeoJSON data - -In this tutorial, you'll build a customized map that shows the flight path between -two airports, and the lightning hot spots on that route. You'll learn to: - -* Import GeoJSON files into Kibana -* Index the files in {es} -* Display the data in a multi-layer map - -[float] -=== Before you begin - -This tutorial requires you to download the following GeoJSON sample data files. -These files are good examples of the types -of vector data that you can upload to Kibana and index in -Elasticsearch for display in Maps. - -* https://raw.githubusercontent.com/elastic/examples/master/Maps/Getting%20Started%20Examples/geojson_upload_and_styling/logan_international_airport.geojson[Logan International Airport] -* https://raw.githubusercontent.com/elastic/examples/master/Maps/Getting%20Started%20Examples/geojson_upload_and_styling/bangor_international_airport.geojson[Bangor International Airport] -* https://raw.githubusercontent.com/elastic/examples/master/Maps/Getting%20Started%20Examples/geojson_upload_and_styling/lightning_detected.geojson[Lightning detected] -* https://raw.githubusercontent.com/elastic/examples/master/Maps/Getting%20Started%20Examples/geojson_upload_and_styling/original_flight_path.geojson[Original flight path] -* https://raw.githubusercontent.com/elastic/examples/master/Maps/Getting%20Started%20Examples/geojson_upload_and_styling/modified_flight_path.geojson[Modified flight path] - -The data represents two real airports, two fictitious flight routes, and -fictitious lightning reports. You don't need to use all of -these files. Feel free to work with as many files as you'd like, or use valid GeoJSON -files of your own. - -[float] -[role="xpack"] -=== Create and set up a map - -. <<maps-create, Create a new map>>. -. Zoom in on the New England area in the northeast United States. -+ -You're adding flight paths to this area, and this -sets up the map for a good view of the data. -+ -[role="screenshot"] -image::maps/images/fu_gs_new_england_map.png[] - -[float] -[[upload-and-index-geojson-file]] -=== Upload and index GeoJSON files -For each GeoJSON file you downloaded, complete the following steps: - -. Click *Add layer*. -. From the list of layer types, click *Upload GeoJSON*. -. Using the File Picker, upload the GeoJSON file. -+ -Depending on the geometry type of your features, this will -auto-populate *Index type* with either {ref}/geo-point.html[geo_point] or - {ref}/geo-shape.html[geo_shape] and *Index name* with -`<file name>`. - -. Click *Import file*. -+ -You'll see activity as the GeoJSON Upload utility creates a new index -and index pattern for the data set. When the process is complete, you should -receive messages that the creation of the new index and index pattern -were successful. - -. Click *Add layer*. - -. In *Layer settings*, adjust settings and <<maps-vector-style-properties, properties>> as needed. -. Click *Save & close*. -. Once you've added all of the sample files, -<<maps-save, save your map>>. -+ -At this point, you could consider the map complete, -but there are a few additions and tweaks that you can make to tell a -better story with your data. -+ -[role="screenshot"] -image::maps/images/fu_gs_flight_paths.png[] - -[float] -=== Add a heatmap aggregation layer - -Looking at the `Lightning detected` layer, it's clear where lightning has -struck. What's less clear, is if there have been more lightning -strikes in some areas than others, in other words, where the lightning -hot spots are. An advantage of having indexed -{ref}/geo-point.html[geo_point] data for the -lightning strikes is that you can perform aggregations on the data. - -. Click *Add layer*. -. From the list of layer types, click *Heat map*. -+ -Because you indexed `lightning_detected.geojson` using the index name and -pattern `lightning_detected`, that data is available as a {ref}/geo-point.html[geo_point] -aggregation. - -. Select `lightning_detected`. -. Click *Add layer* to add the heat map layer -"Lightning intensity". -+ -The remaining default settings are good, but there are a couple of -settings that you might want to change. - -. Play around with the *Layer Style* > -*Color range* setting. -+ -Again the default looks good, but feel free to choose a -different color range. - -. When you're finished modifying settings, click *Save & close*. -+ -With your new lightning heat map layer, your map should look -like this: -+ -[role="screenshot"] -image::maps/images/fu_gs_lightning_intensity.png[] - - -[float] -=== Organize the layers - -Consider ways you might improve the appearance of the final map. -Small changes in how and when layers are shown can help tell a -better story with your data. Here are a few final tweaks -you might make: - -* Update layer names -* Adjust styles for each layer -* Adjust the layer order -* Decide which layers to show at different zoom levels - -When you've finished, again be sure to <<maps-save, save your work >>. - -Your final map might look like this: - -[role="screenshot"] -image::maps/images/fu_gs_final_map.png[] diff --git a/docs/maps/map-settings.asciidoc b/docs/maps/map-settings.asciidoc deleted file mode 100644 index f606511a6f39..000000000000 --- a/docs/maps/map-settings.asciidoc +++ /dev/null @@ -1,43 +0,0 @@ -[role="xpack"] -[[maps-settings]] -== Configure map settings - -Maps offers settings that let you configure how a map is displayed. -To access these settings, click *Map settings* in the application toolbar. - -[float] -[[maps-settings-navigation]] -=== Navigation - -*Auto fit map to bounds*:: -When enabled, the map will automatically pan and zoom to show the filtered data bounds. - -*Zoom range*:: -Constrain the map to the defined zoom range. - -*Initial map location*:: -Configure the initial map center and zoom. -* *Map location at save*: Use the map center and zoom from the map position at the time of the latest save. -* *Auto fit map to bounds*: Set the initial map location to show the filtered data bounds. -* *Fixed location*: Lock the map center and zoom to fixed values. -* *Browser location*: Set the initial map center to the browser location. - -[float] -[[maps-settings-spatial-filters]] -=== Spatial filters - -Use spatial filter settings to configure how <<maps-spatial-filters, spatial filters>> are displayed. - -image::maps/images/spatial_filters.png[] - -*Show spatial filters on map*:: -Clear the checkbox so <<maps-spatial-filters, spatial filters>> do not appear on the map. - -*Opacity*:: -Set the opacity of spatial filters. - -*Fill color*:: -Set the fill color of spatial filters. - -*Border color*:: -Set the border color of spatial filters. diff --git a/docs/maps/maps-aggregations.asciidoc b/docs/maps/maps-aggregations.asciidoc deleted file mode 100644 index 6b2dc8077bc3..000000000000 --- a/docs/maps/maps-aggregations.asciidoc +++ /dev/null @@ -1,230 +0,0 @@ -[role="xpack"] -[[maps-aggregations]] -== Plot big data without plotting too much data - -++++ -<titleabbrev>Plot big data</titleabbrev> -++++ - - -Use {ref}/search-aggregations.html[aggregations] to plot large data sets without overwhelming your network or your browser. -When using aggregations, the documents stay in Elasticsearch and only the calculated values for each group are returned to your computer. - -Aggregations group your documents into buckets and calculate metrics for each bucket. -Use metric aggregations for <<maps-vector-style-data-driven, data driven styling>>. For example, use the count aggregation to shade world countries by web log traffic. - -You can add the following metric aggregations: - -* *Average.* The mean of the values. - -* *Count.* The number of documents. - -* *Max.* The highest value. - -* *Min.* The lowest value. - -* *Sum.* The total value. - -* *Top term.* The most common value. - -* *Unique count.* The number of distinct values. - -Use aggregated layers with document layers to show aggregated views when the map shows larger -amounts of the globe and individual documents when the map shows smaller regions. - -In the following example, the Grid aggregation layer is only visible when the map is at zoom levels 0 through 5. The Documents layer is only visible when the map is at zoom levels 4 through 24. -See the <<maps-add-elasticsearch-layer, Getting started>> tutorial for more details on configuring the layers. - -[role="screenshot"] -image::maps/images/grid_to_docs.gif[] - -[role="xpack"] -[[maps-grid-aggregation]] -=== Grid aggregation - -Grid aggregation layers use {ref}/search-aggregations-bucket-geotilegrid-aggregation.html[GeoTile grid aggregation] to group your documents into grids. You can calculate metrics for each gridded cell. - -Symbolize grid aggregation metrics as: - -*Clusters*:: Creates a <<vector-layer, vector layer>> with a cluster symbol for each gridded cell. -The cluster location is the weighted centroid for all documents in the gridded cell. - -*Grid rectangles*:: Creates a <<vector-layer, vector layer>> with a bounding box polygon for each gridded cell. - -*Heat map*:: Creates a <<heatmap-layer, heat map layer>> that clusters the weighted centroids for each gridded cell. - -To enable a grid aggregation layer: - -. Click *Add layer*, then select the *Clusters and grids* or *Heat map* layer. - -To enable a blended layer that dynamically shows clusters or documents: - -. Click *Add layer*, then select the *Documents* layer. -. Configure *Index pattern* and the *Geospatial field*. -. In *Scaling*, select *Show clusters when results exceed 10000*. - - -[role="xpack"] -[[maps-top-hits-aggregation]] -=== Top hits per entity - -You can display the most relevant documents per entity, for example, the most recent GPS tracks per flight. -To get this data, {es} first groups your data using a {ref}/search-aggregations-bucket-terms-aggregation.html[terms aggregation], -then accumulates the most relevant documents based on sort order for each entry using a {ref}/search-aggregations-metrics-top-hits-aggregation.html[top hits metric aggregation]. - -To enable top hits: - -. Click *Add layer*, then select the *Documents* layer. -. Configure *Index pattern* and *Geospatial field*. -. In *Scaling*, select *Show top hits per entity*. -. Set *Entity* to the field that identifies entities in your documents. -This field will be used in the terms aggregation to group your documents into entity buckets. -. Set *Documents per entity* to configure the maximum number of documents accumulated per entity. -This setting is limited to the `index.max_inner_result_window` index setting, which defaults to 100. - -[role="screenshot"] -image::maps/images/top_hits.png[] - -[role="xpack"] -[[point-to-point]] -=== Point to point - -A point-to-point connection plots aggregated data paths between the source and the destination. -Thicker, darker lines symbolize more connections between a source and destination, and thinner, lighter lines symbolize less connections. - -Point to point uses an {es} {ref}/search-aggregations-bucket-terms-aggregation.html[terms aggregation] to group your documents by destination. -Then, a nested {ref}/search-aggregations-bucket-geotilegrid-aggregation.html[GeoTile grid aggregation] groups sources for each destination into grids. -A line connects each source grid centroid to each destination. - -image::maps/images/point_to_point.png[] - -[role="xpack"] -[[terms-join]] -=== Term join - -Use term joins to augment vector features with properties for <<maps-vector-style-data-driven, data driven styling>> and richer tooltip content. - -Term joins are available for the following <<vector-layer, vector layers>>: - -* Configured GeoJSON -* Documents -* EMS Boundaries - -==== Example term join - -The <<maps-add-choropleth-layer, choropleth layer example>> uses a term join to shade world countries by web log traffic. -Darker shades symbolize countries with more web log traffic, and lighter shades symbolize countries with less traffic. - -[role="screenshot"] -image::maps/images/gs_add_cloropeth_layer.png[] - -===== How a term join works - -A term join uses a shared key to combine vector features, the left source, with the results of an {es} terms aggregation, the right source. - -The cloropeth example uses the shared key, https://wikipedia.org/wiki/ISO_3166-1_alpha-2[ISO 3166-1 alpha-2 code], to join world countries and web log traffic. -ISO 3166-1 alpha-2 code is an international standard that identifies countries by a two-letter country code. -For example, *Sweden* has an ISO 3166-1 alpha-2 code of *SE*. - -[role="screenshot"] -image::maps/images/terms_join_shared_key_config.png[] - -===== Left source - -The left source for the term join is the https://www.elastic.co/elastic-maps-service[Elastic Maps Service (EMS)] World Countries. Vector features for this source are provided by EMS. You can also use your own vector features. - -In the following example, *iso2* property defines the shared key for the left source. --------------------------------------------------- -{ - geometry: { - coordinates: [...], - type: "Polygon" - }, - properties: { - name: "Sweden", - iso2: "SE" - }, - type: "Feature" -} --------------------------------------------------- - -===== Right source - -The right source uses the Kibana sample data set "Sample web logs". -In this data set, the *geo.src* field contains the ISO 3166-1 alpha-2 code of the country of origin. - -A {ref}/search-aggregations-bucket-terms-aggregation.html[terms aggregation] groups the sample web log documents by *geo.src* and calculates metrics for each term. - -The METRICS configuration defines two metric aggregations: - -* The count of all documents in the terms bucket. -* The average of the field "bytes" for all documents in the terms bucket. - -[role="screenshot"] -image::maps/images/terms_join_metric_config.png[] - -The right source does not provide individual documents, but instead provides the metrics from a terms aggregation. -The metrics are calculated from the following sample web logs documents. --------------------------------------------------- -{ - bytes: 1837, - geo: { - src: "SE" - }, - timestamp: "Feb 28, 2019 @ 07:23:08.754" -}, -{ - bytes: 971, - geo: { - src: "SE" - }, - timestamp: "Feb 27, 2019 @ 08:10:45.205" -}, -{ - bytes: 4277, - geo: { - src: "SE" - }, - timestamp: "Feb 21, 2019 @ 05:24:33.945" -}, -{ - bytes: 5624, - geo: { - src: "SE" - }, - timestamp: "Feb 21, 2019 @ 04:57:05.921" -} --------------------------------------------------- - -The terms aggregation creates a bucket for each unique *geo.src* value. Metrics are calucated for all documents in a bucket. - -The following shows an example terms aggregation response. Note the *key* property, which defines the shared key for the right source. --------------------------------------------------- -{ - aggregations: { - join: { - buckets: [ - { - doc_count: 4, - key: "SE", - avg_of_bytes: { - value: 3177.25 - } - }, - ... - ] - } - } -} --------------------------------------------------- - -==== Augment the left source with metrics from the right source - -The join adds metrics for each terms aggregation bucket to the world country feature with the corresponding ISO 3166-1 alpha-2 code. Features that do not have a corresponding terms aggregation bucket are not visible on the map. - -The world country features now have two additional properties: - -* Count of web log traffic originating from the world country -* Average bytes of web log traffic originating from the world country - -The cloropeth example uses the count of web log traffic to symbolize countries by web log traffic. diff --git a/docs/maps/maps-getting-started.asciidoc b/docs/maps/maps-getting-started.asciidoc deleted file mode 100644 index 32a81c8e65f5..000000000000 --- a/docs/maps/maps-getting-started.asciidoc +++ /dev/null @@ -1,197 +0,0 @@ -[role="xpack"] -[[maps-getting-started]] -== Create a map with multiple layers and data sources - -++++ -<titleabbrev>Create a multilayer map</titleabbrev> -++++ - -If you are new to **Maps**, this tutorial is a good place to start. -It guides you through the common steps for working with your location data. - -You'll learn to: - -- Create a map with multiple layers and data sources -- Use symbols, colors, and labels to style data values -- Embed a map in a dashboard -- Search across panels in your dashboard - -When you complete this tutorial, you’ll have a map that looks like this: - -[role="screenshot"] -image::maps/images/sample_data_web_logs.png[] - -[float] -=== Prerequisites - -- If you don’t already have {kib}, set it up with https://www.elastic.co/cloud/elasticsearch-service/signup?baymax=docs-body&elektra=docs[our free trial]. -- This tutorial requires the <<get-started, web logs sample data set>>. The sample data includes a [Logs] Total Requests and Bytes map, which you’ll re-create in this tutorial. -- You must have the correct privileges for creating a map. -If you don't have sufficient privileges to create or save maps, -a read-only icon appears in the toolbar. For more information, -refer to <<xpack-security-authorization,Granting access to {kib}>>. - -[float] -[[maps-create]] -=== Step 1. Create a map - -. Open the main menu, and then click *Dashboard*. -. Click **Create dashboard**. -. Set the time range to *Last 7 days*. -. Click **Create new**. -. Click **Maps**. - -[float] -[[maps-add-choropleth-layer]] -=== Step 2. Add a choropleth layer - -The first layer you'll add is a choropleth layer to shade world countries -by web log traffic. Darker shades will symbolize countries with more web log traffic, -and lighter shades will symbolize countries with less traffic. - -. Click **Add layer**, and then click **Choropleth**. - -. From the **Layer** dropdown menu, select **World Countries**. - -. In **Statistics source**, set: -** **Index pattern** to **kibana_sample_data_logs** -** **Join field** to **geo.src** - -. Click **Add layer**. - -. In **Layer settings**, set: - -** **Name** to `Total Requests by Country` -** **Opacity** to 50% - -. Add a Tooltip field: - -** Select **ISO 3166-1 alpha-2 code** and **name**. -** Click **Add**. - -. In **Layer style**, set: - -** **Fill color** to the grey color ramp -** **Border color** to white - -. Click **Save & close**. -+ -Your map now looks like this: -+ -[role="screenshot"] -image::maps/images/gs_add_cloropeth_layer.png[] - -[float] -[[maps-add-elasticsearch-layer]] -=== Step 3. Add layers for the Elasticsearch data - -To avoid overwhelming the user with too much data at once, you'll add two layers -for the Elasticsearch data. The first layer will display individual documents -when users zoom in on the map. The second layer will -display aggregated data when users zoom the map out. - -[float] -==== Add a layer for individual documents - -This layer displays web log documents as points. -The layer is only visible when users zoom in. - -. Click **Add layer**, and then click **Documents**. - -. Set **Index pattern** to **kibana_sample_data_logs**. - -. Set **Scaling** to *Limits results to 10000.* - -. Click **Add layer**. - -. In **Layer settings**, set: -** **Name** to `Actual Requests` -** **Visibilty** to the range [9, 24] -** **Opacity** to 100% - -. Add a tooltip field and select **agent**, **bytes**, **clientip**, **host**, -**machine.os**, **request**, **response**, and **timestamp**. - -. In **Layer style**, set **Fill color** to **#2200FF**. - -. Click **Save & close**. -+ -Your map will look like this from zoom level 9 to 24: -+ -[role="screenshot"] -image::maps/images/gs_add_es_document_layer.png[] - -[float] -==== Add a layer for aggregated data - -You'll create a layer for {ref}/search-aggregations.html[aggregated data] and make it visible only when the map -is zoomed out. Darker colors will symbolize grids -with more web log traffic, and lighter colors will symbolize grids with less -traffic. Larger circles will symbolize grids with -more total bytes transferred, and smaller circles will symbolize -grids with less bytes transferred. - -. Click **Add layer**, and select **Clusters and grids**. -. Set **Index pattern** to **kibana_sample_data_logs**. -. Click **Add layer**. -. In **Layer settings**, set: -** **Name** to `Total Requests and Bytes` -** **Visibility** to the range [0, 9] -** **Opacity** to 100% -. Add a metric with: -** **Aggregation** set to **Sum** -** **Field** set to **bytes** -. In **Layer style**, change **Symbol size**: -** Set the field select to *sum bytes*. -** Set the min size to 7 and the max size to 25 px. -. Click **Save & close** button. -+ -Your map will look like this between zoom levels 0 and 9: -+ -[role="screenshot"] -image::maps/images/sample_data_web_logs.png[] - -[float] -[[maps-save]] -=== Step 4. Save the map -Now that your map is complete, save it and return to the dashboard. - -. In the toolbar, click *Save*. -. Enter `Tutorial web logs map` for the title. -. Ensure *Add to Dashboard after saving* is enabled. -. Click *Save and return*. - -[float] -[[maps-embedding]] -=== Step 5. Explore your data from the dashboard - -View your geospatial data alongside a heat map and pie chart, and then filter the data. -When you apply a filter in one panel, it is applied to all panels on the dashboard. - -. In the toolbar, click **Add** to open a list of objects that you can add to the dashboard. -. Set the **Types** select to **Visualization**. -. Add **[Logs] Heatmap** and **[Logs] Visitors by OS** to the dashboard. -+ -[role="screenshot"] -image::maps/images/gs_dashboard_with_map.png[] - -. To filter for documents where **machine.os.keyword** is **osx**, click -the **osx** slice in the pie chart. - -. Remove the filter by clicking **x** next to its name in the filter bar. - -. Set a filter from the map: - -.. Open a tooltip by clicking anywhere in the United States vector. - -.. To show only documents where **geo.src** is **US**, click the filter icon in the row for **ISO 3066-1 alpha-2**. -+ -[role="screenshot"] -image::maps/images/gs_dashboard_with_terms_filter.png[] - -[float] -=== What's next? - -* Check out <<vector-layer, additional types of layers>> that you can add to your map. -* Learn more ways <<maps-vector-style-properties, customize your map>>. -* Learn more about <<vector-tooltip,vector tooltips>>. diff --git a/docs/maps/search.asciidoc b/docs/maps/search.asciidoc deleted file mode 100644 index 764a84d88b1d..000000000000 --- a/docs/maps/search.asciidoc +++ /dev/null @@ -1,123 +0,0 @@ -[role="xpack"] -[[maps-search]] -== Search geographic data - -Maps embeds the search bar for real-time search. -Only layers requesting data from {es} are filtered when you submit a search request. -Layers narrowed by the search context contain the filter icon image:maps/images/filter_icon.png[] next to the layer name in the legend. - -You can create a layer that requests data from {es} from the following: - -* <<vector-layer>> with: - -** Documents - -** Clusters and grid - -** <<terms-join>> - -* <<heatmap-layer>> - -[role="screenshot"] -image::maps/images/global_search_bar.png[] - -[role="xpack"] -[[maps-create-filter-from-map]] -=== Create filters from a map - -You can create two types of filters by interacting with your map: - -* <<maps-spatial-filters, Spatial filters>> -* <<maps-phrase-filter, Phrase filters>> - -[role="screenshot"] -image::maps/images/create_spatial_filter.png[] - -[float] -[[maps-spatial-filters]] -==== Spatial filters - -A spatial filter narrows search results to documents that either intersect with, are within, or do not intersect with the specified geometry. - -You can create spatial filters in two ways: - -* Click the tool icon image:maps/images/tools_icon.png[], and then draw a polygon or bounding box on the map to define the spatial filter. -* Click *Filter by geometry* in a <<maps-vector-tooltip-locking, locked tooltip>>, and then use the feature's geometry for the spatial filter. - -Spatial filters have the following properties: - -* *Geometry label* enables you to provide a meaningful name for your spatial filter. -* *Spatial field* specifies the geo_point or geo_shape field used to determine if a document matches the spatial relation with the specified geometry. -* *Spatial relation* determines the {ref}/query-dsl-geo-shape-query.html#_spatial_relations[spatial relation operator] to use at search time. Only available when *Spatial field* is set to geo_shape. -* *Action* specifies whether to apply the filter to the current view or to a drilldown action. Only available when the map is a panel in a {kibana-ref}/dashboard.html[dashboard] with {kibana-ref}/drilldowns.html[drilldowns]. - -[float] -[[maps-phrase-filter]] -==== Phrase filters - -A phrase filter narrows search results to documents that contain the specified text. -You can create a phrase filter by clicking the plus icon image:maps/images/gs_plus_icon.png[] in a <<maps-vector-tooltip-locking, locked tooltip>>. -If the map is a dashboard panel with drilldowns, you can apply a phrase filter to a drilldown by selecting the drilldown action. - -[role="xpack"] -[[maps-layer-based-filtering]] -=== Filter a single layer - -You can apply a search request to individual layers by setting `Filters` in the layer details panel. -Click the *Add filter* button to add a filter to a layer. - -NOTE: Layer filters are not applied to *term joins*. You can apply a search request to *term joins* by setting the *where* clause in the join definition. - -[role="screenshot"] -image::maps/images/layer_search.png[] - -[role="xpack"] -[[maps-search-across-multiple-indices]] -=== Search across multiple indices - -Your map might contain multiple {es} indices. -This can occur when your map contains two or more layers with {es} sources from different indices. -This can also occur with a single layer with an {es} source and a <<terms-join>>. - -Searching across multiple indices might sometimes result in empty layers. -The most common cause for empty layers are searches for a field that exists in one index, but does not exist in other indices. - -[float] -[[maps-disable-search-for-layer]] -==== Disable search for a layer - -You can prevent the search bar from applying search context to a layer by configuring the following: - -* In *Filtering*, clear the *Apply global filter to layer data* checkbox to turn off the global search context for the layer source. - -* In *Term joins*, clear the *Apply global filter to join* checkbox to turn off the global search context for the <<terms-join, term join>>. - -[float] -[[maps-add-index-search]] -==== Use _index in a search - -Add {ref}/mapping-index-field.html[_index] to your search to include documents from indices that do not contain a search field. - -For example, suppose you have a vector layer showing the `kibana_sample_data_logs` documents -and another vector layer with `kibana_sample_data_flights` documents. -(See <<add-sample-data, adding sample data>> -to install the `kibana_sample_data_logs` and `kibana_sample_data_flights` indices.) - -If you query for --------------------------------------------------- -machine.os.keyword : "osx" --------------------------------------------------- -the `kibana_sample_data_flights` layer is empty because the index -`kibana_sample_data_flights` does not contain the field `machine.os.keyword` and no documents match the query. - -[role="screenshot"] -image::maps/images/global_search_multiple_indices_query1.png[] - -If you instead query for --------------------------------------------------- -machine.os.keyword : "osx" or _index : "kibana_sample_data_flights" --------------------------------------------------- -the `kibana_sample_data_flights` layer includes data. - -[role="screenshot"] -image::maps/images/global_search_multiple_indices_query2.png[] diff --git a/docs/maps/tile-layer.asciidoc b/docs/maps/tile-layer.asciidoc deleted file mode 100644 index 2a60504c3c79..000000000000 --- a/docs/maps/tile-layer.asciidoc +++ /dev/null @@ -1,21 +0,0 @@ -[role="xpack"] -[[tile-layer]] -== Tile layer - -Tile layers display image tiles served from a tile server. - -[role="screenshot"] -image::maps/images/tile_layer.png[] - -To add a tile layer to your map, click *Add layer*, then select one of the following: - -*Configured Tile Map Service*:: Tile map service configured in kibana.yml. -See map.tilemap.url in <<settings>> for details. - -*EMS Basemaps*:: Tile map service from https://www.elastic.co/elastic-maps-service[Elastic Maps Service]. - -*Tile Map Service*:: Tile map service configured in interface. - -*Vector tiles*:: Data service implementing the Mapbox vector tile specification. - -*Web Map Service*:: Maps from OGC Standard WMS. diff --git a/docs/maps/trouble-shooting.asciidoc b/docs/maps/trouble-shooting.asciidoc deleted file mode 100644 index 1c53fbd55ea4..000000000000 --- a/docs/maps/trouble-shooting.asciidoc +++ /dev/null @@ -1,57 +0,0 @@ -[role="xpack"] -[[maps-troubleshooting]] -== Troubleshoot Maps - -++++ -<titleabbrev>Troubleshoot</titleabbrev> -++++ - - -Use the information in this section to inspect Elasticsearch requests and find solutions to common problems. - -[float] -=== Inspect Elasticsearch requests - -Maps uses the {ref}/search-search.html[{es} search API] to get documents and aggregation results from {es}. To troubleshoot these requests, open the Inspector, which shows the most recent requests for each layer. You can switch between different requests using the *Request* dropdown. - -[role="screenshot"] -image::maps/images/inspector.png[] - -[float] -=== Solutions to common problems - -[float] -==== Index not listed when adding layer - -* Verify your geospatial data is correctly mapped as {ref}/geo-point.html[geo_point] or {ref}/geo-shape.html[geo_shape]. - ** Run `GET myIndexPatternTitle/_field_caps?fields=myGeoFieldName` in <<console-kibana, Console>>, replacing `myIndexPatternTitle` and `myGeoFieldName` with your index pattern title and geospatial field name. - ** Ensure response specifies `type` as `geo_point` or `geo_shape`. -* Verify your geospatial data is correctly mapped in your <<managing-fields, Kibana index pattern>>. - ** Open your index pattern in <<management, Stack Management>>. - ** Ensure your geospatial field type is `geo_point` or `geo_shape`. - ** Ensure your geospatial field is searchable and aggregatable. - ** If your geospatial field type does not match your Elasticsearch mapping, click the *Refresh* button to refresh the field list from Elasticsearch. -* Index patterns with thousands of fields can exceed the default maximum payload size. -Increase <<settings, `server.maxPayloadBytes`>> for large index patterns. - -[float] -==== Features are not displayed - -* Use Inspector to view {es} responses. Ensure the response is not empty. -* Ensure geometry uses the correct latitude and longitude ordering. - ** Geo-points expressed as strings are ordered as `"latitude,longitude"`. Geo-points expressed as arrays are ordered as the reverse: `[longitude, latitude]`. - ** Geo-shapes expressed as geojson provide coordinates as `[longitude, latitude]`. -* Ensure fill color and border color are distinguishable from map tiles. It's hard to see white features on a white background. - -[float] -==== Tiles are not displayed - -* Ensure your tile server has configured https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS[Cross-Origin Resource Sharing (CORS)] so tile requests from your Kibana domain have permission to access your tile server domain. -* Ensure tiles have the required coordinate system. Vector data must use EPSG:4326 and tiles must use EPSG:3857. - -[float] -==== Coordinate and region map visualizations not available in New Visualization menu - -Kibana’s out-of-the-box settings no longer offers coordinate and region maps as a -choice in the New Visualization menu because you can create these maps in the Maps app. -If you want to create new coordinate and region map visualizations, set `xpack.maps.showMapVisualizationTypes` to `true`. diff --git a/docs/maps/vector-layer.asciidoc b/docs/maps/vector-layer.asciidoc deleted file mode 100644 index f7128b0f99f8..000000000000 --- a/docs/maps/vector-layer.asciidoc +++ /dev/null @@ -1,43 +0,0 @@ -[role="xpack"] -[[vector-layer]] -== Vector layer - -Vector layers display points, lines, and polygons. - -[role="screenshot"] -image::maps/images/vector_layer.png[] - -To add a vector layer to your map, click *Add layer*, then select one of the following: - -*Choropleth*:: Shaded areas to compare statistics across boundaries. - -*Clusters and grids*:: Geospatial data grouped in grids with metrics for each gridded cell. -The index must contain at least one field mapped as {ref}/geo-point.html[geo_point] or {ref}/geo-shape.html[geo_shape]. - -*Documents*:: Points, lines, and polyons from Elasticsearch. -The index must contain at least one field mapped as {ref}/geo-point.html[geo_point] or {ref}/geo-shape.html[geo_shape]. -+ -Results are limited to the `index.max_result_window` index setting, which defaults to 10000. -Select the appropriate *Scaling* option for your use case. -+ -* *Limit results to 10000.* The layer displays features from the first `index.max_result_window` documents. -Results exceeding `index.max_result_window` are not displayed. - -* *Show top hits per entity.* The layer displays the <<maps-top-hits-aggregation, most relevant documents per entity>>. - -* *Show clusters when results exceed 10000.* When results exceed `index.max_result_window`, the layer uses {ref}/search-aggregations-bucket-geotilegrid-aggregation.html[GeoTile grid aggregation] to group your documents into clusters and displays metrics for each cluster. When results are less then `index.max_result_window`, the layer displays features from individual documents. - -* *Use vector tiles.* Vector tiles partition your map into 6 to 8 tiles. -Each tile request is limited to the `index.max_result_window` index setting. -Tiles exceeding `index.max_result_window` have a visual indicator when there are too many features to display. - -*EMS Boundaries*:: Administrative boundaries from https://www.elastic.co/elastic-maps-service[Elastic Maps Service]. - -*Point to point*:: Aggregated data paths between the source and destination. -The index must contain at least 2 fields mapped as {ref}/geo-point.html[geo_point], source and destination. - -*Upload Geojson*:: Index GeoJSON data in Elasticsearch. - -include::vector-style.asciidoc[] -include::vector-style-properties.asciidoc[] -include::vector-tooltips.asciidoc[] diff --git a/docs/maps/vector-style-properties.asciidoc b/docs/maps/vector-style-properties.asciidoc deleted file mode 100644 index 5656a7f04d0e..000000000000 --- a/docs/maps/vector-style-properties.asciidoc +++ /dev/null @@ -1,86 +0,0 @@ -[role="xpack"] -[[maps-vector-style-properties]] -=== Vector style properties - -Point, polygon, and line features support different styling properties. - -[float] -[[point-style-properties]] -==== Point style properties - -You can add text labels to your Point features by configuring label style properties. - -[cols="2*"] -|=== -|*Label* -|Specifies label content. -|*Label color* -|The text color. -|*Label size* -|The size of the text font, in pixels. -|=== - -You can symbolize Point features as *Circle markers* or *Icons*. - -Use *Circle marker* to symbolize Points as circles. - -[cols="2*"] -|=== -|*Border color* -|The border color of the point features. -|*Border width* -|The border width of the point features. -|*Fill color* -|The fill color of the point features. -|*Symbol size* -|The radius of the symbol size, in pixels. -|=== - -Use *Icon* to symbolize Points as icons. - -[cols="2*"] -|=== -|*Border color* -|The border color of the point features. -|*Border width* -|The border width of the point features. -|*Fill color* -|The fill color of the point features. -|*Symbol orientation* -|The symbol orientation rotating the icon clockwise. -|*Symbol size* -|The radius of the symbol size, in pixels. -|=== - -Available icons - -[role="screenshot"] -image::maps/images/maki-icons.png[] - - -[float] -[[polygon-style-properties]] -==== Polygon style properties - -[cols="2*"] -|=== -|*Border color* -|The border color of the polygon features. -|*Border width* -|The border width of the polygon features. -|*Fill color* -|The fill color of the polygon features. -|=== - - -[float] -[[line-style-properties]] -==== Line style properties - -[cols="2*"] -|=== -|*Border color* -|The color of the line features. -|*Border width* -|The width of the line features. -|=== diff --git a/docs/maps/vector-style.asciidoc b/docs/maps/vector-style.asciidoc deleted file mode 100644 index 5f5b3a1b2aec..000000000000 --- a/docs/maps/vector-style.asciidoc +++ /dev/null @@ -1,118 +0,0 @@ -[role="xpack"] -[[vector-style]] -=== Vector styling - -When styling a vector layer, you can customize your data by property, such as size and color. -For each property, you can specify whether to use a constant or data driven value for the style. - - -[float] -[[maps-vector-style-static]] -==== Static styling - -Use static styling to specificy a constant value for a style property. - -This image shows an example of static styling using the <<add-sample-data, Kibana sample web logs>> data set. -The *kibana_sample_data_logs* layer uses static styling for all properties. - -[role="screenshot"] -image::maps/images/vector_style_static.png[] - - -[float] -[[maps-vector-style-data-driven]] -==== Data driven styling - -Use data driven styling to symbolize features by property values. -To enable data driven styling for a style property, change the selected value from *Fixed* or *Solid* to *By value*. - -This image shows an example of data driven styling using the <<add-sample-data, Kibana sample web logs>> data set. -The *kibana_sample_data_logs* layer uses data driven styling for fill color and symbol size style properties. - -* The `hour_of_day` property determines the fill color for each feature based on where the value fits on a linear scale. -Light green circles symbolize documents that occur earlier in the day, and dark green circles symbolize documents that occur later in the day. - -* The `bytes` property determines the size of each symbol based on where the value fits on a linear scale. -Smaller circles symbolize documents with smaller payloads, and larger circles symbolize documents with larger payloads. - -[role="screenshot"] -image::maps/images/vector_style_dynamic.png[] - - -[float] -[[maps-vector-style-quantitative-data-driven]] -==== Quantitative data driven styling - -Quantitative data driven styling symbolizes features from a range of numeric property values. - -Property values are fit from the domain range to the style range on a linear scale. -For example, let's symbolize <<add-sample-data, Kibana sample web log>> documents by size. -The sample web logs `bytes` field ranges from 0 to 18,000. This is the domain range. -The smallest feature has a symbol radius of 1, and the largest feature has a symbol radius of 24. This is the style range. -The `bytes` property value for each feature will fit on a linear scale from the range of 0 to 18,000 to the style range of 1 to 24. - -To ensure symbols are consistent as you pan, zoom, and filter the map, quantitative data driven styling uses {ref}/search-aggregations-metrics-extendedstats-aggregation.html[extended_stats aggregation] to retrieve statistical metadata. Extended_stats is not available for numeric property values from the <<maps-aggregations, metric aggregations>> count, sum, and unique count. - -To configure extended_stats, click the gear icon image:maps/images/gear_icon.png[]. Set *Sigma* to a smaller value to minimize outliers by moving the range minimum and maximum closer to the average. Clear the *Calculate range from indices* checkbox to turn off the extended_stats aggregation request. The gear icon is not available for numeric property values from the <<maps-aggregations, metric aggregations>> count, sum, and unique count. - -NOTE: When extended_stats is not used, symbols might be inconsistent as users pan, zoom, and filter the map. Without extended_stats, the range is calculated with data from the local layer. The range is re-calculated when layer data changes. - -[role="screenshot"] -image::maps/images/extended_stats_config.png[] - -When the property value is undefined for a feature: - -* *Fill color* and *Border color* are set to transparent and are not visible. -* *Border width* and *Symbol size* are set to the minimum size. -* *Symbol orientation* is set to 0. - -When the symbol range minimum and maximum are the same and there is no range: - -* *Fill color* and *Border color* are set to last color in the color ramp. -* *Border width* and *Symbol size* are set to the maximum size. - - -[float] -[[maps-vector-style-qualitative-data-driven]] -==== Qualitative data driven styling - -Qualitative data driven styling symbolizes properties, such as strings and IP addresses, by category. - -Qualitative data driven styling is available for the following styling properties: - -* *Icon* -* *Fill color* -* *Border color* -* *Label color* -* *Label border color* - -To ensure symbols are consistent as you pan, zoom, and filter the map, qualitative data driven styling uses a {ref}/search-aggregations-bucket-terms-aggregation.html[terms aggregation]. The term aggregation retrieves the top categories for the property. Feature values within the top categories are assigned a unique style. Feature values outside of the top categories are grouped into the *Other* category. A feature is assigned the *Other* category when the property value is undefined. - -To configure the terms aggregation, click the gear icon image:maps/images/gear_icon.png[]. Clear the *Get categories from indice* checkbox to turn off the terms aggregation request. - -NOTE: When the terms aggregation is not used, symbols might be inconsistent as users pan, zoom, and filter the map. Without terms aggregation, the top categories are calculated with data from the local layer. The top categories are re-calculated when layer data changes. - -This image shows an example of quantitative data driven styling using the <<add-sample-data, Kibana sample web logs>> data set. -The `machine.os.keyword` property determines the color of each symbol based on category. - -[role="screenshot"] -image::maps/images/quantitative_data_driven_styling.png[] - - -[float] -[[maps-vector-style-class]] -==== Class styling - -Class styling symbolizes features by class and requires multiple layers. -Use <<maps-layer-based-filtering, layer filtering>> to define the class for each layer, and <<maps-vector-style-static, static styling>> to symbolize each class. - -This image shows an example of class styling using the <<add-sample-data, Kibana sample web logs>> data set. - -* The *Mac OS requests* layer applies the filter `machine.os : osx` so the layer only contains Mac OS requests. -The fill color is a static value of green. - -* The *Window OS requests* layer applies the filter `machine.os : win*` so the layer only contains Window OS requests. -The fill color is a static value of red. - -[role="screenshot"] -image::maps/images/vector_style_class.png[] diff --git a/docs/maps/vector-tooltips.asciidoc b/docs/maps/vector-tooltips.asciidoc deleted file mode 100644 index a8eb6c20bae7..000000000000 --- a/docs/maps/vector-tooltips.asciidoc +++ /dev/null @@ -1,41 +0,0 @@ -[role="xpack"] -[[vector-tooltip]] -=== Vector tooltips -Vector tooltips display attributes for the features at your mouse location. -These tooltips give users an in-depth insight into what's going on in the map. - -If more than one feature exists at a location, the tooltip displays the -attributes for the top feature, and notes the number of features at that location. -The following image shows a tooltip with three features at the current location. -The tooltip displays attributes for the top feature, the green circle. - -[role="screenshot"] -image::maps/images/multifeature_tooltip.png[] - -[float] -[[maps-vector-tooltip-formatting]] - -==== Format tooltips - -You can format the attributes in a tooltip by adding <<managing-fields, field formatters>> to your -Kibana index pattern. You can use field formatters to round numbers, provide units, -and even display images in your tooltip. - -[float] -[[maps-vector-tooltip-locking]] -==== Lock a tooltip at the current location -You can lock a tooltip in place by clicking a location on the map. -With locked tooltips you can: - -* Page through features. -* Create a <<maps-phrase-filter, phrase filter>> from a feature attribute value. -* Create a <<maps-spatial-filters, spatial filter>> from a feature's geometry. - -This image shows a locked tooltip with features from three layers. -The tooltip displays attributes -for the second feature, the blue New York State polygon. The tooltip includes -controls for paging through the features and a dropdown menu for filtering -the features by layer. - -[role="screenshot"] -image::maps/images/locked_tooltip.png[] diff --git a/docs/migration/migrate_7_0.asciidoc b/docs/migration/migrate_7_0.asciidoc deleted file mode 100644 index 01857f0de558..000000000000 --- a/docs/migration/migrate_7_0.asciidoc +++ /dev/null @@ -1,539 +0,0 @@ -[[breaking-changes-7.0]] -== Breaking changes in 7.0 -++++ -<titleabbrev>7.0</titleabbrev> -++++ - -This section discusses the changes that you need to be aware of when migrating -your application to Kibana 7.0. - -See also <<whats-new>> and <<release-notes>>. - -* <<breaking_70_api_changes>> -* <<breaking_70_browser_support_changes>> -* <<breaking_70_ems_changes>> -* <<breaking_70_packaging_changes>> -* <<breaking_70_plugin_changes>> -* <<breaking_70_security_changes>> -* <<breaking_70_setting_changes>> -* <<breaking_70_advanced_settings_changes>> -* <<breaking_70_UI_changes>> - -//// -The following section is re-used in the Installation and Upgrade Guide -[[breaking_70_notable]] -=== Notable breaking changes -//// -// tag::notable-breaking-changes[] - -// end::notable-breaking-changes[] - -[float] -[[breaking_70_api_changes]] -=== API changes - -[float] -==== Deprecated API `/shorten` has been removed -*Details:* The `/shorten` API has been deprecated since 6.5, when it was replaced by the `/api/shorten_url` API. - -*Impact:* The '/shorten' API has been removed. Use the '/api/shorten_url' API instead. - -[float] -[[breaking-changes-7.0-saved-objects]] -==== Saved object structure change -*Details:* Saved objects no longer contain ids of other saved objects under `attributes`. They have been moved under `references` with a named reference in `attributes`. - -Example structure before: -[source,js] --------------------------------------------------- -{ - ... - "attributes": { - ... - "panelsJSON": [{ - ... - "type": "visualization", - "id": "dbf71bb0-ffad-11e8-acfd-d359b3d9069" - }] - } -} --------------------------------------------------- - - -Example structure after: -[source,js] --------------------------------------------------- -{ - ... - "attributes": { - ... - "panelsJSON": [{ - ... - "panelRefName": "panel_0" - }] - }, - "references": [{ - "name": "panel_0", - "type": "visualization", - "id": "dbf71bb0-ffad-11e8-acfd-d359b3d9069" - }] -} --------------------------------------------------- - - -*Impact:* Users who query directly for ids will have to use the new `hasReference` in the find API. Users who save ids within attributes will have to move them into the `references` attribute and have a named reference to it. - -[float] -[[breaking_70_browser_support_changes]] -=== Browser support changes - -[float] -==== Removed support for using PhantomJS browser for screenshots in Reporting -*Details:* Since the first release of Kibana Reporting, PhantomJS was used as -the headless browser to capture screenshots of Kibana dashboards and -visualizations. In that short time, Chromium has started offering a new -headless browser library and the PhantomJS maintainers abandoned their project. -We started planning for a transition in 6.5.0, when we made Chromium the -default option, but allowed users to continue using Phantom with the -`xpack.reporting.capture.browser.type: phantom` setting. In 7.0, that setting -will still exist for compatibility, but the only valid option will be -`chromium`. - -*Impact:* Before upgrading to 7.0, if you have `xpack.reporting.capture.browser.type` -set in kibana.yml, make sure it is set to `chromium`. - -[NOTE] -============ -Reporting 7.0 uses a version of the Chromium headless browser that RHEL 6, -CentOS 6.x, and other old versions of Linux derived from RHEL 6. This change -effectively removes RHEL 6 OS server support from Kibana Reporting. Users with -RHEL 6 must upgrade to RHEL 7 to use Kibana Reporting starting with version -7.0.0 of the Elastic stack. -============ - - -[float] -==== Legacy browsers (namely IE11) will see a security warning message whenever they load Kibana -*Details:* Kibana now has a Content Security Policy, but it's only effective if browsers enforce it, and since older -browsers like Internet Explorer 11 do not support CSP, we show them a warning message whenever they load Kibana. - -*Impact:* Nothing needs to be done necessarily, but if you don't need to support legacy browsers like IE11, we recommend -that you set `csp.strict: true` in your kibana.yml to block access to those browsers entirely. If your organization requires -users to use IE11, you might like to disable the warning entirely with `csp.warnLegacyBrowsers: false` in your kibana.yml. - - -[float] -[[breaking_70_ems_changes]] -=== Elastic Maps Service changes - -[float] -==== Removed overseas territories from France Departments vector layer - -*Details:* Overseas territories in the France Departments vector layer have -been removed. These territories have no ISO 3166-2 or INSEE codes to join to -{es} data. - -*Impact:* Region Map, Vega, and Maps plugin visualizations using the France -Departments layer will not show overseas territories. - -[float] -==== USA Zip Codes vector layer updated with latest US Census data - -*Details:* The USA Zip Codes layer has been updated based on the -https://www.census.gov/geo/reference/zctas.html[2018 Zip Code Tabulation -Areas (ZCTAs)] distributed by the US Census Bureau. ZCTA boundaries have been -generalized from the source data for visualization and locations are approximate. - -*Impact:* Region Map, Vega, and Maps plugin visualizations using the USA Zip -Codes layer will appear differently. ZCTA boundaries have changed dramatically -in some areas. Also, some zip codes have been deprecated and new ones have been added. - -[float] -[[breaking_70_packaging_changes]] -=== Packaging changes - -[float] -==== Removed support for running Kibana with a global Node.js installation -*Details:* Previous versions of Kibana would fallback to using a global installation of Node.js if the distribution included with Kibana was not found. -Kibana 7.0 will only use the Node.js distribution included in the package. - -*Impact:* There is no expected impact unless Kibana is installed in a non-standard way. - -[float] -[[breaking_70_plugin_changes]] -=== Plugin changes - -[float] -==== Optimization step deferred until server start -*Details:* Prior versions of Kibana would run the optimization step after each plugin installation. This is now run on server start when necessary. - -*Impact:* Users can trigger a standalone optimization after all plugins have been installed with `bin/kibana --optimize` or let the server manage it on startup. - -[float] -[[breaking_70_security_changes]] -=== Security changes - -[float] -==== Removed support for users relying on direct index privileges to the Kibana index in Elasticsearch -*Details:* With the introduction of Kibana RBAC in 6.4, users no longer require privileges to the Kibana index in Elasticsearch. Instead, users -should be granted <<kibana-privileges>>. Prior to 7.0, when a user who relies upon direct index privileges logged into Kibana, a deprecation warning was logged. - -*Impact:* You must change any roles that grant access to Kibana using index privileges to use <<kibana-privileges>> instead. -Watcher jobs using the Reporting attachment type must also be updated. - -If you use a custom `kibana.index` for multitenancy, you can -no longer use `kibana_user` or `kibana_dashboard_only_user` to provide access, -and will have to start using {kib} privileges. - -In addition, roles cannot be shared across Kibana tenants when granting access to Kibana privileges. -For example, a tenant using `kibana.index: .kibana` will have its own set -of roles created to grant access to Kibana. If you create another tenant -at `kibana.index: .some-other-index`, it will need its own set of roles -to grant access to that tenant. - -[float] -[[breaking_70_setting_changes]] -=== Settings changes - -[float] -==== Removed support for tribe nodes -*Details:* Elasticsearch 7.0 removes the tribe node feature, so Kibana removes it as well. - -*Impact:* You must remove any tribe node configurations in Kibana. Consider using <<management-cross-cluster-search>> instead, which does not require kibana.yml configurations in Kibana. - - -[float] -==== `elasticsearch.ssl.ca` is no longer valid - -*Details:* The deprecated `elasticsearch.ssl.ca` setting in the `kibana.yml` -file has been removed. - -*Impact:* Use `elasticsearch.ssl.certificateAuthorities` instead. - -[float] -==== `elasticsearch.ssl.cert` is no longer valid - -*Details:* The deprecated `elasticsearch.ssl.cert` setting in the `kibana.yml` -file has been removed. - -*Impact:* Use `elasticsearch.ssl.certificate` instead. - -[float] -==== `elasticsearch.ssl.verify` is no longer valid - -*Details:* The deprecated `elasticsearch.ssl.verify` setting in the `kibana.yml` -file has been removed. - -*Impact:* Use `elasticsearch.ssl.verificationMode` instead. If you set -`elasticsearch.ssl.verify` to `true`, that is equal to setting -`elasticsearch.ssl.verificationMode` to `full`. - -[float] -==== `elasticsearch.url` is no longer valid - -*Details:* The deprecated `elasticsearch.url` setting in the `kibana.yml` file -has been removed. - -*Impact:* Use `elasticsearch.hosts` instead. In prior versions of Kibana, if no -port was specified in `elasticsearch.url`, a default of 9200 was chosen. The -port in `elasticsearch.hosts` is protocol dependent: https ports will use 443, -and http ports will use 80. If your `elasticsearch.url` setting was dependent on -an unspecified port set to 9200, append `:9200` to the url in the -`elasticsearch.hosts` setting. - -[float] -==== `i18n.defaultLocale` is no longer valid - -*Details:* The deprecated `i18n.defaultLocale` setting in the `kibana.yml` file -has been removed. - -*Impact:* Use `i18n.locale` instead. - -[float] -==== `index_management.<any setting>` is no longer valid - -*Details:* The deprecated `index_management.*` settings in the `kibana.yml` -file have been removed. - -*Impact:* Use `xpack.index_management.<any setting>` instead. - -[float] -==== `license_management.<any setting>` is no longer valid - -*Details:* The deprecated `license_management.*` settings in the `kibana.yml` -file have been removed. - -*Impact:* Use `xpack.license_management.<any setting>` instead. - -[float] -==== `logging.useUTC` is no longer valid - -*Details:* The deprecated `logging.useUTC` setting in the `kibana.yml` file has -been removed. - -*Impact:* If `logging.useUTC` was set to `true` (its default value), the -timezone id was `UTC`. Use `logging.timezone` instead. Any timezone can now be -specified by canonical id. - -[float] -==== `regionmap` is no longer valid - -*Details:* The deprecated `regionmap` setting in the `kibana.yml` file has been -removed. - -*Impact:* Use `map.regionmap` instead. - -[float] -==== `rollup.<any setting>` is no longer valid - -*Details:* The deprecated `rollup.*` settings in the `kibana.yml` file have been -removed. - -*Impact:* Use `xpack.rollup.<any setting>` instead. - -[float] -==== `server.ssl.cert` is no longer valid - -*Details:* The deprecated `server.ssl.cert` setting in the `kibana.yml` file has -been removed. - -*Impact:* Use `server.ssl.certificate` instead - -[float] -==== `server.ssl.enabled` must be set to `true` to enable SSL - -*Details:* Previously, if the `server.ssl.certificate` and `server.ssl.key` -settins were specified in the `kibana.yml` file, SSL would be automatically -enabled. It's now required that you set `server.ssl.enabled` to `true` for this -to occur. - -*Impact:* Users with both `server.ssl.certificate` and `server.ssl.key` set must -now also set `server.ssl.enabled` to enable SSL. - -[float] -==== `server.ssl.supportedProtocols` excludes TLSv1 by default - -*Details:* By default, TLSv1 support has been removed. It's still possible to -opt-in to TLSv1 support by explicitly setting `server.ssl.supportedProtocols` in -the `kibana.yml` file. - -*Impact:* Users relying on TLSv1 will be unable to use Kibana unless -`server.ssl.supportedProtocols` is explicitly set. - -[float] -==== `tilemap` is no longer valid - -*Details:* The deprecated `tilemap` setting in the `kibana.yml` file has been -removed. - -*Impact:* Use `map.tilemap` instead. - -[float] -==== `upgrade_assistant.<any setting>` is no longer valid - -*Details:* The deprecated `upgrade_assistant.*` settings in the `kibana.yml` -file have been removed. - -*Impact:* Use `xpack.upgrade_assistant.<any setting>` instead. - -[float] -==== `xpack.monitoring.beats.index_pattern` is no longer valid - -*Details:* The unsupported `xpack.monitoring.beats.index_pattern` setting in the -`kibana.yml` file has been officially removed. - -*Impact:* The ability to customize this pattern is no longer supported. - -[float] -==== `xpack.monitoring.cluster_alerts.index` is no longer valid - -*Details:* The unsupported `xpack.monitoring.cluster_alerts.index` setting in -the `kibana.yml` file has been officially removed. - -*Impact:* The ability to customize this index is no longer supported. - -[float] -==== `xpack.monitoring.elasticsearch.index_pattern` is no longer valid - -*Details:* The unsupported `xpack.monitoring.elasticsearch.index_pattern` -setting in the `kibana.yml` file has been officially removed. - -*Impact:* The ability to customize this pattern is no longer supported. - -[float] -==== `xpack.monitoring.elasticsearch.ssl.ca` is no longer valid - -*Details:* The deprecated `xpack.monitoring.elasticsearch.ssl.ca` setting in the -`kibana.yml` file has been removed. - -*Impact:* Use `xpack.monitoring.elasticsearch.ssl.certificateAuthorities` instead. - -[float] -==== `xpack.monitoring.elasticsearch.ssl.cert` is no longer valid - -*Details:* The deprecated `xpack.monitoring.elasticsearch.ssl.cert` setting in -the `kibana.yml` file has been removed. - -*Impact:* Use `xpack.monitoring.elasticsearch.ssl.certificate` instead. - -[float] -==== `xpack.monitoring.elasticsearch.ssl.verify` is no longer valid - -*Details:* The deprecated `xpack.monitoring.elasticsearch.ssl.verify` setting in -the `kibana.yml` file has been removed. - -*Impact:* Use `xpack.monitoring.elasticsearch.ssl.verificationMode` instead. If -you previously set `xpack.monitoring.elasticsearch.ssl.verify` to `true`, it is -equal to setting `xpack.monitoring.elasticsearch.ssl.verificationMode` to `full`. - -[float] -==== `xpack.monitoring.elasticsearch.url` is no longer valid - -*Details:* The deprecated `xpack.monitoring.elasticsearch.url` setting in the -`kibana.yml` file has been removed. - -*Impact:* Use `xpack.monitoring.elasticsearch.hosts` instead. In prior versions -of Kibana, if no port was specified in `xpack.monitoring.elasticsearch.url` a -default of 9200 was chosen. The port in `xpack.monitoring.elasticsearch.hosts` -is protocol dependent: https ports will use 443, and http ports will use 80. If -`xpack.monitoring.elasticsearch.url` was dependent on an unspecified port set to -9200, append `:9200` to the url in `xpack.monitoring.elasticsearch.hosts`. - -[float] -==== `xpack.monitoring.index_pattern` is no longer valid - -*Details:* The unsupported `xpack.monitoring.index_pattern` setting in the -`kibana.yml` file has been officially removed. - -*Impact:* The ability to customize this pattern is no longer supported. - -[float] -==== `xpack.monitoring.kibana.index_pattern` is no longer valid - -*Details:* The unsupported `xpack.monitoring.kibana.index_pattern` setting in -the `kibana.yml` file has been officially removed. - -*Impact:* The ability to customize this pattern is no longer supported. - -[float] -==== `xpack.monitoring.logstash.index_pattern` is no longer valid - -*Details:* The unsupported `xpack.monitoring.logstash.index_pattern` setting in -the `kibana.yml` file has been officially removed. - -*Impact:* The ability to customize this pattern is no longer supported. - -[float] -==== `xpack.monitoring.node_resolver` is no longer valid - -*Details:* The deprecated `xpack.monitoring.node_resolver` setting in the -`kibana.yml` file has been removed. This setting has been deprecated since 5.6, -when it was explicitly recommended to use `uuid` as its value. - -*Impact:* This setting is no longer necessary. If you enable the {stack} -{monitor-features}, a monitoring agent runs on each Elasticsearch node, Logstash -node, Kibana instance, and Beat to collect and index metrics. Each node and -instance is considered unique based on its persistent UUID, which is written to -the `path.data` directory when the node or instance starts. - -[float] -==== `xpack.monitoring.report_stats` is no longer valid - -*Details:* The deprecated `xpack.monitoring.report_stats` setting in the -`kibana.yml` file has been removed. - -*Impact:* Use `xpack.xpack_main.telemetry.enabled` instead. - -[float] -==== `management/kibana/(index|indices)` => `management/kibana/index_pattern(?s)` - -*Details:* Kibana management URLs pertaining to index patterns have been changed -to accurately reflect their content, from `management/kibana/index` or -`management/kibana/indices` to `managemen/kibana/index_pattern` or -`management/kibana/index_patterns`. - -*Impact:* References to these URLs will need to be updated. - -[float] -[[breaking_70_advanced_settings_changes]] -=== Advanced settings changes - - -[float] -==== Advanced setting query:queryString:options no longer applies to filters -*Details:* In previous versions of Kibana the Advanced Setting `query:queryString:options` was applied to both queries -and custom filters using the `query_string` query. This could cause errors if a custom filter used options that -conflicted with the Advanced Setting. In 7.0 `query:queryString:options` will no longer be applied to filters so that -users can have full control over their custom filters. - -*Impact:* You must ensure that any saved searches with a `query_string` filter aren't relying implicitly on -`query:queryString:options`. - -[float] -==== Advanced setting query:queryString:options no longer applies `default_field: *` by default. -*Details:* Elasticsearch removed the ability to create indices with an _all field in 6.0. As a result, a user could end -up with a mix of indices with and without _all fields if they upgraded from an older version of ES. This could lead to -inconsistent highlighting in Discover. To work around this issue we added `default_field: *` to query:queryString:options -to force consistent querying across indices with and without _all. In 7.0 the _all field will be gone from all indices -so we no longer need this workaround. - -*Impact:* Since we'll no longer send the `default_field` parameter in Kibana's query_string query, Elasticsearch -will use the index setting instead. The default for the index setting is also `*`, so most users should not be impacted. -If some of your indices have a non-default `default_field` setting, you may want to update it or re-add the parameter -to Kibana's advanced setting. - -[float] -[[breaking_70_UI_changes]] -=== UI changes - -[float] -==== Dark mode is now global -*Details:* Both the Dashboard and Maps applications offer "Dark Mode" options which have been removed in favor of a global dark mode advanced setting. This means that instead of having to turn on dark mode in many places, users can choose to turn on the `theme:darkMode` advanced setting and it will apply to all applications. - -*Impact:* The dark mode setting for Dashboards and Maps will be ignored and the global setting will be used instead. - - -[float] -==== KQL is now the default query language in the global search bar -*Details:* Language enhancements that were introduced in 6.3 on an opt-in basis are now turned on by default. This -is considered a breaking change because the enhancements include a simplifed syntax that has some small incompatibilities -with the old Lucene syntax. - -*Impact:* Users simply need to familiarize themselves with the new syntax. Existing saved searches, visualizations, and dashboards -that use the old Lucene syntax will continue to work, but users should consider migrating them to KQL to enjoy the other benefits -that come along with it. For the time being, individual users can still opt-out of KQL under the options menu in the query bar -and admins can still change the global default using the `search:queryLanguage` advanced setting. - - - - -[float] -==== Removed support for deeply nested table splits in data table visualizations -*Details:* Previously a user was able to create multiple "split table" aggregations in one table on arbitrary levels. -The potential for deeply nested tables posed maintenance and accessibility challenges, and was inconsistent with other -visualizations that only allow one table split. This change does not limit the number of split rows a user can put into -a table; it only restricts the number of split tables to one. - -*Impact:* To prevent breaking existing visualizations, saved objects containing nested table splits will be automatically -migrated to contain only one split table, converting any existing split tables beyond the first to split rows. No action -should be required as a result of this change, but be aware that users with saved data table visualizations that contain -multiple split tables will now see those tables rendered differently. - -[float] -==== Imported Kibana dashboards might require small grid layout adjustments due to design changes -*Details:* Kibana 7.0 introduces a new default font for the application and also comes with several design changes in dashboards that slightly change padding and margin for dashboard panels. You may find you need to adjust grid layouts to compensate. - -*Impact:* Minimal. In most cases, the dashboards should render as they did previously. In some cases, panels might overflow and require scroll bars where they did not previously. Simply adjust the panel sizes and edit your dashboard layouts if these bother you. - -[float] -==== Timelion no longer appears in the side navigation -*Details:* Timelion sheets will continue to work in *Visualize*, but the -Timelion application no longer appears by default in the {kib} side navigation. - -*Impact:* To create a Timelion visualization, go to *Visualize* and select -*Timelion* from the visualization types. If you have a lot of existing Timelion -visualizations and want to add Timelion back in the side -navigation, set `timelion.ui.enabled` to `true` in `kibana.yml`. - - - diff --git a/docs/migration/migrate_7_1.asciidoc b/docs/migration/migrate_7_1.asciidoc deleted file mode 100644 index a19baac3d50c..000000000000 --- a/docs/migration/migrate_7_1.asciidoc +++ /dev/null @@ -1,17 +0,0 @@ -[[breaking-changes-7.1]] -== Breaking changes in 7.1 -++++ -<titleabbrev>7.1</titleabbrev> -++++ - -There are no breaking changes in 7.1. - -See the <<release-notes-7.1.0, release notes>> for a list of -enhancements and bug fixes. - -//NOTE: The notable-breaking-changes tagged regions are re-used in the -//Installation and Upgrade Guide - -//tag::notable-breaking-changes[] - -// end::notable-breaking-changes[] \ No newline at end of file diff --git a/docs/migration/migrate_7_2.asciidoc b/docs/migration/migrate_7_2.asciidoc deleted file mode 100644 index ca3555fc3aab..000000000000 --- a/docs/migration/migrate_7_2.asciidoc +++ /dev/null @@ -1,42 +0,0 @@ -[[breaking-changes-7.2]] -== Breaking changes in 7.2 -++++ -<titleabbrev>7.2</titleabbrev> -++++ - -This section discusses the changes that you need to be aware of when migrating -your application to Kibana 7.2. - -See also {kibana-ref-all}/7.2/release-highlights-7.2.0.html[release highlights] -and <<release-notes-7.2.0, release notes>>. - -//NOTE: The notable-breaking-changes tagged regions are re-used in the -//Installation and Upgrade Guide - -//tag::notable-breaking-changes[] - -// end::notable-breaking-changes[] - -[float] -[[breaking_72_index_pattern_changes]] - -[float] -=== Time-based internal index patterns queried as wildcard index patterns -*Details:* Time-based interval index patterns were deprecated in 5.x. In 6.x, -you could no longer create time-based interval index patterns, but they continued -to function as expected. In 7.2, functionality has changed such that {kib} will -automatically query a time-based interval index pattern as a wildcard index pattern. -Support for time-based index patterns will be removed in 8.0. You can migrate your -time-based index patterns to a wildcard pattern to prepare for this change. - -*Impact:* If you query a time-based index pattern, that query will now be performed -on the root wildcard term. For example, a query on an index pattern such as -`[logstash-]YYYY.MM.DD` will now query all indices that match `logstash-*`. - - -//NOTE: The notable-breaking-changes tagged regions are re-used in the -//Installation and Upgrade Guide - -//tag::notable-breaking-changes[] - -// end::notable-breaking-changes[] \ No newline at end of file diff --git a/docs/migration/migrate_7_3.asciidoc b/docs/migration/migrate_7_3.asciidoc deleted file mode 100644 index 0d8f883e0be2..000000000000 --- a/docs/migration/migrate_7_3.asciidoc +++ /dev/null @@ -1,56 +0,0 @@ -[[breaking-changes-7.3]] -== Breaking changes in 7.3 -++++ -<titleabbrev>7.3</titleabbrev> -++++ - -This section discusses the changes that you need to be aware of when migrating -your application to Kibana 7.3. - -See also {kibana-ref-all}/7.3/release-highlights-7.3.0.html[release highlights] -and <<release-notes-7.3.0, release notes>>. - -//NOTE: The notable-breaking-changes tagged regions are re-used in the -//Installation and Upgrade Guide - -//// -The following section is re-used in the Installation and Upgrade Guide -[[breaking_70_notable]] -=== Notable breaking changes -//// -// tag::notable-breaking-changes[] - -[float] -=== Visibility of features after configuring a term join in Maps -*Details:* When performing a terms join in a vector layer in the Maps app, features that do not have a matching term in the join will no longer be visible on the map. Before, these features would remain visible, although they would not show any results for the join in their corresponding tooltip. This aligns the behavior of this functionality with the behavior in the Region Maps visualization. The old behavior, in which features without a corresponding record in the term-query result would still be visible on the map, is no longer supported. - -*Impact:* This affects all maps that have a term join configured on a vector layer. The effect is primarily a change in the visual representation of the layer. In practice, fewer features will be visible if the results of the term-query have no corresponding record for all features on the map. This also means that all fields in a tooltip will have a corresponding value. Previously, the aggregation metrics for some rows in the tooltip would just be empty if there was no corresponing result in the term-query. - -[float] -[[breaking_73_data_frames_date_format]] -=== Removed support for date histogram format specifications in {transforms} - -*Details:* If your {transform} groups your data by using a date -histogram, the `format` property is no longer supported. - -*Impact:* {transforms-cap} that were created in 7.2 and use date -histograms might no longer work in 7.3. If you run into issues starting a -{transform}, recreate it by copying the `pivot` part of the configuration into the -advanced editor of the {transforms} wizard. The advanced editor will -remove the unsupported attribute once the configuration gets applied. - -// end::notable-breaking-changes[] - -[float] -[[breaking_73_dashboard_import_export]] -=== Dashboard import and export APIs - -[float] -==== Dashboard import and export APIs error status codes -*Details:* The dashboard import and export APIs will return more accurate HTTP -status codes instead of returning a HTTP 400 status code for all failure -scenarios. Specifically, authorization failures will now correctly return a -HTTP 403 when the authenticated user lacks sufficient privileges. - -*Impact:* Review the error handling logic of any integrations with the -dashboard import and export APIs. \ No newline at end of file diff --git a/docs/migration/migrate_7_4.asciidoc b/docs/migration/migrate_7_4.asciidoc deleted file mode 100644 index 8ff3c06aecbd..000000000000 --- a/docs/migration/migrate_7_4.asciidoc +++ /dev/null @@ -1,37 +0,0 @@ -[[breaking-changes-7.4]] -== Breaking changes in 7.4 -++++ -<titleabbrev>7.4</titleabbrev> -++++ - -This section discusses the changes that you need to be aware of when migrating -your application to Kibana 7.4. - -//See also {kibana-ref-all}/7.4/release-highlights-7.4.0.html[release highlights] and <<release-notes-7.4.0, release notes>>. - -//NOTE: The notable-breaking-changes tagged regions are re-used in the -//Installation and Upgrade Guide - -//// -The following section is re-used in the Installation and Upgrade Guide -[[breaking_70_notable]] -=== Notable breaking changes -//// -// tag::notable-breaking-changes[] - -[float] -[[breaking_74_search_instead_of-msearch]] -=== Use search instead of msearch when batching is disabled - -*Details:* -When the advanced setting `courier:batchSearches` is disabled, we -previously sent the search requests as `_msearch` requests. -We now use `_search` when batching is disabled. - -*Impact:* -When the advanced setting `courier:batchSearches` is disabled, -requests from *Discover*, *Visualize*, and *Dashboard* will now query {es} -using the `_search` endpoint rather than the `_msearch` endpoint. - - -// end::notable-breaking-changes[] diff --git a/docs/migration/migrate_7_5.asciidoc b/docs/migration/migrate_7_5.asciidoc deleted file mode 100644 index b0bf2a247215..000000000000 --- a/docs/migration/migrate_7_5.asciidoc +++ /dev/null @@ -1,48 +0,0 @@ -[[breaking-changes-7.5]] -== Breaking changes in 7.5 -++++ -<titleabbrev>7.5</titleabbrev> -++++ - -This page discusses the breaking changes that you need to be aware of when migrating -your application to Kibana 7.5. - -//See also {kibana-ref-all}/7.5/release-highlights-7.5.0.html[release highlights] and <<release-notes-7.4.0, release notes>>. - -//NOTE: The notable-breaking-changes tagged regions are re-used in the -//Installation and Upgrade Guide - -//// -The following section is re-used in the Installation and Upgrade Guide -[[breaking_70_notable]] -=== Notable breaking changes -//// -// tag::notable-breaking-changes[] - -[float] -[[breaking_75_search_instead_of-msearch]] -=== The default setting for `courier:batchSearches` is now `false` - -*Details:* -Changing the default setting for `courier:batchSearches` to `false` means -that search requests will use the `_search` {es} endpoint rather than `_msearch`. - -*Impact:* -Dashboard panels will load individually, and search requests will terminate -when users navigate away or update the query. - -[float] -[[breaking_75_codeapp]] -=== The experimental Code app has been removed - -*Details:* -The experimental Code app that was previously disabled by default has been -removed. Due to the existing implementation of code being untenable, we've -decided not to pursue further development of the code app at this time. - -*Impact:* -Any installs that previously enabled the Code app will now log a warning when -Kibana starts up. It's safe to remove all configurations starting with -`xpack.code.`. Starting in 8.0, these warnings will become errors that prevent -Kibana from starting up. -// end::notable-breaking-changes[] \ No newline at end of file diff --git a/docs/migration/migrate_7_6.asciidoc b/docs/migration/migrate_7_6.asciidoc deleted file mode 100644 index 9f15110137c3..000000000000 --- a/docs/migration/migrate_7_6.asciidoc +++ /dev/null @@ -1,1903 +0,0 @@ -[[breaking-changes-7.6]] -== Breaking changes in 7.6 -++++ -<titleabbrev>7.6</titleabbrev> -++++ - -This page discusses the breaking changes that you need to be aware of when migrating -your application to Kibana 7.6. - -* <<user-facing-changes, Breaking changes for users>> -* <<general-plugin-API-changes, Breaking changes for plugin developers>> - -// The following section is re-used in the Installation and Upgrade Guide -//tag::notable-breaking-changes[] - -// end::notable-breaking-changes[] - -[float] -[[user-facing-changes]] -=== Breaking changes for users - -There are no user-facing breaking changes in 7.6. - -[float] -[[general-plugin-API-changes]] -=== Breaking changes for plugin developers - -[float] -==== {kib} no longer crashes when a plugin version does not match the server -{kib-pull}54404[#54404] - -{kib} no longer crashes when a plugin is used against an incompatible {kib} version. -A warning is now displayed in the console instead of throwing and crashing. - -[float] -==== Generate legacy vars when rendering all applications -{kib-pull}54768[#54768] - -Rendering any type of application, even ones for the new platform, -should still generate legacy vars injected into the page metadata. -This ensures these vars are injected for HTTP route rendering as well. - -[float] -==== `uiSettings` image upload field config -{kib-pull}54522[#54522] - -In `uiSettings`, the image upload field required specifying `maxSize` -via the `options` field. This was in conflict with the stated use and -type of `options`, which is a `string[]` used to populate select fields. -`uiOptions` has been provided instead, accepting `Record<string, any>` values. - -[float] -==== Replaced `map.manifestServiceUrl` setting in kibana.yml with `map.emsTileApiUrl` and `map.emsFileApiUrl` -{kib-pull}54399[#54399] - -The undocumented `map.manifestServiceUrl` setting in kibana.yml has been replaced -by `map.emsTileApiUrl` and `map.emsFileApiUrl`. These settings configure the -base URL for the tile basemap manifest and vector file manifests used in -Elastic Maps and the region map and coordinate map.visualizations. - -[float] -==== Don't expose {es} client as Observable -{kib-pull}53824[#53824] - -{es} clients aren't exposed via the Observable interface anymore. -{es} client provides a static API that handles all {es} config updates under the hood, -transparent to the end-user. - -```js - -const client = core.elasticsearch.dataClient; - -const data = await client.callAsInternalUser('endpoint'); - -``` - -[float] -==== Reduce license plugin API -{kib-pull}53489[#53489] - -License method `isOneOf` was superseded by `hasAtLeast`, which checks -the current license is not less than passes minimal required license. - -```js - -//before - -license.isOneOf(['platinum', 'enterprise', 'trial']) - -// after - -license.hasAtLeast('platinum') - -``` - -[float] -==== State containers -{kib-pull}52384[#52384] - -State containers have now been rewritten and to create state container you -use `createStateContainer` instead of previous `createStore`. -https://github.com/streamich/kibana/blob/state-containers/src/plugins/kibana_utils/docs/state_containers/README.md[See full documentation]. - - -```ts - -import { createStateContainer } from 'src/plugins/kibana_utils'; - -const container = createStateContainer(0, { - - increment: (cnt: number) => (by: number) => cnt + by, - - double: (cnt: number) => () => cnt * 2, - -}); - -container.transitions.increment(5); - -container.transitions.double(); - -console.log(container.get()); // 10 - -``` - - - -[float] -==== Add pre-response HTTP interceptor -{kib-pull}52366[#52366] - -HttpService provides `onPreResponse` interceptor. Interceptor supports extending a response with custom headers. - -```js - - this.registerOnPreResponse((request, preResponseInfo, t) => { - - if(preResponseInfo.statusCode < 300){ - - return t.next({ - - headers: { - - 'x-foo-header': 'bar' - - } - - }); - - } - - return t.next() - -}); - -``` - -[float] -==== Add server rendering service to enable standalone route rendering -{kib-pull}52161[#52161] - -Render a bootstrapped HTML page from a route handler using the `RenderingService` from your server plugin: - -```ts - -const router = createRouter(); - -router.get( - - { path: '/', validate: false }, - - (context, request, response) => - - response.ok({ - - headers: { - - 'content-security-policy': context.core.http.csp.header, - - }, - - body: await context.core.rendering.render(), - - }) - -); - -``` - -[float] -==== Disabled actions -{kib-pull}51975[#51975] - -Embeddable input now has `disabledActions` property. Actions with ID listed -in `disabledActions` will not be rendered by embeddable panel in drop down context menu and badge list. - -```ts - -const embeddable = await embeddableFactory.createFromState( - - state, - - { - - // ... - - disabledActions: ['CUSTOM_TIME_RANGE', 'CUSTOM_TIME_RANGE_BADGE'], - - }, - - // ... - -); - -``` - -[float] -==== Allow chromeless applications to render via non-/app routes -{kib-pull}51527[#51527] - -Allow applications to routable from paths that do not start with `/app`. -This is first enabled via the `appRoute` flag during UI application registration. - -```ts - -export class MyPlugin implements Plugin { - - setup({ application }) { - - application.register({ - - id: 'my-app', - - // App can be accessed via the /my-app route - - appRoute: '/my-app', - - async mount(context, params) { - - const { renderApp } = await import('./application'); - - return renderApp(context, params); - - }, - - }); - - } - -} - -``` - -[float] -==== Add compatibility wrapper for Boom errors thrown from route handler -{kib-pull}51157[#51157] - -Added a new `handleLegacyErrors` method to core `HttpService` router. The method wraps a `RequestHandler` to intercept any thrown `Boom` errors and converts them into proper NP error response. - -```ts - -// plugins/myplugin/server/plugin.ts - -import { schema } from '@kbn/config-schema'; - -import { CoreSetup } from 'src/core/server'; - -export interface DemoPluginsSetup {}; - -class Plugin { - - public setup(core: CoreSetup, pluginSetup: DemoPluginSetup) { - - const router = core.http.createRouter(); - - router.post( - - { - - path: '/api/myplugin/endpoint', - - validate: false, - - }, - - router.wrapErrors((context, req, res) => { - - throw Boom.notFound('not there'); // will be converted into properly interpreted error - - }) - - ) - - } - -} - -``` - -[float] -==== Move SavedQuery to New Platform -{kib-pull}51024[#51024] - -**Saved Query Service** - -Saved query service is now available on the data plugin's `query` start contract. - -```ts - -class MyPlugin { - - public start(core: CoreStart, { data }: MyPluginDependencies) { - - const allSavedQueries = data.query.savedQueries.getAllSavedQueries() - - } - -} - - - -``` - -**Saved Query UI Components** - -The Saved Query management UI components can be imported from `data` plugin directly. - -```ts - - import { SavedQueryManagementComponent, SaveQueryForm } from '../../plugins/data/public'; - -``` - -Saved query Management component - -[role="screenshot"] -image::images/breaking_changes_save_query_management.png[Saved Query Management Component] - -Save query form - -[role="screenshot"] -image::images/breaking_changes_save_query.png[Save Query Form] - -[float] -==== Kibana app migration: Remove old APIs -{kib-pull}50881[#50881] - - -The following undocumented APIs for scroll search and index document count have been removed: - -* `POST /api/kibana/legacy_scroll_continue` - -* `POST /api/kibana/legacy_scroll_start` - -* `POST /api/kibana/{id}/_count` - -[float] -==== ChromeHelpExtension -{kib-pull}50736[#50736] - -The `chrome.helpExtension` has been updated to where it no longer just accepts a function to spit out any content. Now, the extension looks like: - -```tsx - -export interface ChromeHelpExtension { - - appName: string; - - links?: HeaderHelpMenuUIExtraLink[]; - - // You can still pass custom content via the `content` key - - content?: (element: HTMLDivElement) => () => void; - -} - -``` - -[float] -==== Allows plugins to define validation schema for "enabled" flag -{kib-pull}50286[#50286] - -If you want your plugin to be disabled by default you can specify it via config: - -```js - -export const config = { - - schema: schema.object({ enabled: schema.boolean({ defaultValue: true }) }) - -} - -``` - -[float] -==== Add getStartServices API -{kib-pull}50231[#50231] - -Context is being deprecated on the front-end and replaced by the `core.getStartServices()` API. - -```ts - -class Plugin { - - setup(core, plugins) { - - core.application.register({ - - id: 'myApp', - - title: 'My App', - - // `mount` functions with just one argument will only receive `params` - - async mount(params) { - - const [coreStart, depsStart] = await core.getStartServices(); - - const { renderApp } = await import('./application'); - - return renderApp(coreStart, depsStart, params); - - } - - }); - - } - -} - -``` - -[float] -==== Relocated `@kbn/es-query` package to `data` plugin -{kib-pull}50182[#50182] - -The `@kbn/es-query` package has been moved to `src/plugins/data` and is available under the `esQuery` namespace on both the client and the server. - -```ts - -// old - -import { - - buildEsQuery, - - EsQueryConfig, - - buildQueryFromFilters, - - luceneStringToDsl, - - decorateQuery, - - getEsQueryConfig, - -} from '@kbn/es-query'; - -// new - -import { esQuery } from 'src/plugins/data/public'; // or `src/plugins/data/server` - -esQuery.buildEsQuery(...); - -``` - - -[float] -==== Migrate share registry -{kib-pull}50137[#50137] - -The `ui/share` registry is removed in favor of the `share` plugin which exposes a `register` method in the setup contract. The interface of share menu providers does not change except for the removal of angular dependency injection. The function to render the menu also moves into a function exposed by the `share` plugin in the start phase instead of a function which has to be called with the menu item providers. The following items have also been renamed: - -- `ShowProps` -> `ShowShareMenuOptions` - -- `ShareMenuItemProps` -> `ShareContext` - -- `showShareContextMenu` -> `toggleShareContextMenu` - -[float] -==== Ensure chromeless applications hide left navbar link -{kib-pull}50060[#50060] - -Chromeless applications no longer display a navigation link in the left application menu. - -[float] -==== Allow registered applications to hide Kibana chrome -{kib-pull}49795[#49795] - -When registering an application, you can now use the `chromeless` option to hide the Kibana chrome UI when the application is mounted. - -```ts - -application.register({ - - id: 'my-app', - - chromeless: true, - - async mount(context, params) { - - /* ... */ - - }, - -}); - -``` - -[float] -==== Remove react references from core `Notifications` APIs -{kib-pull}49573[#49573] - -The core `NotificationService` and `ToastsApi` methods are now framework agnostic -and no longer accept react components as input. Please use `kibana_react`'s`toMountPoint` -utility to convert a react node to a mountPoint. - -[float] -==== Shim dev tools -{kib-pull}49349[#49349] - -The `ui/registry/dev_tools` is removed in favor of the `DevTools` plugin, -which exposes a `register` method in the setup contract. -Registering app works mostly the same as registering apps in `core.application.register`. -Routing will be handled by the id of the dev tool - your dev tool will be mounted when the URL matches `/app/kibana#/dev_tools/<YOUR ID>`. This API doesn't support angular, for registering angular dev tools, bootstrap a local module on mount into the given HTML element. - -[float] -==== Kibana app migration: Shim dashboard -{kib-pull}48913[#48913] - -The route flag `requireDefaultIndex` making sure there are index patterns -and the `defaultIndex` advanced setting is set was removed. - -The same functionality can be achieved by using the -helper function `ensureDefaultIndexPattern` from `ui/legacy_compat` within the `resolve` object of a route. - -[float] -==== Remove react references from core `OverlayService` apis -{kib-pull}48431[#48431] - -The core `OverlayService` methods are now framework agnostic and no longer accept react components as input. -Please use `kibana_react`'s`toMountPoint` utility to convert a react component to a mountPoint. - -For exemple: - -```typescript - -core.overlays.openModal(<MyComponent/>) - -``` - -Becomes: - -```typescript - -core.overlays.openModal(toMountPoint(<MyComponent/>)) - -``` - -[float] -==== Supply deprecated req and res properties on IHttpFetchError for legacy compatibility -{kib-pull}48430[#48430] - -Expose deprecated `req: Request` and `res: Response` properties on `IHttpFetchError`s -to help plugins migrated faster by removing an additional migration burden. - -[float] -==== Timelion server API -{kib-pull}47813[#47813] - -The server side AOU of Timelion `/api/timelion/run` used to -accept datemath strings (like `now`) for the `time.from` and `time.to` properties. -This PR removes support for datemath, from now on only ISO8601 encoded strings are supported. - -[float] -==== Pass along request object to all HTTP interceptors -{kib-pull}47258[#47258] - -Make the `Request` instance available to all HTTP interceptors, which is now in a read-only state. -You may now also under-specify the object returned from HTTP response interceptors -to only overwrite specific properties. - -[float] -==== Expose whitelisted config values to client-side plugin -{kib-pull}50641[#50641] - -New Platform plugins with both a server and client parts can now expose configuration properties to the client-side plugin. - -The properties to expose must be whitelisted in the config declaration. - -```typescript - -// my_plugin/server/index.ts - -const configSchema = schema.object({ - - secret: schema.string({ defaultValue: 'Not really a secret :/' }), - - uiProp: schema.string({ defaultValue: 'Accessible from client' }), - -}); - -type ConfigType = TypeOf<typeof configSchema>; - -export const config: PluginConfigDescriptor<ConfigType> = { - - exposeToBrowser: { - - uiProp: true, - - }, - - schema: configSchema, - -}; - -``` - -And can then be accessed in the client-side plugin using the `PluginInitializerContext`: - -```typescript - -// my_plugin/public/index.ts - -interface ClientConfigType { - - uiProp: string; - -} - -export class Plugin implements Plugin<PluginSetup, PluginStart> { - - constructor(private readonly initializerContext: PluginInitializerContext) {} - - public async setup(core: CoreSetup, deps: {}) { - - const config = this.initializerContext.config.get<ClientConfigType>(); - - // ... - - } - -``` - -[float] -==== Allow registering per-app navigation items -{kib-pull}53136[#53136] - -Allow registering per-app TopNavMenuItems—have a plugin register menu items into another application. - -*New platform plugin* - -```tsx - -class MyPlugin { - - public setup(core: CoreSetup, { navigation }: MyPluginSetupDependencies) { - - const customDiscoverExtension = { - - id: 'registered-discover-prop', - - label: 'Registered Discover Button', - - description: 'Registered Discover Demo', - - run() {}, - - testId: 'demoDiscoverRegisteredNewButton', - - appName: 'discover', - - }; - - navigation.registerMenuItem(customDiscoverExtension); - - } - -} -``` - -*Legacy plugin* - -```tsx - -const customDiscoverExtension = { - - id: 'registered-discover-prop', - - label: 'Registered Discover Button', - - description: 'Registered Discover Demo', - - run() {}, - - testId: 'demoDiscoverRegisteredNewButton', - - appName: 'discover', - -}; - -npSetup.plugins.navigation.registerMenuItem(customDiscoverExtension); -``` - -[float] -==== Management API for Kibana Platform -{kib-pull}52579[#52579] - -Management API for Kibana Platform implemented. -Demonstration code available at `test/plugin_functional/plugins/management_test_plugin/public/plugin.tsx` - - -[float] -==== New platform applications can now prompt user with a message -{kib-pull}54221[#54221] - -New platform applications can now prompt a message when users are trying to -leave the app, allowing to notify them if some changes are unsaved. - -```typescript - - core.application.register({ - - id: 'my-app', - - title: 'MyApp', - - mount: (context, { appBasePath, element, onAppLeave }) => { - - onAppLeave(actions => { - - if(someUnsavedChanges) { - - return actions.confirm( - - 'Some changes are unsaved and will be lost. Are you sure you want to leave MyApp?', - - 'Leaving application' - - ); - - } - - return actions.default(); - - }); - - const div = document.createElement('div'); - - div.innerHTML = '.....'; - - element.appendChild(div); - - return () => div.remove(); - - }, - - }); - -``` - -[float] -==== [NP] Add lifecycle timeout -{kib-pull}54129[#54129] - -{kib} platform deprecates async lifecycles by `v8` release. -{kib} supports async lifecycles for BWC, but limits their time duration to 30 sec. - - -[float] -==== Migrate config deprecations and `ShieldUser` functionality to the New Platform -{kib-pull}53768[#53768] - -In the Security Plugin, the -Legacy `ShieldUser` angular service has been removed and replaced with -the dedicated method on the {kib} platform plugin `setup` contract: - -**Before**: - -```typescript - -const currentUser = await $injector.get('ShieldUser').getCurrent().$promise; - -``` - -**Now**: - -Legacy plugin: - -```typescript - -import { npSetup } from 'ui/new_platform'; - -const currentUser = await npSetup.plugins.security.authc.getCurrentUser(); - -``` - -Kibana platform plugin: - -```json - -// manifest.json - -.... - -[optional]requiredPlugins: ["security"], - -.... - -``` - -```typescript - -// my_plugin/public/plugin.ts - -public setup(core: CoreSetup, { security }: PluginSetupDependencies) { - - const currentUser = await security.authc.getCurrentUser(); - -} - -``` - -[float] -==== NP Migration: Move doc views registry and existing doc views into discover plugin -{kib-pull}53465[#53465] - -The `ui/registry/doc_views` registry is removed in favor of the same -functionality exposed through the setup contract of the `discover` plugin in `core_plugins/kibana`. - -Old way of registering a doc view: - -```ts - -import { addDocView } from 'ui/registry/doc_views'; - -addDocView({ - - title: '', - - order: 10, - - component: MyComponent, - -}); - -``` - -New way of registering a doc view: - -```ts - -import { setup } from '../src/legacy/core_plugins/kibana/public/discover'; - -setup.addDocView({ - - title: '', - - order: 10, - - component: MyComponent, - -}); - -``` - - -[float] -==== bfetch -{kib-pull}52888[#52888] - -`ajax_stream` has been ported to the New Platform. Use `fetchStreaming()` method of `bfetch` plugin instead. - -```js - -import { npStart } from 'ui/new_platform'; - -const { stream, promise } = npStart.plugins.bfetch.fetchStreaming({ url: 'http://elastic.co' }); - -``` - -[float] -==== Move CSP options to New Platform -{kib-pull}52698[#52698] - -The default options used for managing Kibana's Content Security Policy have been moved into core for the new platform. Relevant items exposed from `src/core/server` include: - -- `CspConfig`: TypeScript class for generating CSP configuration. Will generate default configuration for any properties not specified in initialization. - -- `CspConfig.DEFAULT`: Default CSP configuration. - -- `ICspConfig`: Interface representing CSP configuration. - - -[float] -==== Implements config deprecation in New Platform -{kib-pull}52251[#52251] - - -New platform plugin's configuration now supports deprecation. Use the `deprecations` key of a plugin's config descriptor to register them. - -```typescript - - // my_plugin/server/index.ts - - import { schema, TypeOf } from '@kbn/config-schema'; - - import { PluginConfigDescriptor } from 'kibana/server'; - - - - const configSchema = schema.object({ - - someNewKey: schema.string({ defaultValue: 'a string' }), - - }); - - - - type ConfigType = TypeOf<typeof configSchema>; - - - - export const config: PluginConfigDescriptor<ConfigType> = { - - schema: configSchema, - - deprecations: ({ rename, unused }) => [ - - rename('someOldKey', 'someNewKey'), - - unused('deprecatedProperty'), - - ], - - }; - -``` - - -[float] -==== [Telemetry] Migrate ui_metric plugin to NP under usageCollection -{kib-pull}51972[#51972] - -Migrates `ui_metrics` to NP under `usageCollection`. - -[float] -==== NP licensing plugin improvements -{kib-pull}51818[#51818] - - -Licensing plugin retrieves license data from {es} and -becomes a source of license data for all {kib} plugins on server-side and client-side. - -*Server-side API* - -The licensing plugin retrieves license data from {es} at regular configurable intervals. - -- `license$: Observable<ILicense>` Provides a steam of license data ILicense. -Plugin emits new value whenever it detects changes in license info. -If the plugin cannot retrieve a license from **Elasticsearch**, it will emit `an empty license` object. - -- `refresh: () => Promise<ILicense>` allows a plugin to enforce license retrieval. - -*Client-side API* - -The licensing plugin retrieves license data from licensing Kibana plugin -and does not communicate with Elasticsearch directly. - -- `license$: Observable<ILicense>` Provides a steam of license data ILicense. -Plugin emits new value whenever it detects changes in license info. If the plugin cannot retrieve a -license from **Kibana**, it will emit `an empty license` object. - -- `refresh: () => Promise<ILicense>` allows a plugin to enforce license retrieval. - - - -[float] -==== [Cloud] move cloud plugin to New Platform -{kib-pull}51789[#51789] - -Fully migrates `cloud` plugin over to NP. To use the NP contract exposed by -the cloud plugin (ex `cloudId` or `isCloudEnabled`) follow this quick guide below. -Note that all the plugins are already migrated to use the NP plugin in this very same PR. - -```json - -// plugin/kibana.json - -{ - - "id": "...", - - "optionalPlugins": ["cloud"] - -} - -``` - -*Server side:* Check for cloud plugin in the `setup` function. - -```ts - -// server/plugin.ts - -import { get } from 'lodash'; - -class Plugin { - - setup(core, plugins) { - - const { cloud } = plugins; - - // use `lodash.get` as cloud might not be available if set as an optional plugin. - - const isCloudEnabled = get<boolean>(cloud, 'isCloudEnabled', false); - - // ... - - } - -} - -``` - -*Client side:* Both `cloudId` and `isCloudEnabled` are exposed for the the plugins to consume -in the plugins. Until fully transitioned to new platform, your plugins can use `npSetup` to access the cloud plugin. - -```ts - -import { npSetup } from 'ui/new_platform'; - -import { get } from 'lodash'; - -// ... - -const { cloud } = npSetup.plugins; - -const isCloudEnabled = get<boolean>(cloud, 'isCloudEnabled', false); - -``` - -[float] -==== [Telemetry] Migrate Usage Collector Set to the new Kibana Platform -{kib-pull}51618[#51618] - -Fully migrate (`server.usage.collectorSet`) to New Platform under (`UsageCollection`) plugin. -To use the `UsageCollector` plugin to collect server side stats with the NP follow the quick guide below (Note that all the plugins are already migrated to use this new plugin in this very same PR): - -Make sure `usageCollection` is in your optional Plugins: - -```json - -// plugin/kibana.json - -{ - - "id": "...", - - "optionalPlugins": ["usageCollection"] - -} - -``` - -Register Usage collector in the `setup` function: - -```ts - -// server/plugin.ts - -class Plugin { - - setup(core, plugins) { - - registerMyPluginUsageCollector(plugins.usageCollection); - - } - -} - -``` - -Create and register a Usage Collector. Ideally collectors would be defined in a separate directory `server/collectors/register.ts`. - -```ts - -// server/collectors/register.ts - -import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; - -import { CallCluster } from 'src/legacy/core_plugins/elasticsearch'; - -export function registerMyPluginUsageCollector(usageCollection?: UsageCollectionSetup): void { - - // usageCollection is an optional dependency, so make sure to return if it is not registered. - - if (!usageCollection) { - - return; - - } - - // create usage collector - - const myCollector = usageCollection.makeUsageCollector({ - - type: MY_USAGE_TYPE, - - fetch: async (callCluster: CallCluster) => { - - // query ES and get some data - - // summarize the data into a model - - // return the modeled object that includes whatever you want to track - - return { - - my_objects: { - - total: SOME_NUMBER - - } - - }; - - }, - - }); - - // register usage collector - - usageCollection.registerCollector(myCollector); - -} - -``` - -[float] -==== Move SearchBar to NP -{kib-pull}51028[#51028] - -The SearchBar component is now available by importing from the data plugin. - -```tsx - -import { SearchBar } from '../../../plugins/data/public'; - -``` - -There is also a stateful version available, that requires much fewer dependencies - -```tsx - -export class MyPublicPlugin { - - public start( - - core: CoreStart, - - { data }: MyPublicPluginDependencies - - ) { - - const { SearchBar } = data.ui; - - ... - - return <SearchBar - - ... - - ></SearchBar> - - } - -} - -``` - -[float] -==== Move QueryBarInput to New Platform -{kib-pull}51023[#51023] - - -* `QueryBarInput` was renamed to `QueryStringInput` and moved to `src/plugins/data/public` - -* The `typeahead` UI component can now be used independently of `QueryStringInput`. It can be imported from `src/plugins/data/public`. - -```ts - - import { QueryStringInput, SuggestionsComponent } from '../../plugins\data\public' - -``` - -[float] -==== Move ApplyFiltersPopover to New Platform -{kib-pull}51022[#51022] - -The `ApplyFiltersPopover` component is no longer exported. - -If you wish to open the filter selection popover, -use the Actions API from within an `embeddable`: - -```ts - - await uiActions.executeTriggerActions(APPLY_FILTER_TRIGGER, { - - embeddable: this, - - filters, - - }); - -``` - -[float] -==== Deprecated the `filter-bar` directive -{kib-pull}51020[#51020] - -If you need to render a filter bar from `angular`, -use the `kbn-top-nav` directive with the following configuration: - -```ts - -<kbn-top-nav - - app-name="'my-app'" - - show-search-bar="true" - - show-filter-bar="true" - - show-save-query="false" - - show-date-picker="false" - - filters="filters" - - on-filters-updated="updateFilters" - - index-patterns="[indexPattern]" - -> - -</kbn-top-nav> - -``` - -*Move `FilterBar` React component to New Platform* - -The `FilterBar` component is now available by importing from the `data` plugin. - -```ts - -import { FilterBar } from '../../../plugins/data/public'; - -``` -*Move filter related utilities to New Platform* - - * `IDataPluginServices` ⇒ import from `data` - - * `getDisplayValueFromFilter` ⇒ `data.utils` - - * `buildCustomFilter` ⇒ `esFilters.buildCustomFilter` - - * `buildFilter` ⇒ `esFilters.buildFilter` - - * `getFilterParams` ⇒ `esFilters.getFilterParams` - - * `getIndexPatternFromFilter` ⇒ `utils.getIndexPatternFromFilter` - - * `getQueryDslFromFilter` ⇒ replaced with `esFilters.cleanFIlter` - - * `isFilterable` ⇒ import from `data` - - -[float] -==== NP Kibana plugin home feature catalogue -{kib-pull}50838[#50838] - -The `ui/registries/feature_catalogue` module has been deprecated for removal in 8.0. - -Plugins wishing to migrate may remove their usage of `ui/registries/feature_catalogue` and rely on either: - -```ts - -// For legacy plugins - -import { npSetup } from 'ui/new_platform'; - -npSetup.plugins.home.featureCatalogue.register(/* same details here */); - -// For new plugins: first add 'home` to the list of `optionalPlugins` - -// in your kibana.json file. Then access the plugin directly in `setup`: - -class MyPlugin { - - setup(core, plugins) { - - if (plugins.home) { - - plugins.home.featureCatalogue.register(/* same details here. */); - - } - - } - -} - -``` - -Note that the old module supported providing a Angular DI function to receive Angular dependencies. This is no longer supported as we migrate away from Angular. - - -[float] -==== [NP Kibana Migrations ] Kibana plugin home -{kib-pull}50444[#50444] - -The API to register new tutorials was moved to the new platform. You are now able to add new tutorials by creating a plugin in the new platform, adding a dependency to `home` in its `kibana.json` and using the `tutorials.registerTutorial` method in the setup lifecycle: - -```ts - -class MyPlugin { - - setup(core: CoreSetup, plugins: { home: HomeServerPluginSetup }) { - - home.tutorials.registerTutorial(() => ({ /* tutorial definition */ })); - - } - -} - -``` - -It is still possible to register tutorials from within the legacy platform by calling the same method exposed on the server object: - -```js - -server.newPlatform.setup.plugins.home.tutorials.registerTutorial(() => ({ /* tutorial definition */ })); - -``` - -[float] -==== Expressions fully migrated to the New Platform -{kib-pull}50294[#50294] - -The Expressions service has been moved to the New Platform. Moving forward, any expressions-related code should be consumed via the new plugin's contracts (`src/plugins/expressions`). - -Use it in your New Platform plugin: - -```ts - -class MyPlugin { - - setup (core, { expressions }) { - - expressions.registerFunction(myFunction); - - // ... - - } - - start (core, { expressions }) { - - expressions.execute(myExpression); - - // ... - - } - -} - -``` - -Or, in your legacy platform plugin, consume it through the `ui/new_platform` module: - -```ts - -import { npSetup, npStart } from 'ui/new_platform'; - -npSetup.plugins.expressions.registerFunction(myFunction); - -npStart.plugins.expressions.execute(myExpression); - -// ... - -``` - -[float] -==== Move generateFilters to NP -{kib-pull}50118[#50118] - -Filter generator is now available as a utility function in the `data` plugin. - -```ts - -import { generateFilters } from '../plugins/data/public'; - -const { filterManager } = plugins.data.query; - -const filters = generateFilters(filterManager, field, values, negate, indexString); - -``` - -[float] -==== Move Query type to NP -{kib-pull}49636[#49636] - -Moved the data `Query` type, used to represent a query string in a specific querying language to `src/plugins/data`. - -```ts - -// previously - -import { Query } from `src/legacy/core_plugins/data/public`; - -// now - -import { Query } from `src/plugins/data/public`; - -``` - -[float] -==== Move Timefilter service to NP -{kib-pull}49491[#49491] - -Moved the `timefilter` service to New Platform. - -**Usage in Old Platform**: - -```ts - -import { TimeRange } from 'src/plugins/data/public'; - -import { npSetup, npStart } from 'ui/new_platform'; - -const { timefilter } = npStart.data.timefilter; - -const timeRange: TimeRange = timefilter.getTime(); - -const refreshInterval: RefreshInterval = timefilter.getRefreshInterval() - -``` - -**Usage in New Platform**: - -```ts - -class MyPlugin { - - public setup(core: CoreSetup, { data }: MyPluginSetupDependencies) { - - const timeRange: TimeRange = data.timefilter.timefilter.getTime(); - - } - - public start(core: CoreStart, { data }: MyPluginStartDependencies) { - - const newTimeRange = { from: getYesterday(), to: getNow() } - - data.timefilter.timefilter.setTime(newTimeRange); - - } - -} - -``` - -[float] -==== Move Storage to New Platform -{kib-pull}49448[#49448] - -Move `Storage` to `kibana_utils`. - - - Move `Storage` class to NP, and introduce the interface `IStorageWrapper` for when we only pass storage around. - - - Rename places where `storage` was called `store` - - - Load the Storage directives only where applicable (not in autoload) - -[float] -==== Licensing plugin -{kib-pull}49345[#49345] - -Add x-pack plugin for new platform public licensing information. This will eventually replace the licensing information consumed via `xpack_main`. Upon setup, this plugin exposes an observable API for inspecting and making checks against the license information. - -```ts - -license$.subscribe(license => { - - console.log(license.uid); - - console.log(license.isActive); - - console.log(license.type); - - const { state } = license.check('my-plugin', LICENSE_TYPE.gold); - - if (state !== LICENSE_STATUS.Valid) { - - disableSomething(); - - } - -}); - -``` - -[float] -==== Migrate ui/registry/feature_catalogue to New Platform plugin -{kib-pull}48818[#48818] - -The `ui/registries/feature_catalogue` module has been deprecated for removal in 8.0. - -Plugins wishing to migrate may remove their usage of `ui/registries/feature_catalogue` and rely on either: - -```ts - -// For legacy plugins - -import { npSetup } from 'ui/new_platform'; - -npSetup.plugins.feature_catalogue.register(/* same details here */); - -// For new plugins: first add 'feature_catalogue` to the list of `optionalPlugins` - -// in your kibana.json file. Then access the plugin directly in `setup`: - -class MyPlugin { - - setup(core, plugins) { - - if (plugins.feature_catalogue) { - - plugins.feature_catalogue.register(/* same details here. */); - - } - - } - -} - -``` - -Note that the old module supported providing a Angular DI function to receive Angular dependencies. This is no longer supported as we migrate away from Angular. - -[float] -==== Migrate necessary ui/autoload functionality to NP -{kib-pull}48689[#48689] - -The `ui/autoload/styles` and `ui/autoload/settings` modules have been removed and are no longer necessary to import in your plugin code. Remove these imports starting in 7.6. - -If you still require font awesome, you should import it manually from the npm module: - -```ts - -import 'font-awesome/less/font-awesome'; - -``` - -[float] -==== Provide uiSettings service in NP -{kib-pull}48413[#48413] - -New platform plugins can register custom uiSettings via the `uiSettings.register` method. - -```js - -// src/plugins/my-plugin/server/plugin.ts - -setup(core: CoreSetup){ - - core.uiSettings.register({ - - 'my-plugin:my-setting': { - - name: 'just-work', - - value: true, - - description: 'make it work', - - category: ['my-category'], - - }, - - }) - -} - -``` - -**Access UiSettings client** - -- Via RequestHandlerContext on server-side: - -```js - -(context, req, res) { - - const uiSettingsClient = context.core.uiSettings.client; - - const value = await uiSettings.get('myPlugin:key'); - - // ... - -} - -``` - -- Via core interface in setup/start lifecycles on the client-side: - -```js - -public start({ uiSettings }) { - - const value = uiSettings.get('myPlugin:key'); - -``` - -[float] -==== Move FilterManager to New Platform -{kib-pull}48391[#48391] - -Moved Filter Manager to New Platform. - -**Usage in Old Platform** - -```ts - -import { npSetup, npStart } from 'ui/new_platform'; - -npStart.data.query.filterManager.getFilters() - -... - -``` - -**Usage in New platform** - -```ts - -class MyPlugin { - - public setup(core: CoreSetup, { data }: MyPluginSetupDependencies) { - - data.query.filterManager.getFilters(); - - } - - public start(core: CoreStart, { data }: MyPluginStartDependencies) { - - data.query.filterManager.getFilters(); - - } - -} - -``` - -[float] -==== Migrate ui/doc_title to New platform -{kib-pull}48121[#48121] - -Migrate `chrome.docTitle` to new platform. Plugins can now change the page title using this API. - -```ts - -coreStart.docTitle.change('My Title'); - -``` - -[float] -==== Use NP registry instead of ui/registry/field_formats -{kib-pull}48108[#48108] - -The `FieldFormats` service has been moved to the `data` plugin in the New Platform. -If your plugin has any imports from `ui/registry/field_formats`, you'll need to update your imports as follows: - -Use it in your New Platform plugin: - -```ts - -class MyPlugin { - - setup (core, { data }) { - - data.fieldFormats.register(myFieldFormat); - - // ... - - } - - start (core, { data }) { - - data.fieldFormats.getType(myFieldFormatId); - - // ... - - } - -} - -``` - -Or, in your legacy platform plugin, consume it through the `ui/new_platform` module: - -```ts - -import { npSetup, npStart } from 'ui/new_platform'; - -npSetup.plugins.data.fieldFormats.register(myFieldFormat); - -npStart.plugins.data.fieldFormats.getType(myFieldFormatId); - -// ... - -``` - -[float] -==== ui/management to New Platform -{kib-pull}45747[#45747] - -The following interfaces were previously available under `ui/management` -and are now available via `import { setup as managementSetup }`` -from `'${correct path to top dir}src/legacy/core_plugins/management/public/legacy';` - -* `ui/management/saved_objects_management` - -* `ui/management/index_pattern_creation` - -* `ui/management/index_pattern_list` - -[float] -==== `ui/public` cleanup -{kib-pull}43511[#43511] - -**Removed / moved modules** - -In preparation for Kibana's upcoming new platform, we are in the process -of migrating awayfrom the `ui/public` directory. -Over time, the contents of this directory will be either deprecated or -housed inside a parent plugin. - -If your plugin imports the listed items from the following `ui/public` modules, -you will need to either update your import statements as indicated below, -so that you are pulling these modules from their new locations, -or copy the relevant code into your plugin. - -[float] -**`ui/state_management`** -{kib-pull}51835[#51835] -{kib-pull}52172[#52172] -{kib-pull}52280[#52280] -{kib-pull}53582[#53582] - -The `hashUrl` and `unhashUrl` functions no longer rely on states being provided as an argument, therefore `getUnhashableStates`/`getUnhashableStatesProvider` have been removed. - -```ts -// old - -import { - - hashUrl, - - unhashUrl, - - getUnhashableStatesProvider, // deprecated - -} from 'ui/state_management/state_hashing'; - -const getUnhashableStates = Private(getUnhashableStatesProvider); - -unhashUrl(window.location.href, getUnhashableStates()); - -hashUrl([new AppState(), globalState], myRedirectUrl); - -// new - -import { hashUrl, unhashUrl } from '../../plugins/kibana_utils/public' - -hashUrl(window.location.href); - -unhashUrl(myRedirectUrl); - -``` - -HashedItemStore was also moved to the `kibana_utils` plugin. - -```ts -// old - -import { HashedItemStoreSingleton } from 'ui/state_management/state_storage' - -// new - -import { hashedItemStore } from '../../plugins/kibana_utils/public' - -``` - -Created new state syncing utilities for syncing state between state containers and different type of state storage (e.g. query params in URL or session storage). - -Example app: `examples/state_containers_examples` - -This should become a replacement for `AppState` and `GlobalState` in NP. - -**`ui/public/utils` cleanup** - -- `base_object` and `find_by_param` utilities have been removed {kib-pull}52500[#52500] - -- `decode_geo_hash` and `zoom_to_precision` utilities have been moved to `ui/vis/map`{kib-pull}52615[#52615] - -- `range` utility has beed moved to `ui/vis/editors/default` {kib-pull}52615[#52615] - -- `cidr_mask`, `date_range`, `geo_utils`, `ip_range`, `ordinal_suffix` utilities have been moved to `ui/agg_types` {kib-pull}52744[#52744] - -- `case_conversion` {kib-pull}53819[#53819] - - - `keysToSnakeCaseShallow` moved to `src/legacy/server/status/lib` - - - `keysToCamelCaseShallow` moved to `src/legacy/core_plugins/kibana/public/management` - -- `collection` {kib-pull}53819[#53819] - - - `organizeBy moved to `src/legacy/ui/public/indexed_array` - - - `pushAll` was removed - -- `diff_object moved to `ui/state_management` {kib-pull}53819[#53819] - -- `function` was removed {kib-pull}53819[#53819] - -- `key_map` moved to `ui/directives` {kib-pull}53819[#53819] - -- `math` moved to `ui/vis` {kib-pull}53819[#53819] - -- `numeric` moved to `src/legacy/core_plugins/kibana/public/management` {kib-pull}53819[#53819] - -- `parse_interval` moved to`src/legacy/core_plugins/data/common` {kib-pull}53819[#53819] - -- `sort_prefix_first` moved to `x-pack/legacy/plugins/kuery_autocomplete` {kib-pull}53819[#53819] - -- `supports` moved to `src/legacy/core_plugins/tile_map/public` {kib-pull}53819[#53819] - -[float] -==== Index Patterns moved to New Platform -{kib-pull}43438[#43438] - -The `indexPatterns` service is now available from the data plugin. - -```ts - -class MyPlugin { - - start(core, data) { - - const indexPatterns = data.indexPatterns.get(indexPatternId); - - ... - - } - -} -``` - -[float] -**Type Definitions** - - * The `IndexPattern` type replaces the legacy `StaticIndexPattern` type - * `IndexPattern` was moved to the new plugin. - * `FieldList` was moved to the new plugin and the `IFieldList` type was added. - * `Field` was moved to the new plugin, along side the `IFieldType` type. -```ts - - import { IIndexPattern, IFieldType } from 'src/plugins/data/public'; - - const indexPattern: IIndexPattern = data.indexPatterns.find(indexPatternId); - - const field: IFieldType[] = indexPattern.fields; - -``` - -**Helper functions** - -```ts - - import { indexPatterns as indexPatternsUtils } from 'src/plugins/data/public'; - - const indexPattern: IIndexPattern = indexPatterns.getFromSavedObject(savedObject) - - const isValid = indexPatterns.validateIndexPattern(indexPatternString) - -``` - -**Deletions** - - * `IndexPatternAlreadyExists` - - * `NoDefaultIndexPattern` - - * `NoDefinedIndexPatterns` diff --git a/docs/migration/migrate_7_7.asciidoc b/docs/migration/migrate_7_7.asciidoc deleted file mode 100644 index 60b3e37d5274..000000000000 --- a/docs/migration/migrate_7_7.asciidoc +++ /dev/null @@ -1,939 +0,0 @@ -[[breaking-changes-7.7]] -== Breaking changes in 7.7 -++++ -<titleabbrev>7.7</titleabbrev> -++++ - -This page discusses the breaking changes that you need to be aware of when migrating -your application to Kibana 7.7. - -// The following section is re-used in the Installation and Upgrade Guide -// tag::notable-breaking-changes[] - -// end::notable-breaking-changes[] - -[float] -=== Breaking changes for users - -There are no user-facing breaking changes in 7.7. - -[float] -=== Breaking changes for plugin developers - -[discrete] -==== Add addInfo toast to core notifications service - -This Info toast will be used for the async search notifications. - -*via {kib-pull}60574[#60574]* - -[discrete] -==== Goodbye, legacy data plugin - -The legacy `data` plugin located in `src/legacy/core_plugins/data` has been removed. This change only affects legacy platform plugins which are either: -1. Importing the `public/setup` or `public/legacy` "shim" files from the legacy data plugin to access runtime contracts; or -2. importing static code from inside `src/legacy/core_plugins/data`; or -3. explicitly using `require: ['data']` in the plugin definition. - -For scenario 1 above, you should migrate your plugin to access the services you need from the new platform `data` plugin. These are accessible in the legacy world by using `ui/new_platform`: -```diff -- import { start as dataStart } from 'src/legacy/core_plugins/data/public/legacy'; -+ import { npStart } from 'ui/new_platform'; -+ const dataStart = npStart.plugins.data; -``` - -For scenario 2, the equivalent static code you've been importing should now be available from `src/plugins/data`, in the `server` or `public` directories: -```diff -- import { someStaticUtilOrType } from 'src/legacy/core_plugins/data/public'; -+ import { someStaticUtilOrType } from 'src/plugins/data/public'; -``` - -For scenario 3, you should be able to safely drop the reference to the plugin, and add `data` to your list of dependencies in `kibana.json` whenever your plugin migrates to the new Kibana platform: -```diff -// index.ts -const myPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => - new Plugin({ - id: 'my_plugin', -- require: ['kibana', 'elasticsearch', 'visualizations', 'data'], -+ require: ['kibana', 'elasticsearch', 'visualizations'], - ..., - }) -); -``` - -For more information on where to locate new platform `data` services, -please refer to the table of -https://github.com/elastic/kibana/blob/master/src/core/MIGRATION.md#plugins-for-shared-application-services[plugins for shared application services] -in `src/core/MIGRATION.md`. - -*via {kib-pull}60449[#60449]* - -[discrete] -==== Delete FilterStateManager and QueryFilter - -Delete unused legacy exports `FilterStateManager`, `QueryFilter`, and `SavedQuery`. - -*via {kib-pull}59872[#59872]* - -[discrete] -==== Add UiSettings validation & Kibana default route redirection - -UiSettings definition allows to specify validation functions: -```js -import { schema } from '@kbn/config-schema'; - -uiSettings.register({ - myUiSetting: { - name: ... - value: 'value', - schema: schema.string() - } -}) -``` - -*via {kib-pull}59694[#59694]* - -[discrete] -==== Allow disabling xsrf protection per an endpoint - -Route configuration allows to disable xsrf protection for destructive HTTP methods: - -```js -routet.get({ path: ..., validate: ..., options: { xsrfRequired: false } }) -``` -*via {kib-pull}58717[#58717]* - -[discrete] -==== Add core metrics service - -A new `metrics` API is available from core, which allows retrieving various -metrics regarding the HTTP server, process, and OS load/usages. - -```typescript -core.metrics.getOpsMetrics$().subscribe(metrics => { - // do something with the metrics -}) -``` - -*via {kib-pull}58623[#58623]* - -[discrete] -==== Add an optional authentication mode for HTTP resources - -A route config accepts `authRequired: 'optional'`. A user can access a resource if has valid credentials or no credentials at all. Can be useful when we grant access to a resource but want to identify a user if possible. -```js -router.get( { path: '/', options: { authRequired: 'optional' } }, handler); -``` - -*via {kib-pull}58589[#58589]* - -[discrete] -==== Migrate doc view part of discover - -The extension point for registering custom doc views was migrateed and can be used directly within the new platform. - -A working example of the new integration can be seen in `test/plugin_functional/plugins/doc_views_plugin/public/plugin.tsx`. - -To register doc views, list `discover` as a required dependency of your plugin and use the `docViews.addDocView` method exposed in the setup contract: -```tsx -export class MyPlugin implements Plugin<void, void> { - public setup(core: CoreSetup, { discover }: { discover: DiscoverSetup }) { - discover.docViews.addDocView({ - component: props => { - return /* ... */; - }, - order: 2, - title: 'My custom doc view', - }); - } - - /* ... */ -} - -``` - -*via {kib-pull}58094[#58094]* - -[discrete] -==== [Telemetry] Server backpressure mechanism - -Add a backpressure mechanism for sending telemetry on the server. -Usage data will always be sent from the browser even if we are also sending -it from the server. Server side Telemetry usage data sender will send an `OPTIONS` -request before `POST`ing the data to our cluster to ensure the endpoint is reachable. - -[discrete] -*Fallback mechanism* - -. Always send usage from browser regardless of the `telemetry.sendUsageFrom` kibana config. - - -*Server usage backpressure* - -. Send usage from server in addition to browser if `telemetry.sendUsageFrom` is set to `server`. - -. Initial server usage attempt is after 5 minutes from starting kibana. Attempt to send every 12 hours afterwards. - -. Stop attempting to send usage from the server if the attempts fail three times (initial attempt 5 minutes from server start, and two consecutive 12 hours attempts). - -. Restart attempt count after each kibana version upgrade (patch/minor/major). - -. Restart attempt count if it succeeds in any of the 3 tries. - -*Sending usage mechanism from server:* - -Send `OPTIONS` request before attempting to send telemetry from server. `OPTIONS` is less intrusive as it does not contain any payload and is used to check if the endpoint is reachable. We can also use it in the future to check for allowed headers to use etc. - -* If `OPTIONS` request succeed; send usage via `POST`. - -* If `OPTIONS` request fails; dont send usage and follow the retry logic above. - -*via {kib-pull}57556[#57556]* - -[discrete] -==== Expressions server-side - -It is now possible to register expression functions and types on the Kibana server and execute expressions on the server. The API is the same as in the browser-side plugin, e.g: - -```ts -plugins.expressions.registerFunction(/* ... */); -const result = await plugins.expressions.run('var_set name="foo" value="bar" | var name="foo"', null); -``` - -*via {kib-pull}57537[#57537]* - -[discrete] -==== Local actions - -`actionIds` property has been removed from`Trigger` interface in `ui_actions` plugin. Use `attachAction()` method instead, for example: - -```ts -plugins.uiActions.attachAction(triggerId, actionId); -``` - -Instead of previously: - -```ts -const trigger = { - id: triggerId, - actionIds: [actionId], -}; -``` - -*via {kib-pull}57451[#57451]* - -[discrete] -==== Use log4j pattern syntax - -Logging output of the New platform plugins can use adjusted -via https://github.com/elastic/kibana/blob/master/src/core/server/logging/README.md[new config]. - -*via {kib-pull}57433[#57433]* - -[discrete] -==== Allow savedObjects types registration from NP - -A new `registerType` API has been added to the core savedObjects `setup` API, -allowing to register savedObject types from new platform plugins - -```ts -// src/plugins/my_plugin/server/saved_objects/types.ts -import { SavedObjectsType } from 'src/core/server'; -import * as migrations from './migrations'; - -export const myType: SavedObjectsType = { - name: 'MyType', - hidden: false, - namespaceAgnostic: true, - mappings: { - properties: { - textField: { - type: 'text', - }, - boolField: { - type: 'boolean', - }, - }, - }, - migrations: { - '2.0.0': migrations.migrateToV2, - '2.1.0': migrations.migrateToV2_1 - }, -}; - -// src/plugins/my_plugin/server/plugin.ts -import { SavedObjectsClient, CoreSetup } from 'src/core/server'; -import { myType } from './saved_objects'; - -export class Plugin() { - setup: (core: CoreSetup) => { - core.savedObjects.registerType(myType); - } -} -``` - -Please check the migration guide for more complete examples and migration procedure. - -*via {kib-pull}57430[#57430]* - -[discrete] -==== Expose Vis on the contract as it requires visTypes - -In most of the places `Vis` used as a type, but in couple places it is used as a class. -At the moment `Vis` as a class is not stateless, as it depends on `visTypes`. As it is not stateless, `Vis` class was removed from public exports and exposed on `visualisations` contract instead: - -```ts -new visualizationsStart.Vis(....); -``` - -`Vis` as interface still can be imported as: - -```ts -import { Vis } from '../../../../../core_plugins/visualizations/public'; -``` - -*via {kib-pull}56968[#56968]* - -[discrete] -==== Add ScopedHistory to AppMountParams - -Kibana Platform applications should use the provided `history` instance to integrate routing rather than setting up their own using `appBasePath` (which is now deprecated). - -*Before* - -```tsx -core.application.register({ - id: 'myApp', - mount({ appBasePath, element }) { - ReactDOM.render( - <BrowserRouter basename={appBasePath}> - <App /> - </BrowserRouter>, - element - ); - return () => ReactDOM.unmountComponentAtNode(element); - } -}); -``` - -*After* -```tsx -core.application.register({ - id: 'myApp', - mount({ element, history }) { - ReactDOM.render( - <BrowserRouter history={history}> - <App /> - </BrowserRouter>, - element - ); - return () => ReactDOM.unmountComponentAtNode(element); - } -}); -``` - -*via {kib-pull}56705[#56705]* - -[discrete] -==== Move new_vis_modal to visualizations plugin - -*Before* - -NewVisModal component and showNewVisModal function were statically exported and received all the dependencies as props/parameters. - -*After* - -`showNewVisModal()` is part of the plugin contract and plugin dependencies are provided implicitly. - -```tsx -npStart.plugins.visualizations.showNewVisModal(); -``` -*via {kib-pull}56654[#56654]* - -[discrete] -==== UiComponent - -`UiComponent` interface was added to `kibana_utils` plugin. `UiComponent` represents a user interface building block, like a React component, but `UiComponent` does not have to be implemented in React—it can be implemented in plain JS or React, or Angular, etc. - -In many places in Kibana we want to be agnostic to frontend view library, i.e. instead of exposing React-specific APIs we want to expose APIs that are orthogonal to any rendering library. `UiComponent` interface represents such UI components. UI component receives a DOM element and `props` through `render()` method, the `render()` method can be called many times. - -```ts -export type UiComponent<Props extends object = object> = () => { - render(el: HTMLElement, props: Props): void; - unmount?(): void; -}; -``` - -Although Kibana aims to be library agnostic, Kibana itself is written in React, -therefore `UiComponent` is designed such that it maps directly to a -functional React component: `UiCompnent` interface corresponds -to `React.ComponentType` type and `UiCompnent` props map to React component props. - -To help use `UiComponent` interface in the codebase `uiToReactComponent` and -`reactToUiComponent` helper functions were added to `kibana_react` plugin, -they transform a `UiComponent` into a React component and vice versa, respectively. - -```ts -const uiToReactComponent: (comp: UiComponent) => React.ComponentType; -const reactToUiComponent: (comp: React.ComponentType) => UiComponent; -``` - -*via {kib-pull}56555[#56555]* - -[discrete] -==== Start consuming np logging config - -Provides experimental support of new logging format for **new platform plugins**. -More about https://github.com/elastic/kibana/blob/master/src/core/server/logging/README.md[the logging format]. - -*via {kib-pull}56480[#56480]* - -[discrete] -==== [State Management] State syncing utils docs - -Refer to https://github.com/elastic/kibana/tree/master/src/plugins/kibana_utils/docs/state_sync[these docs] -on state syncing utils. - -*via {kib-pull}56479[#56479]* - - -[discrete] -==== [NP] Move saved object modal into new platform - -`SavedObjectSaveModal`, `showSaveModal` and `SaveResult` from _`ui/saved_objects`_, -and `SavedObjectFinderUi`, `SavedObjectMetaData` and `OnSaveProps` -from _`src/plugins/kibana_react/public`_ were moved to a new plugin **`src/plugins/saved_objects`**. - -Also now `showSaveModal` requires the second argument - `I18nContext`: - -```ts -import { showSaveModal } from 'src/plugins/saved_objects/public'; -... - -showSaveModal(saveModal, npStart.core.i18n.Context); - -``` - -*via {kib-pull}56383[#56383]* - -[discrete] -==== [State Management] State syncing helpers for query service - -Query service of data plugin now has state$ observable which allows to -watch for query service data changes: - -```ts -interface QueryState { - time?: TimeRange; - refreshInterval?: RefreshInterval; - filters?: Filter[]; -} - -interface QueryStateChange { - time?: boolean; // time range has changed - refreshInterval?: boolean; // refresh interval has changed - filters?: boolean; // any filter has changed - appFilters?: boolean; // specifies if app filters change - globalFilters?: boolean; // specifies if global filters change -} - -state$: Observable<{ changes: QueryStateChange; state: QueryState }>; -``` - -*via {kib-pull}56128[#56128]* - -[discrete] -==== Migrate saved_object_save_as_checkbox directive to Timelion - -Use our React component `SavedObjectSaveModal` with `showCopyOnSave={true}` -instead of the react directive. Note that `SavedObjectSaveModal` -soon will be part of a new plugin, so the path will change. - -```TypeScript -import { SavedObjectSaveModal } from 'ui/saved_objects/components/saved_object_save_modal'; -<SavedObjectSaveModal - onSave={onSave} - onClose={() => {}} - title={'A title'} - showCopyOnSave={true} - objectType={'The type of you saved object'} - /> -``` - -*via {kib-pull}56114[#56114]* - -[discrete] -==== `ui/public` cleanup - -*Removed / moved modules* - -In preparation for Kibana's upcoming https://github.com/elastic/kibana/issues/9675[new platform], -we are in the process of https://github.com/elastic/kibana/issues/26505[migrating away] -from the `ui/public` directory. Over time, the contents of this directory will -be either deprecated or housed inside a parent plugin. If your plugin imports -the listed items from the following `ui/public` modules, you will need to -either update your import statements as indicated below, so that you are -pulling these modules from their new locations, or copy the relevant code directly into your plugin. - -*`ui/agg_types`* https://github.com/elastic/kibana/pull/59605[#59605] - -The `ui/agg_types` module has been removed in favor of the service provided by -the `data` plugin in the new Kibana platform. - -Additionally, `aggTypes` and `AggConfigs` have been removed in favor of a -`types` registry and a `createAggConfigs` function: - -```ts -// old -import { AggConfigs, aggTypes } from 'ui/agg_types'; -const aggs = new AggConfigs(indexPattern, configStates, schemas); -aggTypes.metrics[0]; // countMetricAgg - -// new -class MyPlugin { - start(core, { data }) { - data.search.aggs.createAggConfigs(indexPattern, configStates, schemas); - data.search.aggs.types.get('count'); // countMetricAgg - } -} - -// new - static code -import { search } from 'src/plugins/data/public'; -const { isValidInterval } = search.aggs; - -// new - types -import { BUCKET_TYPES, METRIC_TYPES } from 'src/plugins/data/public'; -``` - -The above examples are not comprehensive, but represent some of the more -common uses of `agg_types`. For more details, please refer to the interfaces -in https://github.com/elastic/kibana/blob/master/src/plugins/data/public/types.ts#L50[the source code], -as well as the data plugin's https://github.com/elastic/kibana/blob/master/src/plugins/data/public/index.ts#L282[`public/index` file]. - - -*`ui/time_buckets`* https://github.com/elastic/kibana/pull/58805[#58805] - -The `ui/time_buckets` module has been removed and is now internal to the `data` plugin's -search & aggregations infrastructure. We are working on an improved set of helper utilities -to eventually replace the need for the `TimeBuckets` class. - -In the meantime, if you currently rely on `TimeBuckets`, please copy the relevant pieces into your plugin code. - - -*`ui/filter_manager`* https://github.com/elastic/kibana/pull/59872[#59872] - -The `ui/filter_manager` module has been removed and now services and UI components -are available on the `data` plugin's query infrastructure. - -*via {kib-pull}55926[#55926]* - -[discrete] -==== Add savedObjects mappings API to core - -Added API to register savedObjects mapping from the new platform. - -```ts - // my-plugin/server/mappings.ts -import { SavedObjectsTypeMappingDefinitions } from 'src/core/server'; - -export const mappings: SavedObjectsTypeMappingDefinitions = { - 'my-type': { - properties: { - afield: { - type: "text" - } - } - } - } -``` - -```ts - // my-plugin/server/plugin.ts - import { mappings } from './mappings'; - - export class MyPlugin implements Plugin { - setup({ savedObjects }) { - savedObjects.registerMappings(mappings); - } - } -``` - -*via {kib-pull}55825[#55825]* - -[discrete] -==== Remove the VisEditorTypesRegistryProvider - -The `VisEditorTypesRegistryProvider` is removed. By default, -visualizations will use the default editor. - -To specify a custom editor use editor parameter as a key and -a class with your own controller as a value in a vis type definition: - -```ts -{ - name: 'my_new_vis', - title: 'My New Vis', - icon: 'my_icon', - description: 'Cool new chart', - editor: MyEditorController - } -``` - -*via {kib-pull}55370[#55370]* - -[discrete] -==== Explicitly test custom appRoutes - -Tests for custom `appRoute`s are now more clear and explicitly separate -from those that test other rendering service interactions. - -*via {kib-pull}55405[#55405]* - -[discrete] -==== [NP] Platform exposes API to get authenticated user data - -HttpService exposes: - -* `auth.get()` — returns auth status and associated user data. User data are opaque to the http service. Possible auth status values: -** `authenticated` — `auth` interceptor successfully authenticated a user. -** `unauthenticated` — `auth` interceptor failed user authentication. -** `unknown` — `auth` interceptor has not been registered. - -* `auth.isAuthenticated()` - returns true, if `auth` interceptor successfully authenticated a user. - -*via {kib-pull}55327[#55327]* - -[discrete] -==== Implements `getStartServices` on server-side - -Adds a new API to be able to access `start` dependencies when registering handlers in `setup` phase. - -```ts -class MyPlugin implements Plugin { - setup(core: CoreSetup, plugins: PluginDeps) { - plugins.usageCollection.registerCollector({ - type: 'MY_TYPE', - fetch: async () => { - const [coreStart] = await core.getStartServices(); - const internalRepo = coreStart.savedObjects.createInternalRepository(); - // ... - }, - }); - } - start() {} -} -``` - -*via {kib-pull}55156[#55156]* - -[discrete] -==== Expressions refactor - -* `context.types` > `inputTypes` -* Objects should be registered instead of function wrappers around those objects. - -*via {kib-pull}54342[#54342]* - -[discrete] -==== Refactor saved object management registry usage - -Registration of the following `SavedObjectLoader` in Angular was removed: - -* `savedSearches` -* `savedVisualizations` -* `savedDashboard` - -The plugins now provide the functions to create a `SavedObjectLoader` service, here's an example how the services are created now: - -```typescript -import { createSavedSearchesService } from '../discover'; -import { TypesService, createSavedVisLoader } from '../../../visualizations/public'; -import { createSavedDashboardLoader } from '../dashboard'; - -const services = { - savedObjectsClient: npStart.core.savedObjects.client, - indexPatterns: npStart.plugins.data.indexPatterns, - chrome: npStart.core.chrome, - overlays: npStart.core.overlays, - }; - -const servicesForVisualizations = { - ...services, - ...{ visualizationTypes: new TypesService().start() }, - } - -const savedSearches = createSavedSearchesService(services); -const savedVisualizations = createSavedVisLoader(servicesForVisualizations); -const savedDashboards = createSavedDashboardLoader(services); -``` - -*via {kib-pull}54155[#54155]* - -[discrete] -==== Enforce camelCase format for a plugin id - -When creating a new platform plugin, you need to make sure that -pluginId declared in camelCase within `kibana.json` manifest file. -It might not match `pluginPath`, which is recommended to be in snake_case format. - -```js -// ok -"pluginPath": ["foo"], -"id": "foo" -// ok -"pluginPath": "foo_bar", -"id": "fooBar" -``` - -*via {kib-pull}53759[#53759]* - -[discrete] -==== bfetch (2) - -Request batching and response streaming functionality of legacy Interpreter plugin has been moved out into a separate `bfetch` Kibana platform plugin. Now every plugin can create server endpoints and browser wrappers that can batch HTTP requests and stream responses back. - -As an example, we will create a batch processing endpoint that receives a number then doubles it -and streams it back. We will also consider the number to be time in milliseconds -and before streaming the number back the server will wait for the specified number of -milliseconds. - -To do that, first create server-side batch processing route using `addBatchProcessingRoute`. - -```ts -plugins.bfetch.addBatchProcessingRoute<{ num: number }, { num: number }>( - '/my-plugin/double', - () => ({ - onBatchItem: async ({ num }) => { - // Validate inputs. - if (num < 0) throw new Error('Invalid number'); - // Wait number of specified milliseconds. - await new Promise(r => setTimeout(r, num)); - // Double the number and send it back. - return { num: 2 * num }; - }, - }) -); -``` - -Now on client-side create `double` function using `batchedFunction`. -The newly created `double` function can be called many times and it -will package individual calls into batches and send them to the server. - -```ts -const double = plugins.bfetch.batchedFunction<{ num: number }, { num: number }>({ - url: '/my-plugin/double', -}); -``` - -Note: the created `double` must accept a single object argument (`{ num: number }` in this case) -and it will return a promise that resolves into an object, too (also `{ num: number }` in this case). - -Use the `double` function. - -```ts -double({ num: 1 }).then(console.log, console.error); // { num: 2 } -double({ num: 2 }).then(console.log, console.error); // { num: 4 } -double({ num: 3 }).then(console.log, console.error); // { num: 6 } -``` - -*via {kib-pull}53711[#53711]* - -[discrete] -==== Grouped Kibana nav - -Plugins should now define a category if they have a navigation item: - -* If you want to fit into our default categories, you can use our `DEFAULT_APP_CATEGORIES` defined in `src/core/utils/default_app_categories.ts`. -* If you want to create their own category, you can also provide any object matching the `AppCategory` interface defined in `src/core/types/app_category.ts`. - -*via {kib-pull}53545[#53545]* - -[discrete] -==== Expose Elasticsearch from start and deprecate from setup - -Remove any API that could allow access/query to savedObjects from core setup -contract, and move them to the start contract instead. Deprecate -the `CoreSetup.elasticsearch` API and expose `CoreStart.elasticsearch` instead. - - -*via {kib-pull}59886[#59886]* - -[discrete] -==== Embeddable triggers - -Embeddables can now report `ui_actions` triggers that they execute through the -`.supportedTriggers()` method. For example: - -```js -class MyEmbeddable extends Embeddable { - supportedTriggers() { - return ['VALUE_CLICK_TRIGGER']; - } -} -``` -The returned list of triggers will be used in the drilldowns feature on Dashboard, -where users will be able to add drilldowns to embeddable triggers. - -*via {kib-pull}58440[#58440]* - -[discrete] -==== Force savedObject API consumers to define SO type explicitly - -The new interface enforces API consumers to specify SO type explicitly. -Plugins can use `SavedObjectAttributes` to ensure their type are serializable, -but it shouldn't be used as their domain-specific type. - -*via {kib-pull}58022[#58022]* - -[discrete] -==== Trigger context - -Improved types for trigger contexts, which are consumed by actions. - -*via {kib-pull}57870[#57870]* - -[discrete] -==== Expressions debug mode - -Add ability to execute expression in "debug" mode, which would collect execution -information about each function. This is used in the Expression Explorer -(developed by Canvas) and in Canvas when the expression editor is open. - -*via {kib-pull}57841[#57841]* - -[discrete] -==== Move ui/agg_types in to shim data plugin - -* Moves the contents of `ui/agg_types` into the legacy shim data plugin -* Re-exports contracts `ui/agg_types` for BWC -* Creates dedicated interfaces for classes commonly being used as types: IAggConfig, IAggConfigs, IAggType, IFieldParamType, IMetricAggType -** Right now these are just re-exporting the class as a type; -eventually we should put more detailed typings in place. - -*via {kib-pull}56353[#56353]* - -[discrete] -==== Stateful search bar default behaviors - -The goal of the stateful version of SearchBar / TopNavMenu is to be an easy way -to consume the services offered by `plugins.data.query` where developers -should be able to provide minimal configuration and get a fully working SearchBar. - -*via {kib-pull}56160[#56160]* - -[discrete] -==== Guide for creating alert / action types in the UI - -Documentation to help developers integrate their alert / action type within -our Management UIs - -*via {kib-pull}55963[#55963]* - -[discrete] -==== Move search service code to NP - -Move all of the search service code to Kibana new platform. Also deletes `courier` folder -and moves `getFlattenedObject` to `src/core/utils`. - -*via {kib-pull}55430[#55430]* - -[discrete] -==== Expose NP FieldFormats service to server side - -The fieldFormats service is used on the server side as well. -At the moment, it resides in `src/legacy/ui/field_formats/mixin/field_formats_service.ts` -and only the FE plugin exposes it. - -*via {kib-pull}55419[#55419]* - -[discrete] -==== Update plugin generator to generate NP plugins - -Add more options for Kibana new platform plugin generator. - -* Generate FE components -* Generate server side endpoint -* Generate SCSS -* Generate an optional .eslintrc.js file (for 3rd party plugins mostly) -* Init git repo (for 3rd party plugins) - -*via {kib-pull}55281[#55281]* - -[discrete] -==== Run SO migration after plugins setup phase - -* Moves `createScopedRepository` and `createInternalRepository` from `setup` -contract to `start` contract, and removes `getScopedClient` from the `setup` contract. -There is no longer a possibility to be performing any call to SO before core's `start` is done. -* Creates the migrator, the repository accessors and runs the SO migration -at the start of `SavedObjectsService.start()`, meaning that any SO call performed -is assured to be done after the migration. -* Changes the `setClientFactory` API to `setClientFactoryProvider` to provide a -SO repository provider when registering the client factory. -* Adapts the existing plugin calls to the removed APIs from `setup` to be now -using `getStartServices` to access them on the core `start` contract. - -*via {kib-pull}55012[#55012]* - -[discrete] -==== Build immutable bundles for new platform plugins - -Plugins that have been migrated to the "new platform" are built with a new system -into their own `target/public` directory. To build third-party plugin's with -this new system either pass `--plugin-path` to `node scripts/build_new_platform_plugins` -or use the `@kbn/optimizer` package in the Kibana repo to build your plugin as -described in the readme for that package. - -*via {kib-pull}53976[#53976]* - - -[discrete] -==== [Search service] Asynchronous ES search strategy - -Adds an async {es} search strategy, which utilizes the async search strategy to -call the `_async_search` APIs in Elasticsearch, returning an observable over the responses. - -*via {kib-pull}53538[#53538]* - -[discrete] -==== [Vis: Default editor] EUIficate and Reactify the sidebar - -If you are using the `default` editor in your `VisType` visualization definition, -remove the `editor: 'default'` param from it. The default editor controller -will be used by default. - -The default editor controller receives an `optionsTemplate` or `optionTabs` parameter. -These tabs should be React components: - -```ts -{ - name: 'my_new_vis', - title: 'My New Vis', - icon: 'my_icon', - description: 'Cool new chart', - editorConfig: { - optionsTemplate: MyReactComponent // or if multiple tabs are required: - optionTabs: [ - { title: 'tab 3', editor: MyReactComponent } - ] - } - } -``` - -*via {kib-pull}49864[#49864]* - -[discrete] -==== [test] Consolidate top-level yarn scripts - -Over time Kibana has added a number of testing frameworks, -but our top-level scripts have remained the same to avoid workflow changes. -The current naming convention with the number of test options can leave room for ambiguity. - -You'll see two general changes: -* docs will refer to the yarn script, giving us an abstraction to migrate -frameworks out and avoid workflow interruptions (`grunt/gulp -> node scripts/*`) -* test scripts now refer to the test runner, as opposed to the test -type (`yarn test:server -> yarn test:mocha`) - - -*via {kib-pull}44679[#44679]* diff --git a/docs/migration/migrate_7_8.asciidoc b/docs/migration/migrate_7_8.asciidoc deleted file mode 100644 index 49d677bcd854..000000000000 --- a/docs/migration/migrate_7_8.asciidoc +++ /dev/null @@ -1,523 +0,0 @@ -[[breaking-changes-7.8]] -== Breaking changes in 7.8 -++++ -<titleabbrev>7.8</titleabbrev> -++++ - -This page discusses the breaking changes that you need to be aware of when migrating -your application to Kibana 7.8. - -* <<user-facing-changes-78, Breaking changes for users>> -* <<general-plugin-API-changes-78, Breaking changes for plugin developers>> - - -// The following section is re-used in the Installation and Upgrade Guide - - -// tag::notable-breaking-changes[] - -[float] -[[user-facing-changes-78]] -=== Breaking changes for users - -[float] -[[breaking_78_metrics_alerts]] -==== Metrics alerts action messaging refactored to report on the no data state -*Details* + -Metrics alerts no longer expose `context.valueOf`, `context.metricOf`, or -`context.thresholdOf` to action messages. These variables are replaced -by `context.reason`. This variable explains the reason that the alert -fired and automatically includes the metric, threshold, and current value of -all configured conditions. - -*Impact* + -Alerts configured in 7.7 still function as normal, -but their action messages might no longer provide useful information and -must be reconfigured. The new default action message will show an example -of how to use `context.reason`. - -*via https://github.com/elastic/kibana/pull/64365[#64365]* - - -[float] -[[breaking_fixes_back_button]] -==== Panels removed from the URL in dashboard view mode - -==== -*Details* + -In dashboard in view mode, `.panels` are no longer synced with the URL. - -*Impact* + -This fixes the Back button when navigating between dashboards using drilldowns. - -*via https://github.com/elastic/kibana/pull/62415[#62415]* -==== - - -// end::notable-breaking-changes[] - - -[float] -[[general-plugin-API-changes-78]] -=== Breaking changes for plugin developers - -[[breaking_78_actions_api]] -.The actions API endpoint changed -[%collapsible] -==== - -The following action plugin REST APIs changed so that they are consistent with the -{kib} styleguide. - -* `GET /api/action/_getAll` -> `GET /api/actions` -* `GET /api/action/types` -> `GET /api/actions/list_action_types` -* `POST /api/action` -> `POST /api/actions/action` -* `GET /api/action/{id}` -> `GET /api/actions/action/{id}` -* `PUT /api/action/{id}` -> `PUT /api/actions/action/{id}` -* `DELETE /api/action/{id}` -> `DELETE /api/actions/action/{id}` -* `POST /api/action/{id}/_execute` -> `POST /api/actions/action/{id}/_execute` - -*via https://github.com/elastic/kibana/pull/65936[#65936]* - -==== - - -[[breaking_78_canvas]] -.Canvas applications now run on the new {kib} platform -[%collapsible] -==== - -Any existing user-created plugins that extend -Canvas functionality must also move to the Kibana Platform to continue extending Canvas. - -*via https://github.com/elastic/kibana/pull/64831[#64831]* - -==== - -[[breaking-78-filter-expression-function]] -.The `filter` function uses `filterType` instead of `type` -[%collapsible] -==== - -If you used the `type` argument of the `filter` function, you now -must use `filterType` instead. - -Old code: - -```ts -filter type={...} | ... -``` - -New code: - -```ts -filter filterType={...} | ... -``` - -The `type` field is used internally by the expression interpreter to -discriminate between the different values it passes between functions. -The `filter` function was the only function that exposed this field to users. -After this change, all expression values will consistently use `type` to determine a type of expression value. - -*via https://github.com/elastic/kibana/pull/64215[#64215]* - -==== - -[[breaking_78_redirect-to-full-path]] -.Calling `navigateToApp` to a legacy app redirects to full path -[%collapsible] -==== -Calling `core.application.navigateToApp` to a legacy -application now retains the `path` specified. - -*via https://github.com/elastic/kibana/pull/65112[#65112]* - -==== - -[[breaking_78_remove_aggs]] -.The legacy aggs APIs were removed -[%collapsible] -==== - -The following legacy aggs APIs from the `data` plugin `search` service -have been removed because they are no longer in use: - -```ts -data.search.__LEGACY.AggConfig; -data.search.__LEGACY.AggType; -data.search.__LEGACY.aggTypeFieldFilters; -data.search.__LEGACY.FieldParamType; -data.search.__LEGACY.MetricAggType; -data.search.__LEGACY.parentPipelineAggHelper; -data.search.__LEGACY.siblingPipelineAggHelper; -``` - -Additionally, the following unused static exports have been removed: - -```ts -AggTypeFieldFilters, -AggTypeFilters, -IAggGroupNames, // renamed to AggGroupName -DateRangeKey, -IpRangeKey, -OptionedParamEditorProps, // moved to vis_default_editor -search.aggs.AggConfigs; -search.aggs.aggGroupNamesMap, // renamed to AggGroupLabels -search.aggs.aggTypeFilters, -search.aggs.convertDateRangeToString, -search.aggs.convertIPRangeToString, -``` - -*via https://github.com/elastic/kibana/pull/64719[#64719]* - -==== - -[[breaking_78_update_default_path]] -.Applications are now allowed to define and update a `defaultPath` -[%collapsible] -==== - -{kib} platform applications can now define and update the `defaultPath` -to use when navigating to them from another application or from the navigation bar. - - -```ts -core.application.register({ - id: 'my-app', - // ... - defaultPath: '/some-path', -}) -``` - -```ts -const appUpdater = new BehaviorSubject<AppUpdater>(() => ({})); -core.application.register({ - id: 'my-app', - // ... - updater$: appUpdater, -}) - -// later -appUpdater.next(() => ({ defaultPath: '/some-updated-path' })); -``` - -*via https://github.com/elastic/kibana/pull/64498[#64498]* - -==== - -[[breaking_78_cache_busting]] -.Static assets are now served under a release-specific URL -[%collapsible] -==== - -{kib} static assets are now served under a release-specific URL -with long-term caching headers `Cache-Control: max-age=31536000`. - -Before: - -http://localhost:5601/bundles/plugin/dashboard/dashboard.plugin.js - -After: - -http://localhost:5601/bundles/8467/plugin/dashboard/dashboard.plugin.js - -*via https://github.com/elastic/kibana/pull/64414[#64414]* - -==== - -[[breaking_78_add_example_plugins]] -.Example plugins are now allowed in X-Pack -[%collapsible] -==== - -{kib} developers can now create example plugins in -X-Pack—create your plugin in `/x-pack/examples` folder and start {kib} with: - -```ts -yarn start --run-examples -``` - -*via https://github.com/elastic/kibana/pull/63823[#63823]* - -==== - -[[breaking_78_improves_drilldows]] -.`action.getHref()` has improvements for drilldowns -[%collapsible] -==== - -`getHref` on `Action` interfaces in the uiActions plugin is now async. -`getHref` is now used only to support right click behavior. -`execute()` takes control on regular click. - -*via https://github.com/elastic/kibana/pull/63228[#63228]* - -==== - -[[breaking_78_scopedhistory]] -.State syncing utils now support `ScopedHistory` -[%collapsible] -==== - -State syncing utils now seamlessly support the platform's `ScopedHistory`. - -*via https://github.com/elastic/kibana/pull/62761[#62761]* - -==== - -[[breaking_78_tsvb]] -.Configuration properties were removed from TSVB -[%collapsible] -==== - -When the TSVB visualization was added to {kib}, -two configuration properties were declared: `chartResolution` and `minimumBucketSize`. -No one used these properties, and -an implementation has not been added. -The `chartResolution` and `minimumBucketSize` are now marked as deprecated configuration -properties for TSVB. - -*via https://github.com/elastic/kibana/pull/62543[#62543]* - -==== - -[[breaking_add_subservice]] -.The `HttpResources` service is available for responding to requests -[%collapsible] -==== - -If your server-side plugin needs to respond to an incoming request with the -HTML page bootstrapping {kib} client app, a custom HTML page, or a custom JS script, -you can use the `HttpResources` service. - -```js -httpResources.register({ path: 'my_app', validate: false }, (context, req, res) => - res.renderCoreApp() -); - -httpResources.register({ path: 'my_app/foo', validate: false }, (context, req, res) => - res.renderHtml({ body: '<html><p>Hi</p></html>' }) -); - -httpResources.register({ path: 'my_app/bar', validate: false }, (context, req, res) => - res.renderJs({ body: 'alert(...);'}) -); -``` - -*via https://github.com/elastic/kibana/pull/61797[#61797]* - -==== - -[[breaking_delete_embeddable_plugin]] -.The legacy `embeddable_api` plugin has been removed -[%collapsible] -==== - -The legacy `embeddable_api` plugin in `src/legacy/core_plugins/embeddable_api` -has been removed in favor of the `embeddable` plugin in the new {kib} Platform. -If you used the `embeddable_api` in `7.7`, you already used the new -`embeddable` plugin API, which was re-exported from the legacy platform as a convenience. - -As of 7.8, you must update your imports to pull everything from the new location: - -```diff -// for types & static imports -- import { ViewMode } from '../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public'; -+ import { ViewMode } from '../../../src/plugins/embeddable/public'; - -// for runtime APIs in legacy platform plugins -- import { start } from '../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy'; -+ import { npStart } from 'ui/new_platform'; -+ const { embeddable } = npStart.plugins; - -// for runtime APIs in new platform plugins -- import { start } from '../../../src/legacy/core_plugins/embeddable_api/public/np_ready/public/legacy'; -+ class MyPlugin { -+ start(core, { embeddable }) { -+ ... -+ } -+ } -``` - -For plugins using the legacy platform, you also must remove -the `embeddable_api` from your list of required plugins in your plugin's `index.ts`: - -```diff -export default function MyPlugin(kibana: any) { - const config: Legacy.PluginSpecOptions = { - id: 'my_plugin', -- require: ['kibana', 'elasticsearch', 'embeddable_api'], -+ require: ['kibana', 'elasticsearch'], - ..., - }; - return new kibana.Plugin(config); -} -``` - -For plugins using the new {kib} platform, make sure to list `embeddable` as -either a required or optional dependency in your `kibana.json`: - -```diff -{ - "id": "my_plugin", - ..., -- "requiredPlugins": [], -+ "requiredPlugins": ["embeddable"], - "optionalPlugins": [], - "server": true, - "ui": true -} -``` - -*via https://github.com/elastic/kibana/pull/61767[#61767]* - -==== - -[[breaking_move_to_data_plugin]] -.`src/legacy/server/index_patterns` has moved to data plugin -[%collapsible] -==== - -The legacy folder `src/legacy/server/index_patterns` has been deleted. -The corresponding code was previously moved to the new platform. - -For more information on where to locate new platform `data` services, -refer to the -https://github.com/elastic/kibana/blob/master/src/core/MIGRATION.md#plugins-for-shared-application-services[plugins for shared application services] -in `src/core/MIGRATION.md`. - -*via https://github.com/elastic/kibana/pull/61618[#61618]* - -==== - -[[breaking_78_static_assets]] -.Static assets are now served from the new platform -[%collapsible] -==== - -The {kib} Platform serves plugin static assets from the -`my_plugin/public/assets` folder. No additional configuration is required. - -*via https://github.com/elastic/kibana/pull/60490[#60490]* - -==== - -[[breaking_78_refactor_connectors]] -.Connectors have been refactored -[%collapsible] -==== - -The API changed to support executor actions. The supported actions are `pushToService`, -`handshake`, and `getIncident`. This change implements only the `pushToService` action. - -The following response fields have changed: - -* `incidentId` changed to `id`. -* `number` changed to `title`. - -*Create an incident to ServiceNow* - -When the `incidentId` attribute **is not** in `actionParams`, -the executor will **create** the incident. - -[%hardbreaks] -Endpoint: `api/action/<action_id>/_execute` -Method: `POST` - -Payload - -```ts -{ - "params": { - "action": "pushToService", - "actionParams": { - "caseId": "d4387ac5-0899-4dc2-bbfa-0dd605c934aa", - "title": "A new incident", - "description": "A description", - "comments": [ - { - "commentId": "b5b4c4d0-574e-11ea-9e2e-21b90f8a9631", - "version": "WzU3LDFd", - "comment": "A comment" - } - ] - } - } -} -``` - -Response - -```ts -{ - "status": "ok", - "actionId": "f631be57-0a59-4e28-8833-16fc3b309374", - "data": { - "id": "7d7aad9c072fc0100e48fbbf7c1ed0c2", - "title": "INC0010044", - "pushedDate": "2020-03-10T13:02:59.000Z", - "comments": [ - { - "commentId": "b5b4c4d0-574e-11ea-9e2e-21b90f8a9631", - "pushedDate": "2020-03-10T13:03:00.000Z" - } - ] - } -} -``` - - -*Update an incident to ServiceNow* - -When the `incidentId` attribute **is** in `actionParams`, -the executor will update the incident. - -[%hardbreaks] -Endpoint: `api/action/<action_id>/_execute` -Method: `POST` - -Payload - -```ts -{ - "params": { - "action": "pushToService", - "actionParmas": { - "caseId": "d4387ac5-0899-4dc2-bbfa-0dd605c934aa", - "incidentId": "7d7aad9c072fc0100e48fbbf7c1ed0c2" - "title": "A new incident", - "description": "A description", - "comments": [ - { - "commentId": "b5b4c4d0-574e-11ea-9e2e-21b90f8a9631", - "version": "WzU3LDFd", - "comment": "A comment" - } - ] - } - } -} -``` - -Response - -```ts -{ - "status": "ok", - "actionId": "f631be57-0a59-4e28-8833-16fc3b309374", - "data": { - "id": "7d7aad9c072fc0100e48fbbf7c1ed0c2", - "title": "INC0010044", - "pushedDate": "2020-03-10T13:02:59.000Z", - "comments": [ - { - "commentId": "b5b4c4d0-574e-11ea-9e2e-21b90f8a9631", - "pushedDate": "2020-03-10T13:03:00.000Z" - } - ] - } -} -``` - -*via https://github.com/elastic/kibana/pull/63450[#63450]* -==== diff --git a/docs/migration/migrate_7_9.asciidoc b/docs/migration/migrate_7_9.asciidoc deleted file mode 100644 index c7c6e942f758..000000000000 --- a/docs/migration/migrate_7_9.asciidoc +++ /dev/null @@ -1,736 +0,0 @@ -[[breaking-changes-7.9]] -== Breaking changes in 7.9 -++++ -<titleabbrev>7.9</titleabbrev> -++++ - -This page discusses the breaking changes that you need to be aware of when migrating -your application to Kibana 7.9. - -* <<user-facing-changes-79, Breaking changes for users>> -* <<general-plugin-API-changes-79, Breaking changes for plugin developers>> - - - -[float] -[[user-facing-changes-79]] -=== Breaking changes for users - -// The following section is re-used in the Installation and Upgrade Guide - -// tag::notable-breaking-changes[] - -[float] -[[breaking_kibana_keystore]] -==== `kibana.keystore` moved from the data folder to the config folder - -`kibana.keystore` has moved from the configured `path.data` -folder to `<root>/config` for archive distributions and `/etc/kibana` for -package distributions. If a pre-existing keystore exists in the data directory, -that path will continue to be used. - -*via https://github.com/elastic/kibana/pull/57856[#57856]* - -// end::notable-breaking-changes[] - -[float] -[[general-plugin-API-changes-79]] -=== Breaking changes for plugin developers - -[[breaking_79_actions_api]] -.aborted$ event fixed and completed$ event added to `KibanaRequest` -[%collapsible] -==== - -The `request.events.aborted$` Observable will now properly wait for the -response to be sent before completing. - -A new `request.events.completed$` API is available that will emit once -a request has been completely handled or aborted. - -*via https://github.com/elastic/kibana/pull/73898[#73898]* - -==== - -[[breaking_79_management_api]] -.The Management API has a new interface -[%collapsible] -==== - -A public `setup` contract has been reduced to just `register`. A -new interface, `sections`, which is a map of management sections provided by the plugin, -replaces `getSection`. Public start interfaces have been removed as all -registration should occur in the `setup` lifecycle. - -*via https://github.com/elastic/kibana/pull/71144[#71144]* - -==== - -[[breaking_79_fields_with_no_value]] -.Filters from fields with no values are now allowed -[%collapsible] -==== - -Kibana now allows the creation of filters from fields -with a null or undefined value. - -*via https://github.com/elastic/kibana/pull/70936[#70936]* - -==== - -[[breaking_79_http_interceptors]] -.The `onPreAuth` and `onPreRouting` http interceptors are now separate -[%collapsible] -==== - -The `onPreAuth` interceptor has been renamed to `onPreRouting` to better -reflect its place in the execution order—it is now called right before the route lookup step. -A new `onPreAuth` interceptor is executed before the `Auth` lifecycle step, -but after the `onPreRouting` step. - -*via https://github.com/elastic/kibana/pull/70775[#70775]* - -==== - -[[breaking_79_metric_service]] -.The Metrics API moved to start -[%collapsible] -==== - -The Metric service API exposed from the `setup` contract has been moved -to the `start` lifecycle. - -*via https://github.com/elastic/kibana/pull/69787[#69787]* - -==== - -[[breaking_79_field_formats_removed]] -.`fieldFormats` removed from `AggConfig` and `AggConfigs` -[%collapsible] -==== - -`AggConfig` has been updated to no longer return a field format -instance for the field it is aggregating on. As a result, the `fieldFormatter` and -`fieldOwnFormatter` methods have been removed. Additionally, the `getFormat` method -has been removed from each individual agg type. - -If you need to access a field format instance, use the newly-added -`AggConfig.toSerializedFieldFormat` or `AggType.toSerializedFormat` -to retrieve the serializable representation of the field's format, -and then pass it to the `deserialize` method from the field formats service -to get the actual format instance. - -```diff -class MyPlugin { - async start(core, { data }) { - const { indexPatterns, fieldFormats, search } = data; - const indexPattern = await indexPatterns.get('myId'); - const agg = { - type: 'terms', - params: { field: 'machine.os.keyword' }, - }; - const aggConfigs = search.aggs.createAggConfigs(indexPattern, [agg]); - const termsAgg = aggConfigs.aggs[0]; -- const formatter = termsAgg.type.getFormat(termsAgg); -- // or -- const formatter = termsAgg.fieldFormatter('text'); -+ const formatter = fieldFormats.deserialize(termsAgg.toSerializedFieldFormat()); -+ // or -+ const formatter = fieldFormats.deserialize(termsAgg.type.getSerializedFormat(termsAgg)); - const formattedValue = formatter.convert('myValue'); - } -} -``` - -In addition, the legacy formatting helpers that were exported from -`ui/visualize/loader/pipeline_helpers/utilities` have been removed. -If your plugin imports from this directory, please update your code to use -the `fieldFormats` service directly. - -*via https://github.com/elastic/kibana/pull/69762[#69762]* - -==== - -[[breaking_79_encrypted_saved_objects]] -.New API adds support for migrations for an `EncryptedSavedObject` -[%collapsible] -==== - -A new `createMigration` API on the `EncryptedSavedObjectsPluginSetup` -facilitates defining a migration for an EncryptedSavedObject type. - -**Defining migrations** - -`EncryptedSavedObjects` rely on standard `SavedObject migrations`, -but due to the additional complexity introduced by the need to decrypt and -reencrypt the migrated document, there are some caveats to how we support this. -Most of this complexity is abstracted away by the plugin, and all you need to do is leverage our API. - -The `EncryptedSavedObjects` Plugin _SetupContract_ exposes a `createMigration` -API that facilitates defining a migration for your EncryptedSavedObject type. - -The `createMigration` function takes four arguments: - -|=== -|Argument|Description|Type| - -|`isMigrationNeededPredicate`|A predicate that is called for each document, -prior to being decrypted, which confirms whether a document requires migration or not. -This predicate is important as the decryption step is costly, and we would rather not decrypt and re-encrypt a document if we can avoid it.|function| -|`migration`|A migration function which will migrate each decrypted document from the old shape to the new one.|function| -|`inputType`|Optional. An `EncryptedSavedObjectTypeRegistration` which describes the ESOType of the input (the document prior to migration). If this type isn't provided, we'll assume the input doc follows the registered type. |object| -|`migratedType`| Optional. An `EncryptedSavedObjectTypeRegistration` which describes the ESOType of the output (the document after migration). If this type isn't provided, we'll assume the migrated doc follows the registered type.|object| -|=== - -**Example: Migrating a Value** - -```ts -encryptedSavedObjects.registerType({ - type: 'alert', - attributesToEncrypt: new Set(['apiKey']), - attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), -}); - -const migration790 = encryptedSavedObjects.createMigration<RawAlert, RawAlert>( - function shouldBeMigrated(doc): doc is SavedObjectUnsanitizedDoc<RawAlert> { - return doc.consumer === 'alerting' || doc.consumer === undefined; - }, - (doc: SavedObjectUnsanitizedDoc<RawAlert>): SavedObjectUnsanitizedDoc<RawAlert> => { - const { - attributes: { consumer }, - } = doc; - return { - ...doc, - attributes: { - ...doc.attributes, - consumer: consumer === 'alerting' || !consumer ? 'alerts' : consumer, - }, - }; - } -); -``` - -In the above example, you can see the following: - -* In `shouldBeMigrated`, we limit the migrated alerts to those whose `consumer` field equals `alerting` or is undefined. -* In the migration function, we migrate the value of `consumer` to the value -we want (`alerts` or `unknown`, depending on the current value). In this function, -we can assume that only documents with a `consumer` of `alerting` or `undefined` will be passed in, but it's still safest not to, and so we use the current `consumer` as the default when needed. -* Note that we haven't passed in any type definitions. This is because we can rely on the registered type, as the migration is changing a value and not the shape of the object. - -An EncryptedSavedObject migration is a normal SavedObjects migration, -so we can plug it into the underlying SavedObject just like any other kind of migration: - -```typescript -savedObjects.registerType({ - name: 'alert', - hidden: true, - namespaceType: 'single', - migrations: { - // apply this migration in 7.9.0 - '7.9.0': migration790, - }, - mappings: { - //... - }, -}); -``` - -**Example: Migating a Type** - -If your migration needs to change the type, for example, -by removing an encrypted field, you will have to specify the legacy type for the input. - -```ts -encryptedSavedObjects.registerType({ - type: 'alert', - attributesToEncrypt: new Set(['apiKey']), - attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), -}); - -const migration790 = encryptedSavedObjects.createMigration<RawAlert, RawAlert>( - function shouldBeMigrated(doc): doc is SavedObjectUnsanitizedDoc<RawAlert> { - return doc.consumer === 'alerting' || doc.consumer === undefined; - }, - (doc: SavedObjectUnsanitizedDoc<RawAlert>): SavedObjectUnsanitizedDoc<RawAlert> => { - const { - attributes: { legacyEncryptedField, ...attributes }, - } = doc; - return { - ...doc, - attributes: { - ...attributes - }, - }; - }, - { - type: 'alert', - attributesToEncrypt: new Set(['apiKey', 'legacyEncryptedField']), - attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), - } -); -``` - -This example shows how we provide a legacy type that describes the input that needs to be decrypted. -The migration function will default to using the registered type to encrypt the migrated -document after the migration is applied. - -If you need to migrate between two legacy types, you can specify both types at once: - -```ts -encryptedSavedObjects.registerType({ - type: 'alert', - attributesToEncrypt: new Set(['apiKey']), - attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), -}); - -const migration780 = encryptedSavedObjects.createMigration<RawAlert, RawAlert>( - function shouldBeMigrated(doc): doc is SavedObjectUnsanitizedDoc<RawAlert> { - // ... - }, - (doc: SavedObjectUnsanitizedDoc<RawAlert>): SavedObjectUnsanitizedDoc<RawAlert> => { - // ... - }, - // legacy input type - { - type: 'alert', - attributesToEncrypt: new Set(['apiKey', 'legacyEncryptedField']), - attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), - }, - // legacy migration type - { - type: 'alert', - attributesToEncrypt: new Set(['apiKey', 'legacyEncryptedField']), - attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy', 'legacyEncryptedField']), - } -); -``` -*via https://github.com/elastic/kibana/pull/69513[#69513]* - -==== - -[[breaking_79_canvas]] -.Canvas templates now stored as saved objects -[%collapsible] -==== - -Previously, workpad templates were added through the Canvas API client side. -Workpad templates are now stored as saved objects, so an API is no longer required for adding them. -You can add templates through `SavedObject` management. - -*via https://github.com/elastic/kibana/pull/69438[#69438]* - -==== - -[[breaking_79_typescript]] -.Search Typescript improved -[%collapsible] -==== - -The front end search strategy concept is now deprecated and the -following API methods were removed from the `data.search` plugin: - - * `registerSearchStrategy` - * `getSearchStrategy` - -*via https://github.com/elastic/kibana/pull/69333[#69333]* - -==== - -[[breaking_79_doclinks]] -.DocLinks API moved from `setup` to `start` -[%collapsible] -==== - -The docLinks service API exposed from the `setup` contract has been moved to the `start` lifecycle. - -*via https://github.com/elastic/kibana/pull/68745[#68745]* - -==== - -[[breaking_79_plugin_api]] -.Plugin API added for customizing the logging configuration -[%collapsible] -==== - -Plugins can now customize the logging configuration on the fly. - -```ts -import { of } from 'rxjs'; -core.logging.configure(of( - { - appenders: { - myCustomAppender: { ... }, - }, - loggers: [ - { context: 'subcontext', appenders: ['myCustomAppender'], level: 'warn' } - ] - } -)) -``` - -*via https://github.com/elastic/kibana/pull/68704[#68704]* - -==== - -[[breaking_79_developer_guide]] -.Developer guide restructured -[%collapsible] -==== - -The <<development,developer guide>> includes the following improvements: - -* Migrates CONTRIBUTING.md content into AsciiDoc -* Moves CONTRIBUTING content into the developer guide -* Removes https://github.com/elastic/kibana/issues/67782[outdated content] -* Creates -https://github.com/elastic/kibana/issues/41833#issuecomment-646195319[the structure proposed -in this issue] - -*via https://github.com/elastic/kibana/pull/67764[#67764]* - -==== - -[[breaking_79_es_api]] -.{es} API exposed from `setup` contract is deprecated -[%collapsible] -==== - -The {es} API exposed from the `setup` contract is not available -and will be deleted without notice. Use the core start API instead. - -```typescript -// before -setup(core: CoreSetup) { - core.elasticsearch.dataClient(...) - core.elasticsearch.adminClient(...) -} -// after -setup(core: CoreSetup) { - core.elasticsearch.legacy.client(...) -} -``` - -*via https://github.com/elastic/kibana/pull/67596[#67596]* - -==== - -[[breaking_79_API_docs]] -.API reference docs available for state_containers and state_sync -[%collapsible] -==== - -The API reference docs for `state_sync` and `state_containers` are now available: - -* https://github.com/elastic/kibana/blob/master/docs/development/plugins/kibana_utils/public/state_sync/kibana-plugin-plugins-kibana_utils-public-state_sync.md[state_sync] -* https://github.com/elastic/kibana/blob/master/docs/development/plugins/kibana_utils/common/state_containers/kibana-plugin-plugins-kibana_utils-common-state_containers.md[state_containers] - -*via https://github.com/elastic/kibana/pull/67354[#67354]* - -==== - -[[breaking_79_es_request]] -.Elasticsearch client exposed via request context marked as deprecated -[%collapsible] -==== - -The Elasticsearch service no longer provides separate `data` and `admin` clients. -The Elasticsearch service client is marked as deprecated and is superseded by a new one. - -```diff -// in route handler -router.get( -... -async function handler (context) { ---- return await context.elasticsearch.adminClient.callAsInternalUser('endpoint'); -+++ return await context.elasticsearch.legacy.client.callAsInternalUser('endpoint'); -}) -// in plugin -setup(core){ - return { - async search(id) { ---- return await context.elasticsearch.adminClient.callAsInternalUser('endpoint', id); -+++ return await context.elasticsearch.legacy.client.callAsInternalUser('endpoint', id); - } - } -} -``` - -*via https://github.com/elastic/kibana/pull/67319[#67319]* - - -==== - -[[breaking_79_licensing]] -.Licensing now uses {es} from `start` contract -[%collapsible] -==== - -The licensing plugin API exposed from the `setup` contract -is deprecated in favor of `start` contract counterparts: - -```js -// before -setup(core, plugins){ - plugins.licensing.license$.pipe(...) -} - -// after -start(core, plugins){ - plugins.licensing.license$.pipe(...) -} -``` - -*via https://github.com/elastic/kibana/pull/67291[#67291]* - -==== - -[[breaking_79_actions_type]] -.The Actions SavedObject type `action` is now a hidden type -[%collapsible] -==== - -Interaction with the Actions SavedObject type requires -you to tell your `SavedObjectsClient` to include -the `action` hidden type as follows: - -```ts -core.savedObjects.getScopedClient(request, { includedHiddenTypes: ['action'] }) -``` - -Do not circumvent the authorization model by accessing these objects directly. -Use `AlertsClient` instead. - -*via https://github.com/elastic/kibana/pull/67109[#67109]* - -==== - -[[breaking_79_saved_objects_client]] -.Saved objects now include support for hidden types -[%collapsible] -==== - -**Saved objects** - -The SavedObjectClient's `getScopedClient`, `createScopedRepository` and -`createInternalRepository` can now take a list of types to include in the underlying repository. - -You can use this to create a client that has access to hidden types: - -```ts -core.savedObjects.getScopedClient(request, { includedHiddenTypes: ['hiddenType'] }) -``` - -This creates a `SavedObjects` client scoped to a user by the specified -request with access to a hidden type called `hiddenType`. - -**Encrypted saved objects** - -The `EncryptedSavedObject` plugin no longer exposes a single client as part of its -`start` contract. Instead it exposes a `getClient` API that exposes the client API. -The `getClient` can also specify a list of hidden types to gain access to which are hidden by default. - -For example, given a {kib} platform plugin that has specified `encryptedSavedObjects` as a `Setup` dependency: - -```ts -const encryptedSavedObjectsClient = plugins.encryptedSavedObjects.getClient(['hiddenType']); -return encryptedSavedObjectsClient.getDecryptedAsInternalUser('hiddenType', '123', { namespace: 'some-namespace' }); -``` - -*via https://github.com/elastic/kibana/pull/66879[#66879]* - -==== - -[[breaking_79_alerting_api]] -.The `alerting` plugin was renamed `alerts` to follow the {kib} styleguide -[%collapsible] -==== - -This includes the following API changes: - -* Changed actions `BASE_ALERT_API_PATH` to ` '/api/alerts'` because according to the styleguide, it should keep the structure `/api/plugin_id` -* Changed endpoint `/api/alert/_find` just to `/api/alerts/_find` -* Changed `/types` to `/list_alert_types` -* Changed POST `/api/alert` to POST `/api/alerts/alert` -* Changed GET `/api/alert/{id}` to GET `/api/alerts/alert/{id}` -* Changed PUT `/api/alert/{id}` to PUT `/api/alerts/alert/{id}` -* Changed DELETE `/api/alert/{id}` to DELETE `/api/alerts/alert/{id}` -* Changed GET `/api/alert/{id}/state` to GET `/api/alerts/alert/{id}/state` -* Changed POST `/api/alert/{id}/_enable` to POST `/api/alerts/alert/{id}/_enable` -* Changed POST `/api/alert/{id}/_disable` to POST `/api/alerts/alert/{id}/_disable` -* Changed POST `/api/alert/{id}/_mute_all` to POST `/api/alerts/alert/{id}/_mute_all` -* Changed POST `/api/alert/{alertId}/alert_instance/{alertInstanceId}/_mute` to POST `/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_mute` -* Changed POST `/api/alert/{id}/_unmute_all` to POST `/api/alerts/alert/{id}/_unmute_all` -* Changed POST `/api/alert/{id}/_update_api_key` to POST `/api/alerts/alert/{id}/_update_api_key` -* Changed POST `/api/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute` to POST `/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute` - -*via https://github.com/elastic/kibana/pull/66838[#66838]* - - -==== - -[[breaking_79_new_management_api]] -.The new platform API is now implemented in Management -[%collapsible] -==== - -This change: - -* Refactors out use of `registerLegacyApp` and uses react-router-dom for routing. -* Implements a landing page and sidebar in the Management plugin. -* Removes the legacy API from `src/plugins/management/public/plugin.ts` and related code. - -*via https://github.com/elastic/kibana/pull/66781[#66781]* - -==== - -[[breaking_79_alert_hidden]] -.The Alerting SavedObject type `alert` is now a hidden type -[%collapsible] -==== - -Interaction with the Alerting SavedObject type requires you -to tell your `SavedObjectsClient` to include the `alert` hidden -type as follows: - -``` ts -core.savedObjects.getScopedClient(request, { includedHiddenTypes: ['alert'] }) -``` - -Do not circumvent the authorization model by accessing these objects directly. -Use AlertsClient instead. - -*via https://github.com/elastic/kibana/pull/66719[#66719]* - -==== - -[[breaking_79_oss_features]] -.Open source features registration moved to Kibana platform -[%collapsible] -==== - -{kib} now allows the `getFeatures` plugin method to be called within the `start` lifecycle. - -*via https://github.com/elastic/kibana/pull/66524[#66524]* - -==== - -[[breaking_79_so_registration]] -.SavedObject registration in the legacy platform is not supported -[%collapsible] -==== - - -To use SavedObjects, you must move your plugin to the {kib} platform. - -```js -// before in the legacy plugin -export default function ({ Plugin }) { - new Plugin({ - id: 'my-plugin', - uiExports: { - mappings: { - 'my-plugin-so': { - properties: {...}, - }, - }, - }, -}), -// in the Kibana platform plugin -export class MyPlugin implements Plugin { - constructor(context: PluginInitializerContext) {} - setup(core: CoreSetup) { - core.savedObjects.registerType({ - name: 'my-plugin-so', - mappings: {...} - }); - } -} -``` - -*via https://github.com/elastic/kibana/pull/66203[#66203]* - - -==== - -[[breaking_79_cross_links]] -.Cross-links are now handled automatically -[%collapsible] -==== - -Links from one application to another are now automatically handled by the {kib} platform -to perform the navigation without a full page refresh and the need to -manually add a click handler to call `application.navigateToApp`. - -You can disable this behavior by adding the `data-disable-core-navigation` -attribute on the link (`a`) element or any of its parent. - -This feature is not enabled for legacy applications. - -*via https://github.com/elastic/kibana/pull/65164[#65164]* - -==== - -[[breaking_79_field_formatters]] -.Field format editors API migrated to Kibana Platform -[%collapsible] -==== - -Field format editors (used by index pattern management) are no longer added -via the field formatters registry, `ui/registry/field_format_editors`. They -are now added via the `indexPatternManagement` plugin. - -*via https://github.com/elastic/kibana/pull/65026[#65026]* - -==== - -[[breaking_79_expressions]] -.The `expressions` plugin has a new set of helpers -[%collapsible] -==== - -The `expressions` plugin introduces a set of helpers that make it easier to -manipulate expression ASTs. Refer to https://github.com/elastic/kibana/pull/64395[this PR] -for more detailed examples. - -```ts -// also available on `expressions/public/server` -import { - buildExpression, - buildExpressionFunction -} from '../../src/plugins/expressions/public'; - -// `buildExpression` takes an expression string, AST, or array of `buildExpressionFunction` -const exp = buildExpression([ - // `buildExpressionFunction` takes an expression function name, and object of args - buildExpressionFunction('myFn', { hello: [true] }); -]); - -const anotherFn = buildExpressionFunction('anotherFn', { world: [false] }); -exp.functions.push(anotherFn); -fn.replaceArgument('world', [true]); - -exp.toAst(); // prints the latest AST - -// you can get added type-safety by providing a generic type argument: -const exp = buildExpression([ - buildExpressionFunction<MyFnExpressionFunctionDefinition>('myFn', { hello: [true] }); -]); -const fns = exp.findFunction<MyFnExpressionFunctionDefinition>('myFn'); -``` -*via https://github.com/elastic/kibana/pull/64395[#64395]* - -==== - -[[breaking_79_mount]] -.Mount `ui/new_platform` applications in same div structure as Core -[%collapsible] -==== - -Applications that are mounted via the `core.application.register` -interface from the legacy `ui/new_platform` module are now mounted inside a -new `div` inside of the `<div class="application />` node rather than directly inside that node. -This makes the legacy bridge consistent with how true {kib} platform applications are mounted. - -*via https://github.com/elastic/kibana/pull/63930[#63930]* -==== diff --git a/docs/observability/images/apm-app.png b/docs/observability/images/apm-app.png deleted file mode 100644 index acbaa70c7f2f..000000000000 Binary files a/docs/observability/images/apm-app.png and /dev/null differ diff --git a/docs/observability/images/logs-app.png b/docs/observability/images/logs-app.png deleted file mode 100644 index 1138ec175e5b..000000000000 Binary files a/docs/observability/images/logs-app.png and /dev/null differ diff --git a/docs/observability/images/metrics-app.png b/docs/observability/images/metrics-app.png deleted file mode 100644 index 8c00a31974a7..000000000000 Binary files a/docs/observability/images/metrics-app.png and /dev/null differ diff --git a/docs/observability/images/observability-overview.png b/docs/observability/images/observability-overview.png deleted file mode 100644 index b7d3d09139a8..000000000000 Binary files a/docs/observability/images/observability-overview.png and /dev/null differ diff --git a/docs/observability/images/uptime-app.png b/docs/observability/images/uptime-app.png deleted file mode 100644 index 522a696adf50..000000000000 Binary files a/docs/observability/images/uptime-app.png and /dev/null differ diff --git a/docs/observability/index.asciidoc b/docs/observability/index.asciidoc deleted file mode 100644 index c924cea3712d..000000000000 --- a/docs/observability/index.asciidoc +++ /dev/null @@ -1,81 +0,0 @@ -[chapter] -[role="xpack"] -[[observability]] -= Observability - -Observability enables you to add and monitor your logs, system -metrics, uptime data, and application traces, as a single stack. - -With *Observability*, you have: - -* A central place to add and configure your data sources. -* A variety of charts displaying analytics relating to each data source. -* *View in app* options to drill down and analyze data in the Logs, Metrics, Uptime, and APM apps. -* An alerts chart to keep you informed of any issues that you may need to resolve quickly. - -{kib} provides step-by-step instructions to help you add and configure your data -sources. The {observability-guide}/index.html[Observability Guide] is a good source for more detailed information -and instructions. - -[role="screenshot"] -image::observability/images/observability-overview.png[Observability Overview in {kib}] - -[float] -[[logs-app]] -== Logs - -The {logs-app} in {kib} enables you to search, filter, and tail all your logs -ingested into {es}. Instead of having to log into different servers, change -directories, and tail individual files, all your logs are available in the {logs-app}. - -There is live streaming of logs, filtering using auto-complete, and a logs histogram -for quick navigation. You can also use machine learning to detect specific log -anomalies automatically and categorize log messages to quickly identify patterns in your -log events. - -To get started with the {logs-app}, see {observability-guide}/ingest-logs.html[Ingest logs]. - -[role="screenshot"] -image::observability/images/logs-app.png[Logs app in {kib}] - -[float] -[[metrics-app]] -== Metrics - -The {metrics-app} in {kib} enables you to visualize infrastructure metrics -to help diagnose problematic spikes, identify high resource utilization, -automatically discover and track pods, and unify your metrics -with logs and APM data in {es}. - -To get started with the {metrics-app}, see {observability-guide}/ingest-metrics.html[Ingest metrics]. - -[role="screenshot"] -image::observability/images/metrics-app.png[Metrics app in {kib}] - -[float] -[[uptime-app]] -== Uptime - -The {uptime-app} in {kib} enables you to monitor the availability and response times -of applications and services in real time, and detect problems before they affect users. -You can monitor the status of network endpoints via HTTP/S, TCP, and ICMP, explore -endpoint status over time, drill down into specific monitors, and view a high-level -snapshot of your environment at any point in time. - -To get started with the {uptime-app}, see {observability-guide}/ingest-uptime.html[Ingest uptime data]. - -[role="screenshot"] -image::observability/images/uptime-app.png[Uptime app in {kib}] - -[float] -[[apm-app]] -== APM - -The APM app in {kib} enables you to monitors software services and applications in real time, -collect unhandled errors and exceptions, and automatically pick up basic host-level metrics -and agent specific metrics. - -To get started with the APM app, see <<apm-ui,Set up the APM app>>. - -[role="screenshot"] -image::observability/images/apm-app.png[APM app in {kib}] diff --git a/docs/settings/alert-action-settings.asciidoc b/docs/settings/alert-action-settings.asciidoc deleted file mode 100644 index fa44d3a6ae41..000000000000 --- a/docs/settings/alert-action-settings.asciidoc +++ /dev/null @@ -1,57 +0,0 @@ -[role="xpack"] -[[alert-action-settings-kb]] -=== Alerting and action settings in {kib} -++++ -<titleabbrev>Alerting and action settings</titleabbrev> -++++ - -Alerts and actions are enabled by default in {kib}, but require you configure the following in order to use them: - -. <<using-kibana-with-security,Set up {kib} to work with {stack} {security-features}>>. -. <<configuring-tls-kib-es,Set up TLS encryption between {kib} and {es}>>. -. If you are using an *on-premises* Elastic Stack deployment, <<general-alert-action-settings,specify a value for `xpack.encryptedSavedObjects.encryptionKey`>>. - -You can configure the following settings in the `kibana.yml` file. - - -[float] -[[general-alert-action-settings]] -==== General settings - -[cols="2*<"] -|=== - -| `xpack.encryptedSavedObjects.encryptionKey` - | A string of 32 or more characters used to encrypt sensitive properties on alerts and actions before they're stored in {es}. Third party credentials — such as the username and password used to connect to an SMTP service — are an example of encrypted properties. + - + - If not set, {kib} will generate a random key on startup, but all alert and action functions will be blocked. Generated keys are not allowed for alerts and actions because when a new key is generated on restart, existing encrypted data becomes inaccessible. For the same reason, alerts and actions in high-availability deployments of {kib} will behave unexpectedly if the key isn't the same on all instances of {kib}. + - + - Although the key can be specified in clear text in `kibana.yml`, it's recommended to store this key securely in the <<secure-settings,{kib} Keystore>>. - Be sure to back up the encryption key value somewhere safe, as your alerts and actions will cease to function due to decryption failures should you lose it. If you want to rotate the encryption key, be sure to follow the instructions on <<encryption-key-rotation, encryption key rotation>>. - -|=== - -[float] -[[action-settings]] -==== Action settings - -[cols="2*<"] -|=== - -| `xpack.actions.allowedHosts` {ess-icon} - | A list of hostnames that {kib} is allowed to connect to when built-in actions are triggered. It defaults to `[*]`, allowing any host, but keep in mind the potential for SSRF attacks when hosts are not explicitly added to the allowed hosts. An empty list `[]` can be used to block built-in actions from making any external connections. + - + - Note that hosts associated with built-in actions, such as Slack and PagerDuty, are not automatically added to allowed hosts. If you are not using the default `[*]` setting, you must ensure that the corresponding endpoints are added to the allowed hosts as well. - -| `xpack.actions.enabledActionTypes` {ess-icon} - | A list of action types that are enabled. It defaults to `[*]`, enabling all types. The names for built-in {kib} action types are prefixed with a `.` and include: `.server-log`, `.slack`, `.email`, `.index`, `.pagerduty`, and `.webhook`. An empty list `[]` will disable all action types. + - + - Disabled action types will not appear as an option when creating new connectors, but existing connectors and actions of that type will remain in {kib} and will not function. - -|=== - -[float] -[[alert-settings]] -==== Alert settings - -You do not need to configure any additional settings to use alerting in {kib}. diff --git a/docs/settings/apm-settings.asciidoc b/docs/settings/apm-settings.asciidoc deleted file mode 100644 index 336c6b5c548c..000000000000 --- a/docs/settings/apm-settings.asciidoc +++ /dev/null @@ -1,97 +0,0 @@ -[role="xpack"] -[[apm-settings-kb]] -=== APM settings in Kibana -++++ -<titleabbrev>APM settings</titleabbrev> -++++ - -ifeval::[{branch} == 7.x] -:apm-server-ref: https://www.elastic.co/guide/en/apm/server/master -:apm-overview-ref-v: https://www.elastic.co/guide/en/apm/get-started/master -endif::[] - -These settings allow the APM app to function, and specify the data that it surfaces. -Unless you've customized your setup, -you do not need to configure any settings to use the APM app. -It is enabled by default. - -[float] -[[apm-indices-settings-kb]] -==== APM indices - -// This content is reused in the APM app documentation. -// Any changes made in this file will be seen there as well. -// tag::apm-indices-settings[] - -Index defaults can be changed in Kibana. Open the main menu, then click *APM > Settings > Indices*. -Index settings in the APM app take precedence over those set in `kibana.yml`. - -[role="screenshot"] -image::settings/images/apm-settings.png[APM app settings in Kibana] - -// end::apm-indices-settings[] - -[float] -[[general-apm-settings-kb]] -==== General APM settings - -// This content is reused in the APM app documentation. -// Any changes made in this file will be seen there as well. -// tag::general-apm-settings[] - -If you'd like to change any of the default values, -copy and paste the relevant settings into your `kibana.yml` configuration file. -Changing these settings may disable features of the APM App. - -[cols="2*<"] -|=== -| `xpack.apm.enabled` - | Set to `false` to disable the APM app. Defaults to `true`. - -| `xpack.apm.serviceMapFingerprintBucketSize` - | Maximum number of unique transaction combinations sampled for generating service map focused on a specific service. Defaults to `100`. - -| `xpack.apm.serviceMapFingerprintGlobalBucketSize` - | Maximum number of unique transaction combinations sampled for generating the global service map. Defaults to `100`. - -| `xpack.apm.ui.enabled` {ess-icon} - | Set to `false` to hide the APM app from the main menu. Defaults to `true`. - -| `xpack.apm.ui.transactionGroupBucketSize` - | Number of top transaction groups displayed in the APM app. Defaults to `1000`. - -| `xpack.apm.ui.maxTraceItems` {ess-icon} - | Maximum number of child items displayed when viewing trace details. Defaults to `1000`. - -| `xpack.observability.annotations.index` - | Index name where Observability annotations are stored. Defaults to `observability-annotations`. - -| `xpack.apm.searchAggregatedTransactions` - | experimental[] Enables Transaction histogram metrics. Defaults to `false`. When `true`, additional configuration in APM Server is required. - See {apm-server-ref-v}/transaction-metrics.html[Configure transaction metrics] for more information. - -| `apm_oss.indexPattern` {ess-icon} - | The index pattern used for integrations with Machine Learning and Query Bar. - It must match all apm indices. Defaults to `apm-*`. - -| `apm_oss.errorIndices` {ess-icon} - | Matcher for all {apm-server-ref}/error-indices.html[error indices]. Defaults to `apm-*`. - -| `apm_oss.onboardingIndices` - | Matcher for all onboarding indices. Defaults to `apm-*`. - -| `apm_oss.spanIndices` {ess-icon} - | Matcher for all {apm-server-ref}/span-indices.html[span indices]. Defaults to `apm-*`. - -| `apm_oss.transactionIndices` {ess-icon} - | Matcher for all {apm-server-ref}/transaction-indices.html[transaction indices]. Defaults to `apm-*`. - -| `apm_oss.metricsIndices` - | Matcher for all {apm-server-ref}/metricset-indices.html[metrics indices]. Defaults to `apm-*`. - -| `apm_oss.sourcemapIndices` - | Matcher for all {apm-server-ref}/sourcemap-indices.html[source map indices]. Defaults to `apm-*`. - -|=== - -// end::general-apm-settings[] diff --git a/docs/settings/dev-settings.asciidoc b/docs/settings/dev-settings.asciidoc deleted file mode 100644 index 62553293a7d0..000000000000 --- a/docs/settings/dev-settings.asciidoc +++ /dev/null @@ -1,31 +0,0 @@ -[role="xpack"] -[[dev-settings-kb]] -=== Development tools settings in {kib} -++++ -<titleabbrev>Development tools settings</titleabbrev> -++++ - -You do not need to configure any settings to use the development tools in {kib}. -They are enabled by default. - -[float] -[[grok-settings]] -==== Grok Debugger settings - -[cols="2*<"] -|=== -| `xpack.grokdebugger.enabled` {ess-icon} - | Set to `true` to enable the <<xpack-grokdebugger,Grok Debugger>>. Defaults to `true`. - -|=== - -[float] -[[profiler-settings]] -==== {searchprofiler} settings - -[cols="2*<"] -|=== -| `xpack.searchprofiler.enabled` - | Set to `true` to enable the <<xpack-profiler,{searchprofiler}>>. Defaults to `true`. - -|=== diff --git a/docs/settings/fleet-settings.asciidoc b/docs/settings/fleet-settings.asciidoc deleted file mode 100644 index 2d330445d9ce..000000000000 --- a/docs/settings/fleet-settings.asciidoc +++ /dev/null @@ -1,51 +0,0 @@ -[role="xpack"] -[[fleet-settings-kb]] -=== {fleet} settings in {kib} -++++ -<titleabbrev>{fleet} settings</titleabbrev> -++++ - -experimental[] - -You can configure `xpack.fleet` settings in your `kibana.yml`. -By default, {fleet} is enabled. To use {fleet}, you also need to configure {kib} and {es} hosts. - -See the {fleet-guide}/index.html[{fleet}] docs for more information. - -[[general-fleet-settings-kb]] -==== General {fleet} settings - -[cols="2*<"] -|=== -| `xpack.fleet.enabled` {ess-icon} - | Set to `true` (default) to enable {fleet}. -| `xpack.fleet.agents.enabled` {ess-icon} - | Set to `true` (default) to enable {fleet}. -|=== - -[[fleet-data-visualizer-settings]] - -==== {package-manager} settings - -[cols="2*<"] -|=== -| `xpack.fleet.registryUrl` - | The address to use to reach {package-manager} registry. -|=== - -==== {fleet} settings - -[cols="2*<"] -|=== -| `xpack.fleet.agents.kibana.host` - | The hostname used by {agent} for accessing {kib}. -| `xpack.fleet.agents.elasticsearch.host` - | The hostname used by {agent} for accessing {es}. -| `xpack.fleet.agents.tlsCheckDisabled` - | Set to `true` to allow {fleet} to run on a {kib} instance without TLS enabled. -|=== - -[NOTE] -==== -In {ecloud}, {fleet} flags are already configured. -==== diff --git a/docs/settings/graph-settings.asciidoc b/docs/settings/graph-settings.asciidoc deleted file mode 100644 index 876e3dc936cc..000000000000 --- a/docs/settings/graph-settings.asciidoc +++ /dev/null @@ -1,19 +0,0 @@ -[role="xpack"] -[[graph-settings-kb]] -=== Graph settings in {kib} -++++ -<titleabbrev>Graph settings</titleabbrev> -++++ - -You do not need to configure any settings to use the {graph-features}. - -[float] -[[general-graph-settings]] -==== General graph settings - -[cols="2*<"] -|=== -| `xpack.graph.enabled` {ess-icon} - | Set to `false` to disable the {graph-features}. - -|=== diff --git a/docs/settings/i18n-settings.asciidoc b/docs/settings/i18n-settings.asciidoc deleted file mode 100644 index 8f498c507a8c..000000000000 --- a/docs/settings/i18n-settings.asciidoc +++ /dev/null @@ -1,18 +0,0 @@ -[role="xpack"] -[[i18n-settings-kb]] -=== i18n settings in {kib} -++++ -<titleabbrev>i18n settings</titleabbrev> -++++ - -You do not need to configure any settings to run Kibana in English. - -[float] -[[general-i18n-settings-kb]] -==== General i18n settings - -`i18n.locale`:: - {kib} supports the following locales: - * English - `en` (default) - * Chinese - `zh-CN` - * Japanese - `ja-JP` diff --git a/docs/settings/infrastructure-ui-settings.asciidoc b/docs/settings/infrastructure-ui-settings.asciidoc deleted file mode 100644 index c29ed567531d..000000000000 --- a/docs/settings/infrastructure-ui-settings.asciidoc +++ /dev/null @@ -1,14 +0,0 @@ -[role="xpack"] -[[infrastructure-ui-settings-kb]] -=== Metrics settings in {kib} -++++ -<titleabbrev>Metrics settings</titleabbrev> -++++ - -You do not need to configure any settings to use the Metrics app in {kib}. It is enabled by default. - -[float] -[[general-infra-ui-settings-kb]] -==== General Metrics settings - -include::general-infra-logs-ui-settings.asciidoc[] diff --git a/docs/settings/logs-ui-settings.asciidoc b/docs/settings/logs-ui-settings.asciidoc deleted file mode 100644 index e7321b7f0768..000000000000 --- a/docs/settings/logs-ui-settings.asciidoc +++ /dev/null @@ -1,14 +0,0 @@ -[role="xpack"] -[[logs-ui-settings-kb]] -=== Logs settings in {kib} -++++ -<titleabbrev>Logs settings</titleabbrev> -++++ - -You do not need to configure any settings to use the Logs app in {kib}. It is enabled by default. - -[float] -[[general-logs-ui-settings-kb]] -==== General Logs settings - -include::general-infra-logs-ui-settings.asciidoc[] diff --git a/docs/settings/ml-settings.asciidoc b/docs/settings/ml-settings.asciidoc deleted file mode 100644 index 92d0c0b491ce..000000000000 --- a/docs/settings/ml-settings.asciidoc +++ /dev/null @@ -1,29 +0,0 @@ -[role="xpack"] -[[ml-settings-kb]] -=== Machine learning settings in {kib} -++++ -<titleabbrev>Machine learning settings</titleabbrev> -++++ - -You do not need to configure any settings to use {kib} {ml-features}. They are -enabled by default. - -[[general-ml-settings-kb]] -==== General {ml} settings - -[cols="2*<"] -|=== -| `xpack.ml.enabled` {ess-icon} - | Set to `true` (default) to enable {kib} {ml-features}. + - + - If set to `false` in `kibana.yml`, the {ml} icon is hidden in this {kib} - instance. If `xpack.ml.enabled` is set to `true` in `elasticsearch.yml`, however, - you can still use the {ml} APIs. To disable {ml} entirely, see the - {ref}/ml-settings.html[{es} {ml} settings]. - -|=== - -[[advanced-ml-settings-kb]] -==== Advanced {ml} settings - -Refer to <<kibana-ml-settings,Advanced {ml} settings in {kib}>>. diff --git a/docs/settings/reporting-settings.asciidoc b/docs/settings/reporting-settings.asciidoc deleted file mode 100644 index d44c42db92f4..000000000000 --- a/docs/settings/reporting-settings.asciidoc +++ /dev/null @@ -1,283 +0,0 @@ -[role="xpack"] -[[reporting-settings-kb]] -=== Reporting settings in {kib} -++++ -<titleabbrev>Reporting settings</titleabbrev> -++++ - -You can configure `xpack.reporting` settings in your `kibana.yml` to: - -* <<reporting-kibana-server-settings,Control how the {report-features} communicate with the {kib} server>> -* <<reporting-job-queue-settings,Manage background jobs>> -* <<reporting-capture-settings,Capture screenshots>> -* <<reporting-csv-settings,Increase the byte limit for CSV exports>> - -[float] -[[general-reporting-settings]] -==== General reporting settings - -[cols="2*<"] -|=== -| [[xpack-enable-reporting]]`xpack.reporting.enabled` {ess-icon} - | Set to `false` to disable the {report-features}. - -|[[xpack-reporting-encryptionKey]] `xpack.reporting.encryptionKey` {ess-icon} - | Set to an alphanumeric, at least 32 characters long text string. By default, {kib} will generate a random key when it - starts, which will cause pending reports to fail after restart. Configure this - setting to preserve the same key across multiple restarts and multiple instances of {kib}. - -|=== - -[float] -[[reporting-kibana-server-settings]] -==== {kib} server settings - -Reporting opens the {kib} web interface in a server process to generate -screenshots of {kib} visualizations. In most cases, the default settings -will work and you don't need to configure Reporting to communicate with {kib}. -However, if your client connections must go through a reverse-proxy -to access {kib}, Reporting configuration must have the proxy port, protocol, -and hostname set in the `xpack.reporting.kibanaServer.*` settings. - -[NOTE] -==== -If a reverse-proxy carries encrypted traffic from end-user -clients back to a {kib} server, the proxy port, protocol, and hostname -in Reporting settings must be valid for the encryption that the Reporting -browser will receive. Encrypted communications will fail if there are -mismatches in the host information between the request and the certificate on the server. - -Configuring the `xpack.reporting.kibanaServer` settings to point to a -proxy host requires that the {kib} server has network access to the proxy. -==== - -[cols="2*<"] -|=== -| `xpack.reporting.kibanaServer.port` - | The port for accessing {kib}, if different from the <<server-port, `server.port`>> value. - -| `xpack.reporting.kibanaServer.protocol` - | The protocol for accessing {kib}, typically `http` or `https`. - -|[[xpack-kibanaServer-hostname]] `xpack.reporting.kibanaServer.hostname` - | The hostname for accessing {kib}, if different from the <<server-host, `server.host`>> value. - -|=== - -[NOTE] -============ -Reporting authenticates requests on the {kib} page only when the hostname matches the -<<xpack-kibanaServer-hostname, `xpack.reporting.kibanaServer.hostname`>> setting. Therefore Reporting would fail if the -set value redirects to another server. For that reason, `"0"` is an invalid setting -because, in the Reporting browser, it becomes an automatic redirect to `"0.0.0.0"`. -============ - - -[float] -[[reporting-job-queue-settings]] -==== Background job settings - -Reporting generates reports in the background and jobs are coordinated using documents -in {es}. Depending on how often you generate reports and the overall number of -reports, you might need to change the following settings. - -[cols="2*<"] -|=== -| `xpack.reporting.queue.indexInterval` - | How often the index that stores reporting jobs rolls over to a new index. - Valid values are `year`, `month`, `week`, `day`, and `hour`. Defaults to `week`. - -| `xpack.reporting.queue.pollEnabled` {ess-icon} - | Set to `true` (default) to enable the {kib} instance to to poll the index for - pending jobs and claim them for execution. Setting this to `false` allows the - {kib} instance to only add new jobs to the reporting queue, list jobs, and - provide the downloads to completed report through the UI. - -|=== - -[NOTE] -============ -Running multiple instances of {kib} in a cluster for load balancing of -reporting requires identical values for <<xpack-reporting-encryptionKey, `xpack.reporting.encryptionKey`>> and, if -security is enabled, <<xpack-security-encryptionKey, `xpack.security.encryptionKey`>>. -============ - -[cols="2*<"] -|=== -| `xpack.reporting.queue.pollInterval` - | Specify the {ref}/common-options.html#time-units[time] that the reporting poller waits between polling the index for any - pending Reporting jobs. Can be specified as number of milliseconds. Defaults to `3s`. - -| [[xpack-reporting-q-timeout]] `xpack.reporting.queue.timeout` {ess-icon} - | {ref}/common-options.html#time-units[How long] each worker has to produce a report. If your machine is slow or under heavy - load, you might need to increase this timeout. If a Reporting job execution goes over this time limit, the job is marked as a - failure and no download will be available. Can be specified as number of milliseconds. - Defaults to `2m`. - -|=== - -[float] -[[reporting-capture-settings]] -==== Capture settings - -Reporting works by capturing screenshots from {kib}. The following settings -control the capturing process. - -[cols="2*<"] -|=== -a| `xpack.reporting.capture.timeouts` -`.openUrl` {ess-icon} - | Specify the {ref}/common-options.html#time-units[time] to allow the Reporting browser to wait for the "Loading..." screen - to dismiss and find the initial data for the page. If the time is exceeded, a screenshot is captured showing the current - page, and the download link shows a warning message. Can be specified as number of milliseconds. - Defaults to `1m`. - -a| `xpack.reporting.capture.timeouts` -`.waitForElements` {ess-icon} - | Specify the {ref}/common-options.html#time-units[time] to allow the Reporting browser to wait for all visualization panels - to load on the page. If the time is exceeded, a screenshot is captured showing the current page, and the download link shows - a warning message. Can be specified as number of milliseconds. - Defaults to `30s`. - -a| `xpack.reporting.capture.timeouts` -`.renderComplete` {ess-icon} - | Specify the {ref}/common-options.html#time-units[time] to allow the Reporting browser to wait for all visualizations to - fetch and render the data. If the time is exceeded, a screenshot is captured showing the current page, and the download link shows a - warning message. Can be specified as number of milliseconds. - Defaults to `30s`. - -|=== - -[NOTE] -============ -If any timeouts from `xpack.reporting.capture.timeouts.*` settings occur when -running a report job, Reporting will log the error and try to continue -capturing the page with a screenshot. As a result, a download will be -available, but there will likely be errors in the visualizations in the report. -============ - -[cols="2*<"] -|=== -| `xpack.reporting.capture.maxAttempts` {ess-icon} - | If capturing a report fails for any reason, {kib} will re-attempt other reporting - job, as many times as this setting. Defaults to `3`. - -| `xpack.reporting.capture.loadDelay` - | Specify the {ref}/common-options.html#time-units[amount of time] before taking a screenshot when visualizations are not evented. - All visualizations that ship with {kib} are evented, so this setting should not have much effect. If you are seeing empty images - instead of visualizations, try increasing this value. - Defaults to `3s`. - -| [[xpack-reporting-browser]] `xpack.reporting.capture.browser.type` {ess-icon} - | Specifies the browser to use to capture screenshots. This setting exists for - backward compatibility. The only valid option is `chromium`. - -|=== - -[float] -[[reporting-chromium-settings]] -==== Chromium settings - -When <<xpack-reporting-browser, `xpack.reporting.capture.browser.type`>> is set to `chromium` (default) you can also specify the following settings. - -[cols="2*<"] -|=== -a| `xpack.reporting.capture.browser` -`.chromium.disableSandbox` - | It is recommended that you research the feasibility of enabling unprivileged user namespaces. - See Chromium Sandbox for additional information. Defaults to false for all operating systems except Debian, - Red Hat Linux, and CentOS which use true. - -a| `xpack.reporting.capture.browser` -`.chromium.proxy.enabled` - | Enables the proxy for Chromium to use. When set to `true`, you must also specify the - `xpack.reporting.capture.browser.chromium.proxy.server` setting. - Defaults to `false`. - -a| `xpack.reporting.capture.browser` -.chromium.proxy.server` - | The uri for the proxy server. Providing the username and password for the proxy server via the uri is not supported. - -a| `xpack.reporting.capture.browser` -.chromium.proxy.bypass` - | An array of hosts that should not go through the proxy server and should use a direct connection instead. - Examples of valid entries are "elastic.co", "*.elastic.co", ".elastic.co", ".elastic.co:5601". - -|=== - -[float] -[[reporting-csv-settings]] -==== CSV settings - -[cols="2*<"] -|=== -| [[xpack-reporting-csv]] `xpack.reporting.csv.maxSizeBytes` {ess-icon} - | The maximum {ref}/common-options.html#byte-units[byte size] of a CSV file before being truncated. This setting exists to - prevent large exports from causing performance and storage issues. Can be specified as number of bytes. - Defaults to `10mb`. -|=== - -[NOTE] -============ -Setting `xpack.reporting.csv.maxSizeBytes` much larger than the default 10 MB limit has the potential to negatively affect the -performance of {kib} and your {es} cluster. There is no enforced maximum for this setting, but a reasonable maximum value depends -on multiple factors: - -* The `http.max_content_length` setting in {es}. -* Network proxies, which are often configured by default to block large requests with a 413 error. -* The amount of memory available to the {kib} server, which limits the size of CSV data that must be held temporarily. - -For information about {kib} memory limits, see <<production, using {kib} in a production environment>>. -============ - -[cols="2*<"] -|=== - -| `xpack.reporting.csv.scroll.size` - | Number of documents retrieved from {es} for each scroll iteration during a CSV - export. - Defaults to `500`. - -| `xpack.reporting.csv.scroll.duration` - | Amount of {ref}/common-options.html#time-units[time] allowed before {kib} cleans the scroll context during a CSV export. - Defaults to `30s`. - -| `xpack.reporting.csv.checkForFormulas` - | Enables a check that warns you when there's a potential formula involved in the output (=, -, +, and @ chars). - See OWASP: https://www.owasp.org/index.php/CSV_Injection - Defaults to `true`. - -| `xpack.reporting.csv` `.enablePanelActionDownload` - | Enables CSV export from a saved search on a dashboard. This action is available in the dashboard panel menu for the saved search. - *Note:* This setting exists for backwards compatibility, but is unused and hardcoded to `true`. CSV export from a saved search on a dashboard - is enabled when Reporting is enabled. - -|=== - -[float] -[[reporting-advanced-settings]] -==== Advanced settings - -[cols="2*<"] -|=== -| `xpack.reporting.index` - | Reporting uses a weekly index in {es} to store the reporting job and - the report content. The index is automatically created if it does not already - exist. Configure this to a unique value, beginning with `.reporting-`, for every - {kib} instance that has a unique <<kibana-index, `kibana.index`>> setting. Defaults to `.reporting`. - -| `xpack.reporting.capture.networkPolicy` - | Capturing a screenshot from a {kib} page involves sending out requests for all the linked web assets. For example, a Markdown - visualization can show an image from a remote server. You can configure what type of requests to allow or filter by setting a - <<reporting-network-policy, network policy>> for Reporting. - -| `xpack.reporting.roles.allow` - | Specifies the roles in addition to superusers that can use reporting. - Defaults to `[ "reporting_user" ]`. + - -|=== - -[NOTE] -============ -Each user has access to only their own reports. -============ diff --git a/docs/settings/security-settings.asciidoc b/docs/settings/security-settings.asciidoc deleted file mode 100644 index 51ff24256746..000000000000 --- a/docs/settings/security-settings.asciidoc +++ /dev/null @@ -1,264 +0,0 @@ -[role="xpack"] -[[security-settings-kb]] -=== Security settings in {kib} -++++ -<titleabbrev>Security settings</titleabbrev> -++++ - -You do not need to configure any additional settings to use the -{security-features} in {kib}. They are enabled by default. - -[float] -[[general-security-settings]] -==== General security settings - -[cols="2*<"] -|=== -| `xpack.security.enabled` - | By default, {kib} automatically detects whether to enable the - {security-features} based on the license and whether {es} {security-features} - are enabled. + - + - Do not set this to `false`; it disables the login form, user and role management - screens, and authorization using <<kibana-privileges>>. To disable - {security-features} entirely, see - {ref}/security-settings.html[{es} security settings]. - -| `xpack.security.audit.enabled` - | Set to `true` to enable audit logging for security events. By default, it is set - to `false`. For more details see <<xpack-security-audit-logging>>. - -|=== - -[float] -[[authentication-security-settings]] -==== Authentication security settings - -You configure authentication settings in the `xpack.security.authc` namespace in `kibana.yml`. - -For example: - -[source,yaml] ----------------------------------------- -xpack.security.authc: - providers: - basic.basic1: <1> - order: 0 <2> - ... - - saml.saml1: <3> - order: 1 - ... - - saml.saml2: <4> - order: 2 - ... - - pki.realm3: - order: 3 - ... - ... ----------------------------------------- -<1> Specifies the type of authentication provider (for example, `basic`, `token`, `saml`, `oidc`, `kerberos`, `pki`) and the provider name. This setting is mandatory. -<2> Specifies the order of the provider in the authentication chain and on the Login Selector UI. This setting is mandatory. -<3> Specifies the settings for the SAML authentication provider with a `saml1` name. -<4> Specifies the settings for the SAML authentication provider with a `saml2` name. - -The valid settings in the `xpack.security.authc.providers` namespace vary depending on the authentication provider type. For more information, refer to <<kibana-authentication>>. - -[float] -[[authentication-provider-settings]] -===== Valid settings for all authentication providers - -[cols="2*<"] -|=== -| `xpack.security.authc.providers.` -`<provider-type>.<provider-name>.enabled` {ess-icon} -| Determines if the authentication provider should be enabled. By default, {kib} enables the provider as soon as you configure any of its properties. - -| `xpack.security.authc.providers.` -`<provider-type>.<provider-name>.order` {ess-icon} -| Order of the provider in the authentication chain and on the Login Selector UI. - -| `xpack.security.authc.providers.` -`<provider-type>.<provider-name>.description` {ess-icon} -| Custom description of the provider entry displayed on the Login Selector UI. - -| `xpack.security.authc.providers.` -`<provider-type>.<provider-name>.hint` {ess-icon} -| Custom hint for the provider entry displayed on the Login Selector UI. - -| `xpack.security.authc.providers.` -`<provider-type>.<provider-name>.icon` {ess-icon} -| Custom icon for the provider entry displayed on the Login Selector UI. - -| `xpack.security.authc.providers.` -`<provider-type>.<provider-name>.showInSelector` {ess-icon} -| Flag that indicates if the provider should have an entry on the Login Selector UI. Setting this to `false` doesn't remove the provider from the authentication chain. - -2+a| -[TIP] -[NOTE] -============ -You are unable to set this setting to `false` for `basic` and `token` authentication providers. -============ - -| `xpack.security.authc.providers.` -`<provider-type>.<provider-name>.accessAgreement.message` {ess-icon} -| Access agreement text in Markdown format. For more information, refer to <<xpack-security-access-agreement>>. - -|=== - -[float] -[[saml-authentication-provider-settings]] -===== SAML authentication provider settings - -In addition to <<authentication-provider-settings,the settings that are valid for all providers>>, you can specify the following settings: - -[cols="2*<"] -|=== -| `xpack.security.authc.providers.` -`saml.<provider-name>.realm` {ess-icon} -| SAML realm in {es} that provider should use. - -| `xpack.security.authc.providers.` -`saml.<provider-name>.useRelayStateDeepLink` {ess-icon} -| Determines if the provider should treat the `RelayState` parameter as a deep link in {kib} during Identity Provider initiated log in. By default, this setting is set to `false`. The link specified in `RelayState` should be a relative, URL-encoded {kib} URL. For example, the `/app/dashboards#/list` link in `RelayState` parameter would look like this: `RelayState=%2Fapp%2Fdashboards%23%2Flist`. - -|=== - -[float] -[[oidc-authentication-provider-settings]] -===== OpenID Connect authentication provider settings - -In addition to <<authentication-provider-settings,the settings that are valid for all providers>>, you can specify the following settings: - -[cols="2*<"] -|=== -| `xpack.security.authc.providers.` -`oidc.<provider-name>.realm` {ess-icon} -| OpenID Connect realm in {es} that the provider should use. - -|=== - -[float] -[[http-authentication-settings]] -===== HTTP authentication settings - -There is a very limited set of cases when you'd want to change these settings. For more information, refer to <<http-authentication>>. - -[cols="2*<"] -|=== -| `xpack.security.authc.http.enabled` -| Determines if HTTP authentication should be enabled. By default, this setting is set to `true`. - -| `xpack.security.authc.http.autoSchemesEnabled` -| Determines if HTTP authentication schemes used by the enabled authentication providers should be automatically supported during HTTP authentication. By default, this setting is set to `true`. - -| `xpack.security.authc.http.schemes` -| List of HTTP authentication schemes that {kib} HTTP authentication should support. By default, this setting is set to `['apikey']` to support HTTP authentication with <<api-keys, `ApiKey`>> scheme. - -|=== - -[float] -[[login-ui-settings]] -===== Login user interface settings - -You can configure the following settings in the `kibana.yml` file. - -[cols="2*<"] -|=== -| `xpack.security.loginAssistanceMessage` {ess-icon} -| Adds a message to the login UI. Useful for displaying information about maintenance windows, links to corporate sign up pages, and so on. - -| `xpack.security.loginHelp` {ess-icon} -| Adds a message accessible at the login UI with additional help information for the login process. - -| `xpack.security.authc.selector.enabled` {ess-icon} -| Determines if the login selector UI should be enabled. By default, this setting is set to `true` if more than one authentication provider is configured. - -|=== - -[float] -[[security-session-and-cookie-settings]] -==== Session and cookie security settings - -You can configure the following settings in the `kibana.yml` file. - -[cols="2*<"] -|=== -| `xpack.security.cookieName` - | Sets the name of the cookie used for the session. The default value is `"sid"`. - -|[[xpack-security-encryptionKey]] `xpack.security.encryptionKey` - | An arbitrary string of 32 characters or more that is used to encrypt session information. Do **not** expose this key to users of {kib}. By - default, a value is automatically generated in memory. If you use that default - behavior, all sessions are invalidated when {kib} restarts. - In addition, high-availability deployments of {kib} will behave unexpectedly - if this setting isn't the same for all instances of {kib}. - -|[[xpack-security-secureCookies]] `xpack.security.secureCookies` - | Sets the `secure` flag of the session cookie. The default value is `false`. It - is automatically set to `true` if <<server-ssl-enabled, `server.ssl.enabled`>> is set to `true`. Set - this to `true` if SSL is configured outside of {kib} (for example, you are - routing requests through a load balancer or proxy). - -| `xpack.security.sameSiteCookies` {ess-icon} - | Sets the `SameSite` attribute of the session cookie. This allows you to declare whether your cookie should be restricted to a first-party or same-site context. - Valid values are `Strict`, `Lax`, `None`. - This is *not set* by default, which modern browsers will treat as `Lax`. If you use Kibana embedded in an iframe in modern browsers, you might need to set it to `None`. Setting this value to `None` requires cookies to be sent over a secure connection by setting <<xpack-security-secureCookies, `xpack.security.secureCookies`>>: true`. Some old versions of IE11 do not support `SameSite: None`. - -|[[xpack-session-idleTimeout]] `xpack.security.session.idleTimeout` {ess-icon} - | Ensures that user sessions will expire after a period of inactivity. This and <<xpack-session-lifespan,`xpack.security.session.lifespan`>> are both -highly recommended. By default, this setting is not set. - -2+a| -[TIP] -============ -The format is a string of `<count>[ms\|s\|m\|h\|d\|w\|M\|Y]` (e.g. '20m', '24h', '7d', '1w'). -============ - -|[[xpack-session-lifespan]] `xpack.security.session.lifespan` {ess-icon} - | Ensures that user sessions will expire after the defined time period. This behavior also known as an "absolute timeout". If -this is _not_ set, user sessions could stay active indefinitely. This and <<xpack-session-idleTimeout, `xpack.security.session.idleTimeout`>> are both highly -recommended. By default, this setting is not set. - -2+a| -[TIP] -============ -The format is a string of `<count>[ms\|s\|m\|h\|d\|w\|M\|Y]` (e.g. '20m', '24h', '7d', '1w'). -============ - -| `xpack.security.session.cleanupInterval` -| Sets the interval at which {kib} tries to remove expired and invalid sessions from the session index. By default, this value is 1 hour. The minimum value is 10 seconds. - -2+a| -[TIP] -============ -The format is a string of `<count>[ms\|s\|m\|h\|d\|w\|M\|Y]` (e.g. '20m', '24h', '7d', '1w'). -============ - -|=== - -[float] -[[security-encrypted-saved-objects-settings]] -==== Encrypted saved objects settings - -These settings control the encryption of saved objects with sensitive data. For more details, refer to <<xpack-security-secure-saved-objects>>. - -[IMPORTANT] -============ -In high-availability deployments, make sure you use the same encryption and decryption keys for all instances of {kib}. Although the keys can be specified in clear text in `kibana.yml`, it's recommended to store them securely in the <<secure-settings,{kib} Keystore>>. -============ - -[cols="2*<"] -|=== -| [[xpack-encryptedSavedObjects-encryptionKey]] `xpack.encryptedSavedObjects.` -`encryptionKey` -| An arbitrary string of at least 32 characters that is used to encrypt sensitive properties of saved objects before they're stored in {es}. If not set, {kib} will generate a random key on startup, but certain features won't be available until you set the encryption key explicitly. - -| [[xpack-encryptedSavedObjects-keyRotation-decryptionOnlyKeys]] `xpack.encryptedSavedObjects.` -`keyRotation.decryptionOnlyKeys` -| An optional list of previously used encryption keys. Like <<xpack-encryptedSavedObjects-encryptionKey, `xpack.encryptedSavedObjects.encryptionKey`>>, these must be at least 32 characters in length. {kib} doesn't use these keys for encryption, but may still require them to decrypt some existing saved objects. Use this setting if you wish to change your encryption key, but don't want to lose access to saved objects that were previously encrypted with a different key. - -|=== \ No newline at end of file diff --git a/docs/settings/settings-xkb.asciidoc b/docs/settings/settings-xkb.asciidoc deleted file mode 100644 index 9d9cc9240189..000000000000 --- a/docs/settings/settings-xkb.asciidoc +++ /dev/null @@ -1,23 +0,0 @@ -[role="xpack"] -[[settings-xpack-kb]] -== {xpack} settings in {kib} -[subs="attributes"] -++++ -<titleabbrev>{xpack} settings</titleabbrev> -++++ - -include::{asciidoc-dir}/../../shared/settings.asciidoc[] - -For more {kib} configuration settings, see <<settings>>. - -include::alert-action-settings.asciidoc[] -include::apm-settings.asciidoc[] -include::dev-settings.asciidoc[] -include::graph-settings.asciidoc[] -include::infrastructure-ui-settings.asciidoc[] -include::logs-ui-settings.asciidoc[] -include::ml-settings.asciidoc[] -include::reporting-settings.asciidoc[] -include::spaces-settings.asciidoc[] -include::i18n-settings.asciidoc[] -include::fleet-settings.asciidoc[] diff --git a/docs/settings/spaces-settings.asciidoc b/docs/settings/spaces-settings.asciidoc deleted file mode 100644 index bda5f00f762c..000000000000 --- a/docs/settings/spaces-settings.asciidoc +++ /dev/null @@ -1,26 +0,0 @@ -[role="xpack"] -[[spaces-settings-kb]] -=== Spaces settings in {kib} -++++ -<titleabbrev>Spaces settings</titleabbrev> -++++ - -By default, Spaces is enabled in Kibana, and you can secure Spaces using -roles when Security is enabled. - -[float] -[[spaces-settings]] -==== Spaces settings - -[cols="2*<"] -|=== -| `xpack.spaces.enabled` - | Set to `true` (default) to enable Spaces in {kib}. - -| `xpack.spaces.maxSpaces` - | The maximum amount of Spaces that can be used with this instance of {kib}. Some operations - in {kib} return all spaces using a single `_search` from {es}, so this must be - set lower than the `index.max_result_window` in {es}. - Defaults to `1000`. - -|=== diff --git a/docs/siem/images/cases-ui.png b/docs/siem/images/cases-ui.png deleted file mode 100644 index cb6361581d19..000000000000 Binary files a/docs/siem/images/cases-ui.png and /dev/null differ diff --git a/docs/siem/images/detections-ui.png b/docs/siem/images/detections-ui.png deleted file mode 100644 index b3fd7b5b51b8..000000000000 Binary files a/docs/siem/images/detections-ui.png and /dev/null differ diff --git a/docs/siem/images/hosts-ui.png b/docs/siem/images/hosts-ui.png deleted file mode 100644 index 57b09e340355..000000000000 Binary files a/docs/siem/images/hosts-ui.png and /dev/null differ diff --git a/docs/siem/images/ml-ui.png b/docs/siem/images/ml-ui.png deleted file mode 100644 index e301f6e28a45..000000000000 Binary files a/docs/siem/images/ml-ui.png and /dev/null differ diff --git a/docs/siem/images/network-ui.png b/docs/siem/images/network-ui.png deleted file mode 100644 index a33040c41ddd..000000000000 Binary files a/docs/siem/images/network-ui.png and /dev/null differ diff --git a/docs/siem/images/overview-ui.png b/docs/siem/images/overview-ui.png deleted file mode 100644 index cf5475c89952..000000000000 Binary files a/docs/siem/images/overview-ui.png and /dev/null differ diff --git a/docs/siem/images/timeline-ui.png b/docs/siem/images/timeline-ui.png deleted file mode 100644 index ad1794c4b93c..000000000000 Binary files a/docs/siem/images/timeline-ui.png and /dev/null differ diff --git a/docs/siem/index.asciidoc b/docs/siem/index.asciidoc deleted file mode 100644 index 18895f0533fd..000000000000 --- a/docs/siem/index.asciidoc +++ /dev/null @@ -1,60 +0,0 @@ -[role="xpack"] -[[xpack-siem]] -= Elastic Security - -[partintro] --- - -Elastic Security combines SIEM threat detection features with endpoint -prevention and response capabilities in one solution, including: - -* A detection engine to identify attacks and system misconfiguration -* A workspace for event triage and investigations -* Interactive visualizations to investigate process relationships -* Embedded case management and automated actions -* Detection of signatureless attacks with prebuilt {ml} anomaly jobs and -detection rules - -[role="screenshot"] -image::siem/images/overview-ui.png[Elastic Security in Kibana] - -[float] -== Add data - -Kibana provides step-by-step instructions to help you add data. The -{security-guide}[Security Guide] is a good source for more -detailed information and instructions. - -[float] -=== {Beats} - -https://www.elastic.co/products/beats/auditbeat[{auditbeat}], -https://www.elastic.co/products/beats/filebeat[{filebeat}], -https://www.elastic.co/products/beats/winlogbeat[{winlogbeat}], and -https://www.elastic.co/products/beats/packetbeat[{packetbeat}] -send security events and other data to Elasticsearch. - -The default index patterns for Elastic Security events are `auditbeat-*`, `winlogbeat-*`, -`filebeat-*`, `packetbeat-*`, `endgame-*`, `logs-*`, and `apm-*-transaction*`. To change the default pattern patterns, go to *Stack Management > Advanced Settings > securitySolution:defaultIndex*. - -[float] -=== Elastic Security endpoint agent - -The agent detects and protects against malware, and ships host and network -events directly to Elastic Security. - -[float] -=== Elastic Common Schema (ECS) for normalizing data - -The {ecs-ref}[Elastic Common Schema (ECS)] defines a common set of fields to be -used for storing event data in Elasticsearch. ECS helps users normalize their -event data to better analyze, visualize, and correlate the data represented in -their events. - -Elastic Security can ingest and normalize events from ECS-compatible data sources. - --- - - -include::siem-ui.asciidoc[] -include::machine-learning.asciidoc[] diff --git a/docs/siem/machine-learning.asciidoc b/docs/siem/machine-learning.asciidoc deleted file mode 100644 index c56332f1183c..000000000000 --- a/docs/siem/machine-learning.asciidoc +++ /dev/null @@ -1,14 +0,0 @@ -[role="xpack"] -[[machine-learning]] -== Anomaly Detection with Machine Learning - -For *{ess-trial}[Free Trial]* -and *https://www.elastic.co/subscriptions[Platinum subscription]* deployments, -Machine Learning functionality is available throughout Elastic Security. You can -view the details of detected anomalies in the `Anomalies` table -shown on the Hosts, Network and associated details pages. You can drag and drop -anomaly details to Timeline, such as the `Entity` itself, or any of the -associated `Influencers`. - -[role="screenshot"] -image::siem/images/ml-ui.png[Machine Learning - Max Anomaly Score] diff --git a/docs/siem/siem-ui.asciidoc b/docs/siem/siem-ui.asciidoc deleted file mode 100644 index 98f8bc218aa7..000000000000 --- a/docs/siem/siem-ui.asciidoc +++ /dev/null @@ -1,102 +0,0 @@ -[role="xpack"] -[[siem-ui]] -== Using Elastic Security - -Elastic Security is a highly interactive workspace designed for security -analysts. It provides a clear overview of events and alerts from your -environment, and you can use the interactive UI to drill down into areas of -interest. - -[float] -[[hosts-ui]] -=== Hosts - -The Hosts page provides key metrics regarding host-related security events, and -data tables and histograms that let you interact with the Timeline Event Viewer. -You can drill down for deeper insights, and drag and drop items of interest from -the Hosts page to Timeline for further investigation. - -[role="screenshot"] -image::siem/images/hosts-ui.png[] - - -[float] -[[network-ui]] -=== Network - -The Network page displays key network activity metrics in an interactive map, -and provides network event tables that enable interaction with Timeline. - -[role="screenshot"] -image::siem/images/network-ui.png[] - -[float] -[[detections-ui]] -=== Detections (beta) - -The Detections feature automatically searches for threats and creates -alerts when they are detected. Detection rules define the conditions -for when alerts are created. Elastic Security comes with prebuilt rules that -search for suspicious activity on your network and hosts. Additionally, you can -create your own rules. - -See {security-guide}/detection-engine-overview.html[Detections] for information -on managing detection rules and alerts. - -[role="screenshot"] -image::siem/images/detections-ui.png[] - -[float] -[[cases-ui]] -=== Cases (beta) - -Cases are used to open and track security issues directly in Elastic Security. -Cases list the original reporter and all users who contribute to a case -(`participants`). Case comments support Markdown syntax, and allow linking to -saved Timelines. Additionally, you can send cases to external systems from -within Elastic Security. - -For information about opening, updating, and closing cases, see -{security-guide}/cases-overview.html[Cases] in the Elastic Security Guide. - -[role="screenshot"] -image::siem/images/cases-ui.png[] - -[float] -[[timelines-ui]] -=== Timeline - -Timeline is your workspace for threat hunting and alert investigations. - -[role="screenshot"] -image::siem/images/timeline-ui.png[Elastic Security Timeline] - -You can drag objects of interest into the Timeline Event Viewer to create -exactly the query filter you need. You can drag items from table widgets within -Hosts and Network pages, or even from within Timeline itself. - -A timeline is responsive and persists as you move through Elastic Security -collecting data. - -For detailed information about Timeline, see -{security-guide}/timelines-ui.html[Investigating events in Timeline]. - -[float] -[[sample-workflow]] -=== Sample workflow - -An analyst notices a suspicious user ID that warrants further investigation, and -clicks a URL that links to Elastic Security. - -The analyst uses the tables, histograms, and filtering and search capabilities in -Elastic Security to get to the bottom of the alert. The analyst can drag items of -interest to Timeline for further analysis. - -Within Timeline, the analyst can investigate further - drilling down, -searching, and filtering - and add notes and pin items of interest. - -The analyst can name the timeline, write summary notes, and share it with others -if appropriate. - - - diff --git a/docs/spaces/images/change-space.png b/docs/spaces/images/change-space.png deleted file mode 100644 index fcf379afec84..000000000000 Binary files a/docs/spaces/images/change-space.png and /dev/null differ diff --git a/docs/spaces/images/edit-space-feature-visibility.png b/docs/spaces/images/edit-space-feature-visibility.png deleted file mode 100644 index 3a74c21fe263..000000000000 Binary files a/docs/spaces/images/edit-space-feature-visibility.png and /dev/null differ diff --git a/docs/spaces/images/edit-space.png b/docs/spaces/images/edit-space.png deleted file mode 100644 index c4565a3ba0f4..000000000000 Binary files a/docs/spaces/images/edit-space.png and /dev/null differ diff --git a/docs/spaces/images/securing-spaces.png b/docs/spaces/images/securing-spaces.png deleted file mode 100644 index e109e66b4cec..000000000000 Binary files a/docs/spaces/images/securing-spaces.png and /dev/null differ diff --git a/docs/spaces/images/space-management.png b/docs/spaces/images/space-management.png deleted file mode 100644 index 9d68be0d19f0..000000000000 Binary files a/docs/spaces/images/space-management.png and /dev/null differ diff --git a/docs/spaces/images/space-selector.png b/docs/spaces/images/space-selector.png deleted file mode 100644 index b2576cbc9acc..000000000000 Binary files a/docs/spaces/images/space-selector.png and /dev/null differ diff --git a/docs/spaces/images/spaces-configure-landing-page.png b/docs/spaces/images/spaces-configure-landing-page.png deleted file mode 100644 index 15006594b6d7..000000000000 Binary files a/docs/spaces/images/spaces-configure-landing-page.png and /dev/null differ diff --git a/docs/spaces/images/spaces-roles.png b/docs/spaces/images/spaces-roles.png deleted file mode 100644 index 407926895daa..000000000000 Binary files a/docs/spaces/images/spaces-roles.png and /dev/null differ diff --git a/docs/spaces/index.asciidoc b/docs/spaces/index.asciidoc deleted file mode 100644 index 81f394577950..000000000000 --- a/docs/spaces/index.asciidoc +++ /dev/null @@ -1,142 +0,0 @@ -[role="xpack"] -[[xpack-spaces]] -== Spaces - -Spaces enable you to organize your dashboards and other saved -objects into meaningful categories. Once inside a space, you see only -the dashboards and saved objects that belong to that space. - -{kib} creates a default space for you. -After you create your own -spaces, you're asked to choose a space when you log in to Kibana. You can change your -current space at any time by using the menu. - -[role="screenshot"] -image::spaces/images/change-space.png["Change current space menu"] - -Kibana supports spaces in several ways. You can: - -[[spaces-getting-started]] - -* <<spaces-managing, View, create, and delete spaces>> -* <<spaces-control-feature-visibility, Control feature access based on user needs>> -* <<spaces-control-user-access, Control feature access based on user privileges>> -* <<spaces-moving-objects, Move objects between spaces>> -* <<spaces-default-route, Configure a Space-level landing page>> -* <<spaces-delete-started, Disable the Spaces feature>> - -[float] -==== Required permissions - -The `kibana_admin` role or equivilent is required to manage **Spaces**. - -[float] -[[spaces-managing]] -=== View, create, and delete spaces - -Open the main menu, then click *Stack Management > Spaces* for an overview of your spaces. This view provides actions -for you to create, edit, and delete spaces. - -[role="screenshot"] -image::spaces/images/space-management.png["Space management"] - -[float] -==== Create or edit a space - -You can create as many spaces as you like. Click *Create a space* and provide a name, -URL identifier, optional description. - -The URL identifier is a short text string that becomes part of the -{kib} URL when you are inside that space. {kib} suggests a URL identifier based -on the name of your space, but you can customize the identifier to your liking. -You cannot change the space identifier once you create the space. - -{kib} also has an <<spaces-api, API>> -if you prefer to create spaces programatically. - -[role="screenshot"] -image::spaces/images/edit-space.png["Space management"] - -[float] -==== Delete a space - -Deleting a space permanently removes the space and all of its contents. -Find the space on the *Spaces* overview page and click the trash icon in the Actions column. -You can't delete the default space, but you can customize it to your liking. - -[float] -[[spaces-control-feature-visibility]] -=== Control feature access based on user needs - -You have control over which features are visible in each space. -For example, you might hide Dev Tools -in your "Executive" space or show Stack Monitoring only in your "Admin" space. -You can define which features to show or hide when you add or edit a space. - -Controlling feature -visibility is not a security feature. To secure access -to specific features on a per-user basis, you must configure -<<xpack-security-authorization, Kibana Security>>. - -[role="screenshot"] -image::spaces/images/edit-space-feature-visibility.png["Controlling features visiblity"] - -[float] -[[spaces-control-user-access]] -=== Control feature access based on user privileges - -When using Kibana with security, you can configure applications and features -based on your users’ privileges. This means different roles can have access -to different features in the same space. -Power users might have privileges to create and edit visualizations and dashboards, -while analysts or executives might have Dashboard and Canvas with read-only privileges. -See <<adding_kibana_privileges>> for details. - -[role="screenshot"] -image::spaces/images/spaces-roles.png["Controlling features visiblity"] - -[float] -[[spaces-moving-objects]] -=== Move saved objects between spaces - -To <<managing-saved-objects-copy-to-space, copy objects>> from one space to another, open the main menu, -then click *Stack Management > Saved Objects*. - -Alternately, you can move objects using {kib}'s <<managing-saved-objects-export-objects, import and export>> -interface. - -. Navigate to the space that contains your saved objects. -. Export your saved objects. -. Navigate to the space where you want to import the objects. -. Import your saved objects. -. (Optional) Delete objects in the export space that you no longer need. - -{kib} also has beta <<saved-objects-api-import, import>> and -<<saved-objects-api-export, export>> APIs if you want to automate this process. - -[float] -[[spaces-default-route]] -=== Configure a Space-level landing page - -You can create a custom experience for users by configuring the {kib} landing page on a per-space basis. -The landing page can route users to a specific dashboard, application, or saved object as they enter each space. - -To configure the landing page, use the default route setting in -<<kibana-general-settings, Stack Management > {kib} > Advanced settings>>. -For example, you might set the default route to `/app/kibana#/dashboards`. - -[role="screenshot"] -image::spaces/images/spaces-configure-landing-page.png["Configure space-level landing page"] - - -[float] -[[spaces-delete-started]] -=== Disable and version updates - -Spaces are automatically enabled in {kib}. If you don't want use this feature, -you can disable it -by setting `xpack.spaces.enabled` to `false` in your -`kibana.yml` configuration file. - -If you are upgrading your -version of {kib}, the default space will contain all of your existing saved objects. diff --git a/docs/user/alerting/action-types.asciidoc b/docs/user/alerting/action-types.asciidoc deleted file mode 100644 index af80b17f8605..000000000000 --- a/docs/user/alerting/action-types.asciidoc +++ /dev/null @@ -1,73 +0,0 @@ -[role="xpack"] -[[action-types]] -== Action and connector types - -Actions are Kibana services or integrations with third-party systems that run as background tasks on the Kibana server when alert conditions are met. {kib} provides the following types of actions: - -[cols="2"] -|=== - -a| <<email-action-type, Email>> - -| Send email from your server. - -a| <<resilient-action-type, IBM Resilient>> - -| Create an incident in IBM Resilient. - -a| <<index-action-type, Index>> - -| Index data into Elasticsearch. - -a| <<jira-action-type, Jira>> - -| Create an incident in Jira. - - -a| <<pagerduty-action-type, PagerDuty>> - -| Send an event in PagerDuty. - -a| <<server-log-action-type, ServerLog>> - -| Add a message to a Kibana log. - -a| <<servicenow-action-type, ServiceNow>> - -| Create an incident in ServiceNow. - -a| <<slack-action-type, Slack>> - -| Send a message to a Slack channel or user. - -a| <<webhook-action-type, Webhook>> - -| Send a request to a web service. -|=== - -[NOTE] -============================================== -Some action types are paid commercial features, while others are free. -For a comparison of the Elastic subscription levels, -see https://www.elastic.co/subscriptions[the subscription page]. -============================================== - -[float] -[[create-connectors]] -=== Preconfigured actions and connectors - -For out-of-the-box and standardized connectors, you can <<preconfigured-connector-example, preconfigure the connector>> -before {kib} starts. - -If you preconfigure a connector, you can also <<preconfigured-action-type-example, preconfigure its action type>>. - -include::action-types/email.asciidoc[] -include::action-types/resilient.asciidoc[] -include::action-types/index.asciidoc[] -include::action-types/jira.asciidoc[] -include::action-types/pagerduty.asciidoc[] -include::action-types/server-log.asciidoc[] -include::action-types/servicenow.asciidoc[] -include::action-types/slack.asciidoc[] -include::action-types/webhook.asciidoc[] -include::action-types/pre-configured-connectors.asciidoc[] diff --git a/docs/user/alerting/action-types/email.asciidoc b/docs/user/alerting/action-types/email.asciidoc deleted file mode 100644 index 83e7edc5a016..000000000000 --- a/docs/user/alerting/action-types/email.asciidoc +++ /dev/null @@ -1,198 +0,0 @@ -[role="xpack"] -[[email-action-type]] -=== Email action - -The email action type uses the SMTP protocol to send mail message, using an integration of https://nodemailer.com/[Nodemailer]. Email message text is sent as both plain text and html text. - -[float] -[[email-connector-configuration]] -==== Connector configuration - -Email connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action. -Sender:: The from address for all emails sent with this connector, specified in `user@host-name` format. -Host:: Host name of the service provider. If you are using the <<action-settings, `xpack.actions.allowedHosts`>> setting, make sure this hostname is added to the allowed hosts. -Port:: The port to connect to on the service provider. -Secure:: If true the connection will use TLS when connecting to the service provider. See https://nodemailer.com/smtp/#tls-options[nodemailer TLS documentation] for more information. -Username:: username for 'login' type authentication. -Password:: password for 'login' type authentication. - -[float] -[[Preconfigured-email-configuration]] -==== Preconfigured action type - -[source,text] --- - my-email: - name: preconfigured-email-action-type - actionTypeId: .email - config: - from: testsender@test.com - host: validhostname - port: 8080 - secure: false - secrets: - user: testuser - password: passwordkeystorevalue --- - -`config` defines the action type specific to the configuration and contains the following properties: - -[cols="2*<"] -|=== - -| `from` -| An email address that corresponds to *Sender*. - -| `host` -| A string that corresponds to *Host*. - -| `port` -| A number that corresponds to *Port*. - -| `secure` -| A boolean that corresponds to *Secure*. - -|=== - -`secrets` defines sensitive information for the action type: - -[cols="2*<"] -|=== - -| `user` -| A string that corresponds to *User*. - -| `password` -| A string that corresponds to *Password*. Should be stored in the <<creating-keystore, {kib} keystore>>. - -|=== - -[[email-action-configuration]] -==== Action configuration - -Email actions have the following configuration properties: - -To, CC, BCC:: Each is a list of addresses. Addresses can be specified in `user@host-name` format, or in `name <user@host-name>` format. One of To, CC, or BCC must contain an entry. -Subject:: The subject line of the email. -Message:: The message text of the email. Markdown format is supported. - -[[configuring-email]] -==== Configuring email accounts - -The email action can send email using many popular SMTP email services. - -You configure the email action to send emails using the connector form. -For more information about configuring the email connector to work with different email -systems, refer to: - -* <<gmail>> -* <<outlook>> -* <<exchange>> -* <<amazon-ses>> - -[float] -[[gmail]] -===== Sending email from Gmail - -Use the following email account settings to send email from the -https://mail.google.com[Gmail] SMTP service: - -[source,text] --------------------------------------------------- - config: - host: smtp.gmail.com - port: 465 - secure: true - secrets: - user: <username> - password: <password> --------------------------------------------------- -// CONSOLE - -If you get an authentication error that indicates that you need to continue the -sign-in process from a web browser when the action attempts to send email, you need -to configure Gmail to https://support.google.com/accounts/answer/6010255?hl=en[allow -less secure apps to access your account]. - -If two-step verification is enabled for your account, you must generate and use -a unique App Password to send email from {watcher}. See -https://support.google.com/accounts/answer/185833?hl=en[Sign in using App Passwords] -for more information. - -[float] -[[outlook]] -===== Sending email from Outlook.com - -Use the following email account settings to send email action from the -https://www.outlook.com/[Outlook.com] SMTP service: - -[source,text] --------------------------------------------------- -config: - host: smtp-mail.outlook.com - port: 465 - secure: true -secrets: - user: <email.address> - password: <password> --------------------------------------------------- - -When sending emails, you must provide a from address, either as the default -in your account configuration or as part of the email action in the watch. - -NOTE: You must use a unique App Password if two-step verification is enabled. - See http://windows.microsoft.com/en-us/windows/app-passwords-two-step-verification[App - passwords and two-step verification] for more information. - -[float] -[[amazon-ses]] -===== Sending email from Amazon SES (Simple Email Service) - -Use the following email account settings to send email from the -http://aws.amazon.com/ses[Amazon Simple Email Service] (SES) SMTP service: - -[source,text] --------------------------------------------------- -config: - host: email-smtp.us-east-1.amazonaws.com <1> - port: 465 - secure: true -secrets: - user: <username> - password: <password> --------------------------------------------------- -<1> `smtp.host` varies depending on the region - -NOTE: You must use your Amazon SES SMTP credentials to send email through - Amazon SES. For more information, see - http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html[Obtaining - Your Amazon SES SMTP Credentials]. You might also need to verify - https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html[your email address] - or https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html[your whole domain] - at AWS. - -[float] -[[exchange]] -===== Sending email from Microsoft Exchange - -Use the following email account settings to send email action from Microsoft -Exchange: - -[source,text] --------------------------------------------------- -config: - host: <your exchange server> - port: 465 - secure: true - from: <email address of service account> <1> -secrets: - user: <email address of service account> <2> - password: <password> --------------------------------------------------- -<1> Some organizations configure Exchange to validate that the `from` field is a - valid local email account. -<2> Many organizations support use of your email address as your username. - Check with your system administrator if you receive - authentication-related failures. diff --git a/docs/user/alerting/action-types/index.asciidoc b/docs/user/alerting/action-types/index.asciidoc deleted file mode 100644 index 2c6da7c7c302..000000000000 --- a/docs/user/alerting/action-types/index.asciidoc +++ /dev/null @@ -1,88 +0,0 @@ -[role="xpack"] -[[index-action-type]] -=== Index action - -The index action type will index a document into {es}. See also the {ref}/indices-create-index.html[create index API]. - -[float] -[[index-connector-configuration]] -==== Connector configuration - -Index connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action. -Index:: The {es} index to be written to. -Refresh:: Setting for the {ref}/docs-refresh.html[refresh] policy for the write request. -Execution time field:: This field will be automatically set to the time the alert condition was detected. - -[float] -[[Preconfigured-index-configuration]] -==== Preconfigured action type - -[source,text] --- - my-index: - name: action-type-index - actionTypeId: .index - config: - index: .kibana - refresh: true - executionTimeField: somedate --- - -`config` defines the action type specific to the configuration and contains the following properties: - -[cols="2*<"] -|=== - -|`index` -| A string that corresponds to *Index*. - -|`refresh` -| A boolean that corresponds to *Refresh*. - -|`executionTimeField` -| A string that corresponds to *Execution time field*. - -|=== - - -[float] -[[index-action-configuration]] -==== Action configuration - -Index actions have the following properties: - -Document:: The document to index in JSON format. - -Example of the index document for Index Threshold alert: - -[source,text] --------------------------------------------------- -{ - "alert_id": "{{alertId}}", - "alert_name": "{{alertName}}", - "alert_instance_id": "{{alertInstanceId}}", - "context_message": "{{context.message}}" -} --------------------------------------------------- - -Example of create test index using the API. - -[source,text] --------------------------------------------------- -PUT test -{ - "settings" : { - "number_of_shards" : 1 - }, - "mappings" : { - "properties" : { - "alert_id" : { "type" : "text" }, - "alert_name" : { "type" : "text" }, - "alert_instance_id" : { "type" : "text" }, - "context_message": { "type" : "text" } - } - } -} --------------------------------------------------- diff --git a/docs/user/alerting/action-types/jira.asciidoc b/docs/user/alerting/action-types/jira.asciidoc deleted file mode 100644 index 65e5ee4fc4a0..000000000000 --- a/docs/user/alerting/action-types/jira.asciidoc +++ /dev/null @@ -1,79 +0,0 @@ -[role="xpack"] -[[jira-action-type]] -=== Jira action - -The Jira action type uses the https://developer.atlassian.com/cloud/jira/platform/rest/v2/[REST API v2] to create Jira issues. - -[float] -[[jira-connector-configuration]] -==== Connector configuration - -Jira connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the **Stack Management** UI connector listing, and in the connector list when configuring an action. -URL:: Jira instance URL. -Project key:: Jira project key. -Email (or username):: The account email (or username) for HTTP Basic authentication. -API token (or password):: Jira API authentication token (or password) for HTTP Basic authentication. - -[float] -[[Preconfigured-jira-configuration]] -==== Preconfigured action type - -[source,text] --- - my-jira: - name: preconfigured-jira-action-type - actionTypeId: .jira - config: - apiUrl: https://elastic.atlassian.net - projectKey: ES - secrets: - email: testuser - apiToken: tokenkeystorevalue --- - -`config` defines the action type specific to the configuration and contains the following properties: - -[cols="2*<"] -|=== - -| `apiUrl` -| An address that corresponds to *URL*. - -| `projectKey` -| A key that corresponds to *Project Key*. - -|=== - -`secrets` defines sensitive information for the action type: - -[cols="2*<"] -|=== - -| `email` -| A string that corresponds to *Email*. - -| `apiToken` -| A string that corresponds to *API Token*. Should be stored in the <<creating-keystore, {kib} keystore>>. - -|=== - -[[jira-action-configuration]] -==== Action configuration - -Jira actions have the following configuration properties: - -Issue type:: The type of the issue. -Priority:: The priority of the incident. -Labels:: The labels of the incident. -Title:: A title for the issue, used for searching the contents of the knowledge base. -Description:: The details about the incident. -Parent:: The parent issue id or key. Only for `Sub-task` issue types. -Priority:: The priority of the incident. -Additional comments:: Additional information for the client, such as how to troubleshoot the issue. - -[[configuring-jira]] -==== Configuring and testing Jira - -Jira offers free https://www.atlassian.com/software/jira/free[Instances], which you can use to test incidents. diff --git a/docs/user/alerting/action-types/pagerduty.asciidoc b/docs/user/alerting/action-types/pagerduty.asciidoc deleted file mode 100644 index aad192dbddb3..000000000000 --- a/docs/user/alerting/action-types/pagerduty.asciidoc +++ /dev/null @@ -1,178 +0,0 @@ -[role="xpack"] -[[pagerduty-action-type]] -=== PagerDuty action - -The PagerDuty action type uses the https://v2.developer.pagerduty.com/docs/events-api-v2[v2 Events API] to trigger, acknowledge, and resolve PagerDuty alerts. - -* <<pagerduty-benefits, PagerDuty and Elastic integration benefits>> -* <<pagerduty-connector-configuration, Connector configuration>> -* <<pagerduty-action-configuration, Action configuration>> - -[float] -[[pagerduty-benefits]] -==== PagerDuty + Elastic integration benefits - -By integrating PagerDuty with alerts, you can: - -* Route your alerts to the right PagerDuty responder within your team, based on your structure, escalation policies, and workflows. -* Automatically generate incidents of different types and severity based on each alert’s context. -* Tailor the incident data to match your needs by easily passing the alerting context from Kibana to PagerDuty. - -[float] -[[pagerduty-how-it-works]] -===== How it works - -{kib} allows you to create alerts to notify you of a significant move -in your dataset. -You can create alerts for all your Observability, Security, and Elastic Stack use cases. -Alerts will trigger a new incident on the corresponding PagerDuty service. - -[float] -===== Requirements - -In the `kibana.yml` configuration file, you must add the <<general-alert-action-settings, saved objects encryption setting>>. -This is required to encrypt parameters that must be secured, for example PagerDuty’s integration key. - -If you have security enabled: - -* You must have -application privileges to access Metrics, APM, Uptime, or Security. -* If you are using a self-managed deployment with security, you must have -Transport Security Layer (TLS) enabled for communication <<configuring-tls-kib-es, between Elasticsearch and Kibana>>. -Alerts uses API keys to secure background alert checks and actions, -and API keys require {ref}/configuring-tls.html#tls-http[TLS on the HTTP interface]. - -Although not a requirement, to harden the integrations security you might want to -review the <<action-settings, Actions settings>> that are available to you. - -[float] -[[pagerduty-support]] -===== Support -If you need help with this integration, get in touch with the {kib} team by visiting -https://support.elastic.co[support.elastic.co] or by using the *Ask Elastic* option in the {kib} Help menu. -You can also select the {kib} category at https://discuss.elastic.co/[discuss.elastic.co]. - -[float] -[[pagerduty-integration-walkthrough]] -===== Integration with PagerDuty walkthrough - -[[pagerduty-in-pagerduty]] -*In PagerDuty* - -. From the *Configuration* menu, select *Services*. -. Add an integration to a service: -+ -* If you are adding your integration to an existing service, -click the name of the service you want to add the integration to. -Then, select the *Integrations* tab and click the *New Integration* button. -* If you are creating a new service for your integration, -go to -https://support.pagerduty.com/docs/services-and-integrations#section-configuring-services-and-integrations[Configuring Services and Integrations] -and follow the steps outlined in the *Create a New Service* section, selecting *Elastic Alerts* as the *Integration Type* in step 4. -Continue with the <<pagerduty-in-elastic, In Elastic>> section once you have finished these steps. - -. Enter an *Integration Name* in the format Elastic-service-name (for example, Elastic-Alerting or Kibana-APM-Alerting) -and select *Elastic Alerts* from the *Integration Type* menu. -. Click *Add Integration* to save your new integration. -+ -You will be redirected to the *Integrations* tab for your service. An Integration Key is generated on this screen. -+ -[role="screenshot"] -image::user/alerting/images/pagerduty-integration.png[PagerDuty Integrations tab] - -. Save this key, as you will use it when you configure the integration with Elastic in the next section. - -[[pagerduty-in-elastic]] -*In Elastic* - -. Create a PagerDuty Connector in Kibana. You can: -+ -* Create a connector as part of creating an alert by selecting PagerDuty in the *Actions* -section of the alert configuration and selecting *Add new*. -* Alternatively, create a connector. To create a connector, open the main menu, click *Stack Management* > -Alerts and Actions*, select *Connectors*, click *Create connector*, then select the PagerDuty option. - -. Configure the connector by giving it a name and entering the Integration Key, optionally entering a custom API URL. -+ -See <<pagerduty-in-pagerduty, In PagerDuty>> for how to obtain the endpoint and key information from PagerDuty and -<<pagerduty-connector-configuration, Connector configuration>> for more details. - -. Save the Connector. - -. To create an alert, open the main menu, then click *Stack Management > Alerts and Actions* or the application of your choice. - -. Set up an action using your PagerDuty connector, by determining: -+ -* The action’s type: Trigger, Resolve, or Acknowledge. -* The event’s severity: Info, warning, error, or critical. -* An array of different fields, including the timestamp, group, class, component, and your dedup key. -Depending on your custom needs, assign them variables from the alerting context. -To see the available context variables, click on the *Add alert variable* icon next -to each corresponding field. For more details on these parameters, see the -<<pagerduty-action-configuration, Actions Configuration>> and the PagerDuty -https://v2.developer.pagerduty.com/v2/docs/send-an-event-events-api-v2[API v2 documentation]. - - -[float] -[[pagerduty-uninstall]] -===== How to uninstall -To remove a PagerDuty connector from an alert, simply remove it -from the *Actions* section of that alert, using the remove (x) icon. -This will disable the integration for the particular alert. - -To delete the connector entirely, open the main menu, then click *Stack Management > Alerts and Actions*. -Select the *Connectors* tab, and then click on the delete icon. -This is an irreversible action and impacts all alerts that use this connector. - - -[float] -[[pagerduty-connector-configuration]] -==== Connector configuration - -PagerDuty connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action. -API URL:: An optional PagerDuty event URL. Defaults to `https://events.pagerduty.com/v2/enqueue`. If you are using the <<action-settings, `xpack.actions.allowedHosts`>> setting, make sure the hostname is added to the allowed hosts. -Integration Key:: A 32 character PagerDuty Integration Key for an integration on a service, also referred to as the routing key. - -[float] -[[Preconfigured-pagerduty-configuration]] -==== Preconfigured action type - -[source,text] --- - my-pagerduty: - name: preconfigured-pagerduty-action-type - actionTypeId: .pagerduty - config: - apiUrl: https://test.host - secrets: - routingKey: testroutingkey --- - -`config` defines the action type specific to the configuration. -`config` contains -`apiURL`, a string that corresponds to *API URL*. - -`secrets` defines sensitive information for the action type. -`secrets` contains -`routingKey`, a string that corresponds to *Integration Key*. - - -[float] -[[pagerduty-action-configuration]] -==== Action configuration - -PagerDuty actions have the following properties: - -Severity:: The perceived severity of on the affected system. This can be one of `Critical`, `Error`, `Warning` or `Info`(default). -Event action:: One of `Trigger` (default), `Resolve`, or `Acknowledge`. See https://v2.developer.pagerduty.com/docs/events-api-v2#event-action[event action] for more details. -Dedup Key:: All actions sharing this key will be associated with the same PagerDuty alert. This value is used to correlate trigger and resolution. This value is *optional*, and if unset defaults to `action:<action saved object id>`. The maximum length is *255* characters. See https://v2.developer.pagerduty.com/docs/events-api-v2#alert-de-duplication[alert deduplication] for details. -Timestamp:: An *optional* https://v2.developer.pagerduty.com/v2/docs/types#datetime[ISO-8601 format date-time], indicating the time the event was detected or generated. -Component:: An *optional* value indicating the component of the source machine that is responsible for the event, for example `mysql` or `eth0`. -Group:: An *optional* value indicating the logical grouping of components of a service, for example `app-stack`. -Source:: An *optional* value indicating the affected system, preferably a hostname or fully qualified domain name. Defaults to the {kib} saved object id of the action. -Summary:: An *optional* text summary of the event, defaults to `No summary provided`. The maximum length is 1024 characters. -Class:: An *optional* value indicating the class/type of the event, for example `ping failure` or `cpu load`. - -For more details on these properties, see https://v2.developer.pagerduty.com/v2/docs/send-an-event-events-api-v2[PagerDuty v2 event parameters]. diff --git a/docs/user/alerting/action-types/pre-configured-connectors.asciidoc b/docs/user/alerting/action-types/pre-configured-connectors.asciidoc deleted file mode 100644 index 722607ac05f8..000000000000 --- a/docs/user/alerting/action-types/pre-configured-connectors.asciidoc +++ /dev/null @@ -1,121 +0,0 @@ -[role="xpack"] -[[pre-configured-action-types-and-connectors]] - -=== Preconfigured connectors and action types - -You can preconfigure a connector or action type to have all the information it needs prior to startup -by adding it to the `kibana.yml` file. - -Preconfigured connectors offer the following capabilities: - -- Require no setup. Configuration and credentials needed to execute an -action are predefined, including the connector name and ID. -- Appear in all spaces because they are not saved objects. -- Cannot be edited or deleted. - -A preconfigured action type has only preconfigured connectors. Preconfigured -connectors can belong to either the preconfigured action type or to the regular action type. - -[float] -[[preconfigured-connector-example]] -==== Preconfigured connectors - -This example shows a valid configuration for -two out-of-the box connectors: <<slack-action-type, Slack>> and <<webhook-action-type, Webhook>>. - -```js - xpack.actions.preconfigured: - my-slack1: <1> - actionTypeId: .slack <2> - name: 'Slack #xyz' <3> - secrets: - webhookUrl: 'https://hooks.slack.com/services/abcd/efgh/ijklmnopqrstuvwxyz' - webhook-service: - actionTypeId: .webhook - name: 'Email service' - config: <4> - url: 'https://email-alert-service.elastic.co' - method: post - headers: - header1: value1 - header2: value2 - secrets: <5> - user: elastic - password: changeme -``` - -<1> The key is the action connector identifier, `my-slack1` in this example. -<2> `actionTypeId` is the action type identifier. -<3> `name` is the name of the preconfigured connector. -<4> `config` is the action type specific to the configuration. -<5> `secrets` is sensitive configuration, such as username, password, and keys. - -[NOTE] -============================================== -Sensitive properties, such as passwords, can also be stored in the <<creating-keystore, {kib} keystore>>. -============================================== - -//// -[float] -[[managing-pre-configured-connectors]] -==== View preconfigured connectors -//// - -When you open the main menu, click *Stack Management > Alerts and Actions*. Preconfigured connectors -appear on the <<connector-management, *Connectors* tab>>, -regardless of which space you are in. -They are tagged as “preconfigured”, and you cannot delete them. - -[role="screenshot"] -image::images/pre-configured-connectors-managing.png[Connectors managing tab with pre-cofigured] - -Clicking a preconfigured connector shows the description, but not the configuration. -A message indicates that this is a preconfigured connector. - -[role="screenshot"] -image::images/pre-configured-connectors-view-screen.png[Pre-configured connector view details] - -The connector details preview is disabled for preconfigured connectors -of a preconfigured action type. - -[role="screenshot"] -image::images/pre-configured-action-type-managing.png[Connectors managing tab with pre-cofigured] - -[float] -[[preconfigured-action-type-example]] -==== Preconfigured action type - -This example shows a preconfigured action type with one out-of-the box connector. - -```js - xpack.actions.enabledActionTypes: ['.slack', '.email', '.index'] <1> - xpack.actions.preconfigured: <2> - my-server-log: - actionTypeId: .server-log - name: 'Server log #xyz' -``` - -<1> `enabledActionTypes` excludes the preconfigured action type to prevent creating and deleting connectors. -<2> `preconfigured` is the setting for defining the list of available connectors for the preconfigured action type. - -[[managing-pre-configured-action-types]] -To attach a preconfigured action to an alert: - -. Open the main menu, click *Stack Management > Alerts and Actions*, then open the *Connectors* tab. - -. Click *Create connector.* - -. In the list of available action types, select the preconfigured action type you want. -+ -[role="screenshot"] -image::images/pre-configured-action-type-select-type.png[Pre-configured connector create menu] - -. In *Create alert*, open the connector dropdown, and then select the preconfigured -connector. -+ -The `preconfigured` label distinguishes it from a space-aware connector. -+ -[role="screenshot"] -image::images/alert-pre-configured-connectors-dropdown.png[Dropdown list with pre-cofigured connectors] - -. Click *Add action*. diff --git a/docs/user/alerting/action-types/resilient.asciidoc b/docs/user/alerting/action-types/resilient.asciidoc deleted file mode 100644 index b5ddb76d49b0..000000000000 --- a/docs/user/alerting/action-types/resilient.asciidoc +++ /dev/null @@ -1,76 +0,0 @@ -[role="xpack"] -[[resilient-action-type]] -=== IBM Resilient action - -The IBM Resilient action type uses the https://developer.ibm.com/security/resilient/rest/[RESILIENT REST v2] to create IBM Resilient incidents. - -[float] -[[resilient-connector-configuration]] -==== Connector configuration - -IBM Resilient connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the **Stack Management** UI connector listing, and in the connector list when configuring an action. -URL:: IBM Resilient instance URL. -Organization ID:: IBM Resilient organization ID. -API key ID:: The authentication key ID for HTTP Basic authentication. -API key secret:: The authentication key secret for HTTP Basic authentication. - -[float] -[[Preconfigured-resilient-configuration]] -==== Preconfigured action type - -[source,text] --- - my-resilient: - name: preconfigured-resilient-action-type - actionTypeId: .resilient - config: - apiUrl: https://elastic.resilient.net - orgId: ES - secrets: - apiKeyId: testuser - apiKeySecret: tokenkeystorevalue --- - -`config` defines the action type specific to the configuration and contains the following properties: - -[cols="2*<"] -|=== - -| `apiUrl` -| An address that corresponds to *URL*. - -| `orgId` -| An ID that corresponds to *Organization ID*. - -|=== - -`secrets` defines sensitive information for the action type: - -[cols="2*<"] -|=== - -| `apiKeyId` -| A string that corresponds to *API key ID*. - -| `apiKeySecret` -| A string that corresponds to *API Key secret*. Should be stored in the <<creating-keystore, {kib} keystore>>. - -|=== - -[[resilient-action-configuration]] -==== Action configuration - -IBM Resilient actions have the following configuration properties: - -Incident types:: The incident types of the incident. -Severity code:: The severity of the incident. -Name:: A name for the issue, used for searching the contents of the knowledge base. -Description:: The details about the incident. -Additional comments:: Additional information for the client, such as how to troubleshoot the issue. - -[[configuring-resilient]] -==== Configuring and testing IBM Resilient - -IBM Resilient offers https://www.ibm.com/security/intelligent-orchestration/resilient[Instances], which you can use to test incidents. diff --git a/docs/user/alerting/action-types/server-log.asciidoc b/docs/user/alerting/action-types/server-log.asciidoc deleted file mode 100644 index 7022320328c8..000000000000 --- a/docs/user/alerting/action-types/server-log.asciidoc +++ /dev/null @@ -1,32 +0,0 @@ -[role="xpack"] -[[server-log-action-type]] -=== Server log action - -This action type writes an entry to the {kib} server log. - -[float] -[[server-log-connector-configuration]] -==== Connector configuration - -Server log connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action. - -[float] -[[Preconfigured-server-log-configuration]] -==== Preconfigured action type - -[source,text] --- - my-server-log: - name: test - actionTypeId: .server-log --- - -[float] -[[server-log-action-configuration]] -==== Action configuration - -Server log actions have the following properties: - -Message:: The message to log. diff --git a/docs/user/alerting/action-types/servicenow.asciidoc b/docs/user/alerting/action-types/servicenow.asciidoc deleted file mode 100644 index 0acb92bcdb5e..000000000000 --- a/docs/user/alerting/action-types/servicenow.asciidoc +++ /dev/null @@ -1,72 +0,0 @@ -[role="xpack"] -[[servicenow-action-type]] -=== ServiceNow action - -The ServiceNow action type uses the https://developer.servicenow.com/app.do#!/rest_api_doc?v=orlando&id=c_TableAPI[V2 Table API] to create ServiceNow incidents. - -[float] -[[servicenow-connector-configuration]] -==== Connector configuration - -ServiceNow connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the **Stack Management** UI connector listing, and in the connector list when configuring an action. -URL:: ServiceNow instance URL. -Username:: Username for HTTP Basic authentication. -Password:: Password for HTTP Basic authentication. - -[float] -[[Preconfigured-servicenow-configuration]] -==== Preconfigured action type - -[source,text] --- - my-servicenow: - name: preconfigured-servicenow-action-type - actionTypeId: .servicenow - config: - apiUrl: https://dev94428.service-now.com/ - secrets: - username: testuser - password: passwordkeystorevalue --- - -`config` defines the action type specific to the configuration and contains the following properties: - -[cols="2*<"] -|=== - -| `apiUrl` -| An address that corresponds to *URL*. - -|=== - -`secrets` defines sensitive information for the action type: - -[cols="2*<"] -|=== - -| `username` -| A string that corresponds to *Username*. - -| `password` -| A string that corresponds to *Password*. Should be stored in the <<creating-keystore, {kib} keystore>>. - -|=== - -[[servicenow-action-configuration]] -==== Action configuration - -ServiceNow actions have the following configuration properties: - -Urgency:: The extent to which the incident resolution can delay. -Severity:: The severity of the incident. -Impact:: The effect an incident has on business. Can be measured by the number of affected users or by how critical it is to the business in question. -Short description:: A short description for the incident, used for searching the contents of the knowledge base. -Description:: The details about the incident. -Additional comments:: Additional information for the client, such as how to troubleshoot the issue. - -[[configuring-servicenow]] -==== Configuring and testing ServiceNow - -ServiceNow offers free https://developer.servicenow.com/dev.do#!/guides/madrid/now-platform/pdi-guide/obtaining-a-pdi[Personal Developer Instances], which you can use to test incidents. diff --git a/docs/user/alerting/action-types/slack.asciidoc b/docs/user/alerting/action-types/slack.asciidoc deleted file mode 100644 index a1fe7a2521b2..000000000000 --- a/docs/user/alerting/action-types/slack.asciidoc +++ /dev/null @@ -1,60 +0,0 @@ -[role="xpack"] -[[slack-action-type]] -=== Slack action - -The Slack action type uses https://api.slack.com/incoming-webhooks[Slack Incoming Webhooks]. - -[float] -[[slack-connector-configuration]] -==== Connector configuration - -Slack connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action. -Webhook URL:: The URL of the incoming webhook. See https://api.slack.com/messaging/webhooks#getting_started[Slack Incoming Webhooks] for instructions on generating this URL. If you are using the <<action-settings, `xpack.actions.allowedHosts`>> setting, make sure the hostname is added to the allowed hosts. - -[float] -[[Preconfigured-slack-configuration]] -==== Preconfigured action type - -[source,text] --- - my-slack: - name: preconfigured-slack-action-type - actionTypeId: .slack - config: - webhookUrl: 'https://hooks.slack.com/services/abcd/efgh/ijklmnopqrstuvwxyz' --- - -`config` defines the action type specific to the configuration. -`config` contains -`webhookUrl`, a string that corresponds to *Webhook URL*. - - -[float] -[[slack-action-configuration]] -==== Action configuration - -Slack actions have the following properties: - -Message:: The message text, converted to the `text` field in the Webhook JSON payload. Currently only the text field is supported. Markdown, images, and other advanced formatting are not yet supported. - -[[configuring-slack]] -==== Configuring Slack Accounts - -You configure the accounts Slack action type can use to communicate with Slack in the -connector form. - -You need a https://api.slack.com/incoming-webhooks[Slack webhook URL] to -configure a Slack account. To create a webhook -URL, set up an an **Incoming Webhook Integration** through the Slack console: - -. Log in to http://slack.com[slack.com] as a team administrator. -. Go to https://my.slack.com/services/new/incoming-webhook. -. Select a default channel for the integration. -+ -image::images/slack-add-webhook-integration.png[] -. Click *Add Incoming Webhook Integration*. -. Copy the generated webhook URL so you can paste it into your Slack connector form. -+ -image::images/slack-copy-webhook-url.png[] diff --git a/docs/user/alerting/action-types/webhook.asciidoc b/docs/user/alerting/action-types/webhook.asciidoc deleted file mode 100644 index 659c3afad6bd..000000000000 --- a/docs/user/alerting/action-types/webhook.asciidoc +++ /dev/null @@ -1,75 +0,0 @@ -[role="xpack"] -[[webhook-action-type]] -=== Webhook action - -The Webhook action type uses https://github.com/axios/axios[axios] to send a POST or PUT request to a web service. - -[float] -[[webhook-connector-configuration]] -==== Connector configuration - -Webhook connectors have the following configuration properties: - -Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action. -URL:: The request URL. If you are using the <<action-settings, `xpack.actions.allowedHosts`>> setting, make sure the hostname is added to the allowed hosts. -Method:: HTTP request method, either `post`(default) or `put`. -Headers:: A set of key-value pairs sent as headers with the request -User:: An optional username. If set, HTTP basic authentication is used. Currently only basic authentication is supported. -Password:: An optional password. If set, HTTP basic authentication is used. Currently only basic authentication is supported. - -[float] -[[Preconfigured-webhook-configuration]] -==== Preconfigured action type - -[source,text] --- - my-webhook: - name: preconfigured-webhook-action-type - actionTypeId: .webhook - config: - url: https://test.host - method: POST - headers: - testheader: testvalue - secrets: - user: testuser - password: passwordkeystorevalue --- - -`config` defines the action type specific to the configuration and contains the following properties: - -[cols="2*<"] -|=== - -|`url` -| A URL string that corresponds to *URL*. - -|`method` -| A string that corresponds to *Method*. - -|`headers` -|A record<string, string> that corresponds to *Headers*. - -|=== - -`secrets` defines sensitive information for the action type: - -[cols="2*<"] -|=== - -|`user` -|A string that corresponds to *User*. - -|`password` -|A string that corresponds to *Password*. Should be stored in the <<creating-keystore, {kib} keystore>>. - -|=== - - -[float] -[[webhook-action-configuration]] -==== Action configuration - -Webhook actions have the following properties: - -Body:: A json payload sent to the request URL. diff --git a/docs/user/alerting/alert-types.asciidoc b/docs/user/alerting/alert-types.asciidoc deleted file mode 100644 index 7de5ff56228c..000000000000 --- a/docs/user/alerting/alert-types.asciidoc +++ /dev/null @@ -1,117 +0,0 @@ -[role="xpack"] -[[alert-types]] -== Alert types - -{kib} supplies alert types in two ways: some are built into {kib} (these are known as stack alerts), while domain-specific alert types are registered by {kib} apps such as <<xpack-apm,*APM*>>, <<metrics-app,*Metrics*>>, and <<uptime-app,*Uptime*>>. - -This section covers stack alerts. For domain-specific alert types, refer to the documentation for that app. -Users will need `all` access to the *Stack Alerts* feature to be able to create and edit any of the alerts listed below. -See <<kibana-feature-privileges, feature privileges>> for more information on configuring roles that provide access to this feature. - -Currently {kib} provides one stack alert: the <<alert-type-index-threshold>> type. - -[float] -[[alert-type-index-threshold]] -=== Index threshold - -The index threshold alert type is designed to run an {es} query over indices, aggregating field values from documents, comparing them to threshold values, and scheduling actions to run when the thresholds are met. - -[float] -==== Creating the alert - -An index threshold alert can be created from the *Create* button in the <<alert-management, alert management UI>>. Fill in the <<defining-alerts-general-details, general alert details>>, then select *Index Threshold*. - -[role="screenshot"] -image::images/alert-types-index-threshold-select.png[Choosing an index threshold alert type] - -[float] -==== Defining the conditions - -The index threshold has 5 clauses that define the condition to detect. - -[role="screenshot"] -image::images/alert-types-index-threshold-conditions.png[Five clauses define the condition to detect] - -Index:: This clause requires an *index or index pattern* and a *time field* that will be used for the *time window*. -When:: This clause specifies how the value to be compared to the threshold is calculated. The value is calculated by aggregating a numeric field a the *time window*. The aggregation options are: `count`, `average`, `sum`, `min`, and `max`. When using `count` the document count is used, and an aggregation field is not necessary. -Over/Grouped Over:: This clause lets you configure whether the aggregation is applied over all documents, or should be split into groups using a grouping field. If grouping is used, an <<alerting-concepts-alert-instances, alert instance>> will be created for each group when it exceeds the threshold. To limit the number of instances on high cardinality fields, you must specify the number of groups to check against the threshold. Only the *top* groups are checked. -Threshold:: This clause defines a threshold value and a comparison operator (one of `is above`, `is above or equals`, `is below`, `is below or equals`, or `is between`). The result of the aggregation is compared to this threshold. -Time window:: This clause determines how far back to search for documents, using the *time field* set in the *index* clause. Generally this value should be to a value higher than the *check every* value in the <<defining-alerts-general-details, general alert details>>, to avoid gaps in detection. - -If data is available and all clauses have been defined, a preview chart will render the threshold value and display a line chart showing the value for the last 30 intervals. This can provide an indication of recent values and their proximity to the threshold, and help you tune the clauses. - -[role="screenshot"] -image::images/alert-types-index-threshold-preview.png[Five clauses define the condition to detect] - -[float] -=== Example - -In this section, you will use the {kib} <<add-sample-data, weblog sample dataset>> to setup and tune the conditions on an index threshold alert. For this example, we want to detect when any of our top three sites have served more than 420,000 bytes over a 24 hour period. - -From the <<alert-management, alert management UI>>, create a new alert, and fill in the <<defining-alerts-general-details, general alert details>>. This alert will be checked every 4 hours, and will not execute actions more than once per day. Choose the index threshold alert type. - -[role="screenshot"] -image::images/alert-types-index-threshold-select.png[Choosing an index threshold alert type] - -Click on each clause to open a control that helps you set the value: - -[float] -==== Index clause -The index clause control will list and allow you to search for available indices. Choose *kibana_sample_data_logs* - -[role="screenshot"] -image::images/alert-types-index-threshold-example-index.png[Choosing an index] - -Once an index is selected, the list of time fields for that index will be available to select. Choose *@timestamp*. - -[role="screenshot"] -image::images/alert-types-index-threshold-example-timefield.png[Choosing a time field] - -[float] -==== When clause - -We want to detect the number of bytes served during the time window, so we select `sum` as the aggregation, and `bytes` as the field to aggregate. - -[role="screenshot"] -image::images/alert-types-index-threshold-example-aggregation.png[Choosing the aggregation] - -[float] -==== Over/Grouped over clause - -We want to alert on the three sites that have the most traffic, so we'll group the sum of bytes by the `host.keyword` field and take the top 3 values. - -[role="screenshot"] -image::images/alert-types-index-threshold-example-grouping.png[Choosing the groups] - -[float] -==== Threshold clause - -We want to alert when any site exceeds 420,000 bytes over a 24 hour period, so we'll set the threshold to 420,000 and use the `is above` comparison. - -[role="screenshot"] -image::images/alert-types-index-threshold-example-threshold.png[Setting the threshold] - -[float] -==== Time window clause - -Finally, set the time window to 24 hours to complete the alert configuration. - -[role="screenshot"] -image::images/alert-types-index-threshold-example-window.png[Setting the time window] - -The preview chart will render showing the 24 hour sum of bytes at 4 hours intervals (the *check every* interval) for the past 120 hours (the last 30 intervals). - -[role="screenshot"] -image::images/alert-types-index-threshold-example-preview.png[Setting the time window] - -[float] -==== Comparing time windows - -You can interactively change the time window and observe the effect it has on the chart. Compare a 24 window to a 12 hour window. Notice the variability in the sum of bytes, due to different traffic levels during the day compared to at night. This variability would result in noisy alerts, so the 24 hour window is better. The preview chart can help you find the right values for your alert. - -[role="screenshot"] -image::images/alert-types-index-threshold-example-comparison.png[Comparing two time windows] - - - - diff --git a/docs/user/alerting/alerting-getting-started.asciidoc b/docs/user/alerting/alerting-getting-started.asciidoc deleted file mode 100644 index 53aef4aaa062..000000000000 --- a/docs/user/alerting/alerting-getting-started.asciidoc +++ /dev/null @@ -1,205 +0,0 @@ -[role="xpack"] -[[alerting-getting-started]] -= Alerting and Actions - -beta[] - --- - -Alerting allows you to detect complex conditions within different {kib} apps and trigger actions when those conditions are met. Alerting is integrated with <<xpack-apm,*APM*>>, <<metrics-app,*Metrics*>>, <<xpack-siem,*Security*>>, <<uptime-app,*Uptime*>>, can be centrally managed from the <<management,*Management*>> UI, and provides a set of built-in <<action-types, actions>> and <<alert-types, alerts>> (known as stack alerts) for you to use. - -image::images/alerting-overview.png[Alerts and actions UI] - -[IMPORTANT] -============================================== -To make sure you can access alerting and actions, see the <<alerting-setup-prerequisites, setup and pre-requisites>> section. -============================================== - -[float] -== Concepts and terminology - -*Alerts* work by running checks on a schedule to detect conditions. When a condition is met, the alert tracks it as an *alert instance* and responds by triggering one or more *actions*. -Actions typically involve interaction with {kib} services or third party integrations. *Connectors* allow actions to talk to these services and integrations. -This section describes all of these elements and how they operate together. - -[float] -=== What is an alert? - -An alert specifies a background task that runs on the {kib} server to check for specific conditions. It consists of three main parts: - -* *Conditions*: what needs to be detected? -* *Schedule*: when/how often should detection checks run? -* *Actions*: what happens when a condition is detected? - -For example, when monitoring a set of servers, an alert might check for average CPU usage > 0.9 on each server for the two minutes (condition), checked every minute (schedule), sending a warning email message via SMTP with subject `CPU on {{server}} is high` (action). - -image::images/what-is-an-alert.svg[Three components of an alert] - -The following sections each part of the alert is described in more detail. - -[float] -[[alerting-concepts-conditions]] -==== Conditions - -Under the hood, {kib} alerts detect conditions by running javascript function on the {kib} server, which gives it flexibility to support a wide range of detections, anything from the results of a simple {es} query to heavy computations involving data from multiple sources or external systems. - -These detections are packaged and exposed as *alert types*. An alert type hides the underlying details of the detection, and exposes a set of parameters -to control the details of the conditions to detect. - -For example, an <<alert-types, index threshold alert type>> lets you specify the index to query, an aggregation field, and a time window, but the details of the underlying {es} query are hidden. - -See <<alert-types>> for the types of alerts provided by {kib} and how they express their conditions. - -[float] -[[alerting-concepts-scheduling]] -==== Schedule - -Alert schedules are defined as an interval between subsequent checks, and can range from a few seconds to months. - -[IMPORTANT] -============================================== -The intervals of alert checks in {kib} are approximate, their timing of their execution is affected by factors such as the frequency at which tasks are claimed and the task load on the system. See <<alerting-scale-performance>> for more information. -============================================== - -[float] -[[alerting-concepts-actions]] -==== Actions - -Actions are invocations of {kib} services or integrations with third-party systems, that run as background tasks on the {kib} server when alert conditions are met. - -When defining actions in an alert, you specify: - -* the *action type*: the type of service or integration to use -* the connection for that type by referencing a <<alerting-concepts-connectors, connector>> -* a mapping of alert values to properties exposed for that type of action - -The result is a template: all the parameters needed to invoke a service are supplied except for specific values that are only known at the time the alert condition is detected. - -In the server monitoring example, the `email` action type is used, and `server` is mapped to the body of the email, using the template string `CPU on {{server}} is high`. - -When the alert detects the condition, it creates an <<alerting-concepts-alert-instances, alert instance>> containing the details of the condition, renders the template with these details such as server name, and executes the action on the {kib} server by invoking the `email` action type. - -image::images/what-is-an-action.svg[Actions are like templates that are rendered when an alert detects a condition] - -See <<action-types>> for details on the types of actions provided by {kib}. - -[float] -[[alerting-concepts-alert-instances]] -=== Alert instances - -When checking for a condition, an alert might identify multiple occurrences of the condition. {kib} tracks each of these *alert instances* separately and takes action per instance. - -Using the server monitoring example, each server with average CPU > 0.9 is tracked as an alert instance. This means a separate email is sent for each server that exceeds the threshold. - -image::images/alert-instances.svg[{kib} tracks each detected condition as an alert instance and takes action on each instance] - -[float] -[[alerting-concepts-suppressing-duplicate-notifications]] -=== Suppressing duplicate notifications - -Since actions are taken per instance, alerts can end up generating a large number of actions. Take the following example where an alert is monitoring three servers every minute for CPU usage > 0.9: - -* Minute 1: server X123 > 0.9. *One email* is sent for server X123. -* Minute 2: X123 and Y456 > 0.9. *Two emails* are sent, on for X123 and one for Y456. -* Minute 3: X123, Y456, Z789 > 0.9. *Three emails* are sent, one for each of X123, Y456, Z789. - -In the above example, three emails are sent for server X123 in the span of 3 minutes for the same condition. Often it's desirable to suppress frequent re-notification. Operations like muting and re-notification throttling can be applied at the instance level. If we set the alert re-notify interval to 5 minutes, we reduce noise by only getting emails for new servers that exceed the threshold: - -* Minute 1: server X123 > 0.9. *One email* is sent for server X123. -* Minute 2: X123 and Y456 > 0.9. *One email* is sent for Y456 -* Minute 3: X123, Y456, Z789 > 0.9. *One email* is sent for Z789. - -[float] -[[alerting-concepts-connectors]] -=== Connectors - -Actions often involve connecting with services inside {kib} or integrations with third-party systems. -Rather than repeatedly entering connection information and credentials for each action, {kib} simplifies action setup using *connectors*. - -*Connectors* provide a central place to store connection information for services and integrations. For example if four alerts send email notifications via the same SMTP service, -they all reference the same SMTP connector. When the SMTP settings change they are updated once in the connector, instead of having to update four alerts. - -image::images/alert-concepts-connectors.svg[Connectors provide a central place to store service connection settings] - -[float] -=== Summary - -An _alert_ consists of conditions, _actions_, and a schedule. When conditions are met, _alert instances_ are created that render _actions_ and invoke them. To make action setup and update easier, actions refer to _connectors_ that centralize the information used to connect with {kib} services and third-party integrations. - -image::images/alert-concepts-summary.svg[Alerts, actions, alert instances and connectors work together to convert detection into action] - -* *Alert*: a specification of the conditions to be detected, the schedule for detection, and the response when detection occurs. -* *Action*: the response to a detected condition defined in the alert. Typically actions specify a service or third party integration along with alert details that will be sent to it. -* *Alert instance*: state tracked by {kib} for every occurrence of a detected condition. Actions as well as controls like muting and re-notification are controlled at the instance level. -* *Connector*: centralized configurations for services and third party integration that are referenced by actions. - -[float] -[[alerting-concepts-differences]] -== Differences from Watcher - -{kib} alerting and <<watcher-ui, {es} alerting>> are both used to detect conditions and can trigger actions in response, but they are completely independent alerting systems. - -This section will clarify some of the important differences in the function and intent of the two systems. - -Functionally, {kib} alerting differs in that: - -* Scheduled checks are run on {kib} instead of {es} -* {kib} <<alerting-concepts-conditions, alerts hide the details of detecting conditions>> through *alert types*, whereas watches provide low-level control over inputs, conditions, and transformations. -* {kib} alerts tracks and persists the state of each detected condition through *alert instances*. This makes it possible to mute and throttle individual instances, and detect changes in state such as resolution. -* Actions are linked to *alert instances* in {kib} alerting. Actions are fired for each occurrence of a detected condition, rather than for the entire alert. - -At a higher level, {kib} alerts allow rich integrations across use cases like <<xpack-apm,*APM*>>, <<metrics-app,*Metrics*>>, <<xpack-siem,*Security*>>, and <<uptime-app,*Uptime*>>. -Pre-packaged *alert types* simplify setup, hide the details complex domain-specific detections, while providing a consistent interface across {kib}. - -[float] -[[alerting-setup-prerequisites]] -== Setup and prerequisites - -If you are using an *on-premises* Elastic Stack deployment: - -* In the kibana.yml configuration file, add the <<alert-action-settings-kb,`xpack.encryptedSavedObjects.encryptionKey`>> setting. - -If you are using an *on-premises* Elastic Stack deployment with <<using-kibana-with-security, *security*>>: - -* You must enable Transport Layer Security (TLS) for communication <<configuring-tls-kib-es, between {es} and {kib}>>. {kib} alerting uses <<api-keys, API keys>> to secure background alert checks and actions, and API keys require {ref}/configuring-tls.html#tls-http[TLS on the HTTP interface]. A proxy will not suffice. - -[float] -[[alerting-security]] -== Security - -To access alerting in a space, a user must have access to one of the following features: - -* Alerting -* <<xpack-apm,*APM*>> -* <<logs-app,*Logs*>> -* <<metrics-app,*Metrics*>> -* <<xpack-siem,*Security*>> -* <<uptime-app,*Uptime*>> - -See <<kibana-feature-privileges, feature privileges>> for more information on configuring roles that provide access to these features. -Also note that a user will need +read+ privileges for the *Actions and Connectors* feature to attach actions to an alert or to edit an alert that has an action attached to it. - -[float] -[[alerting-spaces]] -=== Space isolation - -Alerts and connectors are isolated to the {kib} space in which they were created. An alert or connector created in one space will not be visible in another. - -[float] -[[alerting-authorization]] -=== Authorization - -Alerts, including all background detection and the actions they generate are authorized using an <<api-keys, API key>> associated with the last user to edit the alert. Upon creating or modifying an alert, an API key is generated for that user, capturing a snapshot of their privileges at that moment in time. The API key is then used to run all background tasks associated with the alert including detection checks and executing actions. - -[IMPORTANT] -============================================== -If an alert requires certain privileges to run such as index privileges, keep in mind that if a user without those privileges updates the alert, the alert will no longer function. -============================================== - -[float] -[[alerting-restricting-actions]] -=== Restricting actions - -For security reasons you may wish to limit the extent to which {kib} can connect to external services. <<action-settings>> allows you to disable certain <<action-types>> and whitelist the hostnames that {kib} can connect with. - --- \ No newline at end of file diff --git a/docs/user/alerting/alerting-scale-performance.asciidoc b/docs/user/alerting/alerting-scale-performance.asciidoc deleted file mode 100644 index 644a7143f827..000000000000 --- a/docs/user/alerting/alerting-scale-performance.asciidoc +++ /dev/null @@ -1,28 +0,0 @@ -[role="xpack"] -[[alerting-scale-performance]] -== Scale and performance - -{kib} alerting run both alert checks and actions as persistent background tasks. This has two major benefits: - -* *Persistence*: all task state and scheduling is stored in {es}, so if {kib} is restarted, alerts and actions will pick up where they left off. -* *Scaling*: multiple {kib} instances can read from and update the same task queue in {es}, allowing the alerting and action load to be distributed across instances. In cases where a {kib} instance no longer has capacity to run alert checks or actions, capacity can be increased by adding additional {kib} instances. - -[float] -=== Running background alert checks and actions - -{kib} background tasks are managed by: - -* Polling an {es} task index for overdue tasks at 3 second intervals. -* Tasks are then claiming them by updating them in the {es} index, using optimistic concurrency control to prevent conflicts. Each {kib} instance can run a maximum of 10 concurrent tasks, so a maximum of 10 tasks are claimed each interval. -* Tasks are run on the {kib} server. -* In the case of alerts which are recurring background checks, upon completion the task is scheduled again according to the <<defining-alerts-general-details, check interval>>. - -[IMPORTANT] -============================================== -Because tasks are polled at 3 second intervals and only 10 tasks can run concurrently per {kib} instance, it is possible for alert and action tasks to be run late. This can happen if: - -* Alerts use a small *check interval*. The lowest interval possible is 3 seconds, though intervals of 30 seconds or higher are recommended. -* Many alerts or actions must be *run at once*. In this case pending tasks will queue in {es}, and be pulled 10 at a time from the queue at 3 second intervals. -* *Long running tasks* occupy slots for an extended time, leaving fewer slots for other tasks. - -============================================== \ No newline at end of file diff --git a/docs/user/alerting/defining-alerts.asciidoc b/docs/user/alerting/defining-alerts.asciidoc deleted file mode 100644 index 667038739d45..000000000000 --- a/docs/user/alerting/defining-alerts.asciidoc +++ /dev/null @@ -1,97 +0,0 @@ -[role="xpack"] -[[defining-alerts]] -== Defining alerts - -{kib} alerts can be created in a variety of apps including <<xpack-apm,*APM*>>, <<metrics-app,*Metrics*>>, <<xpack-siem,*Security*>>, <<uptime-app,*Uptime*>> and from <<management,*Management*>> UI. While alerting details may differ from app to app, they share a common interface for defining and configuring alerts that this section describes in more detail. - -[float] -=== Alert flyout - -When an alert is created in an app, the app will display a flyout panel with three main sections to configure: - -. <<defining-alerts-general-details, General alert details>> -. <<defining-alerts-type-conditions, Alert type and conditions>> -. <<defining-alerts-actions-details, Action type and action details>> - -image::images/alert-flyout-sections.png[The three sections of an alert definition] - -[float] -[[defining-alerts-general-details]] -=== General alert details - -All alert share the following four properties in common: - -[role="screenshot"] -image::images/alert-flyout-general-details.png[alt='All alerts have name, tags, check every, and notify every properties in common'] - -Name:: The name of the alert. While this name does not have to be unique, the name can be referenced in actions and also appears in the searchable alert listing in the management UI. A distinctive name can help identify and find an alert. -Tags:: A list of tag names that can be applied to an alert. Tags can help you organize and find alerts, because tags appear in the alert listing in the management UI which is searchable by tag. -Check every:: This value determines how frequently the alert conditions below are checked. Note that the timing of background alert checks are not guaranteed, particularly for intervals of less than 10 seconds. See <<alerting-scale-performance>> for more information. -Notify every:: This value limits how often actions are repeated when an alert instance remains active across alert checks. See <<alerting-concepts-suppressing-duplicate-notifications>> for more information. - -[float] -[[defining-alerts-type-conditions]] -=== Alert type and conditions - -Depending upon the {kib} app and context, you may be prompted to choose the type of alert you wish to create. Some apps will pre-select the type of alert for you. - -[role="screenshot"] -image::images/alert-flyout-alert-type-selection.png[Choosing the type of alert to create] - -Each alert type provides its own way of defining the conditions to detect, but an expression formed by a series of clauses is a common pattern. Each clause has a UI control that allows you to define the clause. For example, in an index threshold alert the `WHEN` clause allows you to select an aggregation operation to apply to a numeric field. - -[role="screenshot"] -image::images/alert-flyout-alert-conditions.png[UI for defining alert conditions on an index threshold alert] - -[float] -[[defining-alerts-actions-details]] -=== Action type and action details - -To add an action to an alert, you first select the type of action: - -[role="screenshot"] -image::images/alert-flyout-action-type-selection.png[UI for selecting an action type] - -Each action must specify a <<alerting-concepts-connectors, connector>> instance. If no connectors exist for that action type, click "Add new" to create one. - -Each action type exposes different properties. For example an email action allows you to set the recipients, the subject, and a message body in markdown format. See <<action-types>> for details on the types of actions provided by {kib} and their properties. - -[role="screenshot"] -image::images/alert-flyout-action-details.png[UI for defining an email action] - -Using the https://mustache.github.io/[Mustache] template syntax `{{variable name}}`, you can pass alert values at the time a condition is detected to an action. Available variables differ by alert type, and a list can be accessed using the "add variable" button. - -[role="screenshot"] -image::images/alert-flyout-action-variables.png[Passing alert values to an action] - -You can attach more than one action. Clicking the "Add action" button will prompt you to select another alert type and repeat the above steps again. - -[role="screenshot"] -image::images/alert-flyout-add-action.png[You can add multiple actions on an alert] - -[NOTE] -============================================== -Actions are not required on alerts. In some cases you may want to run an alert without actions first to understand its behavior, and configure actions later. -============================================== - -[float] -=== Global actions configuration -Some actions configuration options apply to all actions. -If you are using an *on-prem* Elastic Stack deployment, you can set these in the kibana.yml file. -If you are using a cloud deployment, you can set these via the console. - -Here's a list of the available global configuration options and an explanation of what each one does: - -* `xpack.actions.allowedHosts`: Specifies an array of host names which actions such as email, Slack, PagerDuty, and webhook can connect to. An element of * indicates any host can be connected to. An empty array indicates no hosts can be connected to. Default: [ {asterisk} ] -* `xpack.actions.enabledActionTypes`: Specifies to an array of action types that are enabled. An {asterisk} indicates all action types registered are enabled. The action types that {kib} provides are: .server-log, .slack, .email, .index, .pagerduty, .webhook. Default: [ {asterisk} ] -* `xpack.actions.proxyUrl`: Specifies the proxy URL to use, if using a proxy for actions. -* `xpack.actions.proxyHeader`: Specifies HTTP headers for proxy, if using a proxy for actions. -* `xpack.actions.proxyRejectUnauthorizedCertificates`: Set to `false` to bypass certificate validation for proxy, if using a proxy for actions. -* `xpack.actions.rejectUnauthorized`: Set to `false` to bypass certificate validation for actions. - -*NOTE:* As an alternative to both `xpack.actions.proxyRejectUnauthorizedCertificates` and `xpack.actions.rejectUnauthorized`, the OS level environment variable `NODE_EXTRA_CA_CERTS` can be set to point to a file that contains the root CA(s) needed for certificates to be trusted. - -[float] -=== Managing alerts - -To modify an alert after it was created, including muting or disabling it, use the <<alert-management, alert listing in the Management UI>>. diff --git a/docs/user/alerting/images/alert-concepts-connectors.svg b/docs/user/alerting/images/alert-concepts-connectors.svg deleted file mode 100644 index 9ae4c21ee587..000000000000 --- a/docs/user/alerting/images/alert-concepts-connectors.svg +++ /dev/null @@ -1 +0,0 @@ -<svg version="1.1" viewBox="0.0 0.0 756.2965879265092 405.96587926509187" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l756.2966 0l0 405.96588l-756.2966 0l0 -405.96588z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l756.2966 0l0 405.96588l-756.2966 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m13.120735 28.889763l164.37796 0l0 217.51181l-164.37796 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.120735 28.889763l164.37796 0l0 217.51181l-164.37796 0z" fill-rule="evenodd"/><path fill="#000000" d="m22.089485 55.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816696 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125717 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.806427 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm12.507233 1.46875l-1.640625 0l0 -10.453125q-0.59375 0.5625 -1.5625 1.140625q-0.953125 0.5625 -1.71875 0.84375l0 -1.59375q1.375 -0.640625 2.40625 -1.5625q1.03125 -0.921875 1.453125 -1.78125l1.0625 0l0 13.40625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m17.565195 73.062996l152.09448 0l0 25.51181l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m17.565195 73.062996l152.09448 0l0 25.51181l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m35.174572 87.471115l1.390625 0.34375q-0.4375 1.703125 -1.578125 2.609375q-1.125 0.890625 -2.765625 0.890625q-1.6875019 0 -2.750002 -0.6875q-1.0625 -0.6875 -1.625 -2.0q-0.546875 -1.3125 -0.546875 -2.8125q0 -1.640625 0.625 -2.859375q0.625 -1.21875 1.78125 -1.84375q1.15625 -0.640625 2.546877 -0.640625q1.5625 0 2.640625 0.8125q1.078125 0.796875 1.5 2.25l-1.375 0.3125q-0.359375 -1.140625 -1.0625 -1.65625q-0.6875 -0.53125 -1.734375 -0.53125q-1.2187519 0 -2.031252 0.578125q-0.8125 0.578125 -1.140625 1.5625q-0.328125 0.96875 -0.328125 2.015625q0 1.328125 0.390625 2.328125q0.390625 1.0 1.21875 1.5q0.828125 0.484375 1.7812519 0.484375q1.171875 0 1.96875 -0.671875q0.8125 -0.671875 1.09375 -1.984375zm2.4592743 -0.125q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307358 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm13.072983 0l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm7.291733 -5.21875l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm6.0686455 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594757 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717743 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307358 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m17.565195 108.86232l152.09448 0l0 29.952759l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m17.565195 108.86232l152.09448 0l0 29.952759l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m27.221445 123.56732l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.7968769 0 1.4062519 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.8750019 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.1718769 0 2.062502 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125019 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.7031269 0.375 2.328127 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015627 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.041231 0.59375l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm2.375 2.78125l0 -10.484375l1.28125 0l0 3.75q0.90625 -1.03125 2.28125 -1.03125q0.84375 0 1.46875 0.328125q0.625 0.328125 0.890625 0.921875q0.265625 0.578125 0.265625 1.703125l0 4.8125l-1.28125 0l0 -4.8125q0 -0.96875 -0.421875 -1.40625q-0.421875 -0.4375 -1.1875 -0.4375q-0.578125 0 -1.078125 0.296875q-0.5 0.296875 -0.71875 0.8125q-0.21875 0.5 -0.21875 1.390625l0 4.15625l-1.28125 0zm13.354233 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.104229 4.53125l0 -0.953125q-0.71875 1.125 -2.1249962 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6874962 0 1.2187462 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.062496 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.8437462 0 1.4374962 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.4843712 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm12.276104 3.796875l0 -1.109375q-0.890625 1.28125 -2.421875 1.28125q-0.671875 0 -1.25 -0.25q-0.578125 -0.265625 -0.875 -0.65625q-0.28125 -0.390625 -0.390625 -0.953125q-0.078125 -0.375 -0.078125 -1.203125l0 -4.703125l1.28125 0l0 4.203125q0 1.015625 0.078125 1.359375q0.125 0.515625 0.515625 0.8125q0.40625 0.28125 0.984375 0.28125q0.578125 0 1.078125 -0.296875q0.515625 -0.296875 0.71875 -0.8125q0.21875 -0.515625 0.21875 -1.484375l0 -4.0625l1.28125 0l0 7.59375l-1.140625 0zm3.1354828 0l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0zm8.490524 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m17.565195 146.05766l152.09448 0l0 93.41733l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m17.565195 146.05766l152.09448 0l0 93.41733l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m26.54957 164.13766l4.015625 -10.484375l1.5000019 0l4.296875 10.484375l-1.578125 0l-1.234375 -3.171875l-4.375002 0l-1.15625 3.171875l-1.46875 0zm3.015625 -4.3125l3.562502 0l-1.09375 -2.90625q-0.5000019 -1.3125 -0.7500019 -2.171875q-0.203125 1.015625 -0.5625 2.0l-1.15625 3.078125zm12.697481 1.53125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm5.1875 1.625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594757 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717743 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307358 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6874962 0 1.2656212 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.3749962 -0.234375 -0.8906212 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm7.635479 -2.265625l1.265625 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.546875 -0.265625 -0.828125 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.296875 -0.21875 0.8125 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.265625 -0.609375q-0.765625 -0.625 -0.984375 -1.828125z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m30.065617 172.23885l125.79527 0l0 56.850388l-125.79527 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m30.065617 172.23885l125.79527 0l0 56.850388l-125.79527 0z" fill-rule="evenodd"/><path fill="#000000" d="m42.17499 191.60684l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.0937538 0.125q-0.25 0.953125 -0.9531288 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.7968788 0.84375 0.7968788 2.390625q0 0.09375 0 0.28125l-4.640629 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158207 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m113.39179 189.49747l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199211 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.0937424 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.3593674 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.0937424 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.7968674 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.9218674 0.078125 -1.3124924 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.5312424 0 1.0156174 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m46.128117 205.59122l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.9843788 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.6718788 0 -1.1718788 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923832 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m108.15742 208.60684l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339767 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.6562424 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.1562424 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.26561737 0.828125 -0.26561737 1.578125q0 0.796875 0.34374237 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m40.159367 221.60684l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m259.5328 278.57742l245.03937 0l0 113.5748l-245.03937 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m259.5328 278.57742l245.03937 0l0 113.5748l-245.03937 0z" fill-rule="evenodd"/><path fill="#000000" d="m270.11093 306.77744l0 -14.3125l10.359375 0l0 1.6875l-8.453125 0l0 4.375l7.90625 0l0 1.6875l-7.90625 0l0 4.875l8.78125 0l0 1.6875l-10.6875 0zm13.074219 0l0 -10.375l1.578125 0l0 1.453125q0.484375 -0.75 1.296875 -1.21875q0.8125 -0.46875 1.84375 -0.46875q1.15625 0 1.890625 0.484375q0.734375 0.46875 1.046875 1.328125q1.234375 -1.8125 3.203125 -1.8125q1.546875 0 2.375 0.859375q0.828125 0.859375 0.828125 2.625l0 7.125l-1.75 0l0 -6.53125q0 -1.0625 -0.171875 -1.515625q-0.171875 -0.46875 -0.625 -0.75q-0.4375 -0.28125 -1.046875 -0.28125q-1.09375 0 -1.828125 0.734375q-0.71875 0.71875 -0.71875 2.3125l0 6.03125l-1.75 0l0 -6.734375q0 -1.171875 -0.4375 -1.75q-0.421875 -0.59375 -1.40625 -0.59375q-0.734375 0 -1.375 0.390625q-0.625 0.390625 -0.90625 1.140625q-0.28125 0.75 -0.28125 2.171875l0 5.375l-1.765625 0zm23.441406 -1.28125q-0.984375 0.828125 -1.890625 1.171875q-0.90625 0.34375 -1.9375 0.34375q-1.703125 0 -2.625 -0.828125q-0.921875 -0.84375 -0.921875 -2.140625q0 -0.765625 0.34375 -1.390625q0.359375 -0.625 0.921875 -1.0q0.5625 -0.390625 1.265625 -0.59375q0.515625 -0.125 1.5625 -0.265625q2.125 -0.25 3.125 -0.59375q0.015625 -0.359375 0.015625 -0.46875q0 -1.0625 -0.5 -1.515625q-0.671875 -0.59375 -2.0 -0.59375q-1.25 0 -1.84375 0.4375q-0.578125 0.4375 -0.859375 1.546875l-1.71875 -0.234375q0.234375 -1.109375 0.765625 -1.78125q0.53125 -0.6875 1.546875 -1.046875q1.015625 -0.375 2.359375 -0.375q1.328125 0 2.15625 0.3125q0.828125 0.3125 1.21875 0.796875q0.390625 0.46875 0.546875 1.1875q0.09375 0.453125 0.09375 1.625l0 2.34375q0 2.453125 0.109375 3.109375q0.109375 0.640625 0.453125 1.234375l-1.84375 0q-0.265625 -0.546875 -0.34375 -1.28125zm-0.15625 -3.921875q-0.953125 0.390625 -2.875 0.65625q-1.078125 0.15625 -1.53125 0.359375q-0.4375 0.1875 -0.6875 0.5625q-0.25 0.375 -0.25 0.84375q0 0.703125 0.53125 1.171875q0.53125 0.46875 1.5625 0.46875q1.015625 0 1.796875 -0.4375q0.796875 -0.453125 1.171875 -1.21875q0.28125 -0.609375 0.28125 -1.765625l0 -0.640625zm4.513672 -7.09375l0 -2.015625l1.765625 0l0 2.015625l-1.765625 0zm0 12.296875l0 -10.375l1.765625 0l0 10.375l-1.765625 0zm4.3964844 0l0 -14.3125l1.75 0l0 14.3125l-1.75 0zm16.8125 -3.796875l1.71875 0.21875q-0.28125 1.796875 -1.453125 2.8125q-1.15625 1.0 -2.859375 1.0q-2.125 0 -3.421875 -1.390625q-1.296875 -1.390625 -1.296875 -3.984375q0 -1.6875 0.546875 -2.9375q0.5625 -1.265625 1.703125 -1.890625q1.140625 -0.640625 2.484375 -0.640625q1.6875 0 2.75 0.859375q1.078125 0.859375 1.390625 2.421875l-1.71875 0.265625q-0.234375 -1.046875 -0.859375 -1.5625q-0.625 -0.53125 -1.5 -0.53125q-1.328125 0 -2.15625 0.953125q-0.828125 0.953125 -0.828125 3.0q0 2.09375 0.796875 3.046875q0.796875 0.9375 2.09375 0.9375q1.03125 0 1.71875 -0.625q0.703125 -0.640625 0.890625 -1.953125zm2.578125 -1.390625q0 -2.875 1.59375 -4.265625q1.34375 -1.15625 3.265625 -1.15625q2.140625 0 3.484375 1.40625q1.359375 1.40625 1.359375 3.875q0 2.0 -0.59375 3.15625q-0.59375 1.140625 -1.75 1.78125q-1.140625 0.625 -2.5 0.625q-2.1875 0 -3.53125 -1.390625q-1.328125 -1.40625 -1.328125 -4.03125zm1.796875 0q0 2.0 0.859375 2.984375q0.875 0.984375 2.203125 0.984375q1.3125 0 2.171875 -0.984375q0.875 -1.0 0.875 -3.046875q0 -1.921875 -0.875 -2.90625q-0.875 -1.0 -2.171875 -1.0q-1.328125 0 -2.203125 1.0q-0.859375 0.984375 -0.859375 2.96875zm9.966797 5.1875l0 -10.375l1.59375 0l0 1.484375q1.140625 -1.71875 3.296875 -1.71875q0.9375 0 1.71875 0.34375q0.796875 0.328125 1.1875 0.875q0.390625 0.546875 0.546875 1.296875q0.09375 0.5 0.09375 1.71875l0 6.375l-1.765625 0l0 -6.3125q0 -1.078125 -0.203125 -1.609375q-0.203125 -0.53125 -0.734375 -0.84375q-0.515625 -0.3125 -1.21875 -0.3125q-1.125 0 -1.9375 0.71875q-0.8125 0.703125 -0.8125 2.6875l0 5.671875l-1.765625 0zm11.123047 0l0 -10.375l1.59375 0l0 1.484375q1.140625 -1.71875 3.296875 -1.71875q0.9375 0 1.71875 0.34375q0.796875 0.328125 1.1875 0.875q0.390625 0.546875 0.546875 1.296875q0.09375 0.5 0.09375 1.71875l0 6.375l-1.765625 0l0 -6.3125q0 -1.078125 -0.203125 -1.609375q-0.203125 -0.53125 -0.734375 -0.84375q-0.515625 -0.3125 -1.21875 -0.3125q-1.125 0 -1.9375 0.71875q-0.8125 0.703125 -0.8125 2.6875l0 5.671875l-1.765625 0zm18.232422 -3.34375l1.8125 0.234375q-0.421875 1.578125 -1.59375 2.46875q-1.15625 0.875 -2.96875 0.875q-2.265625 0 -3.609375 -1.390625q-1.328125 -1.40625 -1.328125 -3.9375q0 -2.625 1.34375 -4.0625q1.34375 -1.453125 3.5 -1.453125q2.078125 0 3.390625 1.421875q1.328125 1.40625 1.328125 3.984375q0 0.15625 -0.015625 0.46875l-7.734375 0q0.09375 1.703125 0.96875 2.609375q0.875 0.90625 2.171875 0.90625q0.96875 0 1.640625 -0.5q0.6875 -0.515625 1.09375 -1.625zm-5.78125 -2.84375l5.796875 0q-0.109375 -1.296875 -0.65625 -1.953125q-0.84375 -1.015625 -2.1875 -1.015625q-1.203125 0 -2.03125 0.8125q-0.828125 0.796875 -0.921875 2.15625zm16.576172 2.390625l1.71875 0.21875q-0.28125 1.796875 -1.453125 2.8125q-1.15625 1.0 -2.859375 1.0q-2.125 0 -3.421875 -1.390625q-1.296875 -1.390625 -1.296875 -3.984375q0 -1.6875 0.546875 -2.9375q0.5625 -1.265625 1.703125 -1.890625q1.140625 -0.640625 2.484375 -0.640625q1.6875 0 2.75 0.859375q1.078125 0.859375 1.390625 2.421875l-1.71875 0.265625q-0.234375 -1.046875 -0.859375 -1.5625q-0.625 -0.53125 -1.5 -0.53125q-1.328125 0 -2.15625 0.953125q-0.828125 0.953125 -0.828125 3.0q0 2.09375 0.796875 3.046875q0.796875 0.9375 2.09375 0.9375q1.03125 0 1.71875 -0.625q0.703125 -0.640625 0.890625 -1.953125zm7.0625 2.21875l0.25 1.5625q-0.734375 0.15625 -1.328125 0.15625q-0.953125 0 -1.484375 -0.296875q-0.515625 -0.3125 -0.734375 -0.796875q-0.21875 -0.5 -0.21875 -2.078125l0 -5.96875l-1.28125 0l0 -1.375l1.28125 0l0 -2.5625l1.75 -1.0625l0 3.625l1.765625 0l0 1.375l-1.765625 0l0 6.0625q0 0.75 0.09375 0.96875q0.09375 0.203125 0.296875 0.34375q0.21875 0.125 0.609375 0.125q0.28125 0 0.765625 -0.078125zm1.0722656 -3.609375q0 -2.875 1.59375 -4.265625q1.34375 -1.15625 3.265625 -1.15625q2.140625 0 3.484375 1.40625q1.359375 1.40625 1.359375 3.875q0 2.0 -0.59375 3.15625q-0.59375 1.140625 -1.75 1.78125q-1.140625 0.625 -2.5 0.625q-2.1875 0 -3.53125 -1.390625q-1.328125 -1.40625 -1.328125 -4.03125zm1.796875 0q0 2.0 0.859375 2.984375q0.875 0.984375 2.203125 0.984375q1.3125 0 2.171875 -0.984375q0.875 -1.0 0.875 -3.046875q0 -1.921875 -0.875 -2.90625q-0.875 -1.0 -2.171875 -1.0q-1.328125 0 -2.203125 1.0q-0.859375 0.984375 -0.859375 2.96875zm9.951172 5.1875l0 -10.375l1.578125 0l0 1.578125q0.609375 -1.109375 1.125 -1.453125q0.515625 -0.359375 1.125 -0.359375q0.890625 0 1.8125 0.5625l-0.609375 1.640625q-0.640625 -0.390625 -1.28125 -0.390625q-0.578125 0 -1.046875 0.359375q-0.453125 0.34375 -0.65625 0.953125q-0.28125 0.9375 -0.28125 2.046875l0 5.4375l-1.765625 0zm11.560547 -4.296875l0 -1.765625l5.390625 0l0 1.765625l-5.390625 0zm12.888672 4.296875l0 -10.375l1.578125 0l0 1.453125q0.484375 -0.75 1.296875 -1.21875q0.8125 -0.46875 1.84375 -0.46875q1.15625 0 1.890625 0.484375q0.734375 0.46875 1.046875 1.328125q1.234375 -1.8125 3.203125 -1.8125q1.546875 0 2.375 0.859375q0.828125 0.859375 0.828125 2.625l0 7.125l-1.75 0l0 -6.53125q0 -1.0625 -0.171875 -1.515625q-0.171875 -0.46875 -0.625 -0.75q-0.4375 -0.28125 -1.046875 -0.28125q-1.09375 0 -1.828125 0.734375q-0.71875 0.71875 -0.71875 2.3125l0 6.03125l-1.75 0l0 -6.734375q0 -1.171875 -0.4375 -1.75q-0.421875 -0.59375 -1.40625 -0.59375q-0.734375 0 -1.375 0.390625q-0.625 0.390625 -0.90625 1.140625q-0.28125 0.75 -0.28125 2.171875l0 5.375l-1.765625 0zm16.582031 4.0l-0.1875 -1.65625q0.578125 0.15625 1.0 0.15625q0.59375 0 0.9375 -0.203125q0.359375 -0.1875 0.578125 -0.53125q0.171875 -0.265625 0.546875 -1.3125q0.046875 -0.15625 0.15625 -0.4375l-3.9375 -10.390625l1.890625 0l2.15625 6.015625q0.421875 1.140625 0.75 2.390625q0.3125 -1.203125 0.71875 -2.359375l2.21875 -6.046875l1.765625 0l-3.953125 10.546875q-0.625 1.71875 -0.984375 2.359375q-0.46875 0.875 -1.078125 1.265625q-0.59375 0.40625 -1.4375 0.40625q-0.515625 0 -1.140625 -0.203125zm9.09375 -4.0l0 -2.0l2.0 0l0 2.0l-2.0 0zm11.837891 -3.796875l1.71875 0.21875q-0.28125 1.796875 -1.453125 2.8125q-1.15625 1.0 -2.859375 1.0q-2.125 0 -3.421875 -1.390625q-1.296875 -1.390625 -1.296875 -3.984375q0 -1.6875 0.546875 -2.9375q0.5625 -1.265625 1.703125 -1.890625q1.140625 -0.640625 2.484375 -0.640625q1.6875 0 2.75 0.859375q1.078125 0.859375 1.390625 2.421875l-1.71875 0.265625q-0.234375 -1.046875 -0.859375 -1.5625q-0.625 -0.53125 -1.5 -0.53125q-1.328125 0 -2.15625 0.953125q-0.828125 0.953125 -0.828125 3.0q0 2.09375 0.796875 3.046875q0.796875 0.9375 2.09375 0.9375q1.03125 0 1.71875 -0.625q0.703125 -0.640625 0.890625 -1.953125zm2.578125 -1.390625q0 -2.875 1.59375 -4.265625q1.34375 -1.15625 3.265625 -1.15625q2.140625 0 3.484375 1.40625q1.359375 1.40625 1.359375 3.875q0 2.0 -0.59375 3.15625q-0.59375 1.140625 -1.75 1.78125q-1.140625 0.625 -2.5 0.625q-2.1875 0 -3.53125 -1.390625q-1.328125 -1.40625 -1.328125 -4.03125zm1.796875 0q0 2.0 0.859375 2.984375q0.875 0.984375 2.203125 0.984375q1.3125 0 2.171875 -0.984375q0.875 -1.0 0.875 -3.046875q0 -1.921875 -0.875 -2.90625q-0.875 -1.0 -2.171875 -1.0q-1.328125 0 -2.203125 1.0q-0.859375 0.984375 -0.859375 2.96875z" fill-rule="nonzero"/><path fill="#000000" d="m288.13907 337.09744l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm6.861328 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.533203 0.34375l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm8.375 1.265625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm2.1933594 -4.15625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m364.92343 337.09744l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m287.60782 353.48804l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4375 -0.21875 0.921875 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.984375 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.921875 0 1.484375 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.40625 0 -0.75 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm5.298828 0.1875q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm6.4648438 -0.859375l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm2.1933594 -4.15625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m365.37656 348.6443l1.078125 -0.109375q-0.015625 0.234375 -0.015625 0.28125q0 0.375 0.1875 0.78125q0.203125 0.390625 0.53125 0.59375q0.34375 0.203125 0.71875 0.203125q0.5 0 1.0 -0.328125q0.515625 -0.34375 0.828125 -0.984375q0.3125 -0.65625 0.3125 -1.296875q0 -0.71875 -0.421875 -1.15625q-0.421875 -0.4375 -1.109375 -0.4375q-0.46875 0 -0.890625 0.234375q-0.40625 0.21875 -0.765625 0.65625l-0.921875 -0.0625l1.296875 -4.390625l4.203125 0l-0.21875 0.96875l-3.25 0l-0.65625 2.1875q0.375 -0.265625 0.75 -0.390625q0.390625 -0.140625 0.796875 -0.140625q0.984375 0 1.609375 0.65625q0.640625 0.640625 0.640625 1.78125q0 0.984375 -0.4375 1.828125q-0.4375 0.828125 -1.203125 1.28125q-0.75 0.4375 -1.625 0.4375q-0.75 0 -1.3125 -0.328125q-0.5625 -0.328125 -0.859375 -0.90625q-0.28125 -0.59375 -0.28125 -1.1875q0 -0.0625 0.015625 -0.171875zm8.533203 -2.265625q-0.46875 -0.265625 -0.71875 -0.671875q-0.234375 -0.421875 -0.234375 -0.890625q0 -0.78125 0.5625 -1.453125q0.75 -0.890625 2.03125 -0.890625q1.125 0 1.78125 0.609375q0.65625 0.609375 0.65625 1.484375q0 0.625 -0.359375 1.125q-0.34375 0.5 -1.09375 0.8125q0.515625 0.3125 0.734375 0.671875q0.28125 0.484375 0.28125 1.109375q0 1.15625 -0.8125 2.0625q-0.8125 0.90625 -2.171875 0.90625q-1.09375 0 -1.78125 -0.671875q-0.6875 -0.671875 -0.6875 -1.671875q0 -0.9375 0.484375 -1.609375q0.5 -0.6875 1.328125 -0.921875zm0.09375 -1.515625q0 0.546875 0.34375 0.890625q0.359375 0.328125 0.984375 0.328125q0.71875 0 1.171875 -0.4375q0.453125 -0.453125 0.453125 -1.09375q0 -0.546875 -0.359375 -0.890625q-0.34375 -0.34375 -0.96875 -0.34375q-0.46875 0 -0.859375 0.21875q-0.390625 0.21875 -0.578125 0.59375q-0.1875 0.375 -0.1875 0.734375zm-0.828125 4.140625q0 0.359375 0.171875 0.6875q0.171875 0.328125 0.515625 0.515625q0.359375 0.1875 0.8125 0.1875q0.859375 0 1.390625 -0.796875q0.421875 -0.640625 0.421875 -1.375q0 -0.59375 -0.390625 -0.96875q-0.390625 -0.390625 -1.015625 -0.390625q-0.796875 0 -1.359375 0.59375q-0.546875 0.59375 -0.546875 1.546875zm6.439453 2.09375q0.140625 -0.875 0.609375 -2.09375q0.546875 -1.46875 1.421875 -2.90625q0.890625 -1.453125 1.96875 -2.5l-4.28125 0l0.203125 -0.96875l5.484375 0l-0.203125 0.96875q-1.390625 1.21875 -2.4375 3.15625q-1.203125 2.234375 -1.65625 4.34375l-1.109375 0z" fill-rule="nonzero"/><path fill="#000000" d="m292.37344 363.9724q-1.109375 1.265625 -2.28125 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4375 -0.21875 0.734375 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.5332031 -1.0l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.46875 0.015625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm3.9960938 0l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0zm10.861328 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm2.0800781 3.15625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.574219 -2.109375l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm6.517578 -1.359375l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m364.92343 365.0974l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm10.640625 -3.53125q-1.109375 1.265625 -2.28125 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4375 -0.21875 0.734375 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.5332031 -1.0l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.46875 0.015625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0z" fill-rule="nonzero"/><path fill="#000000" d="m287.60782 381.48804l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4375 -0.21875 0.921875 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.984375 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.921875 0 1.484375 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.40625 0 -0.75 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm9.298828 1.765625q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm2.1894531 1.03125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm6.0 0l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm7.078125 2.125l-0.640625 -6.21875l1.015625 0l0.28125 2.796875l0.109375 1.5625q0.015625 0.171875 0.03125 0.703125q0.1875 -0.59375 0.296875 -0.90625q0.125 -0.328125 0.40625 -0.921875l1.46875 -3.234375l1.15625 0l0.203125 3.109375q0.046875 0.703125 0.0625 1.890625q0.296875 -0.78125 0.953125 -2.1875l1.34375 -2.8125l1.0625 0l-3.046875 6.21875l-1.09375 0l-0.234375 -3.65625q-0.03125 -0.328125 -0.046875 -1.3125q-0.234375 0.625 -0.5625 1.34375l-1.640625 3.625l-1.125 0zm7.6816406 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm8.183594 -0.90625q-0.90625 1.046875 -1.890625 1.046875q-0.890625 0 -1.484375 -0.65625q-0.578125 -0.65625 -0.578125 -1.890625q0 -1.140625 0.453125 -2.078125q0.46875 -0.9375 1.171875 -1.40625q0.703125 -0.46875 1.40625 -0.46875q1.15625 0 1.75 1.109375l0.703125 -3.34375l1.046875 0l-1.78125 8.59375l-0.984375 0l0.1875 -0.90625zm-2.90625 -1.703125q0 0.65625 0.125 1.03125q0.140625 0.375 0.4375 0.625q0.3125 0.25 0.75 0.25q0.71875 0 1.3125 -0.75q0.78125 -1.0 0.78125 -2.46875q0 -0.734375 -0.390625 -1.140625q-0.390625 -0.421875 -0.96875 -0.421875q-0.375 0 -0.703125 0.171875q-0.3125 0.15625 -0.625 0.5625q-0.296875 0.40625 -0.515625 1.046875q-0.203125 0.625 -0.203125 1.09375zm6.720703 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m369.2203 376.8318l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.71875 2.265625l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm10.861328 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm2.0957031 3.15625l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0zm6.611328 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm9.970703 0.640625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.574219 -2.109375l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625z" fill-rule="nonzero"/><path fill="#ffffff" d="m200.14961 28.889763l164.37794 0l0 217.51181l-164.37794 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m200.14961 28.889763l164.37794 0l0 217.51181l-164.37794 0z" fill-rule="evenodd"/><path fill="#000000" d="m209.11836 55.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816696 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125717 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.806427 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm14.944717 -0.109375l0 1.578125l-8.82811 0q-0.015625 -0.59375 0.1875 -1.140625q0.34375 -0.90625 1.078125 -1.78125q0.75 -0.875 2.1562347 -2.015625q2.171875 -1.78125 2.9375 -2.828125q0.765625 -1.046875 0.765625 -1.96875q0 -0.984375 -0.703125 -1.640625q-0.6875 -0.671875 -1.8125 -0.671875q-1.1875 0 -1.9062347 0.71875q-0.703125 0.703125 -0.703125 1.953125l-1.6875 -0.171875q0.171875 -1.890625 1.296875 -2.875q1.1406097 -0.984375 3.0312347 -0.984375q1.921875 0 3.046875 1.0625q1.125 1.0625 1.125 2.640625q0 0.796875 -0.328125 1.578125q-0.328125 0.78125 -1.09375 1.640625q-0.75 0.84375 -2.53125 2.34375q-1.46875 1.234375 -1.890625 1.6875q-0.42185974 0.4375 -0.68748474 0.875l6.5468597 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m204.59407 73.062996l152.0945 0l0 25.51181l-152.0945 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m204.59407 73.062996l152.0945 0l0 25.51181l-152.0945 0z" fill-rule="evenodd"/><path fill="#000000" d="m222.20345 87.471115l1.390625 0.34375q-0.4375 1.703125 -1.578125 2.609375q-1.125 0.890625 -2.765625 0.890625q-1.6875 0 -2.75 -0.6875q-1.0625 -0.6875 -1.625 -2.0q-0.546875 -1.3125 -0.546875 -2.8125q0 -1.640625 0.625 -2.859375q0.625 -1.21875 1.78125 -1.84375q1.15625 -0.640625 2.546875 -0.640625q1.5625 0 2.640625 0.8125q1.078125 0.796875 1.5 2.25l-1.375 0.3125q-0.359375 -1.140625 -1.0625 -1.65625q-0.6875 -0.53125 -1.734375 -0.53125q-1.21875 0 -2.03125 0.578125q-0.8125 0.578125 -1.140625 1.5625q-0.328125 0.96875 -0.328125 2.015625q0 1.328125 0.390625 2.328125q0.390625 1.0 1.21875 1.5q0.828125 0.484375 1.78125 0.484375q1.171875 0 1.96875 -0.671875q0.8125 -0.671875 1.09375 -1.984375zm2.4592743 -0.125q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307358 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm13.072983 0l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm7.291733 -5.21875l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm6.0686493 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594604 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717896 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.3073425 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m204.59407 108.86232l152.0945 0l0 29.952759l-152.0945 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m204.59407 108.86232l152.0945 0l0 29.952759l-152.0945 0z" fill-rule="evenodd"/><path fill="#000000" d="m214.25032 123.56732l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.041229 0.59375l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm2.375 2.78125l0 -10.484375l1.28125 0l0 3.75q0.90625 -1.03125 2.28125 -1.03125q0.84375 0 1.46875 0.328125q0.625 0.328125 0.890625 0.921875q0.265625 0.578125 0.265625 1.703125l0 4.8125l-1.28125 0l0 -4.8125q0 -0.96875 -0.421875 -1.40625q-0.421875 -0.4375 -1.1875 -0.4375q-0.578125 0 -1.078125 0.296875q-0.5 0.296875 -0.71875 0.8125q-0.21875 0.5 -0.21875 1.390625l0 4.15625l-1.28125 0zm13.354233 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.104233 4.53125l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm12.276108 3.796875l0 -1.109375q-0.890625 1.28125 -2.421875 1.28125q-0.671875 0 -1.25 -0.25q-0.578125 -0.265625 -0.875 -0.65625q-0.28125 -0.390625 -0.390625 -0.953125q-0.078125 -0.375 -0.078125 -1.203125l0 -4.703125l1.28125 0l0 4.203125q0 1.015625 0.078125 1.359375q0.125 0.515625 0.515625 0.8125q0.40625 0.28125 0.984375 0.28125q0.578125 0 1.078125 -0.296875q0.515625 -0.296875 0.71875 -0.8125q0.21875 -0.515625 0.21875 -1.484375l0 -4.0625l1.28125 0l0 7.59375l-1.140625 0zm3.1354675 0l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0zm8.49054 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m204.59407 146.05766l152.0945 0l0 93.41733l-152.0945 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m204.59407 146.05766l152.0945 0l0 93.41733l-152.0945 0z" fill-rule="evenodd"/><path fill="#000000" d="m213.57845 164.13766l4.015625 -10.484375l1.5 0l4.296875 10.484375l-1.578125 0l-1.234375 -3.171875l-4.375 0l-1.15625 3.171875l-1.46875 0zm3.015625 -4.3125l3.5625 0l-1.09375 -2.90625q-0.5 -1.3125 -0.75 -2.171875q-0.203125 1.015625 -0.5625 2.0l-1.15625 3.078125zm12.697479 1.53125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm5.1875 1.625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594757 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717743 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307358 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm7.635483 -2.265625l1.2656097 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.54685974 -0.265625 -0.82810974 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.29685974 -0.21875 0.81248474 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.2656097 -0.609375q-0.765625 -0.625 -0.984375 -1.828125z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m217.09448 172.23885l125.79529 0l0 56.850388l-125.79529 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m217.09448 172.23885l125.79529 0l0 56.850388l-125.79529 0z" fill-rule="evenodd"/><path fill="#000000" d="m229.20386 191.60684l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158203 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m300.42065 189.49747l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199219 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m233.15698 205.59122l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m295.18628 208.60684l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m227.18823 221.60684l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m387.17847 28.889763l164.37799 0l0 217.51181l-164.37799 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m387.17847 28.889763l164.37799 0l0 217.51181l-164.37799 0z" fill-rule="evenodd"/><path fill="#000000" d="m396.14722 55.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816711 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125702 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.806427 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm6.3353577 -2.0625l1.640625 -0.21875q0.28125 1.40625 0.953125 2.015625q0.6875 0.609375 1.65625 0.609375q1.15625 0 1.953125 -0.796875q0.796875 -0.796875 0.796875 -1.984375q0 -1.125 -0.734375 -1.859375q-0.734375 -0.734375 -1.875 -0.734375q-0.46875 0 -1.15625 0.171875l0.1875 -1.4375q0.15625 0.015625 0.265625 0.015625q1.046875 0 1.875 -0.546875q0.84375 -0.546875 0.84375 -1.671875q0 -0.90625 -0.609375 -1.5q-0.609375 -0.59375 -1.578125 -0.59375q-0.953125 0 -1.59375 0.609375q-0.640625 0.59375 -0.8125 1.796875l-1.640625 -0.296875q0.296875 -1.640625 1.359375 -2.546875q1.0625 -0.90625 2.65625 -0.90625q1.09375 0 2.0 0.46875q0.921875 0.46875 1.40625 1.28125q0.5 0.8125 0.5 1.71875q0 0.859375 -0.46875 1.578125q-0.46875 0.703125 -1.375 1.125q1.1875 0.28125 1.84375 1.140625q0.65625 0.859375 0.65625 2.15625q0 1.734375 -1.28125 2.953125q-1.265625 1.21875 -3.21875 1.21875q-1.765625 0 -2.921875 -1.046875q-1.15625 -1.046875 -1.328125 -2.71875z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m391.62292 73.062996l152.09448 0l0 25.51181l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m391.62292 73.062996l152.09448 0l0 25.51181l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m409.2323 87.471115l1.390625 0.34375q-0.4375 1.703125 -1.578125 2.609375q-1.125 0.890625 -2.765625 0.890625q-1.6875 0 -2.75 -0.6875q-1.0625 -0.6875 -1.625 -2.0q-0.546875 -1.3125 -0.546875 -2.8125q0 -1.640625 0.625 -2.859375q0.625 -1.21875 1.78125 -1.84375q1.15625 -0.640625 2.546875 -0.640625q1.5625 0 2.640625 0.8125q1.078125 0.796875 1.5 2.25l-1.375 0.3125q-0.359375 -1.140625 -1.0625 -1.65625q-0.6875 -0.53125 -1.734375 -0.53125q-1.21875 0 -2.03125 0.578125q-0.8125 0.578125 -1.140625 1.5625q-0.328125 0.96875 -0.328125 2.015625q0 1.328125 0.390625 2.328125q0.390625 1.0 1.21875 1.5q0.828125 0.484375 1.78125 0.484375q1.171875 0 1.96875 -0.671875q0.8125 -0.671875 1.09375 -1.984375zm2.4592896 -0.125q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.3073425 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm13.072998 0l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm7.2917175 -5.21875l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm6.0686646 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594604 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717896 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.3073425 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m391.62292 108.86232l152.09448 0l0 29.952759l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m391.62292 108.86232l152.09448 0l0 29.952759l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m401.27917 123.56732l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.041229 0.59375l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm2.375 2.78125l0 -10.484375l1.28125 0l0 3.75q0.90625 -1.03125 2.28125 -1.03125q0.84375 0 1.46875 0.328125q0.625 0.328125 0.890625 0.921875q0.265625 0.578125 0.265625 1.703125l0 4.8125l-1.28125 0l0 -4.8125q0 -0.96875 -0.421875 -1.40625q-0.421875 -0.4375 -1.1875 -0.4375q-0.578125 0 -1.078125 0.296875q-0.5 0.296875 -0.71875 0.8125q-0.21875 0.5 -0.21875 1.390625l0 4.15625l-1.28125 0zm13.354248 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.104218 4.53125l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm12.276123 3.796875l0 -1.109375q-0.890625 1.28125 -2.421875 1.28125q-0.671875 0 -1.25 -0.25q-0.578125 -0.265625 -0.875 -0.65625q-0.28125 -0.390625 -0.390625 -0.953125q-0.078125 -0.375 -0.078125 -1.203125l0 -4.703125l1.28125 0l0 4.203125q0 1.015625 0.078125 1.359375q0.125 0.515625 0.515625 0.8125q0.40625 0.28125 0.984375 0.28125q0.578125 0 1.078125 -0.296875q0.515625 -0.296875 0.71875 -0.8125q0.21875 -0.515625 0.21875 -1.484375l0 -4.0625l1.28125 0l0 7.59375l-1.140625 0zm3.1354675 0l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0zm8.49054 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m391.62292 146.05766l152.09448 0l0 93.41733l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m391.62292 146.05766l152.09448 0l0 93.41733l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m400.6073 164.13766l4.015625 -10.484375l1.5 0l4.296875 10.484375l-1.578125 0l-1.234375 -3.171875l-4.375 0l-1.15625 3.171875l-1.46875 0zm3.015625 -4.3125l3.5625 0l-1.09375 -2.90625q-0.5 -1.3125 -0.75 -2.171875q-0.203125 1.015625 -0.5625 2.0l-1.15625 3.078125zm12.697479 1.53125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm5.1875 1.625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.259491 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.771759 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm7.6354675 -2.265625l1.265625 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.546875 -0.265625 -0.828125 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.296875 -0.21875 0.8125 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.265625 -0.609375q-0.765625 -0.625 -0.984375 -1.828125z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m404.12335 172.23885l125.79529 0l0 56.850388l-125.79529 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m404.12335 172.23885l125.79529 0l0 56.850388l-125.79529 0z" fill-rule="evenodd"/><path fill="#000000" d="m416.23273 191.60684l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158203 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m487.44952 189.49747l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199219 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m420.18585 205.59122l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m482.21515 208.60684l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m414.2171 221.60684l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#ffffff" d="m578.65094 28.889763l164.37793 0l0 217.51181l-164.37793 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m578.65094 28.889763l164.37793 0l0 217.51181l-164.37793 0z" fill-rule="evenodd"/><path fill="#000000" d="m587.6197 55.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.8029175 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816711 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125732 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.8063965 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm11.585388 1.46875l0 -3.203125l-5.796875 0l0 -1.5l6.09375 -8.65625l1.34375 0l0 8.65625l1.796875 0l0 1.5l-1.796875 0l0 3.203125l-1.640625 0zm0 -4.703125l0 -6.015625l-4.1875 6.015625l4.1875 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m583.0954 73.062996l152.09448 0l0 25.51181l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m583.0954 73.062996l152.09448 0l0 25.51181l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m600.7048 87.471115l1.390625 0.34375q-0.4375 1.703125 -1.578125 2.609375q-1.125 0.890625 -2.765625 0.890625q-1.6875 0 -2.75 -0.6875q-1.0625 -0.6875 -1.625 -2.0q-0.546875 -1.3125 -0.546875 -2.8125q0 -1.640625 0.625 -2.859375q0.625 -1.21875 1.78125 -1.84375q1.15625 -0.640625 2.546875 -0.640625q1.5625 0 2.640625 0.8125q1.078125 0.796875 1.5 2.25l-1.375 0.3125q-0.359375 -1.140625 -1.0625 -1.65625q-0.6875 -0.53125 -1.734375 -0.53125q-1.21875 0 -2.03125 0.578125q-0.8125 0.578125 -1.140625 1.5625q-0.328125 0.96875 -0.328125 2.015625q0 1.328125 0.390625 2.328125q0.390625 1.0 1.21875 1.5q0.828125 0.484375 1.78125 0.484375q1.171875 0 1.96875 -0.671875q0.8125 -0.671875 1.09375 -1.984375zm2.4592285 -0.125q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm13.072998 0l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm7.291748 -5.21875l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm6.0686035 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2595215 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717285 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m583.0954 108.86232l152.09448 0l0 29.952759l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m583.0954 108.86232l152.09448 0l0 29.952759l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m592.75165 123.56732l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.041199 0.59375l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm2.375 2.78125l0 -10.484375l1.28125 0l0 3.75q0.90625 -1.03125 2.28125 -1.03125q0.84375 0 1.46875 0.328125q0.625 0.328125 0.890625 0.921875q0.265625 0.578125 0.265625 1.703125l0 4.8125l-1.28125 0l0 -4.8125q0 -0.96875 -0.421875 -1.40625q-0.421875 -0.4375 -1.1875 -0.4375q-0.578125 0 -1.078125 0.296875q-0.5 0.296875 -0.71875 0.8125q-0.21875 0.5 -0.21875 1.390625l0 4.15625l-1.28125 0zm13.354248 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.104248 4.53125l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm12.276062 3.796875l0 -1.109375q-0.890625 1.28125 -2.421875 1.28125q-0.671875 0 -1.25 -0.25q-0.578125 -0.265625 -0.875 -0.65625q-0.28125 -0.390625 -0.390625 -0.953125q-0.078125 -0.375 -0.078125 -1.203125l0 -4.703125l1.28125 0l0 4.203125q0 1.015625 0.078125 1.359375q0.125 0.515625 0.515625 0.8125q0.40625 0.28125 0.984375 0.28125q0.578125 0 1.078125 -0.296875q0.515625 -0.296875 0.71875 -0.8125q0.21875 -0.515625 0.21875 -1.484375l0 -4.0625l1.28125 0l0 7.59375l-1.140625 0zm3.135498 0l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0zm8.49054 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m583.0954 146.05766l152.09448 0l0 93.41733l-152.09448 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m583.0954 146.05766l152.09448 0l0 93.41733l-152.09448 0z" fill-rule="evenodd"/><path fill="#000000" d="m592.0798 164.13766l4.015625 -10.484375l1.5 0l4.296875 10.484375l-1.578125 0l-1.234375 -3.171875l-4.375 0l-1.15625 3.171875l-1.46875 0zm3.015625 -4.3125l3.5625 0l-1.09375 -2.90625q-0.5 -1.3125 -0.75 -2.171875q-0.203125 1.015625 -0.5625 2.0l-1.15625 3.078125zm12.697449 1.53125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm5.1875 1.625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594604 -7.859375l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717896 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm7.635498 -2.265625l1.265625 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.546875 -0.265625 -0.828125 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.296875 -0.21875 0.8125 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.265625 -0.609375q-0.765625 -0.625 -0.984375 -1.828125z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m595.5958 172.23885l125.79523 0l0 56.850388l-125.79523 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m595.5958 172.23885l125.79523 0l0 56.850388l-125.79523 0z" fill-rule="evenodd"/><path fill="#000000" d="m607.7052 191.60684l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158203 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m678.922 189.49747l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199219 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m611.6583 205.59122l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m673.6876 208.60684l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m605.6896 221.60684l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm3.3339844 0l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m124.698166 215.20735l257.3543 63.37007" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m124.698166 215.20735l257.3543 63.37007" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m307.37534 216.08923l74.677155 62.48819" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m307.37534 216.08923l74.677155 62.48819" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m495.28085 215.20735l-113.22836 63.37007" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m495.28085 215.20735l-113.22836 63.37007" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m685.76904 215.20735l-303.71655 63.37007" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m685.76904 215.20735l-303.71655 63.37007" fill-rule="evenodd"/></g></svg> \ No newline at end of file diff --git a/docs/user/alerting/images/alert-concepts-summary.svg b/docs/user/alerting/images/alert-concepts-summary.svg deleted file mode 100644 index 0d63601c0693..000000000000 --- a/docs/user/alerting/images/alert-concepts-summary.svg +++ /dev/null @@ -1 +0,0 @@ -<svg version="1.1" viewBox="0.0 0.0 995.4120734908137 468.84776902887137" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l995.41205 0l0 468.84778l-995.41205 0l0 -468.84778z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l995.41205 0l0 468.84778l-995.41205 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m13.120735 52.889763l260.8819 0l0 266.61417l-260.8819 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.120735 52.889763l260.8819 0l0 266.61417l-260.8819 0z" fill-rule="evenodd"/><path fill="#000000" d="m22.089485 79.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816696 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125717 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.806427 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 97.062996l233.00789 0l0 33.511803l-233.00789 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 97.062996l233.00789 0l0 33.511803l-233.00789 0z" fill-rule="evenodd"/><path fill="#000000" d="m43.750084 117.40737l1.515625 0.375q-0.46875 1.875 -1.71875 2.859375q-1.234375 0.984375 -3.015625 0.984375q-1.859375 0 -3.015625 -0.75q-1.15625 -0.765625 -1.765625 -2.1875q-0.609375 -1.4375 -0.609375 -3.078125q0 -1.796875 0.6875 -3.125q0.6875 -1.328125 1.9375 -2.015625q1.265625 -0.703125 2.78125 -0.703125q1.71875 0 2.890625 0.875q1.171875 0.875 1.640625 2.46875l-1.5 0.34375q-0.390625 -1.25 -1.15625 -1.8125q-0.75 -0.578125 -1.90625 -0.578125q-1.3125 0 -2.203125 0.640625q-0.890625 0.625 -1.25 1.703125q-0.359375 1.0625 -0.359375 2.1875q0 1.46875 0.421875 2.5625q0.4375 1.078125 1.328125 1.625q0.90625 0.53125 1.953125 0.53125q1.265625 0 2.140625 -0.734375q0.890625 -0.734375 1.203125 -2.171875zm2.6796875 -0.140625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm14.2734375 0l0 -1.046875q-0.78125 1.234375 -2.3125 1.234375q-1.0 0 -1.828125 -0.546875q-0.828125 -0.546875 -1.296875 -1.53125q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453125l-1.3125 0zm-4.4375 -4.140625q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm7.9609375 -5.703125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm6.6171875 -1.265625l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0z" fill-rule="nonzero"/><path fill="#000000" d="m136.46883 120.39175q-0.734375 0.625 -1.421875 0.921875q-0.671875 0.296875 -1.4375 0.296875q-1.15625 0 -1.859375 -0.671875q-0.703125 -0.6875 -0.703125 -1.734375q0 -0.703125 0.3125 -1.234375q0.328125 -0.53125 0.84375 -0.859375q0.53125 -0.328125 1.28125 -0.46875q0.484375 -0.09375 1.8125 -0.140625q1.328125 -0.0625 1.90625 -0.28125q0.171875 -0.578125 0.171875 -0.96875q0 -0.484375 -0.359375 -0.765625q-0.5 -0.390625 -1.4375 -0.390625q-0.890625 0 -1.46875 0.390625q-0.5625 0.390625 -0.8125 1.125l-1.4375 -0.125q0.4375 -1.234375 1.390625 -1.890625q0.953125 -0.65625 2.390625 -0.65625q1.546875 0 2.4375 0.734375q0.6875 0.546875 0.6875 1.421875q0 0.65625 -0.1875 1.53125l-0.46875 2.0625q-0.21875 0.984375 -0.21875 1.609375q0 0.390625 0.171875 1.125l-1.421875 0q-0.125 -0.40625 -0.171875 -1.03125zm0.53125 -3.171875q-0.296875 0.109375 -0.640625 0.171875q-0.34375 0.0625 -1.140625 0.140625q-1.234375 0.109375 -1.75 0.28125q-0.5 0.15625 -0.765625 0.53125q-0.25 0.359375 -0.25 0.8125q0 0.59375 0.40625 0.984375q0.421875 0.375 1.171875 0.375q0.703125 0 1.34375 -0.375q0.65625 -0.375 1.03125 -1.03125q0.375 -0.671875 0.59375 -1.890625zm4.8671875 4.203125l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm5.828125 0.75l1.4375 0.140625q-0.015625 0.484375 0.109375 0.71875q0.140625 0.25 0.421875 0.375q0.390625 0.171875 1.0 0.171875q1.28125 0 1.84375 -0.65625q0.359375 -0.453125 0.671875 -1.953125l0.140625 -0.671875q-1.09375 1.125 -2.34375 1.125q-1.25 0 -2.109375 -0.921875q-0.84375 -0.9375 -0.84375 -2.625q0 -1.40625 0.671875 -2.578125q0.671875 -1.171875 1.59375 -1.765625q0.921875 -0.59375 1.890625 -0.59375q1.640625 0 2.515625 1.546875l0.28125 -1.359375l1.296875 0l-1.671875 8.0q-0.265625 1.328125 -0.71875 2.0625q-0.4375 0.75 -1.234375 1.15625q-0.796875 0.40625 -1.828125 0.40625q-1.0 0 -1.734375 -0.265625q-0.71875 -0.25 -1.078125 -0.75q-0.34375 -0.5 -0.34375 -1.140625q0 -0.1875 0.03125 -0.421875zm1.765625 -4.421875q0 0.84375 0.171875 1.28125q0.234375 0.59375 0.65625 0.921875q0.4375 0.3125 0.96875 0.3125q0.703125 0 1.390625 -0.484375q0.6875 -0.5 1.109375 -1.515625q0.421875 -1.03125 0.421875 -1.953125q0 -1.03125 -0.5625 -1.625q-0.5625 -0.609375 -1.40625 -0.609375q-0.515625 0 -1.0 0.28125q-0.484375 0.265625 -0.90625 0.84375q-0.40625 0.5625 -0.625 1.359375q-0.21875 0.78125 -0.21875 1.1875zm20.78125 -0.359375l1.515625 0.203125q-0.71875 1.984375 -2.09375 3.015625q-1.375 1.015625 -3.09375 1.015625q-2.078125 0 -3.3125 -1.28125q-1.21875 -1.28125 -1.21875 -3.65625q0 -3.09375 1.859375 -5.109375q1.65625 -1.8125 4.125 -1.8125q1.8125 0 2.9375 0.984375q1.140625 0.96875 1.3125 2.625l-1.421875 0.125q-0.234375 -1.234375 -0.9375 -1.84375q-0.703125 -0.625 -1.828125 -0.625q-2.09375 0 -3.390625 1.875q-1.125 1.609375 -1.125 3.8125q0 1.765625 0.859375 2.703125q0.875 0.921875 2.265625 0.921875q1.1875 0 2.140625 -0.765625q0.96875 -0.78125 1.40625 -2.1875zm2.5859375 4.03125l2.40625 -11.453125l4.78125 0q1.234375 0 1.859375 0.28125q0.625 0.28125 1.03125 0.984375q0.40625 0.6875 0.40625 1.546875q0 0.703125 -0.296875 1.4375q-0.28125 0.734375 -0.734375 1.21875q-0.4375 0.46875 -0.890625 0.71875q-0.453125 0.234375 -0.96875 0.359375q-1.09375 0.25 -2.21875 0.25l-2.875 0l-0.96875 4.65625l-1.53125 0zm2.78125 -5.953125l2.515625 0q1.46875 0 2.15625 -0.3125q0.6875 -0.3125 1.09375 -0.953125q0.421875 -0.65625 0.421875 -1.390625q0 -0.5625 -0.21875 -0.90625q-0.21875 -0.359375 -0.625 -0.53125q-0.390625 -0.171875 -1.515625 -0.171875l-2.9375 0l-0.890625 4.265625zm10.375 -5.5l1.53125 0l-1.46875 7.03125q-0.171875 0.875 -0.171875 1.296875q0 0.921875 0.71875 1.484375q0.734375 0.5625 1.828125 0.5625q0.875 0 1.625 -0.390625q0.765625 -0.40625 1.203125 -1.1875q0.4375 -0.78125 0.78125 -2.5l1.328125 -6.296875l1.53125 0l-1.40625 6.71875q-0.359375 1.71875 -0.953125 2.71875q-0.578125 1.0 -1.625 1.609375q-1.03125 0.609375 -2.40625 0.609375q-1.296875 0 -2.25 -0.421875q-0.9375 -0.4375 -1.421875 -1.1875q-0.46875 -0.765625 -0.46875 -1.734375q0 -0.59375 0.328125 -2.0625l1.296875 -6.25zm21.859375 6.4375l-7.59375 3.25l0 -1.40625l6.015625 -2.484375l-6.015625 -2.46875l0 -1.40625l7.59375 3.203125l0 1.3125zm5.8984375 1.25q0 -1.453125 0.421875 -2.953125q0.4375 -1.5 0.96875 -2.390625q0.53125 -0.90625 1.09375 -1.40625q0.578125 -0.515625 1.125 -0.75q0.5625 -0.234375 1.234375 -0.234375q1.3125 0 2.1875 0.984375q0.875 0.96875 0.875 2.8125q0 1.890625 -0.609375 3.75q-0.71875 2.203125 -2.0 3.3125q-0.984375 0.84375 -2.234375 0.84375q-1.296875 0 -2.1875 -1.015625q-0.875 -1.015625 -0.875 -2.953125zm1.359375 0.359375q0 1.0625 0.359375 1.65625q0.46875 0.8125 1.40625 0.8125q0.828125 0 1.5 -0.734375q0.96875 -1.046875 1.453125 -3.0625q0.484375 -2.03125 0.484375 -3.3125q0 -1.234375 -0.46875 -1.78125q-0.46875 -0.546875 -1.25 -0.546875q-0.5625 0 -1.046875 0.296875q-0.484375 0.28125 -0.9375 0.984375q-0.625 1.0 -1.09375 2.96875q-0.40625 1.6875 -0.40625 2.71875zm7.3203125 3.40625l0.34375 -1.609375l1.59375 0l-0.34375 1.609375l-1.59375 0zm4.6015625 -2.625l1.328125 -0.140625q0.140625 0.96875 0.546875 1.375q0.421875 0.40625 0.984375 0.40625q0.8125 0 1.515625 -0.703125q1.015625 -1.03125 1.5 -2.96875q-0.703125 0.53125 -1.265625 0.765625q-0.546875 0.21875 -1.125 0.21875q-1.046875 0 -1.875 -0.703125q-1.09375 -0.90625 -1.09375 -2.625q0 -1.9375 1.265625 -3.3125q1.09375 -1.1875 2.671875 -1.1875q1.421875 0 2.359375 1.046875q0.9375 1.046875 0.9375 2.96875q0 1.875 -0.625 3.6875q-0.75 2.140625 -2.015625 3.15625q-1.03125 0.84375 -2.3125 0.84375q-1.1875 0 -1.953125 -0.734375q-0.75 -0.75 -0.84375 -2.09375zm1.890625 -4.53125q0 1.078125 0.5625 1.71875q0.578125 0.640625 1.375 0.640625q0.578125 0 1.15625 -0.390625q0.578125 -0.40625 0.984375 -1.203125q0.421875 -0.796875 0.421875 -1.625q0 -0.65625 -0.28125 -1.21875q-0.265625 -0.5625 -0.734375 -0.84375q-0.46875 -0.296875 -0.953125 -0.296875q-0.46875 0 -0.921875 0.25q-0.453125 0.25 -0.84375 0.734375q-0.390625 0.484375 -0.578125 1.125q-0.1875 0.625 -0.1875 1.109375z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 144.07611l233.00789 0l0 39.3071l-233.00789 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 144.07611l233.00789 0l0 39.3071l-233.00789 0z" fill-rule="evenodd"/><path fill="#000000" d="m35.062584 164.74861l1.4375 -0.125q0.09375 0.859375 0.46875 1.421875q0.375 0.546875 1.15625 0.890625q0.78125 0.328125 1.75 0.328125q0.875 0 1.53125 -0.25q0.671875 -0.265625 0.984375 -0.703125q0.328125 -0.453125 0.328125 -0.984375q0 -0.546875 -0.3125 -0.9375q-0.3125 -0.40625 -1.03125 -0.6875q-0.453125 -0.171875 -2.03125 -0.546875q-1.578125 -0.390625 -2.21875 -0.71875q-0.8125 -0.4375 -1.21875 -1.0625q-0.40625 -0.640625 -0.40625 -1.4375q0 -0.859375 0.484375 -1.609375q0.5 -0.765625 1.4375 -1.15625q0.953125 -0.390625 2.109375 -0.390625q1.28125 0 2.25 0.421875q0.96875 0.40625 1.484375 1.203125q0.53125 0.796875 0.578125 1.796875l-1.453125 0.109375q-0.125 -1.078125 -0.796875 -1.625q-0.671875 -0.5625 -2.0 -0.5625q-1.375 0 -2.0 0.5q-0.625 0.5 -0.625 1.21875q0 0.609375 0.4375 1.015625q0.4375 0.390625 2.28125 0.8125q1.859375 0.421875 2.546875 0.734375q1.0 0.453125 1.46875 1.171875q0.484375 0.703125 0.484375 1.625q0 0.90625 -0.53125 1.71875q-0.515625 0.8125 -1.5 1.265625q-0.984375 0.453125 -2.203125 0.453125q-1.5625 0 -2.609375 -0.453125q-1.046875 -0.46875 -1.65625 -1.375q-0.59375 -0.90625 -0.625 -2.0625zm16.421875 0.640625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8125 -2.28125 0.8125q-1.703125 0 -2.75 -1.109375q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm2.59375 3.046875l0 -11.453125l1.40625 0l0 4.109375q0.984375 -1.140625 2.484375 -1.140625q0.921875 0 1.59375 0.359375q0.6875 0.359375 0.96875 1.0q0.296875 0.640625 0.296875 1.859375l0 5.265625l-1.40625 0l0 -5.265625q0 -1.046875 -0.453125 -1.53125q-0.453125 -0.484375 -1.296875 -0.484375q-0.625 0 -1.171875 0.328125q-0.546875 0.328125 -0.78125 0.890625q-0.234375 0.546875 -0.234375 1.515625l0 4.546875l-1.40625 0zm14.5703125 -2.671875l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.703125 -2.359375 0.703125q-1.828125 0 -2.890625 -1.125q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875zm13.2109375 4.953125l0 -1.046875q-0.78125 1.234375 -2.3125 1.234375q-1.0 0 -1.828125 -0.546875q-0.828125 -0.546875 -1.296875 -1.53125q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453125l-1.3125 0zm-4.4375 -4.140625q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm13.3984375 4.140625l0 -1.21875q-0.96875 1.40625 -2.640625 1.40625q-0.734375 0 -1.375 -0.28125q-0.625 -0.28125 -0.9375 -0.703125q-0.3125 -0.4375 -0.4375 -1.046875q-0.078125 -0.421875 -0.078125 -1.3125l0 -5.140625l1.40625 0l0 4.59375q0 1.109375 0.078125 1.484375q0.140625 0.5625 0.5625 0.875q0.4375 0.3125 1.0625 0.3125q0.640625 0 1.1875 -0.3125q0.5625 -0.328125 0.78125 -0.890625q0.234375 -0.5625 0.234375 -1.625l0 -4.4375l1.40625 0l0 8.296875l-1.25 0zm3.4296875 0l0 -11.453125l1.40625 0l0 11.453125l-1.40625 0zm9.2578125 -2.671875l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.703125 -2.359375 0.703125q-1.828125 0 -2.890625 -1.125q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875z" fill-rule="nonzero"/><path fill="#000000" d="m136.96883 165.60799l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm9.0078125 4.875l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm12.0 -2.828125l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm4.796875 3.203125l0.09375 -1.328125q0.4375 0.125 0.84375 0.125q0.4375 0 0.703125 -0.1875q0.34375 -0.265625 0.75 -0.96875l0.453125 -0.8125l-1.390625 -8.328125l1.390625 0l0.625 4.1875q0.1875 1.25 0.328125 2.484375l3.703125 -6.671875l1.484375 0l-5.296875 9.40625q-0.765625 1.375 -1.359375 1.8125q-0.59375 0.453125 -1.359375 0.453125q-0.5 0 -0.96875 -0.171875zm12.9765625 -3.203125l1.734375 -8.296875l1.40625 0l-0.28125 1.359375q0.78125 -0.875 1.40625 -1.203125q0.625 -0.34375 1.34375 -0.34375q0.78125 0 1.296875 0.40625q0.515625 0.40625 0.6875 1.140625q0.625 -0.78125 1.328125 -1.15625q0.703125 -0.390625 1.46875 -0.390625q1.046875 0 1.5625 0.5q0.515625 0.484375 0.515625 1.375q0 0.375 -0.171875 1.265625l-1.125 5.34375l-1.40625 0l1.140625 -5.484375q0.140625 -0.671875 0.140625 -0.96875q0 -0.40625 -0.265625 -0.640625q-0.25 -0.234375 -0.71875 -0.234375q-0.625 0 -1.28125 0.390625q-0.65625 0.375 -1.03125 1.0q-0.359375 0.625 -0.625 1.90625l-0.84375 4.03125l-1.421875 0l1.171875 -5.609375q0.125 -0.5625 0.125 -0.8125q0 -0.40625 -0.25 -0.65625q-0.25 -0.25 -0.65625 -0.25q-0.609375 0 -1.265625 0.390625q-0.65625 0.375 -1.078125 1.0625q-0.40625 0.6875 -0.671875 1.953125l-0.828125 3.921875l-1.40625 0zm15.34375 -9.859375l0.328125 -1.59375l1.40625 0l-0.328125 1.59375l-1.40625 0zm-2.0625 9.859375l1.734375 -8.296875l1.40625 0l-1.734375 8.296875l-1.40625 0zm3.6015625 0l1.734375 -8.296875l1.28125 0l-0.296875 1.4375q0.828125 -0.84375 1.546875 -1.234375q0.734375 -0.390625 1.5 -0.390625q1.0 0 1.578125 0.546875q0.578125 0.546875 0.578125 1.453125q0 0.46875 -0.203125 1.453125l-1.0625 5.03125l-1.40625 0l1.09375 -5.265625q0.171875 -0.765625 0.171875 -1.125q0 -0.421875 -0.296875 -0.671875q-0.28125 -0.265625 -0.8125 -0.265625q-1.09375 0 -1.9375 0.78125q-0.84375 0.78125 -1.25 2.6875l-0.796875 3.859375l-1.421875 0zm14.5703125 -1.5q-1.5 1.6875 -3.0625 1.6875q-0.953125 0 -1.546875 -0.546875q-0.59375 -0.5625 -0.59375 -1.359375q0 -0.515625 0.265625 -1.796875l1.0 -4.78125l1.421875 0l-1.109375 5.296875q-0.140625 0.671875 -0.140625 1.03125q0 0.46875 0.28125 0.734375q0.28125 0.265625 0.84375 0.265625q0.59375 0 1.15625 -0.28125q0.5625 -0.296875 0.96875 -0.78125q0.421875 -0.5 0.671875 -1.171875q0.171875 -0.4375 0.40625 -1.515625l0.75 -3.578125l1.40625 0l-1.734375 8.296875l-1.296875 0l0.3125 -1.5zm6.5390625 0.34375l-0.234375 1.171875q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.3125 -0.375 -0.84375q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm7.2265625 -1.671875l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 192.92389l233.00789 0l0 112.12598l-233.00789 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 192.92389l233.00789 0l0 112.12598l-233.00789 0z" fill-rule="evenodd"/><path fill="#000000" d="m34.312584 217.28389l4.40625 -11.453125l1.640625 0l4.6875 11.453125l-1.734375 0l-1.328125 -3.46875l-4.796875 0l-1.25 3.46875l-1.625 0zm3.3125 -4.703125l3.890625 0l-1.203125 -3.171875q-0.546875 -1.453125 -0.8125 -2.375q-0.21875 1.09375 -0.609375 2.1875l-1.265625 3.359375zm13.859375 1.65625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8125 -2.28125 0.8125q-1.703125 0 -2.75 -1.109375q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm5.65625 1.78125l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm8.3359375 -2.484375l1.390625 -0.21875q0.109375 0.84375 0.640625 1.296875q0.546875 0.4375 1.5 0.4375q0.96875 0 1.4375 -0.390625q0.46875 -0.40625 0.46875 -0.9375q0 -0.46875 -0.40625 -0.75q-0.296875 -0.1875 -1.4375 -0.46875q-1.546875 -0.390625 -2.15625 -0.671875q-0.59375 -0.296875 -0.90625 -0.796875q-0.296875 -0.5 -0.296875 -1.109375q0 -0.5625 0.25 -1.03125q0.25 -0.46875 0.6875 -0.78125q0.328125 -0.25 0.890625 -0.40625q0.578125 -0.171875 1.21875 -0.171875q0.984375 0 1.71875 0.28125q0.734375 0.28125 1.078125 0.765625q0.359375 0.46875 0.5 1.28125l-1.375 0.1875q-0.09375 -0.640625 -0.546875 -1.0q-0.453125 -0.359375 -1.265625 -0.359375q-0.96875 0 -1.390625 0.328125q-0.40625 0.3125 -0.40625 0.734375q0 0.28125 0.171875 0.5q0.171875 0.21875 0.53125 0.375q0.21875 0.078125 1.25 0.359375q1.484375 0.390625 2.078125 0.65625q0.59375 0.25 0.921875 0.734375q0.34375 0.484375 0.34375 1.203125q0 0.703125 -0.421875 1.328125q-0.40625 0.609375 -1.1875 0.953125q-0.765625 0.34375 -1.734375 0.34375q-1.625 0 -2.46875 -0.671875q-0.84375 -0.671875 -1.078125 -2.0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m45.49346 236.11156l195.77954 0l0 53.48033l-195.77954 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m45.49346 236.11156l195.77954 0l0 53.48033l-195.77954 0z" fill-rule="evenodd"/><path fill="#000000" d="m55.446587 256.63156l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m61.55596 267.61594l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm6.3867188 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm9.949219 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34374237 0 0.5468674 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.3749924 -6.234375l1.140625 0l1.2968674 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.8593674 0.25q-0.296875 0 -0.671875 -0.140625zm5.4531174 -2.390625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm7.0996094 -2.28125l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm1.546875 -0.828125q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125z" fill-rule="nonzero"/><path fill="#000000" d="m59.08721 277.63156l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m103.84112 273.76828l58.04882 0l0 13.798828l-58.04882 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m104.34112 282.2253l0.3125 -1.40625q0.421875 -0.015625 0.671875 -0.125q0.25 -0.109375 0.453125 -0.375q0.21875 -0.265625 0.34375 -0.609375q0.140625 -0.34375 0.296875 -1.09375q0.21875 -1.0625 0.4375 -1.515625q0.234375 -0.453125 0.546875 -0.703125q0.328125 -0.25 0.890625 -0.40625q0.359375 -0.09375 1.125 -0.09375l0.3125 0l-0.3125 1.390625q-0.65625 0 -0.875 0.09375q-0.21875 0.078125 -0.328125 0.265625q-0.078125 0.109375 -0.265625 0.859375q-0.328125 1.296875 -0.4375 1.578125q-0.203125 0.515625 -0.5 0.828125q-0.28125 0.3125 -0.796875 0.609375q0.34375 0.234375 0.5 0.5625q0.171875 0.3125 0.171875 0.84375q0 0.203125 -0.078125 0.625q-0.1875 1.15625 -0.25 1.359375q-0.046875 0.21875 -0.046875 0.359375q0 0.15625 0.078125 0.265625q0.09375 0.109375 0.25 0.15625q0.171875 0.0625 0.75 0.0625l-0.3125 1.40625l-0.3125 0q-0.796875 0 -1.203125 -0.140625q-0.390625 -0.125 -0.609375 -0.4375q-0.21875 -0.296875 -0.21875 -0.78125q0 -0.390625 0.203125 -1.328125q0.203125 -0.9375 0.203125 -1.25q0 -0.5 -0.21875 -0.734375q-0.21875 -0.234375 -0.78125 -0.265625zm4.669922 0l0.3125 -1.40625q0.421875 -0.015625 0.671875 -0.125q0.25 -0.109375 0.453125 -0.375q0.21875 -0.265625 0.34375 -0.609375q0.140625 -0.34375 0.296875 -1.09375q0.21875 -1.0625 0.4375 -1.515625q0.234375 -0.453125 0.546875 -0.703125q0.328125 -0.25 0.890625 -0.40625q0.359375 -0.09375 1.125 -0.09375l0.3125 0l-0.3125 1.390625q-0.65625 0 -0.875 0.09375q-0.21875 0.078125 -0.328125 0.265625q-0.078125 0.109375 -0.265625 0.859375q-0.328125 1.296875 -0.4375 1.578125q-0.203125 0.515625 -0.5 0.828125q-0.28125 0.3125 -0.796875 0.609375q0.34375 0.234375 0.5 0.5625q0.171875 0.3125 0.171875 0.84375q0 0.203125 -0.078125 0.625q-0.1875 1.15625 -0.25 1.359375q-0.046875 0.21875 -0.046875 0.359375q0 0.15625 0.078125 0.265625q0.09375 0.109375 0.25 0.15625q0.171875 0.0625 0.75 0.0625l-0.3125 1.40625l-0.3125 0q-0.796875 0 -1.203125 -0.140625q-0.390625 -0.125 -0.609375 -0.4375q-0.21875 -0.296875 -0.21875 -0.78125q0 -0.390625 0.203125 -1.328125q0.203125 -0.9375 0.203125 -1.25q0 -0.5 -0.21875 -0.734375q-0.21875 -0.234375 -0.78125 -0.265625zm4.435547 0.671875l1.625 -0.265625q0.21875 0.515625 0.53125 0.734375q0.328125 0.203125 0.890625 0.203125q0.578125 0 0.921875 -0.25q0.234375 -0.171875 0.234375 -0.421875q0 -0.171875 -0.125 -0.3125q-0.125 -0.125 -0.6875 -0.3125q-1.53125 -0.5 -1.890625 -0.796875q-0.5625 -0.453125 -0.5625 -1.203125q0 -0.734375 0.546875 -1.265625q0.765625 -0.75 2.28125 -0.75q1.203125 0 1.8125 0.453125q0.609375 0.4375 0.78125 1.1875l-1.5625 0.265625q-0.109375 -0.34375 -0.390625 -0.515625q-0.375 -0.21875 -0.90625 -0.21875q-0.53125 0 -0.765625 0.171875q-0.21875 0.171875 -0.21875 0.40625q0 0.234375 0.234375 0.375q0.140625 0.09375 0.9375 0.328125q1.234375 0.359375 1.65625 0.703125q0.578125 0.5 0.578125 1.171875q0 0.890625 -0.75 1.546875q-0.734375 0.640625 -2.09375 0.640625q-1.34375 0 -2.078125 -0.484375q-0.734375 -0.5 -1.0 -1.390625zm12.955078 -0.859375l-4.21875 0q-0.015625 0.109375 -0.015625 0.15625q0 0.625 0.359375 1.0q0.359375 0.375 0.859375 0.375q0.84375 0 1.3125 -0.859375l1.5 0.25q-0.4375 0.90625 -1.171875 1.359375q-0.734375 0.453125 -1.65625 0.453125q-1.25 0 -2.03125 -0.78125q-0.78125 -0.796875 -0.78125 -2.109375q0 -1.28125 0.703125 -2.265625q0.96875 -1.359375 2.765625 -1.359375q1.140625 0 1.8125 0.71875q0.671875 0.703125 0.671875 1.96875q0 0.609375 -0.109375 1.09375zm-1.421875 -1.015625q0 -0.125 0 -0.171875q0 -0.703125 -0.3125 -1.046875q-0.3125 -0.34375 -0.828125 -0.34375q-0.515625 0 -0.9375 0.390625q-0.40625 0.390625 -0.5625 1.171875l2.640625 0zm3.2363205 -2.609375l1.578125 0l-0.265625 1.203125q0.890625 -1.359375 1.90625 -1.359375q0.375 0 0.78125 0.1875l-0.640625 1.375q-0.234375 -0.078125 -0.484375 -0.078125q-0.4375 0 -0.890625 0.328125q-0.4375 0.328125 -0.703125 0.875q-0.25 0.546875 -0.484375 1.734375l-0.421875 1.953125l-1.6718674 0l1.2968674 -6.21875zm6.576172 6.21875l-1.453125 0l-1.25 -6.21875l1.65625 0l0.4375 2.703125q0.1875 1.109375 0.21875 1.46875q0.046875 -0.09375 0.40625 -0.75q0.359375 -0.671875 0.453125 -0.796875l1.546875 -2.625l1.8125 0l-3.828125 6.21875zm9.626953 -2.59375l-4.21875 0q-0.015625 0.109375 -0.015625 0.15625q0 0.625 0.359375 1.0q0.359375 0.375 0.859375 0.375q0.84375 0 1.3125 -0.859375l1.5 0.25q-0.4375 0.90625 -1.171875 1.359375q-0.734375 0.453125 -1.65625 0.453125q-1.25 0 -2.03125 -0.78125q-0.78125 -0.796875 -0.78125 -2.109375q0 -1.28125 0.703125 -2.265625q0.96875 -1.359375 2.765625 -1.359375q1.140625 0 1.8125 0.71875q0.671875 0.703125 0.671875 1.96875q0 0.609375 -0.109375 1.09375zm-1.421875 -1.015625q0 -0.125 0 -0.171875q0 -0.703125 -0.3125 -1.046875q-0.3125 -0.34375 -0.828125 -0.34375q-0.515625 0 -0.9375 0.390625q-0.40625 0.390625 -0.5625 1.171875l2.640625 0zm3.2363281 -2.609375l1.578125 0l-0.265625 1.203125q0.890625 -1.359375 1.90625 -1.359375q0.375 0 0.78125 0.1875l-0.640625 1.375q-0.234375 -0.078125 -0.484375 -0.078125q-0.4375 0 -0.890625 0.328125q-0.4375 0.328125 -0.703125 0.875q-0.25 0.546875 -0.484375 1.734375l-0.421875 1.953125l-1.671875 0l1.296875 -6.21875zm7.044922 3.8125q-0.53125 0.03125 -0.828125 0.21875q-0.296875 0.1875 -0.515625 0.609375q-0.21875 0.40625 -0.4375 1.4375q-0.203125 1.015625 -0.4375 1.453125q-0.21875 0.453125 -0.546875 0.703125q-0.3125 0.25 -0.875 0.40625q-0.375 0.109375 -1.125 0.109375l-0.3125 0l0.296875 -1.40625q0.640625 0 0.859375 -0.09375q0.234375 -0.09375 0.359375 -0.265625q0.078125 -0.125 0.25 -0.84375q0.328125 -1.296875 0.421875 -1.546875q0.21875 -0.515625 0.53125 -0.875q0.3125 -0.359375 0.796875 -0.609375q-0.390625 -0.28125 -0.546875 -0.578125q-0.140625 -0.296875 -0.140625 -0.828125q0 -0.203125 0.078125 -0.625q0.1875 -1.125 0.234375 -1.34375q0.0625 -0.234375 0.0625 -0.390625q0 -0.15625 -0.078125 -0.25q-0.078125 -0.109375 -0.25 -0.15625q-0.15625 -0.0625 -0.75 -0.0625l0.3125 -1.390625l0.3125 0q0.796875 0 1.1875 0.140625q0.40625 0.125 0.625 0.421875q0.21875 0.296875 0.21875 0.78125q0 0.390625 -0.203125 1.328125q-0.203125 0.9375 -0.203125 1.25q0 0.5 0.21875 0.734375q0.21875 0.234375 0.78125 0.265625l-0.296875 1.40625zm4.669922 0q-0.53125 0.03125 -0.828125 0.21875q-0.296875 0.1875 -0.515625 0.609375q-0.21875 0.40625 -0.4375 1.4375q-0.203125 1.015625 -0.4375 1.453125q-0.21875 0.453125 -0.546875 0.703125q-0.3125 0.25 -0.875 0.40625q-0.375 0.109375 -1.125 0.109375l-0.3125 0l0.296875 -1.40625q0.640625 0 0.859375 -0.09375q0.234375 -0.09375 0.359375 -0.265625q0.078125 -0.125 0.25 -0.84375q0.328125 -1.296875 0.421875 -1.546875q0.21875 -0.515625 0.53125 -0.875q0.3125 -0.359375 0.796875 -0.609375q-0.390625 -0.28125 -0.546875 -0.578125q-0.140625 -0.296875 -0.140625 -0.828125q0 -0.203125 0.078125 -0.625q0.1875 -1.125 0.234375 -1.34375q0.0625 -0.234375 0.0625 -0.390625q0 -0.15625 -0.078125 -0.25q-0.078125 -0.109375 -0.25 -0.15625q-0.15625 -0.0625 -0.75 -0.0625l0.3125 -1.390625l0.3125 0q0.796875 0 1.1875 0.140625q0.40625 0.125 0.625 0.421875q0.21875 0.296875 0.21875 0.78125q0 0.390625 -0.203125 1.328125q-0.203125 0.9375 -0.203125 1.25q0 0.5 0.21875 0.734375q0.21875 0.234375 0.78125 0.265625l-0.296875 1.40625z" fill-rule="nonzero"/><path fill="#000000" d="m163.79619 277.24094l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m103.84112 285.41156l58.04882 0l0 1.0799866l-58.04882 0l0 -1.0799866z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m637.41473 52.889763l139.37012 0l0 56.598427l-139.37012 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m637.41473 52.889763l139.37012 0l0 56.598427l-139.37012 0z" fill-rule="evenodd"/><path fill="#000000" d="m647.36786 73.40977l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m653.47723 84.39414l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm6.3867188 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm9.949219 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm5.453125 -2.390625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm7.0996094 -2.28125l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm1.546875 -0.828125q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125z" fill-rule="nonzero"/><path fill="#000000" d="m651.0085 94.40977l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m695.7624 90.546486l28.02539 0l0 13.798828l-28.02539 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m697.68427 101.40977l-2.28125 0l3.78125 -4.34375l-2.125 -4.25l1.84375 0l0.84375 1.609375q0.03125 0.09375 0.5625 1.1875q0.046875 0.0625 0.078125 0.171875q0.71875 -0.875 1.203125 -1.4375l1.359375 -1.53125l2.21875 0l-3.9375 4.53125l2.125 4.0625l-2.0 0l-0.640625 -1.296875q-0.5 -1.03125 -0.671875 -1.46875q-0.21875 0.34375 -1.171875 1.421875l-1.1875 1.34375zm7.5039062 -4.9375l0.3125 -1.5q2.1875 -0.953125 3.375 -2.203125l1.015625 0l-1.8125 8.640625l-1.6875 0l1.25 -5.953125q-0.53125 0.34375 -1.21875 0.625q-0.6875 0.28125 -1.234375 0.390625zm8.423828 -0.96875l-1.640625 -0.25q0.1875 -1.203125 0.921875 -1.828125q0.734375 -0.640625 1.828125 -0.640625q1.203125 0 1.875 0.65625q0.6875 0.640625 0.6875 1.640625q0 0.515625 -0.21875 1.03125q-0.203125 0.515625 -0.671875 1.078125q-0.34375 0.390625 -1.140625 1.125q-0.78125 0.71875 -1.046875 1.0q-0.25 0.265625 -0.484375 0.5625l2.984375 0l-0.3125 1.53125l-5.21875 0q0.078125 -0.640625 0.359375 -1.203125q0.296875 -0.578125 0.71875 -1.0625q0.4375 -0.5 1.59375 -1.59375q0.875 -0.828125 1.09375 -1.078125q0.421875 -0.453125 0.5625 -0.78125q0.15625 -0.34375 0.15625 -0.609375q0 -0.4375 -0.25 -0.703125q-0.25 -0.28125 -0.65625 -0.28125q-0.390625 0 -0.6875 0.3125q-0.296875 0.296875 -0.453125 1.09375zm4.111328 3.65625l1.609375 -0.1875q0.109375 0.6875 0.359375 0.953125q0.265625 0.265625 0.703125 0.265625q0.5625 0 0.9375 -0.390625q0.390625 -0.390625 0.390625 -1.0q0 -0.515625 -0.3125 -0.828125q-0.296875 -0.3125 -0.8125 -0.3125q-0.125 0 -0.265625 0.03125l0.28125 -1.40625q0.09375 0.015625 0.171875 0.015625q0.671875 0 1.015625 -0.34375q0.359375 -0.34375 0.359375 -0.921875q0 -0.421875 -0.234375 -0.65625q-0.234375 -0.25 -0.625 -0.25q-0.359375 0 -0.65625 0.265625q-0.28125 0.265625 -0.453125 0.921875l-1.53125 -0.3125q0.296875 -0.953125 0.8125 -1.453125q0.796875 -0.765625 1.953125 -0.765625q1.171875 0 1.78125 0.65625q0.625 0.65625 0.625 1.578125q0 0.671875 -0.390625 1.21875q-0.390625 0.53125 -1.078125 0.78125q0.546875 0.28125 0.796875 0.75q0.265625 0.453125 0.265625 0.953125q0 0.953125 -0.671875 1.75q-0.921875 1.078125 -2.375 1.078125q-1.09375 0 -1.796875 -0.625q-0.703125 -0.625 -0.859375 -1.765625z" fill-rule="nonzero"/><path fill="#000000" d="m729.028 94.01914l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m695.7624 102.189766l28.02539 0l0 1.0800018l-28.02539 0l0 -1.0800018z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m258.3517 113.8189l81.543304 -32.62992" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m258.3517 113.8189l75.97275 -30.40084" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m334.93808 84.95158l3.5996704 -3.2194824l-4.826935 0.15245819z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m258.3517 113.8189l81.543304 72.37795" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m258.3517 113.8189l77.05597 68.395" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m334.31122 183.4492l4.490448 1.7771912l-2.2975159 -4.2478027z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m352.57217 6.0367455l140.56693 0l0 33.51181l-140.56693 0z" fill-rule="evenodd"/><path fill="#000000" d="m361.54092 32.956745l5.125 -13.359377l1.90625 0l5.46875 13.359377l-2.015625 0l-1.546875 -4.046877l-5.59375 0l-1.46875 4.046877l-1.875 0zm3.859375 -5.484377l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484377l0 -13.359377l1.640625 0l0 13.359377l-1.640625 0zm10.816711 -3.109377l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.312502q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.2968769q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125702 5.765627l0 -9.671877l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.062502l-1.625 0zm9.806427 -1.4687519l0.234375 1.4531269q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.4687519 -0.203125 -1.9375019l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm7.2884827 1.4687519l0 -13.359377l1.765625 0l0 13.359377l-1.765625 0zm4.683319 0l0 -9.671877l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953127l-1.640625 0l0 -5.890627q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281252l-1.640625 0zm9.719452 -2.890627l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.7187519 -1.375 1.1250019q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.7812519 -1.25 -2.328127zm13.5625 1.421875l0.234375 1.4531269q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.4687519 -0.203125 -1.9375019l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm7.917694 0.28125q-0.921875 0.7656269 -1.765625 1.0937519q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.7812519 -0.859375 -1.9843769q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.5937519 0.40625 1.1562519l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875019zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.203827 4.859377l0 -9.671877l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953127l-1.640625 0l0 -5.890627q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281252l-1.640625 0zm16.688232 -3.546877l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609377q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.2968769q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm9.640625 0.4375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.312502q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.2968769q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625z" fill-rule="nonzero"/><path fill="#ffffff" d="m339.90027 52.889763l139.37009 0l0 56.598427l-139.37009 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m339.90027 52.889763l139.37009 0l0 56.598427l-139.37009 0z" fill-rule="evenodd"/><path fill="#000000" d="m369.50748 82.893974l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.291229 0.921875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.0056458 0l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm10.421875 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.1667175 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm8.062012 0l4.0625 -5.46875l-3.578125 -5.015625l1.65625 0l1.890625 2.6875q0.59375 0.828125 0.84375 1.28125q0.359375 -0.5625 0.84375 -1.1875l2.109375 -2.78125l1.5 0l-3.6875 4.9375l3.984375 5.546875l-1.71875 0l-2.640625 -3.75q-0.21875 -0.3125 -0.46875 -0.6875q-0.34375 0.5625 -0.5 0.78125l-2.625 3.65625l-1.671875 0zm15.166229 0l-1.28125 0l0 -8.203125q-0.46875 0.4375 -1.21875 0.890625q-0.75 0.4375 -1.359375 0.65625l0 -1.25q1.078125 -0.5 1.890625 -1.21875q0.8125 -0.734375 1.140625 -1.40625l0.828125 0l0 10.53125zm10.072968 -1.234375l0 1.234375l-6.9375 0q-0.015625 -0.46875 0.15625 -0.890625q0.265625 -0.71875 0.84375 -1.40625q0.59375 -0.6875 1.6875 -1.578125q1.71875 -1.40625 2.3125 -2.21875q0.609375 -0.828125 0.609375 -1.5625q0 -0.765625 -0.5625 -1.28125q-0.546875 -0.53125 -1.421875 -0.53125q-0.921875 0 -1.484375 0.5625q-0.5625 0.5625 -0.5625 1.546875l-1.328125 -0.140625q0.140625 -1.484375 1.015625 -2.25q0.890625 -0.78125 2.390625 -0.78125q1.515625 0 2.390625 0.84375q0.875 0.828125 0.875 2.0625q0 0.640625 -0.265625 1.25q-0.25 0.59375 -0.84375 1.265625q-0.59375 0.671875 -1.984375 1.859375q-1.15625 0.96875 -1.484375 1.3125q-0.328125 0.34375 -0.546875 0.703125l5.140625 0zm1.385498 -1.53125l1.296875 -0.171875q0.21875 1.09375 0.75 1.578125q0.53125 0.484375 1.296875 0.484375q0.90625 0 1.53125 -0.625q0.640625 -0.640625 0.640625 -1.5625q0 -0.890625 -0.59375 -1.46875q-0.578125 -0.578125 -1.46875 -0.578125q-0.359375 0 -0.90625 0.140625l0.140625 -1.125q0.125 0.015625 0.203125 0.015625q0.828125 0 1.484375 -0.421875q0.65625 -0.4375 0.65625 -1.34375q0 -0.703125 -0.484375 -1.15625q-0.46875 -0.46875 -1.234375 -0.46875q-0.75 0 -1.25 0.46875q-0.5 0.46875 -0.640625 1.421875l-1.28125 -0.234375q0.234375 -1.296875 1.0625 -2.0q0.84375 -0.71875 2.09375 -0.71875q0.859375 0 1.578125 0.375q0.71875 0.359375 1.09375 1.0q0.390625 0.640625 0.390625 1.34375q0 0.6875 -0.375 1.25q-0.359375 0.546875 -1.0625 0.875q0.921875 0.21875 1.4375 0.90625q0.515625 0.671875 0.515625 1.6875q0 1.375 -1.0 2.328125q-1.0 0.953125 -2.53125 0.953125q-1.390625 0 -2.296875 -0.8125q-0.90625 -0.828125 -1.046875 -2.140625z" fill-rule="nonzero"/><path fill="#ffffff" d="m339.89764 157.89842l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m339.89764 157.89842l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path fill="#000000" d="m370.23578 187.90263l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.291229 0.921875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.1667175 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.0056458 0l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm10.421875 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm11.828278 0l0 -4.4375l-4.046875 -6.046875l1.6875 0l2.0625 3.15625q0.578125 0.890625 1.0625 1.78125q0.484375 -0.828125 1.15625 -1.859375l2.03125 -3.078125l1.609375 0l-4.1875 6.046875l0 4.4375l-1.375 0zm10.416229 0l0 -2.515625l-4.546875 0l0 -1.171875l4.78125 -6.796875l1.0625 0l0 6.796875l1.40625 0l0 1.171875l-1.40625 0l0 2.515625l-1.296875 0zm0 -3.6875l0 -4.734375l-3.28125 4.734375l3.28125 0zm4.0260925 0.9375l1.34375 -0.109375q0.15625 0.984375 0.703125 1.484375q0.546875 0.5 1.328125 0.5q0.921875 0 1.5625 -0.703125q0.65625 -0.703125 0.65625 -1.859375q0 -1.109375 -0.625 -1.734375q-0.625 -0.640625 -1.625 -0.640625q-0.625 0 -1.125 0.28125q-0.5 0.28125 -0.78125 0.734375l-1.203125 -0.15625l1.015625 -5.390625l5.21875 0l0 1.21875l-4.1875 0l-0.578125 2.828125q0.953125 -0.65625 1.984375 -0.65625q1.375 0 2.3125 0.953125q0.953125 0.953125 0.953125 2.4375q0 1.4375 -0.828125 2.46875q-1.015625 1.265625 -2.75 1.265625q-1.4375 0 -2.34375 -0.796875q-0.90625 -0.796875 -1.03125 -2.125zm14.838623 -5.171875l-1.28125 0.09375q-0.171875 -0.75 -0.484375 -1.09375q-0.53125 -0.546875 -1.296875 -0.546875q-0.609375 0 -1.078125 0.34375q-0.609375 0.4375 -0.96875 1.296875q-0.34375 0.84375 -0.359375 2.421875q0.46875 -0.71875 1.140625 -1.0625q0.671875 -0.34375 1.40625 -0.34375q1.296875 0 2.203125 0.953125q0.90625 0.953125 0.90625 2.453125q0 0.984375 -0.4375 1.84375q-0.421875 0.84375 -1.171875 1.296875q-0.734375 0.4375 -1.6875 0.4375q-1.609375 0 -2.625 -1.171875q-1.015625 -1.1875 -1.015625 -3.90625q0 -3.046875 1.125 -4.421875q0.984375 -1.203125 2.640625 -1.203125q1.234375 0 2.03125 0.703125q0.796875 0.6875 0.953125 1.90625zm-5.265625 4.515625q0 0.671875 0.28125 1.28125q0.28125 0.609375 0.78125 0.9375q0.515625 0.3125 1.078125 0.3125q0.8125 0 1.390625 -0.65625q0.59375 -0.671875 0.59375 -1.796875q0 -1.09375 -0.578125 -1.71875q-0.578125 -0.625 -1.453125 -0.625q-0.875 0 -1.484375 0.625q-0.609375 0.625 -0.609375 1.640625z" fill-rule="nonzero"/><path fill="#ffffff" d="m339.90027 261.96118l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m339.90027 261.96118l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path fill="#000000" d="m370.5174 291.9654l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.291229 0.921875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.0056458 0l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm10.421875 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.1667175 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm8.296387 0l0 -1.28125l5.375 -6.734375q0.5625 -0.703125 1.078125 -1.234375l-5.84375 0l0 -1.234375l7.515625 0l0 1.234375l-5.890625 7.28125l-0.640625 0.734375l6.703125 0l0 1.234375l-8.296875 0zm9.343231 -9.125l0 -1.234375l6.796875 0l0 1.0q-1.0 1.078125 -1.984375 2.84375q-0.984375 1.765625 -1.515625 3.625q-0.390625 1.328125 -0.5 2.890625l-1.328125 0q0.03125 -1.234375 0.484375 -2.984375q0.46875 -1.765625 1.34375 -3.390625q0.875 -1.625 1.84375 -2.75l-5.140625 0zm10.057373 3.4375q-0.796875 -0.296875 -1.1875 -0.84375q-0.390625 -0.546875 -0.390625 -1.296875q0 -1.140625 0.8125 -1.921875q0.828125 -0.78125 2.203125 -0.78125q1.375 0 2.203125 0.796875q0.84375 0.796875 0.84375 1.9375q0 0.734375 -0.390625 1.28125q-0.375 0.53125 -1.15625 0.828125q0.96875 0.3125 1.46875 1.015625q0.5 0.703125 0.5 1.671875q0 1.34375 -0.953125 2.265625q-0.9375 0.90625 -2.5 0.90625q-1.546875 0 -2.5 -0.90625q-0.953125 -0.921875 -0.953125 -2.296875q0 -1.03125 0.515625 -1.71875q0.515625 -0.6875 1.484375 -0.9375zm-0.265625 -2.1875q0 0.75 0.484375 1.21875q0.484375 0.46875 1.25 0.46875q0.734375 0 1.203125 -0.46875q0.484375 -0.46875 0.484375 -1.140625q0 -0.71875 -0.5 -1.1875q-0.484375 -0.484375 -1.203125 -0.484375q-0.734375 0 -1.234375 0.46875q-0.484375 0.46875 -0.484375 1.125zm-0.40625 4.84375q0 0.5625 0.25 1.078125q0.265625 0.5 0.78125 0.796875q0.515625 0.28125 1.109375 0.28125q0.921875 0 1.515625 -0.59375q0.609375 -0.59375 0.609375 -1.515625q0 -0.9375 -0.625 -1.53125q-0.609375 -0.609375 -1.546875 -0.609375q-0.90625 0 -1.5 0.609375q-0.59375 0.59375 -0.59375 1.484375zm7.0260925 0.609375l1.25 -0.125q0.15625 0.875 0.59375 1.28125q0.4375 0.390625 1.140625 0.390625q0.59375 0 1.03125 -0.265625q0.453125 -0.28125 0.734375 -0.734375q0.296875 -0.453125 0.484375 -1.21875q0.1875 -0.78125 0.1875 -1.59375q0 -0.078125 0 -0.25q-0.390625 0.609375 -1.0625 1.0q-0.65625 0.375 -1.4375 0.375q-1.3125 0 -2.21875 -0.9375q-0.890625 -0.953125 -0.890625 -2.484375q0 -1.609375 0.9375 -2.578125q0.9375 -0.96875 2.359375 -0.96875q1.03125 0 1.875 0.546875q0.84375 0.546875 1.28125 1.578125q0.4375 1.015625 0.4375 2.953125q0 2.0 -0.4375 3.203125q-0.421875 1.1875 -1.296875 1.8125q-0.859375 0.609375 -2.015625 0.609375q-1.234375 0 -2.015625 -0.671875q-0.78125 -0.6875 -0.9375 -1.921875zm5.28125 -4.640625q0 -1.109375 -0.59375 -1.75q-0.59375 -0.65625 -1.421875 -0.65625q-0.859375 0 -1.5 0.703125q-0.625 0.703125 -0.625 1.8125q0 1.0 0.59375 1.640625q0.609375 0.625 1.5 0.625q0.890625 0 1.46875 -0.625q0.578125 -0.640625 0.578125 -1.75z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m258.3517 113.8189l81.543304 176.44095" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m258.3517 113.8189l79.026184 170.99445" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m335.87854 285.50632l3.4031677 3.4264832l-0.40444946 -4.812378z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m661.33215 6.0367227l140.5669 0l0 33.51181l-140.5669 0z" fill-rule="evenodd"/><path fill="#000000" d="m670.3009 32.956722l5.125 -13.359377l1.90625 0l5.46875 13.359377l-2.015625 0l-1.546875 -4.046877l-5.59375 0l-1.46875 4.046877l-1.875 0zm3.859375 -5.484377l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm16.162292 1.9375l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609377q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.2968769q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm6.59375 2.078125l0.234375 1.4531269q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.4687519 -0.203125 -1.9375019l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6052246 -10.0l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.468752l0 -9.671877l1.640625 0l0 9.671877l-1.640625 0zm3.5354004 -4.843752q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.6562519q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.2968769q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.843752l0 -9.671877l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953127l-1.640625 0l0 -5.890627q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281252l-1.640625 0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m637.4121 157.89842l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m637.4121 157.89842l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path fill="#000000" d="m647.36523 178.41843l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m653.4746 189.4028l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm6.3867188 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm9.949219 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm5.453125 -2.390625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm7.0996094 -2.28125l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm1.546875 -0.828125q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125z" fill-rule="nonzero"/><path fill="#000000" d="m651.00586 199.41843l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m695.75977 195.55515l28.02539 0l0 13.798828l-28.02539 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m700.57227 206.41843l-1.765625 0l0.703125 -3.34375l-2.375 -5.25l1.890625 0l1.0625 2.421875q0.375 0.875 0.5 1.265625q0.21875 -0.375 0.515625 -0.8125l0.8125 -1.125l1.203125 -1.75l2.0625 0l-3.9375 5.40625l-0.671875 3.1875zm6.8945312 -1.75l-3.375 0l0.296875 -1.40625l4.640625 -5.4375l1.453125 0l-1.125 5.40625l1.046875 0l-0.3125 1.4375l-1.03125 0l-0.375 1.75l-1.578125 0l0.359375 -1.75zm0.3125 -1.4375l0.546875 -2.671875l-2.265625 2.671875l1.71875 0zm3.4238281 0.71875l1.625 -0.140625q0 0.125 0 0.171875q0 0.609375 0.265625 0.90625q0.265625 0.296875 0.703125 0.296875q0.59375 0 1.078125 -0.5625q0.484375 -0.578125 0.484375 -1.59375q0 -0.59375 -0.28125 -0.890625q-0.265625 -0.3125 -0.71875 -0.3125q-0.328125 0 -0.640625 0.15625q-0.296875 0.140625 -0.59375 0.453125l-1.375 -0.09375l1.296875 -4.390625l4.328125 0l-0.328125 1.53125l-2.84375 0l-0.390625 1.328125q0.234375 -0.109375 0.484375 -0.171875q0.25 -0.0625 0.484375 -0.0625q0.984375 0 1.609375 0.671875q0.640625 0.65625 0.640625 1.765625q0 0.890625 -0.4375 1.765625q-0.4375 0.859375 -1.234375 1.328125q-0.78125 0.453125 -1.640625 0.453125q-1.09375 0 -1.796875 -0.703125q-0.703125 -0.703125 -0.71875 -1.90625zm12.814453 -4.03125l-1.578125 0.140625q-0.046875 -0.515625 -0.25 -0.71875q-0.1875 -0.203125 -0.515625 -0.203125q-0.4375 0 -0.765625 0.34375q-0.46875 0.484375 -0.765625 1.5625q0.546875 -0.359375 1.15625 -0.359375q1.0 0 1.640625 0.6875q0.640625 0.671875 0.640625 1.84375q0 0.9375 -0.453125 1.765625q-0.4375 0.828125 -1.125 1.21875q-0.671875 0.375 -1.421875 0.375q-0.71875 0 -1.296875 -0.359375q-0.578125 -0.359375 -0.890625 -1.046875q-0.3125 -0.703125 -0.3125 -1.859375q0 -2.3125 1.015625 -3.90625q1.03125 -1.609375 2.703125 -1.609375q0.953125 0 1.515625 0.53125q0.578125 0.515625 0.703125 1.59375zm-4.3125 3.96875q0 0.6875 0.265625 1.015625q0.265625 0.3125 0.671875 0.3125q0.484375 0 0.84375 -0.453125q0.46875 -0.625 0.46875 -1.65625q0 -0.671875 -0.265625 -0.984375q-0.265625 -0.328125 -0.640625 -0.328125q-0.328125 0 -0.65625 0.25q-0.328125 0.25 -0.515625 0.78125q-0.171875 0.515625 -0.171875 1.0625z" fill-rule="nonzero"/><path fill="#000000" d="m729.0254 199.0278l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m695.75977 207.19843l28.02539 0l0 1.0800018l-28.02539 0l0 -1.0800018z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m637.41473 261.96167l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m637.41473 261.96167l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path fill="#000000" d="m647.36786 282.4817l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m653.47723 293.46606l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm6.3867188 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm9.949219 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm5.453125 -2.390625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm7.0996094 -2.28125l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm1.546875 -0.828125q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125z" fill-rule="nonzero"/><path fill="#000000" d="m651.0085 303.4817l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m695.7624 299.6184l27.351562 0l0 13.798828l-27.351562 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m696.05927 310.4817l0.28125 -1.359375l4.953125 -5.796875l-4.0 0l0.296875 -1.4375l6.1875 0l-0.25 1.34375l-5.0 5.84375q0.796875 -0.015625 0.921875 -0.015625q0.5625 0 1.546875 -0.015625l2.03125 0l-0.296875 1.4375l-6.671875 0zm8.283203 -6.921875l0.3125 -1.546875l5.671875 0l-0.25 1.1875q-0.546875 0.4375 -1.203125 1.3125q-0.640625 0.859375 -1.203125 1.9375q-0.546875 1.078125 -0.890625 2.046875q-0.5 1.328125 -0.609375 1.984375l-1.59375 0q0.09375 -0.640625 0.484375 -1.765625q0.484375 -1.390625 1.203125 -2.671875q0.71875 -1.296875 1.75 -2.484375l-3.671875 0zm8.001953 2.1875q-0.453125 -0.296875 -0.6875 -0.6875q-0.21875 -0.390625 -0.21875 -0.859375q0 -0.546875 0.3125 -1.109375q0.328125 -0.578125 0.953125 -0.90625q0.625 -0.328125 1.421875 -0.328125q1.15625 0 1.796875 0.59375q0.640625 0.59375 0.640625 1.515625q0 0.640625 -0.359375 1.125q-0.359375 0.46875 -1.09375 0.796875q0.53125 0.3125 0.796875 0.78125q0.265625 0.453125 0.265625 1.046875q0 0.96875 -0.625 1.765625q-0.90625 1.15625 -2.46875 1.15625q-1.140625 0 -1.828125 -0.671875q-0.6875 -0.671875 -0.6875 -1.71875q0 -0.859375 0.46875 -1.53125q0.484375 -0.6875 1.3125 -0.96875zm0.640625 -1.4375q0 0.40625 0.234375 0.65625q0.25 0.25 0.65625 0.25q0.4375 0 0.78125 -0.34375q0.34375 -0.34375 0.34375 -0.796875q0 -0.421875 -0.25 -0.671875q-0.25 -0.265625 -0.640625 -0.265625q-0.46875 0 -0.796875 0.34375q-0.328125 0.34375 -0.328125 0.828125zm-0.75 3.96875q0 0.484375 0.265625 0.765625q0.265625 0.265625 0.6875 0.265625q0.640625 0 1.0 -0.5625q0.359375 -0.578125 0.359375 -1.25q0 -0.4375 -0.28125 -0.71875q-0.265625 -0.28125 -0.6875 -0.28125q-0.53125 0 -0.9375 0.5q-0.40625 0.484375 -0.40625 1.28125zm4.970703 0.21875l1.578125 -0.125q0.046875 0.5 0.234375 0.703125q0.203125 0.203125 0.53125 0.203125q0.4375 0 0.765625 -0.328125q0.46875 -0.484375 0.75 -1.5625q-0.546875 0.34375 -1.140625 0.34375q-1.0 0 -1.640625 -0.671875q-0.640625 -0.6875 -0.640625 -1.859375q0 -1.3125 0.8125 -2.328125q0.828125 -1.015625 2.203125 -1.015625q1.203125 0 1.84375 0.875q0.640625 0.875 0.640625 2.375q0 2.328125 -1.03125 3.921875q-1.015625 1.59375 -2.6875 1.59375q-0.984375 0 -1.578125 -0.546875q-0.578125 -0.5625 -0.640625 -1.578125zm4.3125 -3.96875q0 -0.6875 -0.265625 -1.0q-0.265625 -0.3125 -0.671875 -0.3125q-0.484375 0 -0.84375 0.453125q-0.46875 0.609375 -0.46875 1.65625q0 0.65625 0.265625 0.984375q0.265625 0.3125 0.640625 0.3125q0.328125 0 0.65625 -0.234375q0.328125 -0.25 0.5 -0.78125q0.1875 -0.53125 0.1875 -1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m728.3542 303.09106l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m695.7624 311.2617l27.351562 0l0 1.0799866l-27.351562 0l0 -1.0799866z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m480.46457 186.19763l156.94485 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m480.46457 186.19763l150.94485 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m631.4094 187.84937l4.538147 -1.6517334l-4.538147 -1.6517334z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m479.27036 81.18898l158.1417 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m479.27036 81.18898l152.1417 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m631.41205 82.840706l4.538147 -1.6517258l-4.538147 -1.6517334z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m480.4672 290.2604l156.94485 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m480.4672 290.2604l150.94485 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m631.41205 291.91214l4.538147 -1.6517334l-4.538147 -1.6517334z" fill-rule="evenodd"/><path fill="#ffffff" d="m829.90027 157.89764l139.37006 0l0 56.59842l-139.37006 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m829.90027 157.89764l139.37006 0l0 56.59842l-139.37006 0z" fill-rule="evenodd"/><path fill="#000000" d="m862.00665 182.27686l0 -7.59375l1.15625 0l0 1.0625q0.34375 -0.5625 0.9375 -0.890625q0.609375 -0.34375 1.359375 -0.34375q0.84375 0 1.375 0.34375q0.546875 0.34375 0.765625 0.984375q0.90625 -1.328125 2.359375 -1.328125q1.125 0 1.734375 0.625q0.609375 0.625 0.609375 1.921875l0 5.21875l-1.28125 0l0 -4.78125q0 -0.78125 -0.125 -1.109375q-0.125 -0.34375 -0.453125 -0.546875q-0.328125 -0.21875 -0.78125 -0.21875q-0.796875 0 -1.328125 0.53125q-0.53125 0.53125 -0.53125 1.703125l0 4.421875l-1.28125 0l0 -4.9375q0 -0.859375 -0.3125 -1.28125q-0.3125 -0.4375 -1.03125 -0.4375q-0.546875 0 -1.015625 0.296875q-0.453125 0.28125 -0.671875 0.828125q-0.203125 0.546875 -0.203125 1.59375l0 3.9375l-1.28125 0zm12.14624 2.921875l-0.140625 -1.203125q0.421875 0.109375 0.734375 0.109375q0.4375 0 0.6875 -0.140625q0.265625 -0.140625 0.421875 -0.40625q0.125 -0.1875 0.390625 -0.953125q0.046875 -0.109375 0.125 -0.3125l-2.890625 -7.609375l1.390625 0l1.578125 4.390625q0.3125 0.84375 0.546875 1.765625q0.234375 -0.890625 0.53125 -1.734375l1.625 -4.421875l1.296875 0l-2.890625 7.71875q-0.46875 1.25 -0.734375 1.734375q-0.34375 0.625 -0.78125 0.921875q-0.4375 0.296875 -1.0625 0.296875q-0.375 0 -0.828125 -0.15625zm6.661499 -2.921875l0 -1.46875l1.46875 0l0 1.46875l-1.46875 0zm8.66571 -2.78125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm1.890625 -1.015625q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm16.582458 1.34375l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.182373 4.53125l0 -7.59375l1.15625 0l0 1.0625q0.34375 -0.5625 0.9375 -0.890625q0.609375 -0.34375 1.359375 -0.34375q0.84375 0 1.375 0.34375q0.546875 0.34375 0.765625 0.984375q0.90625 -1.328125 2.359375 -1.328125q1.125 0 1.734375 0.625q0.609375 0.625 0.609375 1.921875l0 5.21875l-1.28125 0l0 -4.78125q0 -0.78125 -0.125 -1.109375q-0.125 -0.34375 -0.453125 -0.546875q-0.328125 -0.21875 -0.78125 -0.21875q-0.796875 0 -1.328125 0.53125q-0.53125 0.53125 -0.53125 1.703125l0 4.421875l-1.28125 0l0 -4.9375q0 -0.859375 -0.3125 -1.28125q-0.3125 -0.4375 -1.03125 -0.4375q-0.546875 0 -1.015625 0.296875q-0.453125 0.28125 -0.671875 0.828125q-0.203125 0.546875 -0.203125 1.59375l0 3.9375l-1.28125 0zm17.161865 -0.9375q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm3.307373 -5.203125l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm3.2249146 0l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0z" fill-rule="nonzero"/><path fill="#000000" d="m876.8267 198.01123l1.265625 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.546875 -0.265625 -0.828125 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.296875 -0.21875 0.8125 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.265625 -0.609375q-0.765625 -0.625 -0.984375 -1.828125zm13.046875 -0.1875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.005615 0l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm5.21875 -9.015625l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm8.20929 -2.78125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm7.578125 0.328125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m776.78485 81.18898l53.102356 105.00787" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m776.78485 81.18898l50.394714 99.653564" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m825.70557 181.58794l3.5219116 3.3043365l-0.5739136 -4.7951202z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m776.7822 186.19763l53.102356 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m776.7822 186.19763l47.102356 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m823.8846 187.84937l4.538086 -1.6517334l-4.538086 -1.6517334z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m776.78485 290.2609l53.102356 -104.063" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m776.78485 290.2609l50.375183 -98.71861" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m828.6313 192.29305l0.59143066 -4.792984l-3.5339355 3.2914581z" fill-rule="evenodd"/><path fill="#ffffff" d="m25.338583 342.32285l233.00789 0l0 105.00787l-233.00789 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.338583 342.32285l233.00789 0l0 105.00787l-233.00789 0z" fill-rule="evenodd"/><path fill="#000000" d="m46.104206 365.5072l1.890625 0.46875q-0.59375 2.34375 -2.140625 3.578125q-1.546875 1.21875 -3.796875 1.21875q-2.3125 0 -3.765625 -0.9375q-1.4375 -0.953125 -2.203125 -2.734375q-0.75 -1.796875 -0.75 -3.84375q0 -2.234375 0.84375 -3.890625q0.859375 -1.671875 2.4375 -2.53125q1.578125 -0.875 3.46875 -0.875q2.15625 0 3.609375 1.09375q1.46875 1.09375 2.046875 3.078125l-1.859375 0.4375q-0.5 -1.5625 -1.453125 -2.265625q-0.9375 -0.71875 -2.375 -0.71875q-1.65625 0 -2.765625 0.796875q-1.109375 0.78125 -1.5625 2.125q-0.4375 1.328125 -0.4375 2.734375q0 1.828125 0.53125 3.203125q0.53125 1.359375 1.65625 2.03125q1.125 0.671875 2.421875 0.671875q1.59375 0 2.703125 -0.921875q1.109375 -0.921875 1.5 -2.71875zm3.3496094 -0.171875q0 -2.875 1.59375 -4.265625q1.34375 -1.15625 3.265625 -1.15625q2.140625 0 3.484375 1.40625q1.359375 1.40625 1.359375 3.875q0 2.0 -0.59375 3.15625q-0.59375 1.140625 -1.75 1.78125q-1.140625 0.625 -2.5 0.625q-2.1875 0 -3.53125 -1.390625q-1.328125 -1.40625 -1.328125 -4.03125zm1.796875 0q0 2.0 0.859375 2.984375q0.875 0.984375 2.203125 0.984375q1.3125 0 2.171875 -0.984375q0.875 -1.0 0.875 -3.046875q0 -1.921875 -0.875 -2.90625q-0.875 -1.0 -2.171875 -1.0q-1.328125 0 -2.203125 1.0q-0.859375 0.984375 -0.859375 2.96875zm9.966797 5.1875l0 -10.375l1.59375 0l0 1.484375q1.140625 -1.71875 3.2968788 -1.71875q0.9375 0 1.71875 0.34375q0.796875 0.328125 1.1875 0.875q0.390625 0.546875 0.546875 1.296875q0.09375 0.5 0.09375 1.71875l0 6.375l-1.765625 0l0 -6.3125q0 -1.078125 -0.203125 -1.609375q-0.203125 -0.53125 -0.734375 -0.84375q-0.515625 -0.3125 -1.21875 -0.3125q-1.125 0 -1.9375038 0.71875q-0.8125 0.703125 -0.8125 2.6875l0 5.671875l-1.765625 0zm11.123051 0l0 -10.375l1.59375 0l0 1.484375q1.140625 -1.71875 3.296875 -1.71875q0.9375 0 1.71875 0.34375q0.796875 0.328125 1.1875 0.875q0.390625 0.546875 0.546875 1.296875q0.09375 0.5 0.09375 1.71875l0 6.375l-1.765625 0l0 -6.3125q0 -1.078125 -0.203125 -1.609375q-0.203125 -0.53125 -0.734375 -0.84375q-0.515625 -0.3125 -1.21875 -0.3125q-1.125 0 -1.9375 0.71875q-0.8125 0.703125 -0.8125 2.6875l0 5.671875l-1.765625 0zm18.232422 -3.34375l1.8125 0.234375q-0.421875 1.578125 -1.59375 2.46875q-1.15625 0.875 -2.96875 0.875q-2.265625 0 -3.609375 -1.390625q-1.328125 -1.40625 -1.328125 -3.9375q0 -2.625 1.34375 -4.0625q1.34375 -1.453125 3.5 -1.453125q2.078125 0 3.390625 1.421875q1.328125 1.40625 1.328125 3.984375q0 0.15625 -0.015625 0.46875l-7.734375 0q0.09375 1.703125 0.96875 2.609375q0.875 0.90625 2.171875 0.90625q0.96875 0 1.640625 -0.5q0.6875 -0.515625 1.09375 -1.625zm-5.78125 -2.84375l5.796875 0q-0.109375 -1.296875 -0.65625 -1.953125q-0.84375 -1.015625 -2.1875 -1.015625q-1.203125 0 -2.03125 0.8125q-0.828125 0.796875 -0.921875 2.15625zm16.576172 2.390625l1.71875 0.21875q-0.28125 1.796875 -1.453125 2.8125q-1.15625 1.0 -2.859375 1.0q-2.125 0 -3.421875 -1.390625q-1.296875 -1.390625 -1.296875 -3.984375q0 -1.6875 0.546875 -2.9375q0.5625 -1.265625 1.703125 -1.890625q1.140625 -0.640625 2.484375 -0.640625q1.6875 0 2.75 0.859375q1.078125 0.859375 1.390625 2.421875l-1.71875 0.265625q-0.234375 -1.046875 -0.859375 -1.5625q-0.625 -0.53125 -1.5 -0.53125q-1.328125 0 -2.15625 0.953125q-0.828125 0.953125 -0.828125 3.0q0 2.09375 0.796875 3.046875q0.796875 0.9375 2.09375 0.9375q1.03125 0 1.71875 -0.625q0.703125 -0.640625 0.890625 -1.953125zm7.0625 2.21875l0.25 1.5625q-0.734375 0.15625 -1.328125 0.15625q-0.953125 0 -1.484375 -0.296875q-0.515625 -0.3125 -0.734375 -0.796875q-0.21875 -0.5 -0.21875 -2.078125l0 -5.96875l-1.28125 0l0 -1.375l1.28125 0l0 -2.5625l1.75 -1.0625l0 3.625l1.765625 0l0 1.375l-1.765625 0l0 6.0625q0 0.75 0.09375 0.96875q0.09375 0.203125 0.296875 0.34375q0.21875 0.125 0.609375 0.125q0.28125 0 0.765625 -0.078125zm1.0722656 -3.609375q0 -2.875 1.59375 -4.265625q1.34375 -1.15625 3.265625 -1.15625q2.140625 0 3.484375 1.40625q1.359375 1.40625 1.359375 3.875q0 2.0 -0.59375 3.15625q-0.59375 1.140625 -1.75 1.78125q-1.140625 0.625 -2.5 0.625q-2.1875 0 -3.53125 -1.390625q-1.328125 -1.40625 -1.328125 -4.03125zm1.796875 0q0 2.0 0.859375 2.984375q0.875 0.984375 2.203125 0.984375q1.3125 0 2.171875 -0.984375q0.875 -1.0 0.875 -3.046875q0 -1.921875 -0.875 -2.90625q-0.875 -1.0 -2.171875 -1.0q-1.328125 0 -2.203125 1.0q-0.859375 0.984375 -0.859375 2.96875zm9.951172 5.1875l0 -10.375l1.578125 0l0 1.578125q0.609375 -1.109375 1.125 -1.453125q0.515625 -0.359375 1.125 -0.359375q0.890625 0 1.8125 0.5625l-0.609375 1.640625q-0.640625 -0.390625 -1.28125 -0.390625q-0.578125 0 -1.046875 0.359375q-0.453125 0.34375 -0.65625 0.953125q-0.28125 0.9375 -0.28125 2.046875l0 5.4375l-1.765625 0zm11.560539 -4.296875l0 -1.765625l5.390625 0l0 1.765625l-5.390625 0zm12.888672 4.296875l0 -10.375l1.578125 0l0 1.453125q0.484375 -0.75 1.296875 -1.21875q0.8125 -0.46875 1.84375 -0.46875q1.15625 0 1.890625 0.484375q0.734375 0.46875 1.046875 1.328125q1.234375 -1.8125 3.203125 -1.8125q1.546875 0 2.375 0.859375q0.828125 0.859375 0.828125 2.625l0 7.125l-1.75 0l0 -6.53125q0 -1.0625 -0.171875 -1.515625q-0.171875 -0.46875 -0.625 -0.75q-0.4375 -0.28125 -1.046875 -0.28125q-1.09375 0 -1.828125 0.734375q-0.71875 0.71875 -0.71875 2.3125l0 6.03125l-1.75 0l0 -6.734375q0 -1.171875 -0.4375 -1.75q-0.421875 -0.59375 -1.40625 -0.59375q-0.734375 0 -1.375 0.390625q-0.625 0.390625 -0.90625 1.140625q-0.28125 0.75 -0.28125 2.171875l0 5.375l-1.765625 0zm16.582031 4.0l-0.1875 -1.65625q0.578125 0.15625 1.0 0.15625q0.59375 0 0.9375 -0.203125q0.359375 -0.1875 0.578125 -0.53125q0.171875 -0.265625 0.546875 -1.3125q0.046875 -0.15625 0.15625 -0.4375l-3.9375 -10.390625l1.890625 0l2.15625 6.015625q0.421875 1.140625 0.75 2.390625q0.3125 -1.203125 0.71875 -2.359375l2.21875 -6.046875l1.765625 0l-3.953125 10.546875q-0.625 1.71875 -0.984375 2.359375q-0.46875 0.875 -1.078125 1.265625q-0.59375 0.40625 -1.4375 0.40625q-0.515625 0 -1.140625 -0.203125zm9.09375 -4.0l0 -2.0l2.0 0l0 2.0l-2.0 0zm11.837891 -3.796875l1.71875 0.21875q-0.28125 1.796875 -1.453125 2.8125q-1.15625 1.0 -2.859375 1.0q-2.125 0 -3.421875 -1.390625q-1.296875 -1.390625 -1.296875 -3.984375q0 -1.6875 0.546875 -2.9375q0.5625 -1.265625 1.703125 -1.890625q1.140625 -0.640625 2.484375 -0.640625q1.6875 0 2.75 0.859375q1.078125 0.859375 1.390625 2.421875l-1.71875 0.265625q-0.234375 -1.046875 -0.859375 -1.5625q-0.625 -0.53125 -1.5 -0.53125q-1.328125 0 -2.15625 0.953125q-0.828125 0.953125 -0.828125 3.0q0 2.09375 0.796875 3.046875q0.796875 0.9375 2.09375 0.9375q1.03125 0 1.71875 -0.625q0.703125 -0.640625 0.890625 -1.953125zm2.578125 -1.390625q0 -2.875 1.59375 -4.265625q1.34375 -1.15625 3.265625 -1.15625q2.140625 0 3.484375 1.40625q1.359375 1.40625 1.359375 3.875q0 2.0 -0.59375 3.15625q-0.59375 1.140625 -1.75 1.78125q-1.140625 0.625 -2.5 0.625q-2.1875 0 -3.53125 -1.390625q-1.328125 -1.40625 -1.328125 -4.03125zm1.796875 0q0 2.0 0.859375 2.984375q0.875 0.984375 2.203125 0.984375q1.3125 0 2.171875 -0.984375q0.875 -1.0 0.875 -3.046875q0 -1.921875 -0.875 -2.90625q-0.875 -1.0 -2.171875 -1.0q-1.328125 0 -2.203125 1.0q-0.859375 0.984375 -0.859375 2.96875z" fill-rule="nonzero"/><path fill="#000000" d="m53.94483 392.84283l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.5156212 -0.25 1.0624962 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.0937462 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm6.8613243 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.3281288 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875038 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.6718788 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5000038 0 -0.9062538 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.533207 0.34375l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm8.375 1.265625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm2.1933594 -4.15625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m130.7292 392.84283l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m53.41358 409.23346l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4374962 -0.21875 0.9218712 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.9843712 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.9218712 0 1.4843712 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.4062462 0 -0.7499962 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm5.2988243 0.1875q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.3281288 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875038 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.6718788 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5000038 0 -0.9062538 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439457 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm6.4648438 -0.859375l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm2.1933594 -4.15625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m131.18233 404.3897l1.078125 -0.109375q-0.015625 0.234375 -0.015625 0.28125q0 0.375 0.1875 0.78125q0.203125 0.390625 0.53125 0.59375q0.34375 0.203125 0.71875 0.203125q0.5 0 1.0 -0.328125q0.515625 -0.34375 0.828125 -0.984375q0.3125 -0.65625 0.3125 -1.296875q0 -0.71875 -0.421875 -1.15625q-0.421875 -0.4375 -1.109375 -0.4375q-0.46875 0 -0.890625 0.234375q-0.40625 0.21875 -0.765625 0.65625l-0.921875 -0.0625l1.296875 -4.390625l4.203125 0l-0.21875 0.96875l-3.25 0l-0.65625 2.1875q0.375 -0.265625 0.75 -0.390625q0.390625 -0.140625 0.796875 -0.140625q0.984375 0 1.609375 0.65625q0.640625 0.640625 0.640625 1.78125q0 0.984375 -0.4375 1.828125q-0.4375 0.828125 -1.203125 1.28125q-0.75 0.4375 -1.625 0.4375q-0.75 0 -1.3125 -0.328125q-0.5625 -0.328125 -0.859375 -0.90625q-0.28125 -0.59375 -0.28125 -1.1875q0 -0.0625 0.015625 -0.171875zm8.533203 -2.265625q-0.46875 -0.265625 -0.71875 -0.671875q-0.234375 -0.421875 -0.234375 -0.890625q0 -0.78125 0.5625 -1.453125q0.75 -0.890625 2.03125 -0.890625q1.125 0 1.78125 0.609375q0.65625 0.609375 0.65625 1.484375q0 0.625 -0.359375 1.125q-0.34375 0.5 -1.09375 0.8125q0.515625 0.3125 0.734375 0.671875q0.28125 0.484375 0.28125 1.109375q0 1.15625 -0.8125 2.0625q-0.8125 0.90625 -2.171875 0.90625q-1.09375 0 -1.78125 -0.671875q-0.6875 -0.671875 -0.6875 -1.671875q0 -0.9375 0.484375 -1.609375q0.5 -0.6875 1.328125 -0.921875zm0.09375 -1.515625q0 0.546875 0.34375 0.890625q0.359375 0.328125 0.984375 0.328125q0.71875 0 1.171875 -0.4375q0.453125 -0.453125 0.453125 -1.09375q0 -0.546875 -0.359375 -0.890625q-0.34375 -0.34375 -0.96875 -0.34375q-0.46875 0 -0.859375 0.21875q-0.390625 0.21875 -0.578125 0.59375q-0.1875 0.375 -0.1875 0.734375zm-0.828125 4.140625q0 0.359375 0.171875 0.6875q0.171875 0.328125 0.515625 0.515625q0.359375 0.1875 0.8125 0.1875q0.859375 0 1.390625 -0.796875q0.421875 -0.640625 0.421875 -1.375q0 -0.59375 -0.390625 -0.96875q-0.390625 -0.390625 -1.015625 -0.390625q-0.796875 0 -1.359375 0.59375q-0.546875 0.59375 -0.546875 1.546875zm6.439453 2.09375q0.140625 -0.875 0.609375 -2.09375q0.546875 -1.46875 1.421875 -2.90625q0.890625 -1.453125 1.96875 -2.5l-4.28125 0l0.203125 -0.96875l5.484375 0l-0.203125 0.96875q-1.390625 1.21875 -2.4375 3.15625q-1.203125 2.234375 -1.65625 4.34375l-1.109375 0z" fill-rule="nonzero"/><path fill="#000000" d="m58.179203 419.71783q-1.1093712 1.265625 -2.2812462 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4374962 -0.21875 0.7343712 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.5332031 -1.0l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.7031288 0 1.0468788 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625038 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.1718788 0 1.7812538 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625038 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.2187538 0.53125 1.5312538 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.3750038 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.468754 0.015625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm3.9960938 0l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0zm10.861328 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm2.0800781 3.15625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.574219 -2.109375l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm6.517578 -1.359375l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m130.7292 420.84283l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm10.640625 -3.53125q-1.109375 1.265625 -2.28125 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4375 -0.21875 0.734375 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.5332031 -1.0l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.46875 0.015625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0z" fill-rule="nonzero"/><path fill="#000000" d="m53.41358 437.23346l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4374962 -0.21875 0.9218712 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.9843712 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.9218712 0 1.4843712 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.4062462 0 -0.7499962 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm9.298828 1.765625q-0.546875 0.484375 -1.0625038 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0000038 -0.046875 1.4218788 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.6718788 0 -1.0937538 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.7968788 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.8437538 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.4843788 -0.28125 0.7656288 -0.78125q0.28125 -0.5 0.4375 -1.421875zm2.1894531 1.03125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm6.0 0l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm7.078125 2.125l-0.640625 -6.21875l1.015625 0l0.28125 2.796875l0.109375 1.5625q0.015625 0.171875 0.03125 0.703125q0.1875 -0.59375 0.296875 -0.90625q0.125 -0.328125 0.40625 -0.921875l1.46875 -3.234375l1.15625 0l0.203125 3.109375q0.046875 0.703125 0.0625 1.890625q0.296875 -0.78125 0.953125 -2.1875l1.34375 -2.8125l1.0625 0l-3.046875 6.21875l-1.09375 0l-0.234375 -3.65625q-0.03125 -0.328125 -0.046875 -1.3125q-0.234375 0.625 -0.5625 1.34375l-1.640625 3.625l-1.125 0zm7.6816406 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm8.183594 -0.90625q-0.90625 1.046875 -1.890625 1.046875q-0.890625 0 -1.484375 -0.65625q-0.578125 -0.65625 -0.578125 -1.890625q0 -1.140625 0.453125 -2.078125q0.46875 -0.9375 1.171875 -1.40625q0.703125 -0.46875 1.40625 -0.46875q1.15625 0 1.75 1.109375l0.703125 -3.34375l1.046875 0l-1.78125 8.59375l-0.984375 0l0.1875 -0.90625zm-2.90625 -1.703125q0 0.65625 0.125 1.03125q0.140625 0.375 0.4375 0.625q0.3125 0.25 0.75 0.25q0.71875 0 1.3125 -0.75q0.78125 -1.0 0.78125 -2.46875q0 -0.734375 -0.390625 -1.140625q-0.390625 -0.421875 -0.96875 -0.421875q-0.375 0 -0.703125 0.171875q-0.3125 0.15625 -0.625 0.5625q-0.296875 0.40625 -0.515625 1.046875q-0.203125 0.625 -0.203125 1.09375zm6.720703 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm-1.046875 5.015625l0.25 -1.203125l1.203125 0l-0.265625 1.203125l-1.1875 0z" fill-rule="nonzero"/><path fill="#000000" d="m135.02608 432.5772l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.71875 2.265625l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm10.861328 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm2.0957031 3.15625l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0zm6.611328 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm9.970703 0.640625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.574219 -2.109375l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625z" fill-rule="nonzero"/><path fill="#666666" d="m152.55838 267.70898l0 0c0 -1.800354 1.3678284 -3.2598267 3.0551147 -3.2598267l0 0c0.8102722 0 1.5873566 0.34344482 2.1602936 0.95477295c0.5729523 0.61135864 0.89482117 1.4404907 0.89482117 2.3050537l0 0c0 1.8003845 -1.3678131 3.2598572 -3.0551147 3.2598572l0 0c-1.6872864 0 -3.0551147 -1.4594727 -3.0551147 -3.2598572z" fill-rule="evenodd"/><path fill="#666666" d="m639.8609 292.85303l0 0c0 -1.8003845 1.3677979 -3.2598572 3.0551147 -3.2598572l0 0c0.8102417 0 1.5873413 0.34344482 2.1602783 0.95480347c0.572937 0.6113281 0.8948364 1.4404907 0.8948364 2.3050537l0 0c0 1.800354 -1.3677979 3.2598267 -3.0551147 3.2598267l0 0c-1.6873169 0 -3.0551147 -1.4594727 -3.0551147 -3.2598267z" fill-rule="evenodd"/><path fill="#666666" d="m639.8609 189.4567l0 0c0 -1.8003693 1.3677979 -3.259842 3.0551147 -3.259842l0 0c0.8102417 0 1.5873413 0.34344482 2.1602783 0.9547882c0.572937 0.6113281 0.8948364 1.4404907 0.8948364 2.3050537l0 0c0 1.800354 -1.3677979 3.259842 -3.0551147 3.259842l0 0c-1.6873169 0 -3.0551147 -1.4594879 -3.0551147 -3.259842z" fill-rule="evenodd"/><path fill="#666666" d="m639.8609 83.031494l0 0c0 -1.8003616 1.3677979 -3.259842 3.0551147 -3.259842l0 0c0.8102417 0 1.5873413 0.34344482 2.1602783 0.9547882c0.572937 0.61133575 0.8948364 1.4404907 0.8948364 2.3050537l0 0c0 1.8003616 -1.3677979 3.259842 -3.0551147 3.259842l0 0c-1.6873169 0 -3.0551147 -1.4594803 -3.0551147 -3.259842z" fill-rule="evenodd"/><path fill="#999999" d="m244.2231 392.55905l0 0c0 -1.800354 1.3678284 -3.2598267 3.0551147 -3.2598267l0 0c0.8102722 0 1.5873566 0.34344482 2.1602936 0.95477295c0.5729523 0.6113281 0.89482117 1.4404907 0.89482117 2.3050537l0 0c0 1.800354 -1.3678131 3.2598572 -3.0551147 3.2598572l0 0c-1.6872864 0 -3.0551147 -1.4595032 -3.0551147 -3.2598572z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m158.66861 267.70898c44.299225 0 88.598434 60.787415 88.598434 121.57483" fill-rule="evenodd"/><path stroke="#b7b7b7" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m158.66861 267.70898c44.299225 0 88.598434 60.787415 88.598434 121.57483" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m250.33333 392.55905c196.29921 0 392.59845 -48.22046 392.59845 -96.44095" fill-rule="evenodd"/><path stroke="#b7b7b7" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m250.33333 392.55905c196.29921 0 392.59845 -48.22046 392.59845 -96.44095" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m250.33333 392.55905c196.29921 0 392.59845 -99.921265 392.59845 -199.84251" fill-rule="evenodd"/><path stroke="#b7b7b7" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m250.33333 392.55905c196.29921 0 392.59845 -99.921265 392.59845 -199.84251" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m250.33333 392.55905c196.29921 0 392.59845 -153.13385 392.59845 -306.2677" fill-rule="evenodd"/><path stroke="#b7b7b7" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m250.33333 392.55905c196.29921 0 392.59845 -153.13385 392.59845 -306.2677" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m844.39624 4.631458l111.590515 0l0 33.51181l-111.590515 0z" fill-rule="evenodd"/><path fill="#000000" d="m855.1306 31.551456l0 -13.359375l1.765625 0l0 13.359375l-1.765625 0zm4.6832886 0l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.28125l-1.640625 0zm13.953857 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm8.230164 -1.640625l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm8.828857 6.5625l1.59375 0.234375q0.109375 0.75 0.5625 1.078125q0.609375 0.453125 1.671875 0.453125q1.140625 0 1.75 -0.453125q0.625 -0.453125 0.84375 -1.265625q0.125 -0.5 0.109375 -2.109375q-1.0625 1.265625 -2.671875 1.265625q-2.0 0 -3.09375 -1.4375q-1.09375 -1.4375 -1.09375 -3.453125q0 -1.390625 0.5 -2.5625q0.515625 -1.171875 1.453125 -1.796875q0.953125 -0.640625 2.25 -0.640625q1.703125 0 2.8125 1.375l0 -1.15625l1.515625 0l0 8.359375q0 2.265625 -0.46875 3.203125q-0.453125 0.9375 -1.453125 1.484375q-0.984375 0.546875 -2.453125 0.546875q-1.71875 0 -2.796875 -0.78125q-1.0625 -0.765625 -1.03125 -2.34375zm1.359375 -5.8125q0 1.90625 0.75 2.78125q0.765625 0.875 1.90625 0.875q1.125 0 1.890625 -0.859375q0.765625 -0.875 0.765625 -2.734375q0 -1.78125 -0.796875 -2.671875q-0.78125 -0.90625 -1.890625 -0.90625q-1.09375 0 -1.859375 0.890625q-0.765625 0.875 -0.765625 2.625zm9.313232 5.015625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm12.5407715 -1.1875q-0.921875 0.765625 -1.765625 1.09375q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.78125 -0.859375 -1.984375q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.59375 0.40625 1.15625l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm7.7819824 3.390625l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6051636 -10.0l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm3.5354614 -4.84375q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.65625q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.296875q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.84375l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.28125l-1.640625 0z" fill-rule="nonzero"/></g></svg> \ No newline at end of file diff --git a/docs/user/alerting/images/alert-flyout-action-details.png b/docs/user/alerting/images/alert-flyout-action-details.png deleted file mode 100644 index 06287ed1837d..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-action-details.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-flyout-action-type-selection.png b/docs/user/alerting/images/alert-flyout-action-type-selection.png deleted file mode 100644 index 2df2a031c666..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-action-type-selection.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-flyout-action-variables.png b/docs/user/alerting/images/alert-flyout-action-variables.png deleted file mode 100644 index 73fc1fe9dea6..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-action-variables.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-flyout-add-action.png b/docs/user/alerting/images/alert-flyout-add-action.png deleted file mode 100644 index 159dbd5c1e44..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-add-action.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-flyout-alert-conditions.png b/docs/user/alerting/images/alert-flyout-alert-conditions.png deleted file mode 100644 index 8e0eff022436..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-alert-conditions.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-flyout-alert-type-selection.png b/docs/user/alerting/images/alert-flyout-alert-type-selection.png deleted file mode 100644 index ccd3f07f07c9..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-alert-type-selection.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-flyout-general-details.png b/docs/user/alerting/images/alert-flyout-general-details.png deleted file mode 100644 index 883c2348ecc8..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-general-details.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-flyout-sections.png b/docs/user/alerting/images/alert-flyout-sections.png deleted file mode 100644 index 8fa4bfffe39a..000000000000 Binary files a/docs/user/alerting/images/alert-flyout-sections.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-instances.svg b/docs/user/alerting/images/alert-instances.svg deleted file mode 100644 index 97f610041f0e..000000000000 --- a/docs/user/alerting/images/alert-instances.svg +++ /dev/null @@ -1 +0,0 @@ -<svg version="1.1" viewBox="0.0 0.0 813.4803149606299 338.13385826771656" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l813.4803 0l0 338.13385l-813.4803 0l0 -338.13385z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l813.4803 0l0 338.13385l-813.4803 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m13.120735 52.889763l260.8819 0l0 266.61417l-260.8819 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.120735 52.889763l260.8819 0l0 266.61417l-260.8819 0z" fill-rule="evenodd"/><path fill="#000000" d="m22.089485 79.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816696 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125717 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.806427 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 97.062996l233.00789 0l0 33.511803l-233.00789 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 97.062996l233.00789 0l0 33.511803l-233.00789 0z" fill-rule="evenodd"/><path fill="#000000" d="m43.750084 117.40737l1.515625 0.375q-0.46875 1.875 -1.71875 2.859375q-1.234375 0.984375 -3.015625 0.984375q-1.859375 0 -3.015625 -0.75q-1.15625 -0.765625 -1.765625 -2.1875q-0.609375 -1.4375 -0.609375 -3.078125q0 -1.796875 0.6875 -3.125q0.6875 -1.328125 1.9375 -2.015625q1.265625 -0.703125 2.78125 -0.703125q1.71875 0 2.890625 0.875q1.171875 0.875 1.640625 2.46875l-1.5 0.34375q-0.390625 -1.25 -1.15625 -1.8125q-0.75 -0.578125 -1.90625 -0.578125q-1.3125 0 -2.203125 0.640625q-0.890625 0.625 -1.25 1.703125q-0.359375 1.0625 -0.359375 2.1875q0 1.46875 0.421875 2.5625q0.4375 1.078125 1.328125 1.625q0.90625 0.53125 1.953125 0.53125q1.265625 0 2.140625 -0.734375q0.890625 -0.734375 1.203125 -2.171875zm2.6796875 -0.140625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm14.2734375 0l0 -1.046875q-0.78125 1.234375 -2.3125 1.234375q-1.0 0 -1.828125 -0.546875q-0.828125 -0.546875 -1.296875 -1.53125q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453125l-1.3125 0zm-4.4375 -4.140625q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm7.9609375 -5.703125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm6.6171875 -1.265625l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0z" fill-rule="nonzero"/><path fill="#000000" d="m136.46883 120.39175q-0.734375 0.625 -1.421875 0.921875q-0.671875 0.296875 -1.4375 0.296875q-1.15625 0 -1.859375 -0.671875q-0.703125 -0.6875 -0.703125 -1.734375q0 -0.703125 0.3125 -1.234375q0.328125 -0.53125 0.84375 -0.859375q0.53125 -0.328125 1.28125 -0.46875q0.484375 -0.09375 1.8125 -0.140625q1.328125 -0.0625 1.90625 -0.28125q0.171875 -0.578125 0.171875 -0.96875q0 -0.484375 -0.359375 -0.765625q-0.5 -0.390625 -1.4375 -0.390625q-0.890625 0 -1.46875 0.390625q-0.5625 0.390625 -0.8125 1.125l-1.4375 -0.125q0.4375 -1.234375 1.390625 -1.890625q0.953125 -0.65625 2.390625 -0.65625q1.546875 0 2.4375 0.734375q0.6875 0.546875 0.6875 1.421875q0 0.65625 -0.1875 1.53125l-0.46875 2.0625q-0.21875 0.984375 -0.21875 1.609375q0 0.390625 0.171875 1.125l-1.421875 0q-0.125 -0.40625 -0.171875 -1.03125zm0.53125 -3.171875q-0.296875 0.109375 -0.640625 0.171875q-0.34375 0.0625 -1.140625 0.140625q-1.234375 0.109375 -1.75 0.28125q-0.5 0.15625 -0.765625 0.53125q-0.25 0.359375 -0.25 0.8125q0 0.59375 0.40625 0.984375q0.421875 0.375 1.171875 0.375q0.703125 0 1.34375 -0.375q0.65625 -0.375 1.03125 -1.03125q0.375 -0.671875 0.59375 -1.890625zm4.8671875 4.203125l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm5.828125 0.75l1.4375 0.140625q-0.015625 0.484375 0.109375 0.71875q0.140625 0.25 0.421875 0.375q0.390625 0.171875 1.0 0.171875q1.28125 0 1.84375 -0.65625q0.359375 -0.453125 0.671875 -1.953125l0.140625 -0.671875q-1.09375 1.125 -2.34375 1.125q-1.25 0 -2.109375 -0.921875q-0.84375 -0.9375 -0.84375 -2.625q0 -1.40625 0.671875 -2.578125q0.671875 -1.171875 1.59375 -1.765625q0.921875 -0.59375 1.890625 -0.59375q1.640625 0 2.515625 1.546875l0.28125 -1.359375l1.296875 0l-1.671875 8.0q-0.265625 1.328125 -0.71875 2.0625q-0.4375 0.75 -1.234375 1.15625q-0.796875 0.40625 -1.828125 0.40625q-1.0 0 -1.734375 -0.265625q-0.71875 -0.25 -1.078125 -0.75q-0.34375 -0.5 -0.34375 -1.140625q0 -0.1875 0.03125 -0.421875zm1.765625 -4.421875q0 0.84375 0.171875 1.28125q0.234375 0.59375 0.65625 0.921875q0.4375 0.3125 0.96875 0.3125q0.703125 0 1.390625 -0.484375q0.6875 -0.5 1.109375 -1.515625q0.421875 -1.03125 0.421875 -1.953125q0 -1.03125 -0.5625 -1.625q-0.5625 -0.609375 -1.40625 -0.609375q-0.515625 0 -1.0 0.28125q-0.484375 0.265625 -0.90625 0.84375q-0.40625 0.5625 -0.625 1.359375q-0.21875 0.78125 -0.21875 1.1875zm20.78125 -0.359375l1.515625 0.203125q-0.71875 1.984375 -2.09375 3.015625q-1.375 1.015625 -3.09375 1.015625q-2.078125 0 -3.3125 -1.28125q-1.21875 -1.28125 -1.21875 -3.65625q0 -3.09375 1.859375 -5.109375q1.65625 -1.8125 4.125 -1.8125q1.8125 0 2.9375 0.984375q1.140625 0.96875 1.3125 2.625l-1.421875 0.125q-0.234375 -1.234375 -0.9375 -1.84375q-0.703125 -0.625 -1.828125 -0.625q-2.09375 0 -3.390625 1.875q-1.125 1.609375 -1.125 3.8125q0 1.765625 0.859375 2.703125q0.875 0.921875 2.265625 0.921875q1.1875 0 2.140625 -0.765625q0.96875 -0.78125 1.40625 -2.1875zm2.5859375 4.03125l2.40625 -11.453125l4.78125 0q1.234375 0 1.859375 0.28125q0.625 0.28125 1.03125 0.984375q0.40625 0.6875 0.40625 1.546875q0 0.703125 -0.296875 1.4375q-0.28125 0.734375 -0.734375 1.21875q-0.4375 0.46875 -0.890625 0.71875q-0.453125 0.234375 -0.96875 0.359375q-1.09375 0.25 -2.21875 0.25l-2.875 0l-0.96875 4.65625l-1.53125 0zm2.78125 -5.953125l2.515625 0q1.46875 0 2.15625 -0.3125q0.6875 -0.3125 1.09375 -0.953125q0.421875 -0.65625 0.421875 -1.390625q0 -0.5625 -0.21875 -0.90625q-0.21875 -0.359375 -0.625 -0.53125q-0.390625 -0.171875 -1.515625 -0.171875l-2.9375 0l-0.890625 4.265625zm10.375 -5.5l1.53125 0l-1.46875 7.03125q-0.171875 0.875 -0.171875 1.296875q0 0.921875 0.71875 1.484375q0.734375 0.5625 1.828125 0.5625q0.875 0 1.625 -0.390625q0.765625 -0.40625 1.203125 -1.1875q0.4375 -0.78125 0.78125 -2.5l1.328125 -6.296875l1.53125 0l-1.40625 6.71875q-0.359375 1.71875 -0.953125 2.71875q-0.578125 1.0 -1.625 1.609375q-1.03125 0.609375 -2.40625 0.609375q-1.296875 0 -2.25 -0.421875q-0.9375 -0.4375 -1.421875 -1.1875q-0.46875 -0.765625 -0.46875 -1.734375q0 -0.59375 0.328125 -2.0625l1.296875 -6.25zm21.859375 6.4375l-7.59375 3.25l0 -1.40625l6.015625 -2.484375l-6.015625 -2.46875l0 -1.40625l7.59375 3.203125l0 1.3125zm5.8984375 1.25q0 -1.453125 0.421875 -2.953125q0.4375 -1.5 0.96875 -2.390625q0.53125 -0.90625 1.09375 -1.40625q0.578125 -0.515625 1.125 -0.75q0.5625 -0.234375 1.234375 -0.234375q1.3125 0 2.1875 0.984375q0.875 0.96875 0.875 2.8125q0 1.890625 -0.609375 3.75q-0.71875 2.203125 -2.0 3.3125q-0.984375 0.84375 -2.234375 0.84375q-1.296875 0 -2.1875 -1.015625q-0.875 -1.015625 -0.875 -2.953125zm1.359375 0.359375q0 1.0625 0.359375 1.65625q0.46875 0.8125 1.40625 0.8125q0.828125 0 1.5 -0.734375q0.96875 -1.046875 1.453125 -3.0625q0.484375 -2.03125 0.484375 -3.3125q0 -1.234375 -0.46875 -1.78125q-0.46875 -0.546875 -1.25 -0.546875q-0.5625 0 -1.046875 0.296875q-0.484375 0.28125 -0.9375 0.984375q-0.625 1.0 -1.09375 2.96875q-0.40625 1.6875 -0.40625 2.71875zm7.3203125 3.40625l0.34375 -1.609375l1.59375 0l-0.34375 1.609375l-1.59375 0zm4.6015625 -2.625l1.328125 -0.140625q0.140625 0.96875 0.546875 1.375q0.421875 0.40625 0.984375 0.40625q0.8125 0 1.515625 -0.703125q1.015625 -1.03125 1.5 -2.96875q-0.703125 0.53125 -1.265625 0.765625q-0.546875 0.21875 -1.125 0.21875q-1.046875 0 -1.875 -0.703125q-1.09375 -0.90625 -1.09375 -2.625q0 -1.9375 1.265625 -3.3125q1.09375 -1.1875 2.671875 -1.1875q1.421875 0 2.359375 1.046875q0.9375 1.046875 0.9375 2.96875q0 1.875 -0.625 3.6875q-0.75 2.140625 -2.015625 3.15625q-1.03125 0.84375 -2.3125 0.84375q-1.1875 0 -1.953125 -0.734375q-0.75 -0.75 -0.84375 -2.09375zm1.890625 -4.53125q0 1.078125 0.5625 1.71875q0.578125 0.640625 1.375 0.640625q0.578125 0 1.15625 -0.390625q0.578125 -0.40625 0.984375 -1.203125q0.421875 -0.796875 0.421875 -1.625q0 -0.65625 -0.28125 -1.21875q-0.265625 -0.5625 -0.734375 -0.84375q-0.46875 -0.296875 -0.953125 -0.296875q-0.46875 0 -0.921875 0.25q-0.453125 0.25 -0.84375 0.734375q-0.390625 0.484375 -0.578125 1.125q-0.1875 0.625 -0.1875 1.109375z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 144.07611l233.00789 0l0 39.3071l-233.00789 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 144.07611l233.00789 0l0 39.3071l-233.00789 0z" fill-rule="evenodd"/><path fill="#000000" d="m35.062584 164.74861l1.4375 -0.125q0.09375 0.859375 0.46875 1.421875q0.375 0.546875 1.15625 0.890625q0.78125 0.328125 1.75 0.328125q0.875 0 1.53125 -0.25q0.671875 -0.265625 0.984375 -0.703125q0.328125 -0.453125 0.328125 -0.984375q0 -0.546875 -0.3125 -0.9375q-0.3125 -0.40625 -1.03125 -0.6875q-0.453125 -0.171875 -2.03125 -0.546875q-1.578125 -0.390625 -2.21875 -0.71875q-0.8125 -0.4375 -1.21875 -1.0625q-0.40625 -0.640625 -0.40625 -1.4375q0 -0.859375 0.484375 -1.609375q0.5 -0.765625 1.4375 -1.15625q0.953125 -0.390625 2.109375 -0.390625q1.28125 0 2.25 0.421875q0.96875 0.40625 1.484375 1.203125q0.53125 0.796875 0.578125 1.796875l-1.453125 0.109375q-0.125 -1.078125 -0.796875 -1.625q-0.671875 -0.5625 -2.0 -0.5625q-1.375 0 -2.0 0.5q-0.625 0.5 -0.625 1.21875q0 0.609375 0.4375 1.015625q0.4375 0.390625 2.28125 0.8125q1.859375 0.421875 2.546875 0.734375q1.0 0.453125 1.46875 1.171875q0.484375 0.703125 0.484375 1.625q0 0.90625 -0.53125 1.71875q-0.515625 0.8125 -1.5 1.265625q-0.984375 0.453125 -2.203125 0.453125q-1.5625 0 -2.609375 -0.453125q-1.046875 -0.46875 -1.65625 -1.375q-0.59375 -0.90625 -0.625 -2.0625zm16.421875 0.640625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8125 -2.28125 0.8125q-1.703125 0 -2.75 -1.109375q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm2.59375 3.046875l0 -11.453125l1.40625 0l0 4.109375q0.984375 -1.140625 2.484375 -1.140625q0.921875 0 1.59375 0.359375q0.6875 0.359375 0.96875 1.0q0.296875 0.640625 0.296875 1.859375l0 5.265625l-1.40625 0l0 -5.265625q0 -1.046875 -0.453125 -1.53125q-0.453125 -0.484375 -1.296875 -0.484375q-0.625 0 -1.171875 0.328125q-0.546875 0.328125 -0.78125 0.890625q-0.234375 0.546875 -0.234375 1.515625l0 4.546875l-1.40625 0zm14.5703125 -2.671875l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.703125 -2.359375 0.703125q-1.828125 0 -2.890625 -1.125q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875zm13.2109375 4.953125l0 -1.046875q-0.78125 1.234375 -2.3125 1.234375q-1.0 0 -1.828125 -0.546875q-0.828125 -0.546875 -1.296875 -1.53125q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453125l-1.3125 0zm-4.4375 -4.140625q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm13.3984375 4.140625l0 -1.21875q-0.96875 1.40625 -2.640625 1.40625q-0.734375 0 -1.375 -0.28125q-0.625 -0.28125 -0.9375 -0.703125q-0.3125 -0.4375 -0.4375 -1.046875q-0.078125 -0.421875 -0.078125 -1.3125l0 -5.140625l1.40625 0l0 4.59375q0 1.109375 0.078125 1.484375q0.140625 0.5625 0.5625 0.875q0.4375 0.3125 1.0625 0.3125q0.640625 0 1.1875 -0.3125q0.5625 -0.328125 0.78125 -0.890625q0.234375 -0.5625 0.234375 -1.625l0 -4.4375l1.40625 0l0 8.296875l-1.25 0zm3.4296875 0l0 -11.453125l1.40625 0l0 11.453125l-1.40625 0zm9.2578125 -2.671875l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.703125 -2.359375 0.703125q-1.828125 0 -2.890625 -1.125q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875z" fill-rule="nonzero"/><path fill="#000000" d="m136.96883 165.60799l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm9.0078125 4.875l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm12.0 -2.828125l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm4.796875 3.203125l0.09375 -1.328125q0.4375 0.125 0.84375 0.125q0.4375 0 0.703125 -0.1875q0.34375 -0.265625 0.75 -0.96875l0.453125 -0.8125l-1.390625 -8.328125l1.390625 0l0.625 4.1875q0.1875 1.25 0.328125 2.484375l3.703125 -6.671875l1.484375 0l-5.296875 9.40625q-0.765625 1.375 -1.359375 1.8125q-0.59375 0.453125 -1.359375 0.453125q-0.5 0 -0.96875 -0.171875zm12.9765625 -3.203125l1.734375 -8.296875l1.40625 0l-0.28125 1.359375q0.78125 -0.875 1.40625 -1.203125q0.625 -0.34375 1.34375 -0.34375q0.78125 0 1.296875 0.40625q0.515625 0.40625 0.6875 1.140625q0.625 -0.78125 1.328125 -1.15625q0.703125 -0.390625 1.46875 -0.390625q1.046875 0 1.5625 0.5q0.515625 0.484375 0.515625 1.375q0 0.375 -0.171875 1.265625l-1.125 5.34375l-1.40625 0l1.140625 -5.484375q0.140625 -0.671875 0.140625 -0.96875q0 -0.40625 -0.265625 -0.640625q-0.25 -0.234375 -0.71875 -0.234375q-0.625 0 -1.28125 0.390625q-0.65625 0.375 -1.03125 1.0q-0.359375 0.625 -0.625 1.90625l-0.84375 4.03125l-1.421875 0l1.171875 -5.609375q0.125 -0.5625 0.125 -0.8125q0 -0.40625 -0.25 -0.65625q-0.25 -0.25 -0.65625 -0.25q-0.609375 0 -1.265625 0.390625q-0.65625 0.375 -1.078125 1.0625q-0.40625 0.6875 -0.671875 1.953125l-0.828125 3.921875l-1.40625 0zm15.34375 -9.859375l0.328125 -1.59375l1.40625 0l-0.328125 1.59375l-1.40625 0zm-2.0625 9.859375l1.734375 -8.296875l1.40625 0l-1.734375 8.296875l-1.40625 0zm3.6015625 0l1.734375 -8.296875l1.28125 0l-0.296875 1.4375q0.828125 -0.84375 1.546875 -1.234375q0.734375 -0.390625 1.5 -0.390625q1.0 0 1.578125 0.546875q0.578125 0.546875 0.578125 1.453125q0 0.46875 -0.203125 1.453125l-1.0625 5.03125l-1.40625 0l1.09375 -5.265625q0.171875 -0.765625 0.171875 -1.125q0 -0.421875 -0.296875 -0.671875q-0.28125 -0.265625 -0.8125 -0.265625q-1.09375 0 -1.9375 0.78125q-0.84375 0.78125 -1.25 2.6875l-0.796875 3.859375l-1.421875 0zm14.5703125 -1.5q-1.5 1.6875 -3.0625 1.6875q-0.953125 0 -1.546875 -0.546875q-0.59375 -0.5625 -0.59375 -1.359375q0 -0.515625 0.265625 -1.796875l1.0 -4.78125l1.421875 0l-1.109375 5.296875q-0.140625 0.671875 -0.140625 1.03125q0 0.46875 0.28125 0.734375q0.28125 0.265625 0.84375 0.265625q0.59375 0 1.15625 -0.28125q0.5625 -0.296875 0.96875 -0.78125q0.421875 -0.5 0.671875 -1.171875q0.171875 -0.4375 0.40625 -1.515625l0.75 -3.578125l1.40625 0l-1.734375 8.296875l-1.296875 0l0.3125 -1.5zm6.5390625 0.34375l-0.234375 1.171875q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.3125 -0.375 -0.84375q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm7.2265625 -1.671875l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 192.92389l233.00789 0l0 112.12598l-233.00789 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 192.92389l233.00789 0l0 112.12598l-233.00789 0z" fill-rule="evenodd"/><path fill="#000000" d="m34.312584 217.28389l4.40625 -11.453125l1.640625 0l4.6875 11.453125l-1.734375 0l-1.328125 -3.46875l-4.796875 0l-1.25 3.46875l-1.625 0zm3.3125 -4.703125l3.890625 0l-1.203125 -3.171875q-0.546875 -1.453125 -0.8125 -2.375q-0.21875 1.09375 -0.609375 2.1875l-1.265625 3.359375zm13.859375 1.65625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8125 -2.28125 0.8125q-1.703125 0 -2.75 -1.109375q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm5.65625 1.78125l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm8.3359375 -2.484375l1.390625 -0.21875q0.109375 0.84375 0.640625 1.296875q0.546875 0.4375 1.5 0.4375q0.96875 0 1.4375 -0.390625q0.46875 -0.40625 0.46875 -0.9375q0 -0.46875 -0.40625 -0.75q-0.296875 -0.1875 -1.4375 -0.46875q-1.546875 -0.390625 -2.15625 -0.671875q-0.59375 -0.296875 -0.90625 -0.796875q-0.296875 -0.5 -0.296875 -1.109375q0 -0.5625 0.25 -1.03125q0.25 -0.46875 0.6875 -0.78125q0.328125 -0.25 0.890625 -0.40625q0.578125 -0.171875 1.21875 -0.171875q0.984375 0 1.71875 0.28125q0.734375 0.28125 1.078125 0.765625q0.359375 0.46875 0.5 1.28125l-1.375 0.1875q-0.09375 -0.640625 -0.546875 -1.0q-0.453125 -0.359375 -1.265625 -0.359375q-0.96875 0 -1.390625 0.328125q-0.40625 0.3125 -0.40625 0.734375q0 0.28125 0.171875 0.5q0.171875 0.21875 0.53125 0.375q0.21875 0.078125 1.25 0.359375q1.484375 0.390625 2.078125 0.65625q0.59375 0.25 0.921875 0.734375q0.34375 0.484375 0.34375 1.203125q0 0.703125 -0.421875 1.328125q-0.40625 0.609375 -1.1875 0.953125q-0.765625 0.34375 -1.734375 0.34375q-1.625 0 -2.46875 -0.671875q-0.84375 -0.671875 -1.078125 -2.0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m45.49346 236.11156l195.77954 0l0 53.48033l-195.77954 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m45.49346 236.11156l195.77954 0l0 53.48033l-195.77954 0z" fill-rule="evenodd"/><path fill="#000000" d="m55.446587 256.63156l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m59.08721 263.63156l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m103.84112 259.76828l58.04882 0l0 13.798828l-58.04882 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m104.34112 268.2253l0.3125 -1.40625q0.421875 -0.015625 0.671875 -0.125q0.25 -0.109375 0.453125 -0.375q0.21875 -0.265625 0.34375 -0.609375q0.140625 -0.34375 0.296875 -1.09375q0.21875 -1.0625 0.4375 -1.515625q0.234375 -0.453125 0.546875 -0.703125q0.328125 -0.25 0.890625 -0.40625q0.359375 -0.09375 1.125 -0.09375l0.3125 0l-0.3125 1.390625q-0.65625 0 -0.875 0.09375q-0.21875 0.078125 -0.328125 0.265625q-0.078125 0.109375 -0.265625 0.859375q-0.328125 1.296875 -0.4375 1.578125q-0.203125 0.515625 -0.5 0.828125q-0.28125 0.3125 -0.796875 0.609375q0.34375 0.234375 0.5 0.5625q0.171875 0.3125 0.171875 0.84375q0 0.203125 -0.078125 0.625q-0.1875 1.15625 -0.25 1.359375q-0.046875 0.21875 -0.046875 0.359375q0 0.15625 0.078125 0.265625q0.09375 0.109375 0.25 0.15625q0.171875 0.0625 0.75 0.0625l-0.3125 1.40625l-0.3125 0q-0.796875 0 -1.203125 -0.140625q-0.390625 -0.125 -0.609375 -0.4375q-0.21875 -0.296875 -0.21875 -0.78125q0 -0.390625 0.203125 -1.328125q0.203125 -0.9375 0.203125 -1.25q0 -0.5 -0.21875 -0.734375q-0.21875 -0.234375 -0.78125 -0.265625zm4.669922 0l0.3125 -1.40625q0.421875 -0.015625 0.671875 -0.125q0.25 -0.109375 0.453125 -0.375q0.21875 -0.265625 0.34375 -0.609375q0.140625 -0.34375 0.296875 -1.09375q0.21875 -1.0625 0.4375 -1.515625q0.234375 -0.453125 0.546875 -0.703125q0.328125 -0.25 0.890625 -0.40625q0.359375 -0.09375 1.125 -0.09375l0.3125 0l-0.3125 1.390625q-0.65625 0 -0.875 0.09375q-0.21875 0.078125 -0.328125 0.265625q-0.078125 0.109375 -0.265625 0.859375q-0.328125 1.296875 -0.4375 1.578125q-0.203125 0.515625 -0.5 0.828125q-0.28125 0.3125 -0.796875 0.609375q0.34375 0.234375 0.5 0.5625q0.171875 0.3125 0.171875 0.84375q0 0.203125 -0.078125 0.625q-0.1875 1.15625 -0.25 1.359375q-0.046875 0.21875 -0.046875 0.359375q0 0.15625 0.078125 0.265625q0.09375 0.109375 0.25 0.15625q0.171875 0.0625 0.75 0.0625l-0.3125 1.40625l-0.3125 0q-0.796875 0 -1.203125 -0.140625q-0.390625 -0.125 -0.609375 -0.4375q-0.21875 -0.296875 -0.21875 -0.78125q0 -0.390625 0.203125 -1.328125q0.203125 -0.9375 0.203125 -1.25q0 -0.5 -0.21875 -0.734375q-0.21875 -0.234375 -0.78125 -0.265625zm4.435547 0.671875l1.625 -0.265625q0.21875 0.515625 0.53125 0.734375q0.328125 0.203125 0.890625 0.203125q0.578125 0 0.921875 -0.25q0.234375 -0.171875 0.234375 -0.421875q0 -0.171875 -0.125 -0.3125q-0.125 -0.125 -0.6875 -0.3125q-1.53125 -0.5 -1.890625 -0.796875q-0.5625 -0.453125 -0.5625 -1.203125q0 -0.734375 0.546875 -1.265625q0.765625 -0.75 2.28125 -0.75q1.203125 0 1.8125 0.453125q0.609375 0.4375 0.78125 1.1875l-1.5625 0.265625q-0.109375 -0.34375 -0.390625 -0.515625q-0.375 -0.21875 -0.90625 -0.21875q-0.53125 0 -0.765625 0.171875q-0.21875 0.171875 -0.21875 0.40625q0 0.234375 0.234375 0.375q0.140625 0.09375 0.9375 0.328125q1.234375 0.359375 1.65625 0.703125q0.578125 0.5 0.578125 1.171875q0 0.890625 -0.75 1.546875q-0.734375 0.640625 -2.09375 0.640625q-1.34375 0 -2.078125 -0.484375q-0.734375 -0.5 -1.0 -1.390625zm12.955078 -0.859375l-4.21875 0q-0.015625 0.109375 -0.015625 0.15625q0 0.625 0.359375 1.0q0.359375 0.375 0.859375 0.375q0.84375 0 1.3125 -0.859375l1.5 0.25q-0.4375 0.90625 -1.171875 1.359375q-0.734375 0.453125 -1.65625 0.453125q-1.25 0 -2.03125 -0.78125q-0.78125 -0.796875 -0.78125 -2.109375q0 -1.28125 0.703125 -2.265625q0.96875 -1.359375 2.765625 -1.359375q1.140625 0 1.8125 0.71875q0.671875 0.703125 0.671875 1.96875q0 0.609375 -0.109375 1.09375zm-1.421875 -1.015625q0 -0.125 0 -0.171875q0 -0.703125 -0.3125 -1.046875q-0.3125 -0.34375 -0.828125 -0.34375q-0.515625 0 -0.9375 0.390625q-0.40625 0.390625 -0.5625 1.171875l2.640625 0zm3.2363205 -2.609375l1.578125 0l-0.265625 1.203125q0.890625 -1.359375 1.90625 -1.359375q0.375 0 0.78125 0.1875l-0.640625 1.375q-0.234375 -0.078125 -0.484375 -0.078125q-0.4375 0 -0.890625 0.328125q-0.4375 0.328125 -0.703125 0.875q-0.25 0.546875 -0.484375 1.734375l-0.421875 1.953125l-1.6718674 0l1.2968674 -6.21875zm6.576172 6.21875l-1.453125 0l-1.25 -6.21875l1.65625 0l0.4375 2.703125q0.1875 1.109375 0.21875 1.46875q0.046875 -0.09375 0.40625 -0.75q0.359375 -0.671875 0.453125 -0.796875l1.546875 -2.625l1.8125 0l-3.828125 6.21875zm9.626953 -2.59375l-4.21875 0q-0.015625 0.109375 -0.015625 0.15625q0 0.625 0.359375 1.0q0.359375 0.375 0.859375 0.375q0.84375 0 1.3125 -0.859375l1.5 0.25q-0.4375 0.90625 -1.171875 1.359375q-0.734375 0.453125 -1.65625 0.453125q-1.25 0 -2.03125 -0.78125q-0.78125 -0.796875 -0.78125 -2.109375q0 -1.28125 0.703125 -2.265625q0.96875 -1.359375 2.765625 -1.359375q1.140625 0 1.8125 0.71875q0.671875 0.703125 0.671875 1.96875q0 0.609375 -0.109375 1.09375zm-1.421875 -1.015625q0 -0.125 0 -0.171875q0 -0.703125 -0.3125 -1.046875q-0.3125 -0.34375 -0.828125 -0.34375q-0.515625 0 -0.9375 0.390625q-0.40625 0.390625 -0.5625 1.171875l2.640625 0zm3.2363281 -2.609375l1.578125 0l-0.265625 1.203125q0.890625 -1.359375 1.90625 -1.359375q0.375 0 0.78125 0.1875l-0.640625 1.375q-0.234375 -0.078125 -0.484375 -0.078125q-0.4375 0 -0.890625 0.328125q-0.4375 0.328125 -0.703125 0.875q-0.25 0.546875 -0.484375 1.734375l-0.421875 1.953125l-1.671875 0l1.296875 -6.21875zm7.044922 3.8125q-0.53125 0.03125 -0.828125 0.21875q-0.296875 0.1875 -0.515625 0.609375q-0.21875 0.40625 -0.4375 1.4375q-0.203125 1.015625 -0.4375 1.453125q-0.21875 0.453125 -0.546875 0.703125q-0.3125 0.25 -0.875 0.40625q-0.375 0.109375 -1.125 0.109375l-0.3125 0l0.296875 -1.40625q0.640625 0 0.859375 -0.09375q0.234375 -0.09375 0.359375 -0.265625q0.078125 -0.125 0.25 -0.84375q0.328125 -1.296875 0.421875 -1.546875q0.21875 -0.515625 0.53125 -0.875q0.3125 -0.359375 0.796875 -0.609375q-0.390625 -0.28125 -0.546875 -0.578125q-0.140625 -0.296875 -0.140625 -0.828125q0 -0.203125 0.078125 -0.625q0.1875 -1.125 0.234375 -1.34375q0.0625 -0.234375 0.0625 -0.390625q0 -0.15625 -0.078125 -0.25q-0.078125 -0.109375 -0.25 -0.15625q-0.15625 -0.0625 -0.75 -0.0625l0.3125 -1.390625l0.3125 0q0.796875 0 1.1875 0.140625q0.40625 0.125 0.625 0.421875q0.21875 0.296875 0.21875 0.78125q0 0.390625 -0.203125 1.328125q-0.203125 0.9375 -0.203125 1.25q0 0.5 0.21875 0.734375q0.21875 0.234375 0.78125 0.265625l-0.296875 1.40625zm4.669922 0q-0.53125 0.03125 -0.828125 0.21875q-0.296875 0.1875 -0.515625 0.609375q-0.21875 0.40625 -0.4375 1.4375q-0.203125 1.015625 -0.4375 1.453125q-0.21875 0.453125 -0.546875 0.703125q-0.3125 0.25 -0.875 0.40625q-0.375 0.109375 -1.125 0.109375l-0.3125 0l0.296875 -1.40625q0.640625 0 0.859375 -0.09375q0.234375 -0.09375 0.359375 -0.265625q0.078125 -0.125 0.25 -0.84375q0.328125 -1.296875 0.421875 -1.546875q0.21875 -0.515625 0.53125 -0.875q0.3125 -0.359375 0.796875 -0.609375q-0.390625 -0.28125 -0.546875 -0.578125q-0.140625 -0.296875 -0.140625 -0.828125q0 -0.203125 0.078125 -0.625q0.1875 -1.125 0.234375 -1.34375q0.0625 -0.234375 0.0625 -0.390625q0 -0.15625 -0.078125 -0.25q-0.078125 -0.109375 -0.25 -0.15625q-0.15625 -0.0625 -0.75 -0.0625l0.3125 -1.390625l0.3125 0q0.796875 0 1.1875 0.140625q0.40625 0.125 0.625 0.421875q0.21875 0.296875 0.21875 0.78125q0 0.390625 -0.203125 1.328125q-0.203125 0.9375 -0.203125 1.25q0 0.5 0.21875 0.734375q0.21875 0.234375 0.78125 0.265625l-0.296875 1.40625z" fill-rule="nonzero"/><path fill="#000000" d="m163.79619 263.24094l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m103.84112 271.41156l58.04882 0l0 1.0799866l-58.04882 0l0 -1.0799866z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m637.41473 52.889763l139.37012 0l0 56.598427l-139.37012 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m637.41473 52.889763l139.37012 0l0 56.598427l-139.37012 0z" fill-rule="evenodd"/><path fill="#000000" d="m647.36786 73.40977l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m653.47723 84.39414l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm6.3867188 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm9.949219 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm5.453125 -2.390625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm7.0996094 -2.28125l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm1.546875 -0.828125q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125z" fill-rule="nonzero"/><path fill="#000000" d="m651.0085 94.40977l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m695.7624 90.546486l28.02539 0l0 13.798828l-28.02539 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m697.68427 101.40977l-2.28125 0l3.78125 -4.34375l-2.125 -4.25l1.84375 0l0.84375 1.609375q0.03125 0.09375 0.5625 1.1875q0.046875 0.0625 0.078125 0.171875q0.71875 -0.875 1.203125 -1.4375l1.359375 -1.53125l2.21875 0l-3.9375 4.53125l2.125 4.0625l-2.0 0l-0.640625 -1.296875q-0.5 -1.03125 -0.671875 -1.46875q-0.21875 0.34375 -1.171875 1.421875l-1.1875 1.34375zm7.5039062 -4.9375l0.3125 -1.5q2.1875 -0.953125 3.375 -2.203125l1.015625 0l-1.8125 8.640625l-1.6875 0l1.25 -5.953125q-0.53125 0.34375 -1.21875 0.625q-0.6875 0.28125 -1.234375 0.390625zm8.423828 -0.96875l-1.640625 -0.25q0.1875 -1.203125 0.921875 -1.828125q0.734375 -0.640625 1.828125 -0.640625q1.203125 0 1.875 0.65625q0.6875 0.640625 0.6875 1.640625q0 0.515625 -0.21875 1.03125q-0.203125 0.515625 -0.671875 1.078125q-0.34375 0.390625 -1.140625 1.125q-0.78125 0.71875 -1.046875 1.0q-0.25 0.265625 -0.484375 0.5625l2.984375 0l-0.3125 1.53125l-5.21875 0q0.078125 -0.640625 0.359375 -1.203125q0.296875 -0.578125 0.71875 -1.0625q0.4375 -0.5 1.59375 -1.59375q0.875 -0.828125 1.09375 -1.078125q0.421875 -0.453125 0.5625 -0.78125q0.15625 -0.34375 0.15625 -0.609375q0 -0.4375 -0.25 -0.703125q-0.25 -0.28125 -0.65625 -0.28125q-0.390625 0 -0.6875 0.3125q-0.296875 0.296875 -0.453125 1.09375zm4.111328 3.65625l1.609375 -0.1875q0.109375 0.6875 0.359375 0.953125q0.265625 0.265625 0.703125 0.265625q0.5625 0 0.9375 -0.390625q0.390625 -0.390625 0.390625 -1.0q0 -0.515625 -0.3125 -0.828125q-0.296875 -0.3125 -0.8125 -0.3125q-0.125 0 -0.265625 0.03125l0.28125 -1.40625q0.09375 0.015625 0.171875 0.015625q0.671875 0 1.015625 -0.34375q0.359375 -0.34375 0.359375 -0.921875q0 -0.421875 -0.234375 -0.65625q-0.234375 -0.25 -0.625 -0.25q-0.359375 0 -0.65625 0.265625q-0.28125 0.265625 -0.453125 0.921875l-1.53125 -0.3125q0.296875 -0.953125 0.8125 -1.453125q0.796875 -0.765625 1.953125 -0.765625q1.171875 0 1.78125 0.65625q0.625 0.65625 0.625 1.578125q0 0.671875 -0.390625 1.21875q-0.390625 0.53125 -1.078125 0.78125q0.546875 0.28125 0.796875 0.75q0.265625 0.453125 0.265625 0.953125q0 0.953125 -0.671875 1.75q-0.921875 1.078125 -2.375 1.078125q-1.09375 0 -1.796875 -0.625q-0.703125 -0.625 -0.859375 -1.765625z" fill-rule="nonzero"/><path fill="#000000" d="m729.028 94.01914l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m695.7624 102.189766l28.02539 0l0 1.0800018l-28.02539 0l0 -1.0800018z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m258.3517 113.8189l81.543304 -32.62992" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m258.3517 113.8189l75.97275 -30.40084" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m334.93808 84.95158l3.5996704 -3.2194824l-4.826935 0.15245819z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m258.3517 113.8189l81.543304 72.37795" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m258.3517 113.8189l77.05597 68.395" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m334.31122 183.4492l4.490448 1.7771912l-2.2975159 -4.2478027z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m352.57217 6.0367455l140.56693 0l0 33.51181l-140.56693 0z" fill-rule="evenodd"/><path fill="#000000" d="m361.54092 32.956745l5.125 -13.359377l1.90625 0l5.46875 13.359377l-2.015625 0l-1.546875 -4.046877l-5.59375 0l-1.46875 4.046877l-1.875 0zm3.859375 -5.484377l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484377l0 -13.359377l1.640625 0l0 13.359377l-1.640625 0zm10.816711 -3.109377l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.312502q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.2968769q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125702 5.765627l0 -9.671877l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.062502l-1.625 0zm9.806427 -1.4687519l0.234375 1.4531269q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.4687519 -0.203125 -1.9375019l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm7.2884827 1.4687519l0 -13.359377l1.765625 0l0 13.359377l-1.765625 0zm4.683319 0l0 -9.671877l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953127l-1.640625 0l0 -5.890627q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281252l-1.640625 0zm9.719452 -2.890627l1.625 -0.25q0.125 0.96875 0.75 1.5q0.625 0.515625 1.75 0.515625q1.125 0 1.671875 -0.453125q0.546875 -0.46875 0.546875 -1.09375q0 -0.546875 -0.484375 -0.875q-0.328125 -0.21875 -1.671875 -0.546875q-1.8125 -0.46875 -2.515625 -0.796875q-0.6875 -0.328125 -1.046875 -0.90625q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.640625 0.296875 -1.1875q0.296875 -0.5625 0.8125 -0.921875q0.375 -0.28125 1.03125 -0.46875q0.671875 -0.203125 1.421875 -0.203125q1.140625 0 2.0 0.328125q0.859375 0.328125 1.265625 0.890625q0.421875 0.5625 0.578125 1.5l-1.609375 0.21875q-0.109375 -0.75 -0.640625 -1.171875q-0.515625 -0.421875 -1.46875 -0.421875q-1.140625 0 -1.625 0.375q-0.46875 0.375 -0.46875 0.875q0 0.3125 0.1875 0.578125q0.203125 0.265625 0.640625 0.4375q0.234375 0.09375 1.4375 0.421875q1.75 0.453125 2.4375 0.75q0.6875 0.296875 1.078125 0.859375q0.390625 0.5625 0.390625 1.40625q0 0.828125 -0.484375 1.546875q-0.46875 0.7187519 -1.375 1.1250019q-0.90625 0.390625 -2.046875 0.390625q-1.875 0 -2.875 -0.78125q-0.984375 -0.7812519 -1.25 -2.328127zm13.5625 1.421875l0.234375 1.4531269q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.4687519 -0.203125 -1.9375019l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm7.917694 0.28125q-0.921875 0.7656269 -1.765625 1.0937519q-0.828125 0.3125 -1.796875 0.3125q-1.59375 0 -2.453125 -0.78125q-0.859375 -0.7812519 -0.859375 -1.9843769q0 -0.71875 0.328125 -1.296875q0.328125 -0.59375 0.84375 -0.9375q0.53125 -0.359375 1.1875 -0.546875q0.46875 -0.125 1.453125 -0.25q1.984375 -0.234375 2.921875 -0.5625q0.015625 -0.34375 0.015625 -0.421875q0 -1.0 -0.46875 -1.421875q-0.625 -0.546875 -1.875 -0.546875q-1.15625 0 -1.703125 0.40625q-0.546875 0.40625 -0.8125 1.421875l-1.609375 -0.21875q0.21875 -1.015625 0.71875 -1.640625q0.5 -0.640625 1.453125 -0.984375q0.953125 -0.34375 2.1875 -0.34375q1.25 0 2.015625 0.296875q0.78125 0.28125 1.140625 0.734375q0.375 0.4375 0.515625 1.109375q0.078125 0.421875 0.078125 1.515625l0 2.1875q0 2.28125 0.109375 2.890625q0.109375 0.5937519 0.40625 1.1562519l-1.703125 0q-0.265625 -0.515625 -0.328125 -1.1875019zm-0.140625 -3.671875q-0.890625 0.375 -2.671875 0.625q-1.015625 0.140625 -1.4375 0.328125q-0.421875 0.1875 -0.65625 0.53125q-0.21875 0.34375 -0.21875 0.78125q0 0.65625 0.5 1.09375q0.5 0.4375 1.453125 0.4375q0.9375 0 1.671875 -0.40625q0.75 -0.421875 1.09375 -1.140625q0.265625 -0.5625 0.265625 -1.640625l0 -0.609375zm4.203827 4.859377l0 -9.671877l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953127l-1.640625 0l0 -5.890627q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281252l-1.640625 0zm16.688232 -3.546877l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609377q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.2968769q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm9.640625 0.4375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.312502q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.2968769q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625z" fill-rule="nonzero"/><path fill="#ffffff" d="m339.90027 52.889763l139.37009 0l0 56.598427l-139.37009 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m339.90027 52.889763l139.37009 0l0 56.598427l-139.37009 0z" fill-rule="evenodd"/><path fill="#000000" d="m369.50748 82.893974l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.291229 0.921875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.0056458 0l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm10.421875 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.1667175 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm8.062012 0l4.0625 -5.46875l-3.578125 -5.015625l1.65625 0l1.890625 2.6875q0.59375 0.828125 0.84375 1.28125q0.359375 -0.5625 0.84375 -1.1875l2.109375 -2.78125l1.5 0l-3.6875 4.9375l3.984375 5.546875l-1.71875 0l-2.640625 -3.75q-0.21875 -0.3125 -0.46875 -0.6875q-0.34375 0.5625 -0.5 0.78125l-2.625 3.65625l-1.671875 0zm15.166229 0l-1.28125 0l0 -8.203125q-0.46875 0.4375 -1.21875 0.890625q-0.75 0.4375 -1.359375 0.65625l0 -1.25q1.078125 -0.5 1.890625 -1.21875q0.8125 -0.734375 1.140625 -1.40625l0.828125 0l0 10.53125zm10.072968 -1.234375l0 1.234375l-6.9375 0q-0.015625 -0.46875 0.15625 -0.890625q0.265625 -0.71875 0.84375 -1.40625q0.59375 -0.6875 1.6875 -1.578125q1.71875 -1.40625 2.3125 -2.21875q0.609375 -0.828125 0.609375 -1.5625q0 -0.765625 -0.5625 -1.28125q-0.546875 -0.53125 -1.421875 -0.53125q-0.921875 0 -1.484375 0.5625q-0.5625 0.5625 -0.5625 1.546875l-1.328125 -0.140625q0.140625 -1.484375 1.015625 -2.25q0.890625 -0.78125 2.390625 -0.78125q1.515625 0 2.390625 0.84375q0.875 0.828125 0.875 2.0625q0 0.640625 -0.265625 1.25q-0.25 0.59375 -0.84375 1.265625q-0.59375 0.671875 -1.984375 1.859375q-1.15625 0.96875 -1.484375 1.3125q-0.328125 0.34375 -0.546875 0.703125l5.140625 0zm1.385498 -1.53125l1.296875 -0.171875q0.21875 1.09375 0.75 1.578125q0.53125 0.484375 1.296875 0.484375q0.90625 0 1.53125 -0.625q0.640625 -0.640625 0.640625 -1.5625q0 -0.890625 -0.59375 -1.46875q-0.578125 -0.578125 -1.46875 -0.578125q-0.359375 0 -0.90625 0.140625l0.140625 -1.125q0.125 0.015625 0.203125 0.015625q0.828125 0 1.484375 -0.421875q0.65625 -0.4375 0.65625 -1.34375q0 -0.703125 -0.484375 -1.15625q-0.46875 -0.46875 -1.234375 -0.46875q-0.75 0 -1.25 0.46875q-0.5 0.46875 -0.640625 1.421875l-1.28125 -0.234375q0.234375 -1.296875 1.0625 -2.0q0.84375 -0.71875 2.09375 -0.71875q0.859375 0 1.578125 0.375q0.71875 0.359375 1.09375 1.0q0.390625 0.640625 0.390625 1.34375q0 0.6875 -0.375 1.25q-0.359375 0.546875 -1.0625 0.875q0.921875 0.21875 1.4375 0.90625q0.515625 0.671875 0.515625 1.6875q0 1.375 -1.0 2.328125q-1.0 0.953125 -2.53125 0.953125q-1.390625 0 -2.296875 -0.8125q-0.90625 -0.828125 -1.046875 -2.140625z" fill-rule="nonzero"/><path fill="#ffffff" d="m339.89764 157.89842l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m339.89764 157.89842l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path fill="#000000" d="m370.23578 187.90263l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.291229 0.921875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.1667175 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.0056458 0l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm10.421875 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm11.828278 0l0 -4.4375l-4.046875 -6.046875l1.6875 0l2.0625 3.15625q0.578125 0.890625 1.0625 1.78125q0.484375 -0.828125 1.15625 -1.859375l2.03125 -3.078125l1.609375 0l-4.1875 6.046875l0 4.4375l-1.375 0zm10.416229 0l0 -2.515625l-4.546875 0l0 -1.171875l4.78125 -6.796875l1.0625 0l0 6.796875l1.40625 0l0 1.171875l-1.40625 0l0 2.515625l-1.296875 0zm0 -3.6875l0 -4.734375l-3.28125 4.734375l3.28125 0zm4.0260925 0.9375l1.34375 -0.109375q0.15625 0.984375 0.703125 1.484375q0.546875 0.5 1.328125 0.5q0.921875 0 1.5625 -0.703125q0.65625 -0.703125 0.65625 -1.859375q0 -1.109375 -0.625 -1.734375q-0.625 -0.640625 -1.625 -0.640625q-0.625 0 -1.125 0.28125q-0.5 0.28125 -0.78125 0.734375l-1.203125 -0.15625l1.015625 -5.390625l5.21875 0l0 1.21875l-4.1875 0l-0.578125 2.828125q0.953125 -0.65625 1.984375 -0.65625q1.375 0 2.3125 0.953125q0.953125 0.953125 0.953125 2.4375q0 1.4375 -0.828125 2.46875q-1.015625 1.265625 -2.75 1.265625q-1.4375 0 -2.34375 -0.796875q-0.90625 -0.796875 -1.03125 -2.125zm14.838623 -5.171875l-1.28125 0.09375q-0.171875 -0.75 -0.484375 -1.09375q-0.53125 -0.546875 -1.296875 -0.546875q-0.609375 0 -1.078125 0.34375q-0.609375 0.4375 -0.96875 1.296875q-0.34375 0.84375 -0.359375 2.421875q0.46875 -0.71875 1.140625 -1.0625q0.671875 -0.34375 1.40625 -0.34375q1.296875 0 2.203125 0.953125q0.90625 0.953125 0.90625 2.453125q0 0.984375 -0.4375 1.84375q-0.421875 0.84375 -1.171875 1.296875q-0.734375 0.4375 -1.6875 0.4375q-1.609375 0 -2.625 -1.171875q-1.015625 -1.1875 -1.015625 -3.90625q0 -3.046875 1.125 -4.421875q0.984375 -1.203125 2.640625 -1.203125q1.234375 0 2.03125 0.703125q0.796875 0.6875 0.953125 1.90625zm-5.265625 4.515625q0 0.671875 0.28125 1.28125q0.28125 0.609375 0.78125 0.9375q0.515625 0.3125 1.078125 0.3125q0.8125 0 1.390625 -0.65625q0.59375 -0.671875 0.59375 -1.796875q0 -1.09375 -0.578125 -1.71875q-0.578125 -0.625 -1.453125 -0.625q-0.875 0 -1.484375 0.625q-0.609375 0.625 -0.609375 1.640625z" fill-rule="nonzero"/><path fill="#ffffff" d="m339.90027 261.96118l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m339.90027 261.96118l140.56693 0l0 56.59842l-140.56693 0z" fill-rule="evenodd"/><path fill="#000000" d="m370.5174 291.9654l1.3125 -0.109375q0.09375 0.78125 0.421875 1.296875q0.34375 0.5 1.0625 0.8125q0.71875 0.3125 1.609375 0.3125q0.796875 0 1.40625 -0.234375q0.609375 -0.234375 0.90625 -0.640625q0.296875 -0.421875 0.296875 -0.90625q0 -0.5 -0.296875 -0.859375q-0.28125 -0.375 -0.9375 -0.625q-0.421875 -0.171875 -1.875 -0.515625q-1.4375 -0.34375 -2.015625 -0.65625q-0.75 -0.390625 -1.125 -0.96875q-0.359375 -0.59375 -0.359375 -1.3125q0 -0.796875 0.4375 -1.484375q0.453125 -0.6875 1.3125 -1.046875q0.875 -0.359375 1.9375 -0.359375q1.171875 0 2.0625 0.375q0.890625 0.375 1.359375 1.109375q0.484375 0.734375 0.515625 1.65625l-1.328125 0.09375q-0.109375 -1.0 -0.734375 -1.5q-0.609375 -0.515625 -1.8125 -0.515625q-1.265625 0 -1.84375 0.46875q-0.578125 0.46875 -0.578125 1.109375q0 0.5625 0.421875 0.9375q0.390625 0.359375 2.078125 0.75q1.703125 0.375 2.328125 0.65625q0.921875 0.421875 1.359375 1.078125q0.4375 0.640625 0.4375 1.484375q0 0.84375 -0.484375 1.59375q-0.484375 0.734375 -1.390625 1.140625q-0.890625 0.40625 -2.015625 0.40625q-1.421875 0 -2.390625 -0.40625q-0.953125 -0.421875 -1.5 -1.25q-0.546875 -0.828125 -0.578125 -1.890625zm15.291229 0.921875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.0056458 0l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm10.421875 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.1667175 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm8.296387 0l0 -1.28125l5.375 -6.734375q0.5625 -0.703125 1.078125 -1.234375l-5.84375 0l0 -1.234375l7.515625 0l0 1.234375l-5.890625 7.28125l-0.640625 0.734375l6.703125 0l0 1.234375l-8.296875 0zm9.343231 -9.125l0 -1.234375l6.796875 0l0 1.0q-1.0 1.078125 -1.984375 2.84375q-0.984375 1.765625 -1.515625 3.625q-0.390625 1.328125 -0.5 2.890625l-1.328125 0q0.03125 -1.234375 0.484375 -2.984375q0.46875 -1.765625 1.34375 -3.390625q0.875 -1.625 1.84375 -2.75l-5.140625 0zm10.057373 3.4375q-0.796875 -0.296875 -1.1875 -0.84375q-0.390625 -0.546875 -0.390625 -1.296875q0 -1.140625 0.8125 -1.921875q0.828125 -0.78125 2.203125 -0.78125q1.375 0 2.203125 0.796875q0.84375 0.796875 0.84375 1.9375q0 0.734375 -0.390625 1.28125q-0.375 0.53125 -1.15625 0.828125q0.96875 0.3125 1.46875 1.015625q0.5 0.703125 0.5 1.671875q0 1.34375 -0.953125 2.265625q-0.9375 0.90625 -2.5 0.90625q-1.546875 0 -2.5 -0.90625q-0.953125 -0.921875 -0.953125 -2.296875q0 -1.03125 0.515625 -1.71875q0.515625 -0.6875 1.484375 -0.9375zm-0.265625 -2.1875q0 0.75 0.484375 1.21875q0.484375 0.46875 1.25 0.46875q0.734375 0 1.203125 -0.46875q0.484375 -0.46875 0.484375 -1.140625q0 -0.71875 -0.5 -1.1875q-0.484375 -0.484375 -1.203125 -0.484375q-0.734375 0 -1.234375 0.46875q-0.484375 0.46875 -0.484375 1.125zm-0.40625 4.84375q0 0.5625 0.25 1.078125q0.265625 0.5 0.78125 0.796875q0.515625 0.28125 1.109375 0.28125q0.921875 0 1.515625 -0.59375q0.609375 -0.59375 0.609375 -1.515625q0 -0.9375 -0.625 -1.53125q-0.609375 -0.609375 -1.546875 -0.609375q-0.90625 0 -1.5 0.609375q-0.59375 0.59375 -0.59375 1.484375zm7.0260925 0.609375l1.25 -0.125q0.15625 0.875 0.59375 1.28125q0.4375 0.390625 1.140625 0.390625q0.59375 0 1.03125 -0.265625q0.453125 -0.28125 0.734375 -0.734375q0.296875 -0.453125 0.484375 -1.21875q0.1875 -0.78125 0.1875 -1.59375q0 -0.078125 0 -0.25q-0.390625 0.609375 -1.0625 1.0q-0.65625 0.375 -1.4375 0.375q-1.3125 0 -2.21875 -0.9375q-0.890625 -0.953125 -0.890625 -2.484375q0 -1.609375 0.9375 -2.578125q0.9375 -0.96875 2.359375 -0.96875q1.03125 0 1.875 0.546875q0.84375 0.546875 1.28125 1.578125q0.4375 1.015625 0.4375 2.953125q0 2.0 -0.4375 3.203125q-0.421875 1.1875 -1.296875 1.8125q-0.859375 0.609375 -2.015625 0.609375q-1.234375 0 -2.015625 -0.671875q-0.78125 -0.6875 -0.9375 -1.921875zm5.28125 -4.640625q0 -1.109375 -0.59375 -1.75q-0.59375 -0.65625 -1.421875 -0.65625q-0.859375 0 -1.5 0.703125q-0.625 0.703125 -0.625 1.8125q0 1.0 0.59375 1.640625q0.609375 0.625 1.5 0.625q0.890625 0 1.46875 -0.625q0.578125 -0.640625 0.578125 -1.75z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m258.3517 113.8189l81.543304 176.44095" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m258.3517 113.8189l79.026184 170.99445" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m335.87854 285.50632l3.4031677 3.4264832l-0.40444946 -4.812378z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m661.33215 6.0367227l140.5669 0l0 33.51181l-140.5669 0z" fill-rule="evenodd"/><path fill="#000000" d="m670.3009 32.956722l5.125 -13.359377l1.90625 0l5.46875 13.359377l-2.015625 0l-1.546875 -4.046877l-5.59375 0l-1.46875 4.046877l-1.875 0zm3.859375 -5.484377l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm16.162292 1.9375l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609377q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.2968769q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm6.59375 2.078125l0.234375 1.4531269q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.4687519 -0.203125 -1.9375019l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625zm1.6052246 -10.0l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.468752l0 -9.671877l1.640625 0l0 9.671877l-1.640625 0zm3.5354004 -4.843752q0 -2.6875 1.484375 -3.96875q1.25 -1.078125 3.046875 -1.078125q2.0 0 3.265625 1.3125q1.265625 1.296875 1.265625 3.609375q0 1.859375 -0.5625 2.9375q-0.5625 1.0625 -1.640625 1.6562519q-1.0625 0.59375 -2.328125 0.59375q-2.03125 0 -3.28125 -1.2968769q-1.25 -1.3125 -1.25 -3.765625zm1.6875 0q0 1.859375 0.796875 2.796875q0.8125 0.921875 2.046875 0.921875q1.21875 0 2.03125 -0.921875q0.8125 -0.9375 0.8125 -2.84375q0 -1.796875 -0.8125 -2.71875q-0.8125 -0.921875 -2.03125 -0.921875q-1.234375 0 -2.046875 0.921875q-0.796875 0.90625 -0.796875 2.765625zm9.297607 4.843752l0 -9.671877l1.46875 0l0 1.375q1.0625 -1.59375 3.078125 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953127l-1.640625 0l0 -5.890627q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8125 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.281252l-1.640625 0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m637.4121 157.89842l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m637.4121 157.89842l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path fill="#000000" d="m647.36523 178.41843l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m653.4746 189.4028l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm6.3867188 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm9.949219 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm5.453125 -2.390625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm7.0996094 -2.28125l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm1.546875 -0.828125q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125z" fill-rule="nonzero"/><path fill="#000000" d="m651.00586 199.41843l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m695.75977 195.55515l28.02539 0l0 13.798828l-28.02539 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m700.57227 206.41843l-1.765625 0l0.703125 -3.34375l-2.375 -5.25l1.890625 0l1.0625 2.421875q0.375 0.875 0.5 1.265625q0.21875 -0.375 0.515625 -0.8125l0.8125 -1.125l1.203125 -1.75l2.0625 0l-3.9375 5.40625l-0.671875 3.1875zm6.8945312 -1.75l-3.375 0l0.296875 -1.40625l4.640625 -5.4375l1.453125 0l-1.125 5.40625l1.046875 0l-0.3125 1.4375l-1.03125 0l-0.375 1.75l-1.578125 0l0.359375 -1.75zm0.3125 -1.4375l0.546875 -2.671875l-2.265625 2.671875l1.71875 0zm3.4238281 0.71875l1.625 -0.140625q0 0.125 0 0.171875q0 0.609375 0.265625 0.90625q0.265625 0.296875 0.703125 0.296875q0.59375 0 1.078125 -0.5625q0.484375 -0.578125 0.484375 -1.59375q0 -0.59375 -0.28125 -0.890625q-0.265625 -0.3125 -0.71875 -0.3125q-0.328125 0 -0.640625 0.15625q-0.296875 0.140625 -0.59375 0.453125l-1.375 -0.09375l1.296875 -4.390625l4.328125 0l-0.328125 1.53125l-2.84375 0l-0.390625 1.328125q0.234375 -0.109375 0.484375 -0.171875q0.25 -0.0625 0.484375 -0.0625q0.984375 0 1.609375 0.671875q0.640625 0.65625 0.640625 1.765625q0 0.890625 -0.4375 1.765625q-0.4375 0.859375 -1.234375 1.328125q-0.78125 0.453125 -1.640625 0.453125q-1.09375 0 -1.796875 -0.703125q-0.703125 -0.703125 -0.71875 -1.90625zm12.814453 -4.03125l-1.578125 0.140625q-0.046875 -0.515625 -0.25 -0.71875q-0.1875 -0.203125 -0.515625 -0.203125q-0.4375 0 -0.765625 0.34375q-0.46875 0.484375 -0.765625 1.5625q0.546875 -0.359375 1.15625 -0.359375q1.0 0 1.640625 0.6875q0.640625 0.671875 0.640625 1.84375q0 0.9375 -0.453125 1.765625q-0.4375 0.828125 -1.125 1.21875q-0.671875 0.375 -1.421875 0.375q-0.71875 0 -1.296875 -0.359375q-0.578125 -0.359375 -0.890625 -1.046875q-0.3125 -0.703125 -0.3125 -1.859375q0 -2.3125 1.015625 -3.90625q1.03125 -1.609375 2.703125 -1.609375q0.953125 0 1.515625 0.53125q0.578125 0.515625 0.703125 1.59375zm-4.3125 3.96875q0 0.6875 0.265625 1.015625q0.265625 0.3125 0.671875 0.3125q0.484375 0 0.84375 -0.453125q0.46875 -0.625 0.46875 -1.65625q0 -0.671875 -0.265625 -0.984375q-0.265625 -0.328125 -0.640625 -0.328125q-0.328125 0 -0.65625 0.25q-0.328125 0.25 -0.515625 0.78125q-0.171875 0.515625 -0.171875 1.0625z" fill-rule="nonzero"/><path fill="#000000" d="m729.0254 199.0278l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m695.75977 207.19843l28.02539 0l0 1.0800018l-28.02539 0l0 -1.0800018z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m637.41473 261.96167l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m637.41473 261.96167l139.37012 0l0 56.59842l-139.37012 0z" fill-rule="evenodd"/><path fill="#000000" d="m647.36786 282.4817l0 -8.59375l6.203125 0l0 1.015625l-5.0625 0l0 2.625l4.75 0l0 1.015625l-4.75 0l0 2.921875l5.265625 0l0 1.015625l-6.40625 0zm7.8476562 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm14.058594 -0.765625q-0.59375 0.5 -1.140625 0.703125q-0.53125 0.203125 -1.15625 0.203125q-1.03125 0 -1.578125 -0.5q-0.546875 -0.5 -0.546875 -1.28125q0 -0.453125 0.203125 -0.828125q0.203125 -0.390625 0.546875 -0.609375q0.34375 -0.234375 0.765625 -0.34375q0.296875 -0.09375 0.9375 -0.171875q1.265625 -0.140625 1.875 -0.359375q0 -0.21875 0 -0.265625q0 -0.65625 -0.296875 -0.921875q-0.40625 -0.34375 -1.203125 -0.34375q-0.734375 0 -1.09375 0.265625q-0.359375 0.25 -0.53125 0.90625l-1.03125 -0.140625q0.140625 -0.65625 0.46875 -1.0625q0.328125 -0.40625 0.9375 -0.625q0.609375 -0.21875 1.40625 -0.21875q0.796875 0 1.296875 0.1875q0.5 0.1875 0.734375 0.46875q0.234375 0.28125 0.328125 0.71875q0.046875 0.265625 0.046875 0.96875l0 1.40625q0 1.46875 0.0625 1.859375q0.078125 0.390625 0.28125 0.75l-1.109375 0q-0.15625 -0.328125 -0.203125 -0.765625zm-0.09375 -2.359375q-0.578125 0.234375 -1.71875 0.40625q-0.65625 0.09375 -0.921875 0.21875q-0.265625 0.109375 -0.421875 0.328125q-0.140625 0.21875 -0.140625 0.5q0 0.421875 0.3125 0.703125q0.328125 0.28125 0.9375 0.28125q0.609375 0 1.078125 -0.265625q0.484375 -0.265625 0.703125 -0.734375q0.171875 -0.359375 0.171875 -1.046875l0 -0.390625zm2.7050781 -4.25l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.6347656 0l0 -8.59375l1.0625 0l0 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m653.47723 293.46606l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm0.6464844 -2.171875q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.970703 3.109375l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm4.2929688 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm6.3867188 0l0 -6.21875l0.9375 0l0 0.875q0.296875 -0.46875 0.78125 -0.734375q0.484375 -0.28125 1.109375 -0.28125q0.6875 0 1.125 0.28125q0.453125 0.28125 0.625 0.796875q0.75 -1.078125 1.921875 -1.078125q0.9375 0 1.421875 0.515625q0.5 0.5 0.5 1.578125l0 4.265625l-1.046875 0l0 -3.921875q0 -0.625 -0.109375 -0.90625q-0.09375 -0.28125 -0.359375 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.65625 0 -1.09375 0.4375q-0.421875 0.4375 -0.421875 1.40625l0 3.609375l-1.0625 0l0 -4.046875q0 -0.703125 -0.265625 -1.046875q-0.25 -0.359375 -0.828125 -0.359375q-0.453125 0 -0.828125 0.234375q-0.375 0.234375 -0.546875 0.6875q-0.171875 0.453125 -0.171875 1.296875l0 3.234375l-1.046875 0zm9.949219 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm5.453125 -2.390625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm7.0996094 -2.28125l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm1.546875 -0.828125q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125z" fill-rule="nonzero"/><path fill="#000000" d="m651.0085 303.4817l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#010000" fill-opacity="0.0" d="m695.7624 299.6184l27.351562 0l0 13.798828l-27.351562 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m696.05927 310.4817l0.28125 -1.359375l4.953125 -5.796875l-4.0 0l0.296875 -1.4375l6.1875 0l-0.25 1.34375l-5.0 5.84375q0.796875 -0.015625 0.921875 -0.015625q0.5625 0 1.546875 -0.015625l2.03125 0l-0.296875 1.4375l-6.671875 0zm8.283203 -6.921875l0.3125 -1.546875l5.671875 0l-0.25 1.1875q-0.546875 0.4375 -1.203125 1.3125q-0.640625 0.859375 -1.203125 1.9375q-0.546875 1.078125 -0.890625 2.046875q-0.5 1.328125 -0.609375 1.984375l-1.59375 0q0.09375 -0.640625 0.484375 -1.765625q0.484375 -1.390625 1.203125 -2.671875q0.71875 -1.296875 1.75 -2.484375l-3.671875 0zm8.001953 2.1875q-0.453125 -0.296875 -0.6875 -0.6875q-0.21875 -0.390625 -0.21875 -0.859375q0 -0.546875 0.3125 -1.109375q0.328125 -0.578125 0.953125 -0.90625q0.625 -0.328125 1.421875 -0.328125q1.15625 0 1.796875 0.59375q0.640625 0.59375 0.640625 1.515625q0 0.640625 -0.359375 1.125q-0.359375 0.46875 -1.09375 0.796875q0.53125 0.3125 0.796875 0.78125q0.265625 0.453125 0.265625 1.046875q0 0.96875 -0.625 1.765625q-0.90625 1.15625 -2.46875 1.15625q-1.140625 0 -1.828125 -0.671875q-0.6875 -0.671875 -0.6875 -1.71875q0 -0.859375 0.46875 -1.53125q0.484375 -0.6875 1.3125 -0.96875zm0.640625 -1.4375q0 0.40625 0.234375 0.65625q0.25 0.25 0.65625 0.25q0.4375 0 0.78125 -0.34375q0.34375 -0.34375 0.34375 -0.796875q0 -0.421875 -0.25 -0.671875q-0.25 -0.265625 -0.640625 -0.265625q-0.46875 0 -0.796875 0.34375q-0.328125 0.34375 -0.328125 0.828125zm-0.75 3.96875q0 0.484375 0.265625 0.765625q0.265625 0.265625 0.6875 0.265625q0.640625 0 1.0 -0.5625q0.359375 -0.578125 0.359375 -1.25q0 -0.4375 -0.28125 -0.71875q-0.265625 -0.28125 -0.6875 -0.28125q-0.53125 0 -0.9375 0.5q-0.40625 0.484375 -0.40625 1.28125zm4.970703 0.21875l1.578125 -0.125q0.046875 0.5 0.234375 0.703125q0.203125 0.203125 0.53125 0.203125q0.4375 0 0.765625 -0.328125q0.46875 -0.484375 0.75 -1.5625q-0.546875 0.34375 -1.140625 0.34375q-1.0 0 -1.640625 -0.671875q-0.640625 -0.6875 -0.640625 -1.859375q0 -1.3125 0.8125 -2.328125q0.828125 -1.015625 2.203125 -1.015625q1.203125 0 1.84375 0.875q0.640625 0.875 0.640625 2.375q0 2.328125 -1.03125 3.921875q-1.015625 1.59375 -2.6875 1.59375q-0.984375 0 -1.578125 -0.546875q-0.578125 -0.5625 -0.640625 -1.578125zm4.3125 -3.96875q0 -0.6875 -0.265625 -1.0q-0.265625 -0.3125 -0.671875 -0.3125q-0.484375 0 -0.84375 0.453125q-0.46875 0.609375 -0.46875 1.65625q0 0.65625 0.265625 0.984375q0.265625 0.3125 0.640625 0.3125q0.328125 0 0.65625 -0.234375q0.328125 -0.25 0.5 -0.78125q0.1875 -0.53125 0.1875 -1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m728.3542 303.09106l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m695.7624 311.2617l27.351562 0l0 1.0799866l-27.351562 0l0 -1.0799866z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m480.46457 186.19763l156.94485 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m480.46457 186.19763l150.94485 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m631.4094 187.84937l4.538147 -1.6517334l-4.538147 -1.6517334z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m479.27036 81.18898l158.1417 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m479.27036 81.18898l152.1417 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m631.41205 82.840706l4.538147 -1.6517258l-4.538147 -1.6517334z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m480.4672 290.2604l156.94485 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m480.4672 290.2604l150.94485 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m631.41205 291.91214l4.538147 -1.6517334l-4.538147 -1.6517334z" fill-rule="evenodd"/></g></svg> \ No newline at end of file diff --git a/docs/user/alerting/images/alert-pre-configured-connectors-dropdown.png b/docs/user/alerting/images/alert-pre-configured-connectors-dropdown.png deleted file mode 100644 index 081688758eb4..000000000000 Binary files a/docs/user/alerting/images/alert-pre-configured-connectors-dropdown.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-pre-configured-slack-connector.png b/docs/user/alerting/images/alert-pre-configured-slack-connector.png deleted file mode 100644 index e9d81877fbf4..000000000000 Binary files a/docs/user/alerting/images/alert-pre-configured-slack-connector.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-conditions.png b/docs/user/alerting/images/alert-types-index-threshold-conditions.png deleted file mode 100644 index 5d66123ac733..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-conditions.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-aggregation.png b/docs/user/alerting/images/alert-types-index-threshold-example-aggregation.png deleted file mode 100644 index 055b643ec345..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-aggregation.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-comparison.png b/docs/user/alerting/images/alert-types-index-threshold-example-comparison.png deleted file mode 100644 index 5e7c65e1247d..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-comparison.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-grouping.png b/docs/user/alerting/images/alert-types-index-threshold-example-grouping.png deleted file mode 100644 index 5be81b45612b..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-grouping.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-index.png b/docs/user/alerting/images/alert-types-index-threshold-example-index.png deleted file mode 100644 index b13201ce5d38..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-index.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-preview.png b/docs/user/alerting/images/alert-types-index-threshold-example-preview.png deleted file mode 100644 index 70e1355004c4..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-preview.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-threshold.png b/docs/user/alerting/images/alert-types-index-threshold-example-threshold.png deleted file mode 100644 index 7e9432d8c867..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-threshold.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-timefield.png b/docs/user/alerting/images/alert-types-index-threshold-example-timefield.png deleted file mode 100644 index 4b1eaa631dc9..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-timefield.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-example-window.png b/docs/user/alerting/images/alert-types-index-threshold-example-window.png deleted file mode 100644 index b4b272d2a241..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-example-window.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-preview.png b/docs/user/alerting/images/alert-types-index-threshold-preview.png deleted file mode 100644 index b3b868dbc41e..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-preview.png and /dev/null differ diff --git a/docs/user/alerting/images/alert-types-index-threshold-select.png b/docs/user/alerting/images/alert-types-index-threshold-select.png deleted file mode 100644 index 18c28a703e96..000000000000 Binary files a/docs/user/alerting/images/alert-types-index-threshold-select.png and /dev/null differ diff --git a/docs/user/alerting/images/alerting-overview.png b/docs/user/alerting/images/alerting-overview.png deleted file mode 100644 index b4ec6f3df602..000000000000 Binary files a/docs/user/alerting/images/alerting-overview.png and /dev/null differ diff --git a/docs/user/alerting/images/pagerduty-integration.png b/docs/user/alerting/images/pagerduty-integration.png deleted file mode 100755 index 0a270de866b3..000000000000 Binary files a/docs/user/alerting/images/pagerduty-integration.png and /dev/null differ diff --git a/docs/user/alerting/images/pre-configured-action-type-alert-form.png b/docs/user/alerting/images/pre-configured-action-type-alert-form.png deleted file mode 100644 index e12bad468009..000000000000 Binary files a/docs/user/alerting/images/pre-configured-action-type-alert-form.png and /dev/null differ diff --git a/docs/user/alerting/images/pre-configured-action-type-managing.png b/docs/user/alerting/images/pre-configured-action-type-managing.png deleted file mode 100644 index 95fe1c6aa095..000000000000 Binary files a/docs/user/alerting/images/pre-configured-action-type-managing.png and /dev/null differ diff --git a/docs/user/alerting/images/pre-configured-action-type-select-type.png b/docs/user/alerting/images/pre-configured-action-type-select-type.png deleted file mode 100644 index 91ca831840ce..000000000000 Binary files a/docs/user/alerting/images/pre-configured-action-type-select-type.png and /dev/null differ diff --git a/docs/user/alerting/images/pre-configured-connectors-managing.png b/docs/user/alerting/images/pre-configured-connectors-managing.png deleted file mode 100644 index f97e93175fa3..000000000000 Binary files a/docs/user/alerting/images/pre-configured-connectors-managing.png and /dev/null differ diff --git a/docs/user/alerting/images/pre-configured-connectors-view-screen.png b/docs/user/alerting/images/pre-configured-connectors-view-screen.png deleted file mode 100644 index 9c75f86498be..000000000000 Binary files a/docs/user/alerting/images/pre-configured-connectors-view-screen.png and /dev/null differ diff --git a/docs/user/alerting/images/slack-add-webhook-integration.png b/docs/user/alerting/images/slack-add-webhook-integration.png deleted file mode 100644 index 347822ddd9fa..000000000000 Binary files a/docs/user/alerting/images/slack-add-webhook-integration.png and /dev/null differ diff --git a/docs/user/alerting/images/slack-copy-webhook-url.png b/docs/user/alerting/images/slack-copy-webhook-url.png deleted file mode 100644 index 0acc9488e22a..000000000000 Binary files a/docs/user/alerting/images/slack-copy-webhook-url.png and /dev/null differ diff --git a/docs/user/alerting/images/what-is-an-action.svg b/docs/user/alerting/images/what-is-an-action.svg deleted file mode 100644 index 7675f717a6c8..000000000000 --- a/docs/user/alerting/images/what-is-an-action.svg +++ /dev/null @@ -1 +0,0 @@ -<svg version="1.1" viewBox="0.0 0.0 985.5511811023622 337.08923884514434" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l985.5512 0l0 337.08923l-985.5512 0l0 -337.08923z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l985.5512 0l0 337.08923l-985.5512 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m13.120735 28.889763l451.9685 0l0 282.2677l-451.9685 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.120735 28.889763l451.9685 0l0 282.2677l-451.9685 0z" fill-rule="evenodd"/><path fill="#000000" d="m22.089485 55.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816696 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125717 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.806427 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 73.062996l418.2677 0l0 33.51181l-418.2677 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 73.062996l418.2677 0l0 33.51181l-418.2677 0z" fill-rule="evenodd"/><path fill="#000000" d="m43.750084 93.40737l1.515625 0.375q-0.46875 1.875 -1.71875 2.859375q-1.234375 0.984375 -3.015625 0.984375q-1.859375 0 -3.015625 -0.75q-1.15625 -0.765625 -1.765625 -2.1875q-0.609375 -1.4375 -0.609375 -3.078125q0 -1.796875 0.6875 -3.125q0.6875 -1.328125 1.9375 -2.015625q1.265625 -0.703125 2.78125 -0.703125q1.71875 0 2.890625 0.875q1.171875 0.875 1.640625 2.46875l-1.5 0.34375q-0.390625 -1.25 -1.15625 -1.8125q-0.75 -0.578125 -1.90625 -0.578125q-1.3125 0 -2.203125 0.640625q-0.890625 0.625 -1.25 1.703125q-0.359375 1.0625 -0.359375 2.1875q0 1.46875 0.421875 2.5625q0.4375 1.078125 1.328125 1.625q0.90625 0.53125 1.953125 0.53125q1.265625 0 2.140625 -0.734375q0.890625 -0.734375 1.203125 -2.171875zm2.6796875 -0.140625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm14.2734375 0l0 -1.046875q-0.78125 1.234375 -2.3125 1.234375q-1.0 0 -1.828125 -0.546875q-0.828125 -0.546875 -1.296875 -1.53125q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453125l-1.3125 0zm-4.4375 -4.140625q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm7.9609375 -5.703125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm6.6171875 -1.265625l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0z" fill-rule="nonzero"/><path fill="#000000" d="m131.0157 94.57925l1.40625 -0.078125q0 0.609375 0.1875 1.046875q0.1875 0.421875 0.6875 0.703125q0.515625 0.265625 1.1875 0.265625q0.9375 0 1.40625 -0.375q0.46875 -0.375 0.46875 -0.890625q0 -0.359375 -0.28125 -0.6875q-0.296875 -0.328125 -1.421875 -0.8125q-1.109375 -0.484375 -1.421875 -0.671875q-0.53125 -0.328125 -0.796875 -0.75q-0.265625 -0.4375 -0.265625 -1.0q0 -0.984375 0.78125 -1.6875q0.78125 -0.703125 2.1875 -0.703125q1.5625 0 2.375 0.71875q0.828125 0.71875 0.859375 1.90625l-1.390625 0.09375q-0.03125 -0.75 -0.53125 -1.1875q-0.5 -0.4375 -1.40625 -0.4375q-0.734375 0 -1.140625 0.34375q-0.40625 0.328125 -0.40625 0.71875q0 0.390625 0.34375 0.6875q0.234375 0.203125 1.21875 0.625q1.625 0.703125 2.046875 1.109375q0.671875 0.640625 0.671875 1.578125q0 0.609375 -0.390625 1.203125q-0.375 0.59375 -1.15625 0.953125q-0.765625 0.359375 -1.828125 0.359375q-1.4375 0 -2.4375 -0.71875q-1.015625 -0.703125 -0.953125 -2.3125zm13.953125 0.015625l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm7.421875 0l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm12.0 -2.828125l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm15.3671875 -1.03125q-0.734375 0.625 -1.421875 0.921875q-0.671875 0.296875 -1.4375 0.296875q-1.15625 0 -1.859375 -0.671875q-0.703125 -0.6875 -0.703125 -1.734375q0 -0.703125 0.3125 -1.234375q0.328125 -0.53125 0.84375 -0.859375q0.53125 -0.328125 1.28125 -0.46875q0.484375 -0.09375 1.8125 -0.140625q1.328125 -0.0625 1.90625 -0.28125q0.171875 -0.578125 0.171875 -0.96875q0 -0.484375 -0.359375 -0.765625q-0.5 -0.390625 -1.4375 -0.390625q-0.890625 0 -1.46875 0.390625q-0.5625 0.390625 -0.8125 1.125l-1.4375 -0.125q0.4375 -1.234375 1.390625 -1.890625q0.953125 -0.65625 2.390625 -0.65625q1.546875 0 2.4375 0.734375q0.6875 0.546875 0.6875 1.421875q0 0.65625 -0.1875 1.53125l-0.46875 2.0625q-0.21875 0.984375 -0.21875 1.609375q0 0.390625 0.171875 1.125l-1.421875 0q-0.125 -0.40625 -0.171875 -1.03125zm0.53125 -3.171875q-0.296875 0.109375 -0.640625 0.171875q-0.34375 0.0625 -1.140625 0.140625q-1.234375 0.109375 -1.75 0.28125q-0.5 0.15625 -0.765625 0.53125q-0.25 0.359375 -0.25 0.8125q0 0.59375 0.40625 0.984375q0.421875 0.375 1.171875 0.375q0.703125 0 1.34375 -0.375q0.65625 -0.375 1.03125 -1.03125q0.375 -0.671875 0.59375 -1.890625zm4.8671875 4.203125l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm5.828125 0.75l1.4375 0.140625q-0.015625 0.484375 0.109375 0.71875q0.140625 0.25 0.421875 0.375q0.390625 0.171875 1.0 0.171875q1.28125 0 1.84375 -0.65625q0.359375 -0.453125 0.671875 -1.953125l0.140625 -0.671875q-1.09375 1.125 -2.34375 1.125q-1.25 0 -2.109375 -0.921875q-0.84375 -0.9375 -0.84375 -2.625q0 -1.40625 0.671875 -2.578125q0.671875 -1.171875 1.59375 -1.765625q0.921875 -0.59375 1.890625 -0.59375q1.640625 0 2.515625 1.546875l0.28125 -1.359375l1.296875 0l-1.671875 8.0q-0.265625 1.328125 -0.71875 2.0625q-0.4375 0.75 -1.234375 1.15625q-0.796875 0.40625 -1.828125 0.40625q-1.0 0 -1.734375 -0.265625q-0.71875 -0.25 -1.078125 -0.75q-0.34375 -0.5 -0.34375 -1.140625q0 -0.1875 0.03125 -0.421875zm1.765625 -4.421875q0 0.84375 0.171875 1.28125q0.234375 0.59375 0.65625 0.921875q0.4375 0.3125 0.96875 0.3125q0.703125 0 1.390625 -0.484375q0.6875 -0.5 1.109375 -1.515625q0.421875 -1.03125 0.421875 -1.953125q0 -1.03125 -0.5625 -1.625q-0.5625 -0.609375 -1.40625 -0.609375q-0.515625 0 -1.0 0.28125q-0.484375 0.265625 -0.90625 0.84375q-0.40625 0.5625 -0.625 1.359375q-0.21875 0.78125 -0.21875 1.1875zm20.78125 -0.359375l1.515625 0.203125q-0.71875 1.984375 -2.09375 3.015625q-1.375 1.015625 -3.09375 1.015625q-2.078125 0 -3.3125 -1.28125q-1.21875 -1.28125 -1.21875 -3.65625q0 -3.09375 1.859375 -5.109375q1.65625 -1.8125 4.125 -1.8125q1.8125 0 2.9375 0.984375q1.140625 0.96875 1.3125 2.625l-1.421875 0.125q-0.234375 -1.234375 -0.9375 -1.84375q-0.703125 -0.625 -1.828125 -0.625q-2.09375 0 -3.390625 1.875q-1.125 1.609375 -1.125 3.8125q0 1.765625 0.859375 2.703125q0.875 0.921875 2.265625 0.921875q1.1875 0 2.140625 -0.765625q0.96875 -0.78125 1.40625 -2.1875zm2.5859375 4.03125l2.40625 -11.453125l4.78125 0q1.234375 0 1.859375 0.28125q0.625 0.28125 1.03125 0.984375q0.40625 0.6875 0.40625 1.546875q0 0.703125 -0.296875 1.4375q-0.28125 0.734375 -0.734375 1.21875q-0.4375 0.46875 -0.890625 0.71875q-0.453125 0.234375 -0.96875 0.359375q-1.09375 0.25 -2.21875 0.25l-2.875 0l-0.96875 4.65625l-1.53125 0zm2.78125 -5.953125l2.515625 0q1.46875 0 2.15625 -0.3125q0.6875 -0.3125 1.09375 -0.953125q0.421875 -0.65625 0.421875 -1.390625q0 -0.5625 -0.21875 -0.90625q-0.21875 -0.359375 -0.625 -0.53125q-0.390625 -0.171875 -1.515625 -0.171875l-2.9375 0l-0.890625 4.265625zm10.375 -5.5l1.53125 0l-1.46875 7.03125q-0.171875 0.875 -0.171875 1.296875q0 0.921875 0.71875 1.484375q0.734375 0.5625 1.828125 0.5625q0.875 0 1.625 -0.390625q0.765625 -0.40625 1.203125 -1.1875q0.4375 -0.78125 0.78125 -2.5l1.328125 -6.296875l1.53125 0l-1.40625 6.71875q-0.359375 1.71875 -0.953125 2.71875q-0.578125 1.0 -1.625 1.609375q-1.03125 0.609375 -2.40625 0.609375q-1.296875 0 -2.25 -0.421875q-0.9375 -0.4375 -1.421875 -1.1875q-0.46875 -0.765625 -0.46875 -1.734375q0 -0.59375 0.328125 -2.0625l1.296875 -6.25zm21.85939 6.4375l-7.5937653 3.25l0 -1.40625l6.015625 -2.484375l-6.015625 -2.46875l0 -1.40625l7.5937653 3.203125l0 1.3125zm5.8984375 1.25q0 -1.453125 0.421875 -2.953125q0.4375 -1.5 0.96875 -2.390625q0.53125 -0.90625 1.09375 -1.40625q0.578125 -0.515625 1.125 -0.75q0.5625 -0.234375 1.234375 -0.234375q1.3125 0 2.1875 0.984375q0.875 0.96875 0.875 2.8125q0 1.890625 -0.609375 3.75q-0.71875 2.203125 -2.0 3.3125q-0.984375 0.84375 -2.234375 0.84375q-1.296875 0 -2.1875 -1.015625q-0.875 -1.015625 -0.875 -2.953125zm1.359375 0.359375q0 1.0625 0.359375 1.65625q0.46875 0.8125 1.40625 0.8125q0.828125 0 1.5 -0.734375q0.96875 -1.046875 1.453125 -3.0625q0.484375 -2.03125 0.484375 -3.3125q0 -1.234375 -0.46875 -1.78125q-0.46875 -0.546875 -1.25 -0.546875q-0.5625 0 -1.046875 0.296875q-0.484375 0.28125 -0.9375 0.984375q-0.625 1.0 -1.09375 2.96875q-0.40625 1.6875 -0.40625 2.71875zm7.3203125 3.40625l0.34375 -1.609375l1.59375 0l-0.34375 1.609375l-1.59375 0zm4.6015625 -2.625l1.328125 -0.140625q0.140625 0.96875 0.546875 1.375q0.421875 0.40625 0.984375 0.40625q0.8125 0 1.515625 -0.703125q1.015625 -1.03125 1.5 -2.96875q-0.703125 0.53125 -1.265625 0.765625q-0.546875 0.21875 -1.125 0.21875q-1.046875 0 -1.875 -0.703125q-1.09375 -0.90625 -1.09375 -2.625q0 -1.9375 1.265625 -3.3125q1.09375 -1.1875 2.671875 -1.1875q1.421875 0 2.359375 1.046875q0.9375 1.046875 0.9375 2.96875q0 1.875 -0.625 3.6875q-0.75 2.140625 -2.015625 3.15625q-1.03125 0.84375 -2.3125 0.84375q-1.1875 0 -1.953125 -0.734375q-0.75 -0.75 -0.84375 -2.09375zm1.890625 -4.53125q0 1.078125 0.5625 1.71875q0.578125 0.640625 1.375 0.640625q0.578125 0 1.15625 -0.390625q0.578125 -0.40625 0.984375 -1.203125q0.421875 -0.796875 0.421875 -1.625q0 -0.65625 -0.28125 -1.21875q-0.265625 -0.5625 -0.734375 -0.84375q-0.46875 -0.296875 -0.953125 -0.296875q-0.46875 0 -0.921875 0.25q-0.453125 0.25 -0.84375 0.734375q-0.390625 0.484375 -0.578125 1.125q-0.1875 0.625 -0.1875 1.109375zm11.109375 7.15625l1.5 -7.203125l-1.265625 0l0.234375 -1.09375l1.265625 0l0.234375 -1.1875q0.1875 -0.875 0.390625 -1.265625q0.203125 -0.390625 0.640625 -0.640625q0.453125 -0.265625 1.234375 -0.265625q0.53125 0 1.5625 0.234375l-0.265625 1.234375q-0.71875 -0.1875 -1.203125 -0.1875q-0.40625 0 -0.625 0.203125q-0.21875 0.203125 -0.375 0.984375l-0.1875 0.890625l1.578125 0l-0.21875 1.09375l-1.578125 0l-1.515625 7.203125l-1.40625 0zm4.4921875 -3.15625q0 -2.421875 1.4375 -4.015625q1.171875 -1.3125 3.09375 -1.3125q1.5 0 2.40625 0.9375q0.921875 0.9375 0.921875 2.53125q0 1.421875 -0.578125 2.65625q-0.578125 1.234375 -1.640625 1.890625q-1.0625 0.65625 -2.25 0.65625q-0.96875 0 -1.765625 -0.40625q-0.78125 -0.421875 -1.203125 -1.171875q-0.421875 -0.765625 -0.421875 -1.765625zm1.421875 -0.140625q0 1.171875 0.5625 1.78125q0.5625 0.609375 1.421875 0.609375q0.453125 0 0.890625 -0.1875q0.453125 -0.1875 0.828125 -0.5625q0.390625 -0.375 0.65625 -0.84375q0.28125 -0.484375 0.4375 -1.046875q0.25 -0.765625 0.25 -1.484375q0 -1.125 -0.578125 -1.734375q-0.5625 -0.625 -1.421875 -0.625q-0.65625 0 -1.203125 0.3125q-0.546875 0.3125 -1.0 0.921875q-0.4375 0.609375 -0.640625 1.421875q-0.203125 0.8125 -0.203125 1.4375zm7.2265625 3.296875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm9.6640625 0l2.390625 -11.453125l1.421875 0l-2.390625 11.453125l-1.421875 0zm9.2578125 -1.03125q-0.734375 0.625 -1.421875 0.921875q-0.671875 0.296875 -1.4375 0.296875q-1.15625 0 -1.859375 -0.671875q-0.703125 -0.6875 -0.703125 -1.734375q0 -0.703125 0.3125 -1.234375q0.328125 -0.53125 0.84375 -0.859375q0.53125 -0.328125 1.28125 -0.46875q0.484375 -0.09375 1.8125 -0.140625q1.328125 -0.0625 1.90625 -0.28125q0.171875 -0.578125 0.171875 -0.96875q0 -0.484375 -0.359375 -0.765625q-0.5 -0.390625 -1.4375 -0.390625q-0.890625 0 -1.46875 0.390625q-0.5625 0.390625 -0.8125 1.125l-1.4375 -0.125q0.4375 -1.234375 1.390625 -1.890625q0.953125 -0.65625 2.390625 -0.65625q1.546875 0 2.4375 0.734375q0.6875 0.546875 0.6875 1.421875q0 0.65625 -0.1875 1.53125l-0.46875 2.0625q-0.21875 0.984375 -0.21875 1.609375q0 0.390625 0.171875 1.125l-1.421875 0q-0.125 -0.40625 -0.171875 -1.03125zm0.53125 -3.171875q-0.296875 0.109375 -0.640625 0.171875q-0.34375 0.0625 -1.140625 0.140625q-1.234375 0.109375 -1.75 0.28125q-0.5 0.15625 -0.765625 0.53125q-0.25 0.359375 -0.25 0.8125q0 0.59375 0.40625 0.984375q0.421875 0.375 1.171875 0.375q0.703125 0 1.34375 -0.375q0.65625 -0.375 1.03125 -1.03125q0.375 -0.671875 0.59375 -1.890625zm2.9140625 1.359375l1.40625 -0.078125q0 0.609375 0.1875 1.046875q0.1875 0.421875 0.6875 0.703125q0.515625 0.265625 1.1875 0.265625q0.9375 0 1.40625 -0.375q0.46875 -0.375 0.46875 -0.890625q0 -0.359375 -0.28125 -0.6875q-0.296875 -0.328125 -1.421875 -0.8125q-1.109375 -0.484375 -1.421875 -0.671875q-0.53125 -0.328125 -0.796875 -0.75q-0.265625 -0.4375 -0.265625 -1.0q0 -0.984375 0.78125 -1.6875q0.78125 -0.703125 2.1875 -0.703125q1.5625 0 2.375 0.71875q0.828125 0.71875 0.859375 1.90625l-1.390625 0.09375q-0.03125 -0.75 -0.53125 -1.1875q-0.5 -0.4375 -1.40625 -0.4375q-0.734375 0 -1.140625 0.34375q-0.40625 0.328125 -0.40625 0.71875q0 0.390625 0.34375 0.6875q0.234375 0.203125 1.21875 0.625q1.625 0.703125 2.046875 1.109375q0.671875 0.640625 0.671875 1.578125q0 0.609375 -0.390625 1.203125q-0.375 0.59375 -1.15625 0.953125q-0.765625 0.359375 -1.828125 0.359375q-1.4375 0 -2.4375 -0.71875q-1.015625 -0.703125 -0.953125 -2.3125zm11.171875 1.6875l-0.234375 1.171875q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.3125 -0.375 -0.84375q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm5.984375 1.15625q0.21875 -1.03125 0.609375 -1.71875q0.390625 -0.6875 1.03125 -1.3125q0.640625 -0.625 2.46875 -2.078125q1.109375 -0.890625 1.515625 -1.3125q0.578125 -0.609375 0.84375 -1.1875q0.1875 -0.40625 0.1875 -0.875q0 -0.78125 -0.5625 -1.328125q-0.5625 -0.5625 -1.375 -0.5625q-0.796875 0 -1.40625 0.5625q-0.59375 0.5625 -0.859375 1.796875l-1.375 -0.203125q0.203125 -1.53125 1.171875 -2.40625q0.984375 -0.875 2.453125 -0.875q0.96875 0 1.765625 0.40625q0.796875 0.40625 1.1875 1.140625q0.40625 0.734375 0.40625 1.515625q0 1.140625 -0.8125 2.1875q-0.5 0.65625 -2.9375 2.59375q-1.046875 0.828125 -1.5625 1.359375q-0.515625 0.53125 -0.765625 1.0l5.125 0l-0.28125 1.296875l-6.828125 0zm12.9375 0l1.734375 -8.296875l1.40625 0l-0.28125 1.359375q0.78125 -0.875 1.40625 -1.203125q0.625 -0.34375 1.34375 -0.34375q0.78125 0 1.296875 0.40625q0.515625 0.40625 0.6875 1.140625q0.625 -0.78125 1.328125 -1.15625q0.703125 -0.390625 1.46875 -0.390625q1.046875 0 1.5625 0.5q0.515625 0.484375 0.515625 1.375q0 0.375 -0.171875 1.265625l-1.125 5.34375l-1.40625 0l1.140625 -5.484375q0.140625 -0.671875 0.140625 -0.96875q0 -0.40625 -0.265625 -0.640625q-0.25 -0.234375 -0.71875 -0.234375q-0.625 0 -1.28125 0.390625q-0.65625 0.375 -1.03125 1.0q-0.359375 0.625 -0.625 1.90625l-0.84375 4.03125l-1.421875 0l1.171875 -5.609375q0.125 -0.5625 0.125 -0.8125q0 -0.40625 -0.25 -0.65625q-0.25 -0.25 -0.65625 -0.25q-0.609375 0 -1.265625 0.390625q-0.65625 0.375 -1.078125 1.0625q-0.40625 0.6875 -0.671875 1.953125l-0.828125 3.921875l-1.40625 0zm15.34375 -9.859375l0.328125 -1.59375l1.40625 0l-0.328125 1.59375l-1.40625 0zm-2.0625 9.859375l1.734375 -8.296875l1.40625 0l-1.734375 8.296875l-1.40625 0zm3.6015625 0l1.734375 -8.296875l1.28125 0l-0.296875 1.4375q0.828125 -0.84375 1.546875 -1.234375q0.734375 -0.390625 1.5 -0.390625q1.0 0 1.578125 0.546875q0.578125 0.546875 0.578125 1.453125q0 0.46875 -0.203125 1.453125l-1.0625 5.03125l-1.40625 0l1.09375 -5.265625q0.171875 -0.765625 0.171875 -1.125q0 -0.421875 -0.296875 -0.671875q-0.28125 -0.265625 -0.8125 -0.265625q-1.09375 0 -1.9375 0.78125q-0.84375 0.78125 -1.25 2.6875l-0.796875 3.859375l-1.421875 0zm14.5703125 -1.5q-1.5 1.6875 -3.0625 1.6875q-0.953125 0 -1.546875 -0.546875q-0.59375 -0.5625 -0.59375 -1.359375q0 -0.515625 0.265625 -1.796875l1.0 -4.78125l1.421875 0l-1.109375 5.296875q-0.140625 0.671875 -0.140625 1.03125q0 0.46875 0.28125 0.734375q0.28125 0.265625 0.84375 0.265625q0.59375 0 1.15625 -0.28125q0.5625 -0.296875 0.96875 -0.78125q0.421875 -0.5 0.671875 -1.171875q0.171875 -0.4375 0.40625 -1.515625l0.75 -3.578125l1.40625 0l-1.734375 8.296875l-1.296875 0l0.3125 -1.5zm6.5390625 0.34375l-0.234375 1.171875q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.3125 -0.375 -0.84375q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm7.2265625 -1.671875l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm7.0546875 2.03125l1.40625 -0.078125q0 0.609375 0.1875 1.046875q0.1875 0.421875 0.6875 0.703125q0.515625 0.265625 1.1875 0.265625q0.9375 0 1.40625 -0.375q0.46875 -0.375 0.46875 -0.890625q0 -0.359375 -0.28125 -0.6875q-0.296875 -0.328125 -1.421875 -0.8125q-1.109375 -0.484375 -1.421875 -0.671875q-0.53125 -0.328125 -0.796875 -0.75q-0.265625 -0.4375 -0.265625 -1.0q0 -0.984375 0.78125 -1.6875q0.78125 -0.703125 2.1875 -0.703125q1.5625 0 2.375 0.71875q0.828125 0.71875 0.859375 1.90625l-1.390625 0.09375q-0.03125 -0.75 -0.53125 -1.1875q-0.5 -0.4375 -1.40625 -0.4375q-0.734375 0 -1.140625 0.34375q-0.40625 0.328125 -0.40625 0.71875q0 0.390625 0.34375 0.6875q0.234375 0.203125 1.21875 0.625q1.625 0.703125 2.046875 1.109375q0.671875 0.640625 0.671875 1.578125q0 0.609375 -0.390625 1.203125q-0.375 0.59375 -1.15625 0.953125q-0.765625 0.359375 -1.828125 0.359375q-1.4375 0 -2.4375 -0.71875q-1.015625 -0.703125 -0.953125 -2.3125z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 120.07612l418.2677 0l0 39.30709l-418.2677 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 120.07612l418.2677 0l0 39.30709l-418.2677 0z" fill-rule="evenodd"/><path fill="#000000" d="m35.062584 140.74861l1.4375 -0.125q0.09375 0.859375 0.46875 1.421875q0.375 0.546875 1.15625 0.890625q0.78125 0.328125 1.75 0.328125q0.875 0 1.53125 -0.25q0.671875 -0.265625 0.984375 -0.703125q0.328125 -0.453125 0.328125 -0.984375q0 -0.546875 -0.3125 -0.9375q-0.3125 -0.40625 -1.03125 -0.6875q-0.453125 -0.171875 -2.03125 -0.546875q-1.578125 -0.390625 -2.21875 -0.71875q-0.8125 -0.4375 -1.21875 -1.0625q-0.40625 -0.640625 -0.40625 -1.4375q0 -0.859375 0.484375 -1.609375q0.5 -0.765625 1.4375 -1.15625q0.953125 -0.390625 2.109375 -0.390625q1.28125 0 2.25 0.421875q0.96875 0.40625 1.484375 1.203125q0.53125 0.796875 0.578125 1.796875l-1.453125 0.109375q-0.125 -1.078125 -0.796875 -1.625q-0.671875 -0.5625 -2.0 -0.5625q-1.375 0 -2.0 0.5q-0.625 0.5 -0.625 1.21875q0 0.609375 0.4375 1.015625q0.4375 0.390625 2.28125 0.8125q1.859375 0.421875 2.546875 0.734375q1.0 0.453125 1.46875 1.171875q0.484375 0.703125 0.484375 1.625q0 0.90625 -0.53125 1.71875q-0.515625 0.8125 -1.5 1.265625q-0.984375 0.453125 -2.203125 0.453125q-1.5625 0 -2.609375 -0.453125q-1.046875 -0.46875 -1.65625 -1.375q-0.59375 -0.90625 -0.625 -2.0625zm16.421875 0.640625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8125 -2.28125 0.8125q-1.703125 0 -2.75 -1.109375q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm2.59375 3.046875l0 -11.453125l1.40625 0l0 4.109375q0.984375 -1.140625 2.484375 -1.140625q0.921875 0 1.59375 0.359375q0.6875 0.359375 0.96875 1.0q0.296875 0.640625 0.296875 1.859375l0 5.265625l-1.40625 0l0 -5.265625q0 -1.046875 -0.453125 -1.53125q-0.453125 -0.484375 -1.296875 -0.484375q-0.625 0 -1.171875 0.328125q-0.546875 0.328125 -0.78125 0.890625q-0.234375 0.546875 -0.234375 1.515625l0 4.546875l-1.40625 0zm14.5703125 -2.671875l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.703125 -2.359375 0.703125q-1.828125 0 -2.890625 -1.125q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875zm13.2109375 4.953125l0 -1.046875q-0.78125 1.234375 -2.3125 1.234375q-1.0 0 -1.828125 -0.546875q-0.828125 -0.546875 -1.296875 -1.53125q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453125l-1.3125 0zm-4.4375 -4.140625q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm13.3984375 4.140625l0 -1.21875q-0.96875 1.40625 -2.640625 1.40625q-0.734375 0 -1.375 -0.28125q-0.625 -0.28125 -0.9375 -0.703125q-0.3125 -0.4375 -0.4375 -1.046875q-0.078125 -0.421875 -0.078125 -1.3125l0 -5.140625l1.40625 0l0 4.59375q0 1.109375 0.078125 1.484375q0.140625 0.5625 0.5625 0.875q0.4375 0.3125 1.0625 0.3125q0.640625 0 1.1875 -0.3125q0.5625 -0.328125 0.78125 -0.890625q0.234375 -0.5625 0.234375 -1.625l0 -4.4375l1.40625 0l0 8.296875l-1.25 0zm3.4296875 0l0 -11.453125l1.40625 0l0 11.453125l-1.40625 0zm9.2578125 -2.671875l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.703125 -2.359375 0.703125q-1.828125 0 -2.890625 -1.125q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875z" fill-rule="nonzero"/><path fill="#000000" d="m136.96883 141.60799l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm9.0078125 4.875l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm12.0 -2.828125l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm4.796875 3.203125l0.09375 -1.328125q0.4375 0.125 0.84375 0.125q0.4375 0 0.703125 -0.1875q0.34375 -0.265625 0.75 -0.96875l0.453125 -0.8125l-1.390625 -8.328125l1.390625 0l0.625 4.1875q0.1875 1.25 0.328125 2.484375l3.703125 -6.671875l1.484375 0l-5.296875 9.40625q-0.765625 1.375 -1.359375 1.8125q-0.59375 0.453125 -1.359375 0.453125q-0.5 0 -0.96875 -0.171875zm12.9765625 -3.203125l1.734375 -8.296875l1.40625 0l-0.28125 1.359375q0.78125 -0.875 1.40625 -1.203125q0.625 -0.34375 1.34375 -0.34375q0.78125 0 1.296875 0.40625q0.515625 0.40625 0.6875 1.140625q0.625 -0.78125 1.328125 -1.15625q0.703125 -0.390625 1.46875 -0.390625q1.046875 0 1.5625 0.5q0.515625 0.484375 0.515625 1.375q0 0.375 -0.171875 1.265625l-1.125 5.34375l-1.40625 0l1.140625 -5.484375q0.140625 -0.671875 0.140625 -0.96875q0 -0.40625 -0.265625 -0.640625q-0.25 -0.234375 -0.71875 -0.234375q-0.625 0 -1.28125 0.390625q-0.65625 0.375 -1.03125 1.0q-0.359375 0.625 -0.625 1.90625l-0.84375 4.03125l-1.421875 0l1.171875 -5.609375q0.125 -0.5625 0.125 -0.8125q0 -0.40625 -0.25 -0.65625q-0.25 -0.25 -0.65625 -0.25q-0.609375 0 -1.265625 0.390625q-0.65625 0.375 -1.078125 1.0625q-0.40625 0.6875 -0.671875 1.953125l-0.828125 3.921875l-1.40625 0zm15.34375 -9.859375l0.328125 -1.59375l1.40625 0l-0.328125 1.59375l-1.40625 0zm-2.0625 9.859375l1.734375 -8.296875l1.40625 0l-1.734375 8.296875l-1.40625 0zm3.6015625 0l1.734375 -8.296875l1.28125 0l-0.296875 1.4375q0.828125 -0.84375 1.546875 -1.234375q0.734375 -0.390625 1.5 -0.390625q1.0 0 1.578125 0.546875q0.578125 0.546875 0.578125 1.453125q0 0.46875 -0.203125 1.453125l-1.0625 5.03125l-1.40625 0l1.09375 -5.265625q0.171875 -0.765625 0.171875 -1.125q0 -0.421875 -0.296875 -0.671875q-0.28125 -0.265625 -0.8125 -0.265625q-1.09375 0 -1.9375 0.78125q-0.84375 0.78125 -1.25 2.6875l-0.796875 3.859375l-1.421875 0zm14.5703125 -1.5q-1.5 1.6875 -3.0625 1.6875q-0.953125 0 -1.546875 -0.546875q-0.59375 -0.5625 -0.59375 -1.359375q0 -0.515625 0.265625 -1.796875l1.0 -4.78125l1.421875 0l-1.109375 5.296875q-0.140625 0.671875 -0.140625 1.03125q0 0.46875 0.28125 0.734375q0.28125 0.265625 0.84375 0.265625q0.59375 0 1.15625 -0.28125q0.5625 -0.296875 0.96875 -0.78125q0.421875 -0.5 0.671875 -1.171875q0.171875 -0.4375 0.40625 -1.515625l0.75 -3.578125l1.40625 0l-1.734375 8.296875l-1.296875 0l0.3125 -1.5zm6.5390625 0.34375l-0.234375 1.171875q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.3125 -0.375 -0.84375q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm7.2265625 -1.671875l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 168.92389l418.2677 0l0 129.07086l-418.2677 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 168.92389l418.2677 0l0 129.07086l-418.2677 0z" fill-rule="evenodd"/><path fill="#000000" d="m34.312584 193.28389l4.40625 -11.453125l1.640625 0l4.6875 11.453125l-1.734375 0l-1.328125 -3.46875l-4.796875 0l-1.25 3.46875l-1.625 0zm3.3125 -4.703125l3.890625 0l-1.203125 -3.171875q-0.546875 -1.453125 -0.8125 -2.375q-0.21875 1.09375 -0.609375 2.1875l-1.265625 3.359375zm13.859375 1.65625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8125 -2.28125 0.8125q-1.703125 0 -2.75 -1.109375q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm5.65625 1.78125l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm8.3359375 -2.484375l1.390625 -0.21875q0.109375 0.84375 0.640625 1.296875q0.546875 0.4375 1.5 0.4375q0.96875 0 1.4375 -0.390625q0.46875 -0.40625 0.46875 -0.9375q0 -0.46875 -0.40625 -0.75q-0.296875 -0.1875 -1.4375 -0.46875q-1.546875 -0.390625 -2.15625 -0.671875q-0.59375 -0.296875 -0.90625 -0.796875q-0.296875 -0.5 -0.296875 -1.109375q0 -0.5625 0.25 -1.03125q0.25 -0.46875 0.6875 -0.78125q0.328125 -0.25 0.890625 -0.40625q0.578125 -0.171875 1.21875 -0.171875q0.984375 0 1.71875 0.28125q0.734375 0.28125 1.078125 0.765625q0.359375 0.46875 0.5 1.28125l-1.375 0.1875q-0.09375 -0.640625 -0.546875 -1.0q-0.453125 -0.359375 -1.265625 -0.359375q-0.96875 0 -1.390625 0.328125q-0.40625 0.3125 -0.40625 0.734375q0 0.28125 0.171875 0.5q0.171875 0.21875 0.53125 0.375q0.21875 0.078125 1.25 0.359375q1.484375 0.390625 2.078125 0.65625q0.59375 0.25 0.921875 0.734375q0.34375 0.484375 0.34375 1.203125q0 0.703125 -0.421875 1.328125q-0.40625 0.609375 -1.1875 0.953125q-0.765625 0.34375 -1.734375 0.34375q-1.625 0 -2.46875 -0.671875q-0.84375 -0.671875 -1.078125 -2.0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m131.97372 179.3517l296.9449 0l0 106.92915l-296.9449 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.97372 179.3517l296.9449 0l0 106.92915l-296.9449 0z" fill-rule="evenodd"/><path fill="#000000" d="m144.0831 199.8717l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158203 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m241.94247 197.76233l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199219 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m148.03622 215.85608l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.2753906 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.955078 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m237.37997 218.8717l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm6.861328 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.533203 0.34375l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm8.375 1.265625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm3.9824219 2.4375l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m236.84872 235.26233l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4375 -0.21875 0.921875 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.984375 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.921875 0 1.484375 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.40625 0 -0.75 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm5.298828 0.1875q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm6.4648438 -0.859375l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm4.435547 -0.015625l1.078125 -0.109375q-0.015625 0.234375 -0.015625 0.28125q0 0.375 0.1875 0.78125q0.203125 0.390625 0.53125 0.59375q0.34375 0.203125 0.71875 0.203125q0.5 0 1.0 -0.328125q0.515625 -0.34375 0.828125 -0.984375q0.3125 -0.65625 0.3125 -1.296875q0 -0.71875 -0.421875 -1.15625q-0.421875 -0.4375 -1.109375 -0.4375q-0.46875 0 -0.890625 0.234375q-0.40625 0.21875 -0.765625 0.65625l-0.921875 -0.0625l1.296875 -4.390625l4.203125 0l-0.21875 0.96875l-3.25 0l-0.65625 2.1875q0.375 -0.265625 0.75 -0.390625q0.390625 -0.140625 0.796875 -0.140625q0.984375 0 1.609375 0.65625q0.640625 0.640625 0.640625 1.78125q0 0.984375 -0.4375 1.828125q-0.4375 0.828125 -1.203125 1.28125q-0.75 0.4375 -1.625 0.4375q-0.75 0 -1.3125 -0.328125q-0.5625 -0.328125 -0.859375 -0.90625q-0.28125 -0.59375 -0.28125 -1.1875q0 -0.0625 0.015625 -0.171875zm8.533203 -2.265625q-0.46875 -0.265625 -0.71875 -0.671875q-0.234375 -0.421875 -0.234375 -0.890625q0 -0.78125 0.5625 -1.453125q0.75 -0.890625 2.03125 -0.890625q1.125 0 1.78125 0.609375q0.65625 0.609375 0.65625 1.484375q0 0.625 -0.359375 1.125q-0.34375 0.5 -1.09375 0.8125q0.515625 0.3125 0.734375 0.671875q0.28125 0.484375 0.28125 1.109375q0 1.15625 -0.8125 2.0625q-0.8125 0.90625 -2.171875 0.90625q-1.09375 0 -1.78125 -0.671875q-0.6875 -0.671875 -0.6875 -1.671875q0 -0.9375 0.484375 -1.609375q0.5 -0.6875 1.328125 -0.921875zm0.09375 -1.515625q0 0.546875 0.34375 0.890625q0.359375 0.328125 0.984375 0.328125q0.71875 0 1.171875 -0.4375q0.453125 -0.453125 0.453125 -1.09375q0 -0.546875 -0.359375 -0.890625q-0.34375 -0.34375 -0.96875 -0.34375q-0.46875 0 -0.859375 0.21875q-0.390625 0.21875 -0.578125 0.59375q-0.1875 0.375 -0.1875 0.734375zm-0.828125 4.140625q0 0.359375 0.171875 0.6875q0.171875 0.328125 0.515625 0.515625q0.359375 0.1875 0.8125 0.1875q0.859375 0 1.390625 -0.796875q0.421875 -0.640625 0.421875 -1.375q0 -0.59375 -0.390625 -0.96875q-0.390625 -0.390625 -1.015625 -0.390625q-0.796875 0 -1.359375 0.59375q-0.546875 0.59375 -0.546875 1.546875zm6.439453 2.09375q0.140625 -0.875 0.609375 -2.09375q0.546875 -1.46875 1.421875 -2.90625q0.890625 -1.453125 1.96875 -2.5l-4.28125 0l0.203125 -0.96875l5.484375 0l-0.203125 0.96875q-1.390625 1.21875 -2.4375 3.15625q-1.203125 2.234375 -1.65625 4.34375l-1.109375 0z" fill-rule="nonzero"/><path fill="#000000" d="m141.8956 252.8717l0 -8.59375l3.25 0q0.84375 0 1.296875 0.078125q0.640625 0.109375 1.0625 0.40625q0.4375 0.296875 0.6875 0.828125q0.265625 0.53125 0.265625 1.171875q0 1.09375 -0.703125 1.859375q-0.6875 0.75 -2.515625 0.75l-2.203125 0l0 3.5l-1.140625 0zm1.140625 -4.5l2.21875 0q1.109375 0 1.5625 -0.40625q0.46875 -0.421875 0.46875 -1.171875q0 -0.53125 -0.28125 -0.90625q-0.265625 -0.390625 -0.703125 -0.515625q-0.296875 -0.078125 -1.0625 -0.078125l-2.203125 0l0 3.078125zm6.7226562 4.5l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm3.6210938 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 5.5l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.861328 3.703125l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm6.3085938 -0.9375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm6.9160156 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.455078 1.84375l1.03125 -0.15625q0.09375 0.625 0.484375 0.953125q0.40625 0.328125 1.140625 0.328125q0.71875 0 1.0625 -0.28125q0.359375 -0.296875 0.359375 -0.703125q0 -0.359375 -0.3125 -0.5625q-0.21875 -0.140625 -1.078125 -0.359375q-1.15625 -0.296875 -1.609375 -0.5q-0.4375 -0.21875 -0.671875 -0.59375q-0.234375 -0.375 -0.234375 -0.84375q0 -0.40625 0.1875 -0.765625q0.1875 -0.359375 0.515625 -0.59375q0.25 -0.171875 0.671875 -0.296875q0.421875 -0.125 0.921875 -0.125q0.71875 0 1.265625 0.21875q0.5625 0.203125 0.828125 0.5625q0.265625 0.359375 0.359375 0.953125l-1.03125 0.140625q-0.0625 -0.46875 -0.40625 -0.734375q-0.328125 -0.28125 -0.953125 -0.28125q-0.71875 0 -1.03125 0.25q-0.3125 0.234375 -0.3125 0.5625q0 0.203125 0.125 0.359375q0.140625 0.171875 0.40625 0.28125q0.15625 0.0625 0.9375 0.265625q1.125 0.3125 1.5625 0.5q0.4375 0.1875 0.6875 0.546875q0.25 0.359375 0.25 0.90625q0 0.53125 -0.3125 1.0q-0.296875 0.453125 -0.875 0.71875q-0.578125 0.25 -1.3125 0.25q-1.21875 0 -1.859375 -0.5q-0.625 -0.515625 -0.796875 -1.5z" fill-rule="nonzero"/><path fill="#000000" d="m237.47372 250.7467l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.140625 1.0q-1.109375 1.265625 -2.28125 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4375 -0.21875 0.734375 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.4394531 1.125l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm6.611328 -4.828125l0.25 -1.203125l1.046875 0l-0.25 1.203125l-1.046875 0zm-3.359375 9.734375l0.1875 -0.90625q0.359375 0.09375 0.640625 0.09375q0.34375 0 0.546875 -0.234375q0.203125 -0.21875 0.421875 -1.234375l1.296875 -6.28125l1.0625 0l-1.34375 6.46875q-0.25 1.21875 -0.578125 1.65625q-0.4375 0.578125 -1.234375 0.578125q-0.40625 0 -1.0 -0.140625zm9.087891 -4.453125l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm9.470703 1.390625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm4.1875 1.40625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm1.6835938 7.0l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm16.835938 -3.03125l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm7.9160156 1.234375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m237.37997 266.8717l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm5.298828 0.203125q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm9.626953 1.5625q-0.90625 1.046875 -1.890625 1.046875q-0.890625 0 -1.484375 -0.65625q-0.578125 -0.65625 -0.578125 -1.890625q0 -1.140625 0.453125 -2.078125q0.46875 -0.9375 1.171875 -1.40625q0.703125 -0.46875 1.40625 -0.46875q1.15625 0 1.75 1.109375l0.703125 -3.34375l1.046875 0l-1.78125 8.59375l-0.984375 0l0.1875 -0.90625zm-2.90625 -1.703125q0 0.65625 0.125 1.03125q0.140625 0.375 0.4375 0.625q0.3125 0.25 0.75 0.25q0.71875 0 1.3125 -0.75q0.78125 -1.0 0.78125 -2.46875q0 -0.734375 -0.390625 -1.140625q-0.390625 -0.421875 -0.96875 -0.421875q-0.375 0 -0.703125 0.171875q-0.3125 0.15625 -0.625 0.5625q-0.296875 0.40625 -0.515625 1.046875q-0.203125 0.625 -0.203125 1.09375zm4.986328 5.015625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm16.083984 -7.453125l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0zm10.4296875 -3.59375q0.453125 0 0.78125 -0.234375q0.34375 -0.234375 0.546875 -0.703125q0.171875 -0.34375 0.375 -1.3125q0.21875 -0.984375 0.34375 -1.34375q0.15625 -0.484375 0.375 -0.78125q0.21875 -0.3125 0.46875 -0.46875q0.25 -0.171875 0.625 -0.25q0.203125 -0.046875 0.671875 -0.046875l0.328125 0l-0.203125 0.921875l-0.171875 0q-0.5 0 -0.71875 0.125q-0.21875 0.109375 -0.34375 0.375q-0.109375 0.25 -0.3125 1.125q-0.234375 1.171875 -0.453125 1.6875q-0.203125 0.5 -0.53125 0.828125q-0.3125 0.3125 -0.90625 0.5625q0.421875 0.203125 0.625 0.53125q0.203125 0.328125 0.203125 0.875q0 0.453125 -0.265625 1.671875q-0.1875 0.859375 -0.1875 1.078125q0 0.21875 0.09375 0.34375q0.0625 0.109375 0.21875 0.15625q0.171875 0.0625 0.703125 0.0625l-0.1875 0.921875l-0.328125 0q-0.546875 0 -0.765625 -0.078125q-0.34375 -0.125 -0.546875 -0.40625q-0.1875 -0.265625 -0.1875 -0.734375q0 -0.390625 0.265625 -1.671875q0.203125 -0.96875 0.203125 -1.3125q0 -0.46875 -0.234375 -0.703125q-0.234375 -0.25 -0.6875 -0.25l0.203125 -0.96875zm4.0078125 0q0.453125 0 0.78125 -0.234375q0.34375 -0.234375 0.546875 -0.703125q0.171875 -0.34375 0.375 -1.3125q0.21875 -0.984375 0.34375 -1.34375q0.15625 -0.484375 0.375 -0.78125q0.21875 -0.3125 0.46875 -0.46875q0.25 -0.171875 0.625 -0.25q0.203125 -0.046875 0.671875 -0.046875l0.328125 0l-0.203125 0.921875l-0.171875 0q-0.5 0 -0.71875 0.125q-0.21875 0.109375 -0.34375 0.375q-0.109375 0.25 -0.3125 1.125q-0.234375 1.171875 -0.453125 1.6875q-0.203125 0.5 -0.53125 0.828125q-0.3125 0.3125 -0.90625 0.5625q0.421875 0.203125 0.625 0.53125q0.203125 0.328125 0.203125 0.875q0 0.453125 -0.265625 1.671875q-0.1875 0.859375 -0.1875 1.078125q0 0.21875 0.09375 0.34375q0.0625 0.109375 0.21875 0.15625q0.171875 0.0625 0.703125 0.0625l-0.1875 0.921875l-0.328125 0q-0.546875 0 -0.765625 -0.078125q-0.34375 -0.125 -0.546875 -0.40625q-0.1875 -0.265625 -0.1875 -0.734375q0 -0.390625 0.265625 -1.671875q0.203125 -0.96875 0.203125 -1.3125q0 -0.46875 -0.234375 -0.703125q-0.234375 -0.25 -0.6875 -0.25l0.203125 -0.96875zm3.6796875 1.46875l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.46875 0.015625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm5.5585938 0l-1.015625 -6.21875l1.03125 0l0.53125 3.421875q0.09375 0.5625 0.21875 1.828125q0.296875 -0.65625 0.78125 -1.515625l2.078125 -3.734375l1.109375 0l-3.5625 6.21875l-1.171875 0zm9.0 -2.109375l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm7.2929688 -3.59375l-0.203125 0.96875q-0.4375 0 -0.78125 0.234375q-0.328125 0.234375 -0.515625 0.640625q-0.1875 0.40625 -0.40625 1.390625q-0.21875 0.984375 -0.3125 1.3125q-0.171875 0.5 -0.390625 0.796875q-0.21875 0.3125 -0.484375 0.46875q-0.25 0.171875 -0.609375 0.265625q-0.203125 0.046875 -0.6875 0.046875l-0.328125 0l0.203125 -0.921875l0.1875 0q0.5 0 0.71875 -0.125q0.21875 -0.125 0.359375 -0.421875q0.09375 -0.21875 0.28125 -1.09375q0.234375 -1.109375 0.40625 -1.546875q0.234375 -0.59375 0.59375 -0.953125q0.359375 -0.359375 0.890625 -0.578125q-0.453125 -0.234375 -0.640625 -0.546875q-0.171875 -0.3125 -0.171875 -0.859375q0 -0.453125 0.25 -1.671875q0.1875 -0.84375 0.1875 -1.078125q0 -0.296875 -0.15625 -0.421875q-0.15625 -0.125 -0.671875 -0.125l-0.1875 0l0.203125 -0.921875l0.328125 0q0.546875 0 0.765625 0.078125q0.34375 0.109375 0.53125 0.390625q0.203125 0.265625 0.203125 0.734375q0 0.390625 -0.203125 1.296875q-0.28125 1.359375 -0.28125 1.6875q0 0.46875 0.234375 0.71875q0.234375 0.234375 0.6875 0.234375zm4.0078125 0l-0.203125 0.96875q-0.4375 0 -0.78125 0.234375q-0.328125 0.234375 -0.515625 0.640625q-0.1875 0.40625 -0.40625 1.390625q-0.21875 0.984375 -0.3125 1.3125q-0.171875 0.5 -0.390625 0.796875q-0.21875 0.3125 -0.484375 0.46875q-0.25 0.171875 -0.609375 0.265625q-0.203125 0.046875 -0.6875 0.046875l-0.328125 0l0.203125 -0.921875l0.1875 0q0.5 0 0.71875 -0.125q0.21875 -0.125 0.359375 -0.421875q0.09375 -0.21875 0.28125 -1.09375q0.234375 -1.109375 0.40625 -1.546875q0.234375 -0.59375 0.59375 -0.953125q0.359375 -0.359375 0.890625 -0.578125q-0.453125 -0.234375 -0.640625 -0.546875q-0.171875 -0.3125 -0.171875 -0.859375q0 -0.453125 0.25 -1.671875q0.1875 -0.84375 0.1875 -1.078125q0 -0.296875 -0.15625 -0.421875q-0.15625 -0.125 -0.671875 -0.125l-0.1875 0l0.203125 -0.921875l0.328125 0q0.546875 0 0.765625 0.078125q0.34375 0.109375 0.53125 0.390625q0.203125 0.265625 0.203125 0.734375q0 0.390625 -0.203125 1.296875q-0.28125 1.359375 -0.28125 1.6875q0 0.46875 0.234375 0.71875q0.234375 0.234375 0.6875 0.234375zm5.544922 -3.796875l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m673.95276 96.70677l283.68506 0l0 106.92914l-283.68506 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m673.95276 96.70677l283.68506 0l0 106.92914l-283.68506 0z" fill-rule="evenodd"/><path fill="#000000" d="m686.06213 117.22677l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158203 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m783.9215 115.11739l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199219 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m690.01526 133.21115l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.5156326 2.09375 -0.5156326q1.28125 0 2.15625 0.6562576q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.6250076l0 2.1718826l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.2187576l1.0625 0l0 1.2187576l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.2753906 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.955078 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m779.359 136.22678l1.78125 -8.593758l1.0625 0l-0.6875 3.2968826q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm6.861328 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.533203 0.34375l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm8.375 1.265625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.7343826l-0.46875 2.2656326l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm3.9824219 2.4375l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m778.82776 152.6174l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4375 -0.21875 0.921875 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.984375 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.921875 0 1.484375 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.40625 0 -0.75 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm5.298828 0.1875q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm6.4648438 -0.859375l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm4.435547 -0.015625l1.078125 -0.109375q-0.015625 0.234375 -0.015625 0.28125q0 0.375 0.1875 0.78125q0.203125 0.390625 0.53125 0.59375q0.34375 0.203125 0.71875 0.203125q0.5 0 1.0 -0.328125q0.515625 -0.34375 0.828125 -0.984375q0.3125 -0.65625 0.3125 -1.296875q0 -0.71875 -0.421875 -1.15625q-0.421875 -0.4375 -1.109375 -0.4375q-0.46875 0 -0.890625 0.234375q-0.40625 0.21875 -0.765625 0.65625l-0.921875 -0.0625l1.296875 -4.390625l4.203125 0l-0.21875 0.96875l-3.25 0l-0.65625 2.1875q0.375 -0.265625 0.75 -0.390625q0.390625 -0.140625 0.796875 -0.140625q0.984375 0 1.609375 0.65625q0.640625 0.640625 0.640625 1.78125q0 0.984375 -0.4375 1.828125q-0.4375 0.828125 -1.203125 1.28125q-0.75 0.4375 -1.625 0.4375q-0.75 0 -1.3125 -0.328125q-0.5625 -0.328125 -0.859375 -0.90625q-0.28125 -0.59375 -0.28125 -1.1875q0 -0.0625 0.015625 -0.171875zm8.533203 -2.265625q-0.46875 -0.265625 -0.71875 -0.671875q-0.234375 -0.421875 -0.234375 -0.890625q0 -0.78125 0.5625 -1.453125q0.75 -0.890625 2.03125 -0.890625q1.125 0 1.78125 0.609375q0.65625 0.609375 0.65625 1.484375q0 0.625 -0.359375 1.125q-0.34375 0.5 -1.09375 0.8125q0.515625 0.3125 0.734375 0.671875q0.28125 0.484375 0.28125 1.109375q0 1.15625 -0.8125 2.0625q-0.8125 0.90625 -2.171875 0.90625q-1.09375 0 -1.78125 -0.671875q-0.6875 -0.671875 -0.6875 -1.671875q0 -0.9375 0.484375 -1.609375q0.5 -0.6875 1.328125 -0.921875zm0.09375 -1.515625q0 0.546875 0.34375 0.890625q0.359375 0.328125 0.984375 0.328125q0.71875 0 1.171875 -0.4375q0.453125 -0.453125 0.453125 -1.09375q0 -0.546875 -0.359375 -0.890625q-0.34375 -0.34375 -0.96875 -0.34375q-0.46875 0 -0.859375 0.21875q-0.390625 0.21875 -0.578125 0.59375q-0.1875 0.375 -0.1875 0.734375zm-0.828125 4.140625q0 0.359375 0.171875 0.6875q0.171875 0.328125 0.515625 0.515625q0.359375 0.1875 0.8125 0.1875q0.859375 0 1.390625 -0.796875q0.421875 -0.640625 0.421875 -1.375q0 -0.59375 -0.390625 -0.96875q-0.390625 -0.390625 -1.015625 -0.390625q-0.796875 0 -1.359375 0.59375q-0.546875 0.59375 -0.546875 1.546875zm6.439453 2.09375q0.140625 -0.875 0.609375 -2.09375q0.546875 -1.46875 1.421875 -2.90625q0.890625 -1.453125 1.96875 -2.5l-4.28125 0l0.203125 -0.96875l5.484375 0l-0.203125 0.96875q-1.390625 1.21875 -2.4375 3.15625q-1.203125 2.234375 -1.65625 4.34375l-1.109375 0z" fill-rule="nonzero"/><path fill="#000000" d="m683.87463 170.22676l0 -8.59375l3.25 0q0.84375 0 1.296875 0.078125q0.640625 0.109375 1.0625 0.40625q0.4375 0.296875 0.6875 0.828125q0.265625 0.53125 0.265625 1.171875q0 1.09375 -0.703125 1.859375q-0.6875 0.75 -2.515625 0.75l-2.203125 0l0 3.5l-1.140625 0zm1.140625 -4.5l2.21875 0q1.109375 0 1.5625 -0.40625q0.46875 -0.421875 0.46875 -1.171875q0 -0.53125 -0.28125 -0.90625q-0.265625 -0.390625 -0.703125 -0.515625q-0.296875 -0.078125 -1.0625 -0.078125l-2.203125 0l0 3.078125zm6.7226562 4.5l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm3.6210938 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 5.5l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.861328 3.703125l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm6.3085938 -0.9375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm6.9160156 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.455078 1.84375l1.03125 -0.15625q0.09375 0.625 0.484375 0.953125q0.40625 0.328125 1.140625 0.328125q0.71875 0 1.0625 -0.28125q0.359375 -0.296875 0.359375 -0.703125q0 -0.359375 -0.3125 -0.5625q-0.21875 -0.140625 -1.078125 -0.359375q-1.15625 -0.296875 -1.609375 -0.5q-0.4375 -0.21875 -0.671875 -0.59375q-0.234375 -0.375 -0.234375 -0.84375q0 -0.40625 0.1875 -0.765625q0.1875 -0.359375 0.515625 -0.59375q0.25 -0.171875 0.671875 -0.296875q0.421875 -0.125 0.921875 -0.125q0.71875 0 1.265625 0.21875q0.5625 0.203125 0.828125 0.5625q0.265625 0.359375 0.359375 0.953125l-1.03125 0.140625q-0.0625 -0.46875 -0.40625 -0.734375q-0.328125 -0.28125 -0.953125 -0.28125q-0.71875 0 -1.03125 0.25q-0.3125 0.234375 -0.3125 0.5625q0 0.203125 0.125 0.359375q0.140625 0.171875 0.40625 0.28125q0.15625 0.0625 0.9375 0.265625q1.125 0.3125 1.5625 0.5q0.4375 0.1875 0.6875 0.546875q0.25 0.359375 0.25 0.90625q0 0.53125 -0.3125 1.0q-0.296875 0.453125 -0.875 0.71875q-0.578125 0.25 -1.3125 0.25q-1.21875 0 -1.859375 -0.5q-0.625 -0.515625 -0.796875 -1.5z" fill-rule="nonzero"/><path fill="#000000" d="m779.45276 168.10176l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.140625 1.0q-1.109375 1.265625 -2.28125 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4375 -0.21875 0.734375 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.4394531 1.125l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm6.611328 -4.828125l0.25 -1.203125l1.046875 0l-0.25 1.203125l-1.046875 0zm-3.359375 9.734375l0.1875 -0.90625q0.359375 0.09375 0.640625 0.09375q0.34375 0 0.546875 -0.234375q0.203125 -0.21875 0.421875 -1.234375l1.296875 -6.28125l1.0625 0l-1.34375 6.46875q-0.25 1.21875 -0.578125 1.65625q-0.4375 0.578125 -1.234375 0.578125q-0.40625 0 -1.0 -0.140625zm9.087891 -4.453125l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm9.470703 1.390625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm4.1875 1.40625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm1.6835938 7.0l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm16.835938 -3.03125l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm7.9160156 1.234375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m779.359 184.22676l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm5.298828 0.203125q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm9.626953 1.5625q-0.90625 1.046875 -1.890625 1.046875q-0.890625 0 -1.484375 -0.65625q-0.578125 -0.65625 -0.578125 -1.890625q0 -1.140625 0.453125 -2.078125q0.46875 -0.9375 1.171875 -1.40625q0.703125 -0.46875 1.40625 -0.46875q1.15625 0 1.75 1.109375l0.703125 -3.34375l1.046875 0l-1.78125 8.59375l-0.984375 0l0.1875 -0.90625zm-2.90625 -1.703125q0 0.65625 0.125 1.03125q0.140625 0.375 0.4375 0.625q0.3125 0.25 0.75 0.25q0.71875 0 1.3125 -0.75q0.78125 -1.0 0.78125 -2.46875q0 -0.734375 -0.390625 -1.140625q-0.390625 -0.421875 -0.96875 -0.421875q-0.375 0 -0.703125 0.171875q-0.3125 0.15625 -0.625 0.5625q-0.296875 0.40625 -0.515625 1.046875q-0.203125 0.625 -0.203125 1.09375zm4.986328 5.015625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm16.083984 -7.453125l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m867.9977 173.36348l28.02539 0l0 13.798828l-28.02539 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m869.91956 184.22676l-2.28125 0l3.78125 -4.34375l-2.125 -4.25l1.84375 0l0.84375 1.609375q0.03125 0.09375 0.5625 1.1875q0.046875 0.0625 0.078125 0.171875q0.71875 -0.875 1.203125 -1.4375l1.359375 -1.53125l2.21875 0l-3.9375 4.53125l2.125 4.0625l-2.0 0l-0.640625 -1.296875q-0.5 -1.03125 -0.671875 -1.46875q-0.21875 0.34375 -1.171875 1.421875l-1.1875 1.34375zm7.5039062 -4.9375l0.3125 -1.5q2.1875 -0.953125 3.375 -2.203125l1.015625 0l-1.8125 8.640625l-1.6875 0l1.25 -5.953125q-0.53125 0.34375 -1.21875 0.625q-0.6875 0.28125 -1.234375 0.390625zm8.423828 -0.96875l-1.640625 -0.25q0.1875 -1.203125 0.921875 -1.828125q0.734375 -0.640625 1.828125 -0.640625q1.203125 0 1.875 0.65625q0.6875 0.640625 0.6875 1.640625q0 0.515625 -0.21875 1.03125q-0.203125 0.515625 -0.671875 1.078125q-0.34375 0.390625 -1.140625 1.125q-0.78125 0.71875 -1.046875 1.0q-0.25 0.265625 -0.484375 0.5625l2.984375 0l-0.3125 1.53125l-5.21875 0q0.078125 -0.640625 0.359375 -1.203125q0.296875 -0.578125 0.71875 -1.0625q0.4375 -0.5 1.59375 -1.59375q0.875 -0.828125 1.09375 -1.078125q0.421875 -0.453125 0.5625 -0.78125q0.15625 -0.34375 0.15625 -0.609375q0 -0.4375 -0.25 -0.703125q-0.25 -0.28125 -0.65625 -0.28125q-0.390625 0 -0.6875 0.3125q-0.296875 0.296875 -0.453125 1.09375zm4.111328 3.65625l1.609375 -0.1875q0.109375 0.6875 0.359375 0.953125q0.265625 0.265625 0.703125 0.265625q0.5625 0 0.9375 -0.390625q0.390625 -0.390625 0.390625 -1.0q0 -0.515625 -0.3125 -0.828125q-0.296875 -0.3125 -0.8125 -0.3125q-0.125 0 -0.265625 0.03125l0.28125 -1.40625q0.09375 0.015625 0.171875 0.015625q0.671875 0 1.015625 -0.34375q0.359375 -0.34375 0.359375 -0.921875q0 -0.421875 -0.234375 -0.65625q-0.234375 -0.25 -0.625 -0.25q-0.359375 0 -0.65625 0.265625q-0.28125 0.265625 -0.453125 0.921875l-1.53125 -0.3125q0.296875 -0.953125 0.8125 -1.453125q0.796875 -0.765625 1.953125 -0.765625q1.171875 0 1.78125 0.65625q0.625 0.65625 0.625 1.578125q0 0.671875 -0.390625 1.21875q-0.390625 0.53125 -1.078125 0.78125q0.546875 0.28125 0.796875 0.75q0.265625 0.453125 0.265625 0.953125q0 0.953125 -0.671875 1.75q-0.921875 1.078125 -2.375 1.078125q-1.09375 0 -1.796875 -0.625q-0.703125 -0.625 -0.859375 -1.765625z" fill-rule="nonzero"/><path fill="#000000" d="m901.2633 176.83614l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m867.9977 185.00676l28.02539 0l0 1.0800018l-28.02539 0l0 -1.0800018z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m673.95276 213.52304l283.68506 0l0 106.92914l-283.68506 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m673.95276 213.52304l283.68506 0l0 106.92914l-283.68506 0z" fill-rule="evenodd"/><path fill="#000000" d="m686.06213 234.04305l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158203 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m783.9215 231.93367l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199219 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m690.01526 250.02742l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.2753906 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.955078 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m779.359 253.04305l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm6.861328 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.533203 0.34375l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm8.375 1.265625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm3.9824219 2.4375l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m778.82776 269.43365l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4375 -0.21875 0.921875 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.984375 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.921875 0 1.484375 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.40625 0 -0.75 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm5.298828 0.1875q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm6.4648438 -0.859375l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm4.435547 -0.015625l1.078125 -0.109375q-0.015625 0.234375 -0.015625 0.28125q0 0.375 0.1875 0.78125q0.203125 0.390625 0.53125 0.59375q0.34375 0.203125 0.71875 0.203125q0.5 0 1.0 -0.328125q0.515625 -0.34375 0.828125 -0.984375q0.3125 -0.65625 0.3125 -1.296875q0 -0.71875 -0.421875 -1.15625q-0.421875 -0.4375 -1.109375 -0.4375q-0.46875 0 -0.890625 0.234375q-0.40625 0.21875 -0.765625 0.65625l-0.921875 -0.0625l1.296875 -4.390625l4.203125 0l-0.21875 0.96875l-3.25 0l-0.65625 2.1875q0.375 -0.265625 0.75 -0.390625q0.390625 -0.140625 0.796875 -0.140625q0.984375 0 1.609375 0.65625q0.640625 0.640625 0.640625 1.78125q0 0.984375 -0.4375 1.828125q-0.4375 0.828125 -1.203125 1.28125q-0.75 0.4375 -1.625 0.4375q-0.75 0 -1.3125 -0.328125q-0.5625 -0.328125 -0.859375 -0.90625q-0.28125 -0.59375 -0.28125 -1.1875q0 -0.0625 0.015625 -0.171875zm8.533203 -2.265625q-0.46875 -0.265625 -0.71875 -0.671875q-0.234375 -0.421875 -0.234375 -0.890625q0 -0.78125 0.5625 -1.453125q0.75 -0.890625 2.03125 -0.890625q1.125 0 1.78125 0.609375q0.65625 0.609375 0.65625 1.484375q0 0.625 -0.359375 1.125q-0.34375 0.5 -1.09375 0.8125q0.515625 0.3125 0.734375 0.671875q0.28125 0.484375 0.28125 1.109375q0 1.15625 -0.8125 2.0625q-0.8125 0.90625 -2.171875 0.90625q-1.09375 0 -1.78125 -0.671875q-0.6875 -0.671875 -0.6875 -1.671875q0 -0.9375 0.484375 -1.609375q0.5 -0.6875 1.328125 -0.921875zm0.09375 -1.515625q0 0.546875 0.34375 0.890625q0.359375 0.328125 0.984375 0.328125q0.71875 0 1.171875 -0.4375q0.453125 -0.453125 0.453125 -1.09375q0 -0.546875 -0.359375 -0.890625q-0.34375 -0.34375 -0.96875 -0.34375q-0.46875 0 -0.859375 0.21875q-0.390625 0.21875 -0.578125 0.59375q-0.1875 0.375 -0.1875 0.734375zm-0.828125 4.140625q0 0.359375 0.171875 0.6875q0.171875 0.328125 0.515625 0.515625q0.359375 0.1875 0.8125 0.1875q0.859375 0 1.390625 -0.796875q0.421875 -0.640625 0.421875 -1.375q0 -0.59375 -0.390625 -0.96875q-0.390625 -0.390625 -1.015625 -0.390625q-0.796875 0 -1.359375 0.59375q-0.546875 0.59375 -0.546875 1.546875zm6.439453 2.09375q0.140625 -0.875 0.609375 -2.09375q0.546875 -1.46875 1.421875 -2.90625q0.890625 -1.453125 1.96875 -2.5l-4.28125 0l0.203125 -0.96875l5.484375 0l-0.203125 0.96875q-1.390625 1.21875 -2.4375 3.15625q-1.203125 2.234375 -1.65625 4.34375l-1.109375 0z" fill-rule="nonzero"/><path fill="#000000" d="m683.87463 287.04303l0 -8.59375l3.25 0q0.84375 0 1.296875 0.078125q0.640625 0.109375 1.0625 0.40625q0.4375 0.296875 0.6875 0.828125q0.265625 0.53125 0.265625 1.171875q0 1.09375 -0.703125 1.859375q-0.6875 0.75 -2.515625 0.75l-2.203125 0l0 3.5l-1.140625 0zm1.140625 -4.5l2.21875 0q1.109375 0 1.5625 -0.40625q0.46875 -0.421875 0.46875 -1.171875q0 -0.53125 -0.28125 -0.90625q-0.265625 -0.390625 -0.703125 -0.515625q-0.296875 -0.078125 -1.0625 -0.078125l-2.203125 0l0 3.078125zm6.7226562 4.5l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm3.6210938 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 5.5l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.861328 3.703125l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm6.3085938 -0.9375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm6.9160156 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.455078 1.84375l1.03125 -0.15625q0.09375 0.625 0.484375 0.953125q0.40625 0.328125 1.140625 0.328125q0.71875 0 1.0625 -0.28125q0.359375 -0.296875 0.359375 -0.703125q0 -0.359375 -0.3125 -0.5625q-0.21875 -0.140625 -1.078125 -0.359375q-1.15625 -0.296875 -1.609375 -0.5q-0.4375 -0.21875 -0.671875 -0.59375q-0.234375 -0.375 -0.234375 -0.84375q0 -0.40625 0.1875 -0.765625q0.1875 -0.359375 0.515625 -0.59375q0.25 -0.171875 0.671875 -0.296875q0.421875 -0.125 0.921875 -0.125q0.71875 0 1.265625 0.21875q0.5625 0.203125 0.828125 0.5625q0.265625 0.359375 0.359375 0.953125l-1.03125 0.140625q-0.0625 -0.46875 -0.40625 -0.734375q-0.328125 -0.28125 -0.953125 -0.28125q-0.71875 0 -1.03125 0.25q-0.3125 0.234375 -0.3125 0.5625q0 0.203125 0.125 0.359375q0.140625 0.171875 0.40625 0.28125q0.15625 0.0625 0.9375 0.265625q1.125 0.3125 1.5625 0.5q0.4375 0.1875 0.6875 0.546875q0.25 0.359375 0.25 0.90625q0 0.53125 -0.3125 1.0q-0.296875 0.453125 -0.875 0.71875q-0.578125 0.25 -1.3125 0.25q-1.21875 0 -1.859375 -0.5q-0.625 -0.515625 -0.796875 -1.5z" fill-rule="nonzero"/><path fill="#000000" d="m779.45276 284.91803l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.140625 1.0q-1.109375 1.265625 -2.28125 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4375 -0.21875 0.734375 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.4394531 1.125l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm6.611328 -4.828125l0.25 -1.203125l1.046875 0l-0.25 1.203125l-1.046875 0zm-3.359375 9.734375l0.1875 -0.90625q0.359375 0.09375 0.640625 0.09375q0.34375 0 0.546875 -0.234375q0.203125 -0.21875 0.421875 -1.234375l1.296875 -6.28125l1.0625 0l-1.34375 6.46875q-0.25 1.21875 -0.578125 1.65625q-0.4375 0.578125 -1.234375 0.578125q-0.40625 0 -1.0 -0.140625zm9.087891 -4.453125l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm9.470703 1.390625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm4.1875 1.40625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm1.6835938 7.0l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm16.835938 -3.03125l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm7.9160156 1.234375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m779.359 301.04303l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm5.298828 0.203125q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm9.626953 1.5625q-0.90625 1.046875 -1.890625 1.046875q-0.890625 0 -1.484375 -0.65625q-0.578125 -0.65625 -0.578125 -1.890625q0 -1.140625 0.453125 -2.078125q0.46875 -0.9375 1.171875 -1.40625q0.703125 -0.46875 1.40625 -0.46875q1.15625 0 1.75 1.109375l0.703125 -3.34375l1.046875 0l-1.78125 8.59375l-0.984375 0l0.1875 -0.90625zm-2.90625 -1.703125q0 0.65625 0.125 1.03125q0.140625 0.375 0.4375 0.625q0.3125 0.25 0.75 0.25q0.71875 0 1.3125 -0.75q0.78125 -1.0 0.78125 -2.46875q0 -0.734375 -0.390625 -1.140625q-0.390625 -0.421875 -0.96875 -0.421875q-0.375 0 -0.703125 0.171875q-0.3125 0.15625 -0.625 0.5625q-0.296875 0.40625 -0.515625 1.046875q-0.203125 0.625 -0.203125 1.09375zm4.986328 5.015625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm16.083984 -7.453125l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m867.9977 290.17975l28.02539 0l0 13.798828l-28.02539 0l0 -13.798828z" fill-rule="nonzero"/><path fill="#000000" d="m872.8102 301.04303l-1.765625 0l0.703125 -3.34375l-2.375 -5.25l1.890625 0l1.0625 2.421875q0.375 0.875 0.5 1.265625q0.21875 -0.375 0.515625 -0.8125l0.8125 -1.125l1.203125 -1.75l2.0625 0l-3.9375 5.40625l-0.671875 3.1875zm6.8945312 -1.75l-3.375 0l0.296875 -1.40625l4.640625 -5.4375l1.453125 0l-1.125 5.40625l1.046875 0l-0.3125 1.4375l-1.03125 0l-0.375 1.75l-1.578125 0l0.359375 -1.75zm0.3125 -1.4375l0.546875 -2.671875l-2.265625 2.671875l1.71875 0zm3.4238281 0.71875l1.625 -0.140625q0 0.125 0 0.171875q0 0.609375 0.265625 0.90625q0.265625 0.296875 0.703125 0.296875q0.59375 0 1.078125 -0.5625q0.484375 -0.578125 0.484375 -1.59375q0 -0.59375 -0.28125 -0.890625q-0.265625 -0.3125 -0.71875 -0.3125q-0.328125 0 -0.640625 0.15625q-0.296875 0.140625 -0.59375 0.453125l-1.375 -0.09375l1.296875 -4.390625l4.328125 0l-0.328125 1.53125l-2.84375 0l-0.390625 1.328125q0.234375 -0.109375 0.484375 -0.171875q0.25 -0.0625 0.484375 -0.0625q0.984375 0 1.609375 0.671875q0.640625 0.65625 0.640625 1.765625q0 0.890625 -0.4375 1.765625q-0.4375 0.859375 -1.234375 1.328125q-0.78125 0.453125 -1.640625 0.453125q-1.09375 0 -1.796875 -0.703125q-0.703125 -0.703125 -0.71875 -1.90625zm12.814453 -4.03125l-1.578125 0.140625q-0.046875 -0.515625 -0.25 -0.71875q-0.1875 -0.203125 -0.515625 -0.203125q-0.4375 0 -0.765625 0.34375q-0.46875 0.484375 -0.765625 1.5625q0.546875 -0.359375 1.15625 -0.359375q1.0 0 1.640625 0.6875q0.640625 0.671875 0.640625 1.84375q0 0.9375 -0.453125 1.765625q-0.4375 0.828125 -1.125 1.21875q-0.671875 0.375 -1.421875 0.375q-0.71875 0 -1.296875 -0.359375q-0.578125 -0.359375 -0.890625 -1.046875q-0.3125 -0.703125 -0.3125 -1.859375q0 -2.3125 1.015625 -3.90625q1.03125 -1.609375 2.703125 -1.609375q0.953125 0 1.515625 0.53125q0.578125 0.515625 0.703125 1.59375zm-4.3125 3.96875q0 0.6875 0.265625 1.015625q0.265625 0.3125 0.671875 0.3125q0.484375 0 0.84375 -0.453125q0.46875 -0.625 0.46875 -1.65625q0 -0.671875 -0.265625 -0.984375q-0.265625 -0.328125 -0.640625 -0.328125q-0.328125 0 -0.65625 0.25q-0.328125 0.25 -0.515625 0.78125q-0.171875 0.515625 -0.171875 1.0625z" fill-rule="nonzero"/><path fill="#000000" d="m901.2633 293.6524l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m867.9977 301.82303l28.02539 0l0 1.0800171l-28.02539 0l0 -1.0800171z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m428.9186 232.81627l245.03934 -82.64566" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m428.9186 232.81627l245.03934 -82.64566" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m428.9186 232.81627l245.03934 34.173233" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m428.9186 232.81627l245.03934 34.173233" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m667.3228 18.233574l296.9449 0l0 28.031494l-296.9449 0z" fill-rule="evenodd"/><path fill="#000000" d="m679.29156 41.313572l-2.796875 -10.484373l1.4375 0l1.59375 6.874998q0.25 1.078125 0.4375 2.140625q0.40625 -1.6875 0.46875 -1.9375l2.0 -7.078123l1.671875 0l1.5 5.296873q0.578125 1.984375 0.828125 3.71875q0.203125 -1.0 0.515625 -2.28125l1.640625 -6.734373l1.40625 0l-2.875 10.484373l-1.34375 0l-2.203125 -8.0q-0.28125 -1.0 -0.34375 -1.21875q-0.15625 0.71875 -0.296875 1.21875l-2.234375 8.0l-1.40625 0zm11.833313 0l0 -10.484373l1.28125 0l0 3.749998q0.90625 -1.03125 2.28125 -1.03125q0.84375 0 1.46875 0.328125q0.625 0.328125 0.890625 0.921875q0.265625 0.578125 0.265625 1.703125l0 4.8125l-1.28125 0l0 -4.8125q0 -0.96875 -0.421875 -1.40625q-0.421875 -0.4375 -1.1875 -0.4375q-0.578125 0 -1.078125 0.296875q-0.5 0.296875 -0.71875 0.8125q-0.21875 0.5 -0.21875 1.390625l0 4.15625l-1.28125 0zm13.354187 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.182373 4.53125l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm17.176208 -0.9375q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm12.3324585 1.03125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm1.890625 -1.015625q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm13.072998 0l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.749998l1.28125 0l0 10.484373l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm7.291687 -5.21875l0 -1.4687481l1.296875 0l0 1.4687481l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm6.0686646 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.8906231l1.28125 -0.765625l0 2.656248l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594604 -7.859375l0 -1.4687481l1.296875 0l0 1.4687481l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717896 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm12.2230835 -9.015625l0 -1.4687481l1.296875 0l0 1.4687481l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7405396 -2.265625l1.265625 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.546875 -0.265625 -0.828125 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.296875 -0.21875 0.8125 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.265625 -0.609375q-0.765625 -0.625 -0.984375 -1.828125zm16.837585 2.265625l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.749998l1.28125 0l0 10.484373l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm12.494873 1.34375l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm9.994812 3.375l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.8906231l1.28125 -0.765625l0 2.656248l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm6.4626465 -1.296875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.135437 1.75l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm5.1875 1.625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.8906231l1.28125 -0.765625l0 2.656248l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm6.4626465 -1.296875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.104187 4.53125l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.749998l1.28125 0l0 10.484373l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm7.619873 3.796875l0 -1.46875l1.46875 0l0 1.46875q0 0.8125 -0.28125 1.296875q-0.28125 0.5 -0.90625 0.78125l-0.359375 -0.546875q0.40625 -0.1875 0.59375 -0.53125q0.203125 -0.34375 0.21875 -1.0l-0.734375 0zm10.628357 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.8906231l1.28125 -0.765625l0 2.656248l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2594604 1.15625l0 -10.484373l1.28125 0l0 3.749998q0.90625 -1.03125 2.28125 -1.03125q0.84375 0 1.46875 0.328125q0.625 0.328125 0.890625 0.921875q0.265625 0.578125 0.265625 1.703125l0 4.8125l-1.28125 0l0 -4.8125q0 -0.96875 -0.421875 -1.40625q-0.421875 -0.4375 -1.1875 -0.4375q-0.578125 0 -1.078125 0.296875q-0.5 0.296875 -0.71875 0.8125q-0.21875 0.5 -0.21875 1.390625l0 4.15625l-1.28125 0zm13.354248 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm16.207458 3.59375q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm8.260437 1.03125l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm5.1875 1.625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.8906231l1.28125 -0.765625l0 2.656248l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2595215 -7.859375l0 -1.4687481l1.296875 0l0 1.4687481l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7717285 -3.796875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 3.796875l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm12.2230835 -9.015625l0 -1.4687481l1.296875 0l0 1.4687481l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm2.7405396 -2.265625l1.265625 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.546875 -0.265625 -0.828125 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.296875 -0.21875 0.8125 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.265625 -0.609375q-0.765625 -0.625 -0.984375 -1.828125z" fill-rule="nonzero"/><path fill="#000000" d="m677.29156 62.219826l0 -10.5l1.171875 0l0 0.984375q0.421875 -0.578125 0.9375 -0.859375q0.515625 -0.296875 1.265625 -0.296875q0.96875 0 1.71875 0.5q0.75 0.5 1.125 1.421875q0.375 0.90625 0.375 1.984375q0 1.171875 -0.421875 2.109375q-0.40625 0.921875 -1.21875 1.421875q-0.796875 0.5 -1.671875 0.5q-0.640625 0 -1.15625 -0.265625q-0.515625 -0.28125 -0.84375 -0.6875l0 3.6875l-1.28125 0zm1.15625 -6.65625q0 1.453125 0.59375 2.15625q0.609375 0.703125 1.453125 0.703125q0.859375 0 1.46875 -0.71875q0.609375 -0.734375 0.609375 -2.25q0 -1.453125 -0.609375 -2.171875q-0.59375 -0.734375 -1.421875 -0.734375q-0.8125 0 -1.453125 0.78125q-0.640625 0.765625 -0.640625 2.234375zm6.510498 -0.046875q0 -2.109375 1.171875 -3.125q0.984375 -0.84375 2.390625 -0.84375q1.578125 0 2.5625 1.03125q1.0 1.015625 1.0 2.828125q0 1.46875 -0.4375 2.3125q-0.4375 0.828125 -1.28125 1.296875q-0.84375 0.46875 -1.84375 0.46875q-1.59375 0 -2.578125 -1.015625q-0.984375 -1.03125 -0.984375 -2.953125zm1.328125 0q0 1.453125 0.625 2.1875q0.640625 0.71875 1.609375 0.71875q0.96875 0 1.59375 -0.71875q0.640625 -0.734375 0.640625 -2.234375q0 -1.40625 -0.640625 -2.125q-0.640625 -0.734375 -1.59375 -0.734375q-0.96875 0 -1.609375 0.71875q-0.625 0.71875 -0.625 2.1875zm7.307373 6.703125l0 -10.5l1.171875 0l0 0.984375q0.421875 -0.578125 0.9375 -0.859375q0.515625 -0.296875 1.265625 -0.296875q0.96875 0 1.71875 0.5q0.75 0.5 1.125 1.421875q0.375 0.90625 0.375 1.984375q0 1.171875 -0.421875 2.109375q-0.40625 0.921875 -1.21875 1.421875q-0.796875 0.5 -1.671875 0.5q-0.640625 0 -1.15625 -0.265625q-0.515625 -0.28125 -0.84375 -0.6875l0 3.6875l-1.28125 0zm1.15625 -6.65625q0 1.453125 0.59375 2.15625q0.609375 0.703125 1.453125 0.703125q0.859375 0 1.46875 -0.71875q0.609375 -0.734375 0.609375 -2.25q0 -1.453125 -0.609375 -2.171875q-0.59375 -0.734375 -1.421875 -0.734375q-0.8125 0 -1.453125 0.78125q-0.640625 0.765625 -0.640625 2.234375zm11.979248 3.75l0 -1.109375q-0.890625 1.28125 -2.421875 1.28125q-0.671875 0 -1.25 -0.25q-0.578125 -0.265625 -0.875 -0.65625q-0.28125 -0.390625 -0.390625 -0.953125q-0.078125 -0.375 -0.078125 -1.203125l0 -4.703125l1.28125 0l0 4.203125q0 1.015625 0.078125 1.359375q0.125 0.515625 0.515625 0.8125q0.40625 0.28125 0.984375 0.28125q0.578125 0 1.078125 -0.296875q0.515625 -0.296875 0.71875 -0.8125q0.21875 -0.515625 0.21875 -1.484375l0 -4.0625l1.28125 0l0 7.59375l-1.140625 0zm3.135437 0l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0zm8.24054 -0.9375q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm6.119873 2.65625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm6.4625854 -1.296875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.104248 4.53125l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm12.7699585 3.796875l-2.328125 -7.59375l1.328125 0l1.203125 4.375l0.453125 1.640625q0.03125 -0.125 0.390625 -1.578125l1.21875 -4.4375l1.328125 0l1.125 4.40625l0.390625 1.453125l0.4375 -1.46875l1.296875 -4.390625l1.25 0l-2.375 7.59375l-1.34375 0l-1.203125 -4.546875l-0.296875 -1.296875l-1.53125 5.84375l-1.34375 0zm9.17804 -9.015625l0 -1.46875l1.296875 0l0 1.46875l-1.296875 0zm0 9.015625l0 -7.59375l1.296875 0l0 7.59375l-1.296875 0zm6.0686035 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm1.2595215 1.15625l0 -10.484375l1.28125 0l0 3.75q0.90625 -1.03125 2.28125 -1.03125q0.84375 0 1.46875 0.328125q0.625 0.328125 0.890625 0.921875q0.265625 0.578125 0.265625 1.703125l0 4.8125l-1.28125 0l0 -4.8125q0 -0.96875 -0.421875 -1.40625q-0.421875 -0.4375 -1.1875 -0.4375q-0.578125 0 -1.078125 0.296875q-0.5 0.296875 -0.71875 0.8125q-0.21875 0.5 -0.21875 1.390625l0 4.15625l-1.28125 0zm17.176208 -0.9375q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm3.276062 3.8125l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0zm8.49054 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm7.166748 4.53125l0 -7.59375l1.15625 0l0 1.140625q0.453125 -0.796875 0.828125 -1.046875q0.375 -0.265625 0.8125 -0.265625q0.65625 0 1.328125 0.40625l-0.4375 1.203125q-0.46875 -0.28125 -0.953125 -0.28125q-0.421875 0 -0.765625 0.25q-0.328125 0.25 -0.46875 0.703125q-0.21875 0.6875 -0.21875 1.5l0 3.984375l-1.28125 0zm7.70874 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm7.440857 1.15625l-2.890625 -7.59375l1.359375 0l1.625 4.546875q0.265625 0.734375 0.5 1.53125q0.15625 -0.609375 0.46875 -1.453125l1.6875 -4.625l1.328125 0l-2.875 7.59375l-1.203125 0zm10.171875 -0.9375q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm3.276123 3.8125l0 -10.484375l1.28125 0l0 10.484375l-1.28125 0zm8.2717285 0l0 -1.109375q-0.890625 1.28125 -2.421875 1.28125q-0.671875 0 -1.25 -0.25q-0.578125 -0.265625 -0.875 -0.65625q-0.28125 -0.390625 -0.390625 -0.953125q-0.078125 -0.375 -0.078125 -1.203125l0 -4.703125l1.28125 0l0 4.203125q0 1.015625 0.078125 1.359375q0.125 0.515625 0.515625 0.8125q0.40625 0.28125 0.984375 0.28125q0.578125 0 1.078125 -0.296875q0.515625 -0.296875 0.71875 -0.8125q0.21875 -0.515625 0.21875 -1.484375l0 -4.0625l1.28125 0l0 7.59375l-1.140625 0zm8.369873 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm6.666748 2.265625l1.265625 -0.203125q0.109375 0.765625 0.59375 1.171875q0.5 0.40625 1.375 0.40625q0.890625 0 1.3125 -0.359375q0.4375 -0.359375 0.4375 -0.84375q0 -0.4375 -0.375 -0.6875q-0.265625 -0.171875 -1.3125 -0.4375q-1.421875 -0.359375 -1.96875 -0.609375q-0.546875 -0.265625 -0.828125 -0.734375q-0.28125 -0.46875 -0.28125 -1.015625q0 -0.515625 0.21875 -0.9375q0.234375 -0.4375 0.640625 -0.734375q0.296875 -0.21875 0.8125 -0.359375q0.53125 -0.15625 1.125 -0.15625q0.890625 0 1.5625 0.265625q0.671875 0.25 1.0 0.6875q0.328125 0.4375 0.4375 1.171875l-1.25 0.171875q-0.09375 -0.578125 -0.5 -0.90625q-0.40625 -0.34375 -1.15625 -0.34375q-0.890625 0 -1.28125 0.296875q-0.375 0.296875 -0.375 0.6875q0 0.25 0.15625 0.453125q0.15625 0.203125 0.5 0.34375q0.1875 0.078125 1.140625 0.328125q1.359375 0.359375 1.890625 0.59375q0.546875 0.234375 0.859375 0.6875q0.3125 0.4375 0.3125 1.09375q0 0.640625 -0.375 1.21875q-0.375 0.5625 -1.09375 0.875q-0.703125 0.3125 -1.59375 0.3125q-1.484375 0 -2.265625 -0.609375q-0.765625 -0.625 -0.984375 -1.828125zm14.368835 5.34375q-1.0625 -1.34375 -1.796875 -3.140625q-0.734375 -1.8125 -0.734375 -3.734375q0 -1.703125 0.546875 -3.265625q0.640625 -1.8125 1.984375 -3.609375l0.921875 0q-0.859375 1.484375 -1.140625 2.125q-0.4375 0.984375 -0.6875 2.0625q-0.296875 1.34375 -0.296875 2.6875q0 3.453125 2.125 6.875l-0.921875 0zm5.5932617 -3.078125l4.0625 -5.46875l-3.578125 -5.015625l1.65625 0l1.890625 2.6875q0.59375 0.828125 0.84375 1.28125q0.359375 -0.5625 0.84375 -1.1875l2.109375 -2.78125l1.5 0l-3.6875 4.9375l3.984375 5.546875l-1.71875 0l-2.640625 -3.75q-0.21875 -0.3125 -0.46875 -0.6875q-0.34375 0.5625 -0.5 0.78125l-2.625 3.65625l-1.671875 0zm15.166199 0l-1.28125 0l0 -8.203125q-0.46875 0.4375 -1.21875 0.890625q-0.75 0.4375 -1.359375 0.65625l0 -1.25q1.078125 -0.5 1.890625 -1.21875q0.8125 -0.734375 1.140625 -1.40625l0.828125 0l0 10.53125zm10.072998 -1.234375l0 1.234375l-6.9375 0q-0.015625 -0.46875 0.15625 -0.890625q0.265625 -0.71875 0.84375 -1.40625q0.59375 -0.6875 1.6875 -1.578125q1.71875 -1.40625 2.3125 -2.21875q0.609375 -0.828125 0.609375 -1.5625q0 -0.765625 -0.5625 -1.28125q-0.546875 -0.53125 -1.421875 -0.53125q-0.921875 0 -1.484375 0.5625q-0.5625 0.5625 -0.5625 1.546875l-1.328125 -0.140625q0.140625 -1.484375 1.015625 -2.25q0.890625 -0.78125 2.390625 -0.78125q1.515625 0 2.390625 0.84375q0.875 0.828125 0.875 2.0625q0 0.640625 -0.265625 1.25q-0.25 0.59375 -0.84375 1.265625q-0.59375 0.671875 -1.984375 1.859375q-1.15625 0.96875 -1.484375 1.3125q-0.328125 0.34375 -0.546875 0.703125l5.140625 0zm1.385498 -1.53125l1.296875 -0.171875q0.21875 1.09375 0.75 1.578125q0.53125 0.484375 1.296875 0.484375q0.90625 0 1.53125 -0.625q0.640625 -0.640625 0.640625 -1.5625q0 -0.890625 -0.59375 -1.46875q-0.578125 -0.578125 -1.46875 -0.578125q-0.359375 0 -0.90625 0.140625l0.140625 -1.125q0.125 0.015625 0.203125 0.015625q0.828125 0 1.484375 -0.421875q0.65625 -0.4375 0.65625 -1.34375q0 -0.703125 -0.484375 -1.15625q-0.46875 -0.46875 -1.234375 -0.46875q-0.75 0 -1.25 0.46875q-0.5 0.46875 -0.640625 1.421875l-1.28125 -0.234375q0.234375 -1.296875 1.0625 -2.0q0.84375 -0.71875 2.09375 -0.71875q0.859375 0 1.578125 0.375q0.71875 0.359375 1.09375 1.0q0.390625 0.640625 0.390625 1.34375q0 0.6875 -0.375 1.25q-0.359375 0.546875 -1.0625 0.875q0.921875 0.21875 1.4375 0.90625q0.515625 0.671875 0.515625 1.6875q0 1.375 -1.0 2.328125q-1.0 0.953125 -2.53125 0.953125q-1.390625 0 -2.296875 -0.8125q-0.90625 -0.828125 -1.046875 -2.140625zm17.535583 1.828125q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm3.307373 3.8125l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm13.072937 0l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125z" fill-rule="nonzero"/><path fill="#000000" d="m680.41656 77.313576l0 -4.4375l-4.046875 -6.046875l1.6875 0l2.0625 3.15625q0.578125 0.890625 1.0625 1.78125q0.484375 -0.828125 1.15625 -1.859375l2.03125 -3.078125l1.609375 0l-4.1875 6.046875l0 4.4375l-1.375 0zm10.41626 0l0 -2.515625l-4.546875 0l0 -1.171875l4.78125 -6.796875l1.0625 0l0 6.796875l1.40625 0l0 1.171875l-1.40625 0l0 2.515625l-1.296875 0zm0 -3.6875l0 -4.734375l-3.28125 4.734375l3.28125 0zm4.026123 0.9375l1.34375 -0.109375q0.15625 0.984375 0.703125 1.484375q0.546875 0.5 1.328125 0.5q0.921875 0 1.5625 -0.703125q0.65625 -0.703125 0.65625 -1.859375q0 -1.109375 -0.625 -1.734375q-0.625 -0.640625 -1.625 -0.640625q-0.625 0 -1.125 0.28125q-0.5 0.28125 -0.78125 0.734375l-1.203125 -0.15625l1.015625 -5.390625l5.21875 0l0 1.21875l-4.1875 0l-0.578125 2.828125q0.953125 -0.65625 1.984375 -0.65625q1.375 0 2.3125 0.953125q0.953125 0.953125 0.953125 2.4375q0 1.4375 -0.828125 2.46875q-1.015625 1.265625 -2.75 1.265625q-1.4375 0 -2.34375 -0.796875q-0.90625 -0.796875 -1.03125 -2.125zm14.838562 -5.171875l-1.28125 0.09375q-0.171875 -0.75 -0.484375 -1.09375q-0.53125 -0.546875 -1.296875 -0.546875q-0.609375 0 -1.078125 0.34375q-0.609375 0.4375 -0.96875 1.296875q-0.34375 0.84375 -0.359375 2.421875q0.46875 -0.71875 1.140625 -1.0625q0.671875 -0.34375 1.40625 -0.34375q1.296875 0 2.203125 0.953125q0.90625 0.953125 0.90625 2.453125q0 0.984375 -0.4375 1.84375q-0.421875 0.84375 -1.171875 1.296875q-0.734375 0.4375 -1.6875 0.4375q-1.609375 0 -2.625 -1.171875q-1.015625 -1.1875 -1.015625 -3.90625q0 -3.046875 1.125 -4.421875q0.984375 -1.203125 2.640625 -1.203125q1.234375 0 2.03125 0.703125q0.796875 0.6875 0.953125 1.90625zm-5.265625 4.515625q0 0.671875 0.28125 1.28125q0.28125 0.609375 0.78125 0.9375q0.515625 0.3125 1.078125 0.3125q0.8125 0 1.390625 -0.65625q0.59375 -0.671875 0.59375 -1.796875q0 -1.09375 -0.578125 -1.71875q-0.578125 -0.625 -1.453125 -0.625q-0.875 0 -1.484375 0.625q-0.609375 0.625 -0.609375 1.640625zm7.932373 6.484375l-0.921875 0q2.140625 -3.421875 2.140625 -6.875q0 -1.34375 -0.3125 -2.671875q-0.25 -1.0625 -0.671875 -2.046875q-0.28125 -0.65625 -1.15625 -2.15625l0.921875 0q1.34375 1.796875 1.984375 3.609375q0.546875 1.5625 0.546875 3.265625q0 1.921875 -0.734375 3.734375q-0.734375 1.796875 -1.796875 3.140625zm13.062012 -4.015625q-0.71875 0.609375 -1.375 0.859375q-0.65625 0.25 -1.421875 0.25q-1.25 0 -1.921875 -0.609375q-0.671875 -0.609375 -0.671875 -1.5625q0 -0.5625 0.25 -1.015625q0.25 -0.46875 0.65625 -0.75q0.421875 -0.28125 0.9375 -0.421875q0.375 -0.09375 1.140625 -0.1875q1.5625 -0.1875 2.296875 -0.453125q0.015625 -0.265625 0.015625 -0.328125q0 -0.796875 -0.375 -1.109375q-0.484375 -0.4375 -1.453125 -0.4375q-0.921875 0 -1.359375 0.328125q-0.421875 0.3125 -0.625 1.109375l-1.265625 -0.171875q0.171875 -0.796875 0.5625 -1.296875q0.390625 -0.5 1.140625 -0.765625q0.75 -0.265625 1.71875 -0.265625q0.984375 0 1.59375 0.234375q0.609375 0.21875 0.890625 0.5625q0.28125 0.34375 0.40625 0.875q0.0625 0.328125 0.0625 1.1875l0 1.71875q0 1.796875 0.078125 2.28125q0.078125 0.46875 0.328125 0.90625l-1.34375 0q-0.203125 -0.40625 -0.265625 -0.9375zm-0.109375 -2.875q-0.703125 0.28125 -2.09375 0.484375q-0.796875 0.109375 -1.125 0.265625q-0.328125 0.140625 -0.515625 0.421875q-0.171875 0.265625 -0.171875 0.59375q0 0.515625 0.390625 0.859375q0.390625 0.34375 1.140625 0.34375q0.734375 0 1.3125 -0.3125q0.59375 -0.328125 0.859375 -0.890625q0.203125 -0.4375 0.203125 -1.296875l0 -0.46875zm3.307373 3.8125l0 -7.59375l1.15625 0l0 1.078125q0.84375 -1.25 2.421875 -1.25q0.6875 0 1.265625 0.25q0.578125 0.234375 0.859375 0.640625q0.28125 0.40625 0.40625 0.953125q0.0625 0.359375 0.0625 1.25l0 4.671875l-1.28125 0l0 -4.625q0 -0.78125 -0.15625 -1.171875q-0.15625 -0.390625 -0.546875 -0.625q-0.375 -0.234375 -0.890625 -0.234375q-0.8125 0 -1.421875 0.53125q-0.59375 0.515625 -0.59375 1.96875l0 4.15625l-1.28125 0zm13.072937 0l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm16.566833 1.34375l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm6.322998 4.53125l2.78125 -3.953125l-2.578125 -3.640625l1.609375 0l1.171875 1.78125q0.328125 0.5 0.53125 0.84375q0.3125 -0.46875 0.578125 -0.828125l1.28125 -1.796875l1.53125 0l-2.625 3.578125l2.828125 4.015625l-1.578125 0l-1.5625 -2.359375l-0.40625 -0.640625l-2.0 3.0l-1.5625 0zm13.390625 -2.453125l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.135498 1.75l1.265625 0.15625q-0.203125 1.3125 -1.0625 2.0625q-0.84375 0.734375 -2.09375 0.734375q-1.5625 0 -2.515625 -1.015625q-0.9375 -1.03125 -0.9375 -2.921875q0 -1.234375 0.40625 -2.15625q0.40625 -0.921875 1.234375 -1.375q0.84375 -0.46875 1.8125 -0.46875q1.25 0 2.03125 0.625q0.78125 0.625 1.015625 1.765625l-1.265625 0.203125q-0.171875 -0.765625 -0.625 -1.15625q-0.453125 -0.390625 -1.09375 -0.390625q-0.984375 0 -1.59375 0.703125q-0.609375 0.703125 -0.609375 2.203125q0 1.53125 0.578125 2.234375q0.59375 0.6875 1.546875 0.6875q0.75 0 1.265625 -0.453125q0.515625 -0.46875 0.640625 -1.4375zm7.359375 2.78125l0 -1.109375q-0.890625 1.28125 -2.421875 1.28125q-0.671875 0 -1.25 -0.25q-0.578125 -0.265625 -0.875 -0.65625q-0.28125 -0.390625 -0.390625 -0.953125q-0.078125 -0.375 -0.078125 -1.203125l0 -4.703125l1.28125 0l0 4.203125q0 1.015625 0.078125 1.359375q0.125 0.515625 0.515625 0.8125q0.40625 0.28125 0.984375 0.28125q0.578125 0 1.078125 -0.296875q0.515625 -0.296875 0.71875 -0.8125q0.21875 -0.515625 0.21875 -1.484375l0 -4.0625l1.28125 0l0 7.59375l-1.140625 0zm5.979248 -1.15625l0.1875 1.140625q-0.546875 0.109375 -0.984375 0.109375q-0.6875 0 -1.078125 -0.21875q-0.390625 -0.21875 -0.546875 -0.578125q-0.15625 -0.359375 -0.15625 -1.515625l0 -4.375l-0.953125 0l0 -1.0l0.953125 0l0 -1.890625l1.28125 -0.765625l0 2.65625l1.296875 0l0 1.0l-1.296875 0l0 4.4375q0 0.546875 0.0625 0.71875q0.078125 0.15625 0.21875 0.25q0.15625 0.078125 0.453125 0.078125q0.203125 0 0.5625 -0.046875zm6.4625854 -1.296875l1.328125 0.171875q-0.3125 1.171875 -1.171875 1.8125q-0.84375 0.640625 -2.171875 0.640625q-1.671875 0 -2.65625 -1.015625q-0.96875 -1.03125 -0.96875 -2.890625q0 -1.921875 0.984375 -2.96875q1.0 -1.0625 2.578125 -1.0625q1.515625 0 2.484375 1.03125q0.96875 1.03125 0.96875 2.921875q0 0.109375 -0.015625 0.34375l-5.65625 0q0.0625 1.25 0.703125 1.921875q0.640625 0.65625 1.59375 0.65625q0.703125 0 1.203125 -0.359375q0.5 -0.375 0.796875 -1.203125zm-4.234375 -2.078125l4.25 0q-0.09375 -0.953125 -0.484375 -1.4375q-0.625 -0.75 -1.609375 -0.75q-0.875 0 -1.484375 0.59375q-0.609375 0.59375 -0.671875 1.59375zm12.104248 4.53125l0 -0.953125q-0.71875 1.125 -2.125 1.125q-0.90625 0 -1.671875 -0.5q-0.75 -0.5 -1.171875 -1.390625q-0.421875 -0.90625 -0.421875 -2.078125q0 -1.140625 0.375 -2.0625q0.390625 -0.921875 1.140625 -1.40625q0.765625 -0.5 1.703125 -0.5q0.6875 0 1.21875 0.296875q0.53125 0.28125 0.875 0.734375l0 -3.75l1.28125 0l0 10.484375l-1.203125 0zm-4.0625 -3.796875q0 1.46875 0.609375 2.1875q0.625 0.71875 1.453125 0.71875q0.84375 0 1.4375 -0.6875q0.59375 -0.6875 0.59375 -2.109375q0 -1.5625 -0.609375 -2.28125q-0.59375 -0.734375 -1.484375 -0.734375q-0.84375 0 -1.421875 0.703125q-0.578125 0.703125 -0.578125 2.203125zm7.651062 3.796875l0 -1.46875l1.46875 0l0 1.46875l-1.46875 0z" fill-rule="nonzero"/></g></svg> \ No newline at end of file diff --git a/docs/user/alerting/images/what-is-an-alert.svg b/docs/user/alerting/images/what-is-an-alert.svg deleted file mode 100644 index b4dc02fae39a..000000000000 --- a/docs/user/alerting/images/what-is-an-alert.svg +++ /dev/null @@ -1 +0,0 @@ -<svg version="1.1" viewBox="0.0 0.0 484.2257217847769 307.87139107611546" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l484.2257 0l0 307.8714l-484.2257 0l0 -307.8714z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l484.2257 0l0 307.8714l-484.2257 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m13.120735 12.889764l451.9685 0l0 282.2677l-451.9685 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m13.120735 12.889764l451.9685 0l0 282.2677l-451.9685 0z" fill-rule="evenodd"/><path fill="#000000" d="m22.089485 39.80976l5.125 -13.359375l1.90625 0l5.46875 13.359375l-2.015625 0l-1.546875 -4.046875l-5.59375 0l-1.46875 4.046875l-1.875 0zm3.859375 -5.484375l4.53125 0l-1.40625 -3.703125q-0.625 -1.6875 -0.9375 -2.765625q-0.265625 1.28125 -0.71875 2.546875l-1.46875 3.921875zm9.802948 5.484375l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm10.816696 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.125717 5.765625l0 -9.671875l1.46875 0l0 1.46875q0.5625 -1.03125 1.03125 -1.359375q0.484375 -0.328125 1.0625 -0.328125q0.828125 0 1.6875 0.53125l-0.5625 1.515625q-0.609375 -0.359375 -1.203125 -0.359375q-0.546875 0 -0.96875 0.328125q-0.421875 0.328125 -0.609375 0.890625q-0.28125 0.875 -0.28125 1.921875l0 5.0625l-1.625 0zm9.806427 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 57.062992l418.2677 0l0 33.511814l-418.2677 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 57.062992l418.2677 0l0 33.511814l-418.2677 0z" fill-rule="evenodd"/><path fill="#000000" d="m43.750084 77.40737l1.515625 0.375q-0.46875 1.875 -1.71875 2.859375q-1.234375 0.984375 -3.015625 0.984375q-1.859375 0 -3.015625 -0.75q-1.15625 -0.765625 -1.765625 -2.1875q-0.609375 -1.4375 -0.609375 -3.078125q0 -1.796875 0.6875 -3.125q0.6875 -1.328125 1.9375 -2.015625q1.265625 -0.703125 2.78125 -0.703125q1.71875 0 2.890625 0.875q1.171875 0.875 1.640625 2.46875l-1.5 0.34375q-0.390625 -1.25 -1.15625 -1.8125q-0.75 -0.578125 -1.90625 -0.578125q-1.3125 0 -2.203125 0.640625q-0.890625 0.625 -1.25 1.703125q-0.359375 1.0625 -0.359375 2.1875q0 1.46875 0.421875 2.5625q0.4375 1.078125 1.328125 1.625q0.90625 0.53125 1.953125 0.53125q1.265625 0 2.140625 -0.734375q0.890625 -0.734375 1.203125 -2.171875zm2.6796875 -0.140625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm14.2734375 0l0 -1.046875q-0.78125 1.234375 -2.3125 1.234375q-1.0 0 -1.828125 -0.546875q-0.828125 -0.546875 -1.296875 -1.53125q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453125l-1.3125 0zm-4.4375 -4.140625q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm7.9609375 -5.703125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm6.6171875 -1.265625l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0z" fill-rule="nonzero"/><path fill="#000000" d="m131.0157 78.57925l1.40625 -0.078125q0 0.609375 0.1875 1.046875q0.1875 0.421875 0.6875 0.703125q0.515625 0.265625 1.1875 0.265625q0.9375 0 1.40625 -0.375q0.46875 -0.375 0.46875 -0.890625q0 -0.359375 -0.28125 -0.6875q-0.296875 -0.328125 -1.421875 -0.8125q-1.109375 -0.484375 -1.421875 -0.671875q-0.53125 -0.328125 -0.796875 -0.75q-0.265625 -0.4375 -0.265625 -1.0q0 -0.984375 0.78125 -1.6875q0.78125 -0.703125 2.1875 -0.703125q1.5625 0 2.375 0.71875q0.828125 0.71875 0.859375 1.90625l-1.390625 0.09375q-0.03125 -0.75 -0.53125 -1.1875q-0.5 -0.4375 -1.40625 -0.4375q-0.734375 0 -1.140625 0.34375q-0.40625 0.328125 -0.40625 0.71875q0 0.390625 0.34375 0.6875q0.234375 0.203125 1.21875 0.625q1.625 0.703125 2.046875 1.109375q0.671875 0.640625 0.671875 1.578125q0 0.609375 -0.390625 1.203125q-0.375 0.59375 -1.15625 0.953125q-0.765625 0.359375 -1.828125 0.359375q-1.4375 0 -2.4375 -0.71875q-1.015625 -0.703125 -0.953125 -2.3125zm13.953125 0.015625l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm7.421875 0l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm12.0 -2.828125l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm15.3671875 -1.03125q-0.734375 0.625 -1.421875 0.921875q-0.671875 0.296875 -1.4375 0.296875q-1.15625 0 -1.859375 -0.671875q-0.703125 -0.6875 -0.703125 -1.734375q0 -0.703125 0.3125 -1.234375q0.328125 -0.53125 0.84375 -0.859375q0.53125 -0.328125 1.28125 -0.46875q0.484375 -0.09375 1.8125 -0.140625q1.328125 -0.0625 1.90625 -0.28125q0.171875 -0.578125 0.171875 -0.96875q0 -0.484375 -0.359375 -0.765625q-0.5 -0.390625 -1.4375 -0.390625q-0.890625 0 -1.46875 0.390625q-0.5625 0.390625 -0.8125 1.125l-1.4375 -0.125q0.4375 -1.234375 1.390625 -1.890625q0.953125 -0.65625 2.390625 -0.65625q1.546875 0 2.4375 0.734375q0.6875 0.546875 0.6875 1.421875q0 0.65625 -0.1875 1.53125l-0.46875 2.0625q-0.21875 0.984375 -0.21875 1.609375q0 0.390625 0.171875 1.125l-1.421875 0q-0.125 -0.40625 -0.171875 -1.03125zm0.53125 -3.171875q-0.296875 0.109375 -0.640625 0.171875q-0.34375 0.0625 -1.140625 0.140625q-1.234375 0.109375 -1.75 0.28125q-0.5 0.15625 -0.765625 0.53125q-0.25 0.359375 -0.25 0.8125q0 0.59375 0.40625 0.984375q0.421875 0.375 1.171875 0.375q0.703125 0 1.34375 -0.375q0.65625 -0.375 1.03125 -1.03125q0.375 -0.671875 0.59375 -1.890625zm4.8671875 4.203125l-1.359375 -8.296875l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296875l-1.578125 0zm5.828125 0.75l1.4375 0.140625q-0.015625 0.484375 0.109375 0.71875q0.140625 0.25 0.421875 0.375q0.390625 0.171875 1.0 0.171875q1.28125 0 1.84375 -0.65625q0.359375 -0.453125 0.671875 -1.953125l0.140625 -0.671875q-1.09375 1.125 -2.34375 1.125q-1.25 0 -2.109375 -0.921875q-0.84375 -0.9375 -0.84375 -2.625q0 -1.40625 0.671875 -2.578125q0.671875 -1.171875 1.59375 -1.765625q0.921875 -0.59375 1.890625 -0.59375q1.640625 0 2.515625 1.546875l0.28125 -1.359375l1.296875 0l-1.671875 8.0q-0.265625 1.328125 -0.71875 2.0625q-0.4375 0.75 -1.234375 1.15625q-0.796875 0.40625 -1.828125 0.40625q-1.0 0 -1.734375 -0.265625q-0.71875 -0.25 -1.078125 -0.75q-0.34375 -0.5 -0.34375 -1.140625q0 -0.1875 0.03125 -0.421875zm1.765625 -4.421875q0 0.84375 0.171875 1.28125q0.234375 0.59375 0.65625 0.921875q0.4375 0.3125 0.96875 0.3125q0.703125 0 1.390625 -0.484375q0.6875 -0.5 1.109375 -1.515625q0.421875 -1.03125 0.421875 -1.953125q0 -1.03125 -0.5625 -1.625q-0.5625 -0.609375 -1.40625 -0.609375q-0.515625 0 -1.0 0.28125q-0.484375 0.265625 -0.90625 0.84375q-0.40625 0.5625 -0.625 1.359375q-0.21875 0.78125 -0.21875 1.1875zm20.78125 -0.359375l1.515625 0.203125q-0.71875 1.984375 -2.09375 3.015625q-1.375 1.015625 -3.09375 1.015625q-2.078125 0 -3.3125 -1.28125q-1.21875 -1.28125 -1.21875 -3.65625q0 -3.09375 1.859375 -5.109375q1.65625 -1.8125 4.125 -1.8125q1.8125 0 2.9375 0.984375q1.140625 0.96875 1.3125 2.625l-1.421875 0.125q-0.234375 -1.234375 -0.9375 -1.84375q-0.703125 -0.625 -1.828125 -0.625q-2.09375 0 -3.390625 1.875q-1.125 1.609375 -1.125 3.8125q0 1.765625 0.859375 2.703125q0.875 0.921875 2.265625 0.921875q1.1875 0 2.140625 -0.765625q0.96875 -0.78125 1.40625 -2.1875zm2.5859375 4.03125l2.40625 -11.453125l4.78125 0q1.234375 0 1.859375 0.28125q0.625 0.28125 1.03125 0.984375q0.40625 0.6875 0.40625 1.546875q0 0.703125 -0.296875 1.4375q-0.28125 0.734375 -0.734375 1.21875q-0.4375 0.46875 -0.890625 0.71875q-0.453125 0.234375 -0.96875 0.359375q-1.09375 0.25 -2.21875 0.25l-2.875 0l-0.96875 4.65625l-1.53125 0zm2.78125 -5.953125l2.515625 0q1.46875 0 2.15625 -0.3125q0.6875 -0.3125 1.09375 -0.953125q0.421875 -0.65625 0.421875 -1.390625q0 -0.5625 -0.21875 -0.90625q-0.21875 -0.359375 -0.625 -0.53125q-0.390625 -0.171875 -1.515625 -0.171875l-2.9375 0l-0.890625 4.265625zm10.375 -5.5l1.53125 0l-1.46875 7.03125q-0.171875 0.875 -0.171875 1.296875q0 0.921875 0.71875 1.484375q0.734375 0.5625 1.828125 0.5625q0.875 0 1.625 -0.390625q0.765625 -0.40625 1.203125 -1.1875q0.4375 -0.78125 0.78125 -2.5l1.328125 -6.296875l1.53125 0l-1.40625 6.71875q-0.359375 1.71875 -0.953125 2.71875q-0.578125 1.0 -1.625 1.609375q-1.03125 0.609375 -2.40625 0.609375q-1.296875 0 -2.25 -0.421875q-0.9375 -0.4375 -1.421875 -1.1875q-0.46875 -0.765625 -0.46875 -1.734375q0 -0.59375 0.328125 -2.0625l1.296875 -6.25zm21.85939 6.4375l-7.5937653 3.25l0 -1.40625l6.015625 -2.484375l-6.015625 -2.46875l0 -1.40625l7.5937653 3.203125l0 1.3125zm5.8984375 1.25q0 -1.453125 0.421875 -2.953125q0.4375 -1.5 0.96875 -2.390625q0.53125 -0.90625 1.09375 -1.40625q0.578125 -0.515625 1.125 -0.75q0.5625 -0.234375 1.234375 -0.234375q1.3125 0 2.1875 0.984375q0.875 0.96875 0.875 2.8125q0 1.890625 -0.609375 3.75q-0.71875 2.203125 -2.0 3.3125q-0.984375 0.84375 -2.234375 0.84375q-1.296875 0 -2.1875 -1.015625q-0.875 -1.015625 -0.875 -2.953125zm1.359375 0.359375q0 1.0625 0.359375 1.65625q0.46875 0.8125 1.40625 0.8125q0.828125 0 1.5 -0.734375q0.96875 -1.046875 1.453125 -3.0625q0.484375 -2.03125 0.484375 -3.3125q0 -1.234375 -0.46875 -1.78125q-0.46875 -0.546875 -1.25 -0.546875q-0.5625 0 -1.046875 0.296875q-0.484375 0.28125 -0.9375 0.984375q-0.625 1.0 -1.09375 2.96875q-0.40625 1.6875 -0.40625 2.71875zm7.3203125 3.40625l0.34375 -1.609375l1.59375 0l-0.34375 1.609375l-1.59375 0zm4.6015625 -2.625l1.328125 -0.140625q0.140625 0.96875 0.546875 1.375q0.421875 0.40625 0.984375 0.40625q0.8125 0 1.515625 -0.703125q1.015625 -1.03125 1.5 -2.96875q-0.703125 0.53125 -1.265625 0.765625q-0.546875 0.21875 -1.125 0.21875q-1.046875 0 -1.875 -0.703125q-1.09375 -0.90625 -1.09375 -2.625q0 -1.9375 1.265625 -3.3125q1.09375 -1.1875 2.671875 -1.1875q1.421875 0 2.359375 1.046875q0.9375 1.046875 0.9375 2.96875q0 1.875 -0.625 3.6875q-0.75 2.140625 -2.015625 3.15625q-1.03125 0.84375 -2.3125 0.84375q-1.1875 0 -1.953125 -0.734375q-0.75 -0.75 -0.84375 -2.09375zm1.890625 -4.53125q0 1.078125 0.5625 1.71875q0.578125 0.640625 1.375 0.640625q0.578125 0 1.15625 -0.390625q0.578125 -0.40625 0.984375 -1.203125q0.421875 -0.796875 0.421875 -1.625q0 -0.65625 -0.28125 -1.21875q-0.265625 -0.5625 -0.734375 -0.84375q-0.46875 -0.296875 -0.953125 -0.296875q-0.46875 0 -0.921875 0.25q-0.453125 0.25 -0.84375 0.734375q-0.390625 0.484375 -0.578125 1.125q-0.1875 0.625 -0.1875 1.109375zm11.109375 7.15625l1.5 -7.203125l-1.265625 0l0.234375 -1.09375l1.265625 0l0.234375 -1.1875q0.1875 -0.875 0.390625 -1.265625q0.203125 -0.390625 0.640625 -0.640625q0.453125 -0.265625 1.234375 -0.265625q0.53125 0 1.5625 0.234375l-0.265625 1.234375q-0.71875 -0.1875 -1.203125 -0.1875q-0.40625 0 -0.625 0.203125q-0.21875 0.203125 -0.375 0.984375l-0.1875 0.890625l1.578125 0l-0.21875 1.09375l-1.578125 0l-1.515625 7.203125l-1.40625 0zm4.4921875 -3.15625q0 -2.421875 1.4375 -4.015625q1.171875 -1.3125 3.09375 -1.3125q1.5 0 2.40625 0.9375q0.921875 0.9375 0.921875 2.53125q0 1.421875 -0.578125 2.65625q-0.578125 1.234375 -1.640625 1.890625q-1.0625 0.65625 -2.25 0.65625q-0.96875 0 -1.765625 -0.40625q-0.78125 -0.421875 -1.203125 -1.171875q-0.421875 -0.765625 -0.421875 -1.765625zm1.421875 -0.140625q0 1.171875 0.5625 1.78125q0.5625 0.609375 1.421875 0.609375q0.453125 0 0.890625 -0.1875q0.453125 -0.1875 0.828125 -0.5625q0.390625 -0.375 0.65625 -0.84375q0.28125 -0.484375 0.4375 -1.046875q0.25 -0.765625 0.25 -1.484375q0 -1.125 -0.578125 -1.734375q-0.5625 -0.625 -1.421875 -0.625q-0.65625 0 -1.203125 0.3125q-0.546875 0.3125 -1.0 0.921875q-0.4375 0.609375 -0.640625 1.421875q-0.203125 0.8125 -0.203125 1.4375zm7.2265625 3.296875l1.734375 -8.296875l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.328125l-1.34375 0zm9.6640625 0l2.390625 -11.453125l1.421875 0l-2.390625 11.453125l-1.421875 0zm9.2578125 -1.03125q-0.734375 0.625 -1.421875 0.921875q-0.671875 0.296875 -1.4375 0.296875q-1.15625 0 -1.859375 -0.671875q-0.703125 -0.6875 -0.703125 -1.734375q0 -0.703125 0.3125 -1.234375q0.328125 -0.53125 0.84375 -0.859375q0.53125 -0.328125 1.28125 -0.46875q0.484375 -0.09375 1.8125 -0.140625q1.328125 -0.0625 1.90625 -0.28125q0.171875 -0.578125 0.171875 -0.96875q0 -0.484375 -0.359375 -0.765625q-0.5 -0.390625 -1.4375 -0.390625q-0.890625 0 -1.46875 0.390625q-0.5625 0.390625 -0.8125 1.125l-1.4375 -0.125q0.4375 -1.234375 1.390625 -1.890625q0.953125 -0.65625 2.390625 -0.65625q1.546875 0 2.4375 0.734375q0.6875 0.546875 0.6875 1.421875q0 0.65625 -0.1875 1.53125l-0.46875 2.0625q-0.21875 0.984375 -0.21875 1.609375q0 0.390625 0.171875 1.125l-1.421875 0q-0.125 -0.40625 -0.171875 -1.03125zm0.53125 -3.171875q-0.296875 0.109375 -0.640625 0.171875q-0.34375 0.0625 -1.140625 0.140625q-1.234375 0.109375 -1.75 0.28125q-0.5 0.15625 -0.765625 0.53125q-0.25 0.359375 -0.25 0.8125q0 0.59375 0.40625 0.984375q0.421875 0.375 1.171875 0.375q0.703125 0 1.34375 -0.375q0.65625 -0.375 1.03125 -1.03125q0.375 -0.671875 0.59375 -1.890625zm2.9140625 1.359375l1.40625 -0.078125q0 0.609375 0.1875 1.046875q0.1875 0.421875 0.6875 0.703125q0.515625 0.265625 1.1875 0.265625q0.9375 0 1.40625 -0.375q0.46875 -0.375 0.46875 -0.890625q0 -0.359375 -0.28125 -0.6875q-0.296875 -0.328125 -1.421875 -0.8125q-1.109375 -0.484375 -1.421875 -0.671875q-0.53125 -0.328125 -0.796875 -0.75q-0.265625 -0.4375 -0.265625 -1.0q0 -0.984375 0.78125 -1.6875q0.78125 -0.703125 2.1875 -0.703125q1.5625 0 2.375 0.71875q0.828125 0.71875 0.859375 1.90625l-1.390625 0.09375q-0.03125 -0.75 -0.53125 -1.1875q-0.5 -0.4375 -1.40625 -0.4375q-0.734375 0 -1.140625 0.34375q-0.40625 0.328125 -0.40625 0.71875q0 0.390625 0.34375 0.6875q0.234375 0.203125 1.21875 0.625q1.625 0.703125 2.046875 1.109375q0.671875 0.640625 0.671875 1.578125q0 0.609375 -0.390625 1.203125q-0.375 0.59375 -1.15625 0.953125q-0.765625 0.359375 -1.828125 0.359375q-1.4375 0 -2.4375 -0.71875q-1.015625 -0.703125 -0.953125 -2.3125zm11.171875 1.6875l-0.234375 1.171875q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.3125 -0.375 -0.84375q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm5.984375 1.15625q0.21875 -1.03125 0.609375 -1.71875q0.390625 -0.6875 1.03125 -1.3125q0.640625 -0.625 2.46875 -2.078125q1.109375 -0.890625 1.515625 -1.3125q0.578125 -0.609375 0.84375 -1.1875q0.1875 -0.40625 0.1875 -0.875q0 -0.78125 -0.5625 -1.328125q-0.5625 -0.5625 -1.375 -0.5625q-0.796875 0 -1.40625 0.5625q-0.59375 0.5625 -0.859375 1.796875l-1.375 -0.203125q0.203125 -1.53125 1.171875 -2.40625q0.984375 -0.875 2.453125 -0.875q0.96875 0 1.765625 0.40625q0.796875 0.40625 1.1875 1.140625q0.40625 0.734375 0.40625 1.515625q0 1.140625 -0.8125 2.1875q-0.5 0.65625 -2.9375 2.59375q-1.046875 0.828125 -1.5625 1.359375q-0.515625 0.53125 -0.765625 1.0l5.125 0l-0.28125 1.296875l-6.828125 0zm12.9375 0l1.734375 -8.296875l1.40625 0l-0.28125 1.359375q0.78125 -0.875 1.40625 -1.203125q0.625 -0.34375 1.34375 -0.34375q0.78125 0 1.296875 0.40625q0.515625 0.40625 0.6875 1.140625q0.625 -0.78125 1.328125 -1.15625q0.703125 -0.390625 1.46875 -0.390625q1.046875 0 1.5625 0.5q0.515625 0.484375 0.515625 1.375q0 0.375 -0.171875 1.265625l-1.125 5.34375l-1.40625 0l1.140625 -5.484375q0.140625 -0.671875 0.140625 -0.96875q0 -0.40625 -0.265625 -0.640625q-0.25 -0.234375 -0.71875 -0.234375q-0.625 0 -1.28125 0.390625q-0.65625 0.375 -1.03125 1.0q-0.359375 0.625 -0.625 1.90625l-0.84375 4.03125l-1.421875 0l1.171875 -5.609375q0.125 -0.5625 0.125 -0.8125q0 -0.40625 -0.25 -0.65625q-0.25 -0.25 -0.65625 -0.25q-0.609375 0 -1.265625 0.390625q-0.65625 0.375 -1.078125 1.0625q-0.40625 0.6875 -0.671875 1.953125l-0.828125 3.921875l-1.40625 0zm15.34375 -9.859375l0.328125 -1.59375l1.40625 0l-0.328125 1.59375l-1.40625 0zm-2.0625 9.859375l1.734375 -8.296875l1.40625 0l-1.734375 8.296875l-1.40625 0zm3.6015625 0l1.734375 -8.296875l1.28125 0l-0.296875 1.4375q0.828125 -0.84375 1.546875 -1.234375q0.734375 -0.390625 1.5 -0.390625q1.0 0 1.578125 0.546875q0.578125 0.546875 0.578125 1.453125q0 0.46875 -0.203125 1.453125l-1.0625 5.03125l-1.40625 0l1.09375 -5.265625q0.171875 -0.765625 0.171875 -1.125q0 -0.421875 -0.296875 -0.671875q-0.28125 -0.265625 -0.8125 -0.265625q-1.09375 0 -1.9375 0.78125q-0.84375 0.78125 -1.25 2.6875l-0.796875 3.859375l-1.421875 0zm14.5703125 -1.5q-1.5 1.6875 -3.0625 1.6875q-0.953125 0 -1.546875 -0.546875q-0.59375 -0.5625 -0.59375 -1.359375q0 -0.515625 0.265625 -1.796875l1.0 -4.78125l1.421875 0l-1.109375 5.296875q-0.140625 0.671875 -0.140625 1.03125q0 0.46875 0.28125 0.734375q0.28125 0.265625 0.84375 0.265625q0.59375 0 1.15625 -0.28125q0.5625 -0.296875 0.96875 -0.78125q0.421875 -0.5 0.671875 -1.171875q0.171875 -0.4375 0.40625 -1.515625l0.75 -3.578125l1.40625 0l-1.734375 8.296875l-1.296875 0l0.3125 -1.5zm6.5390625 0.34375l-0.234375 1.171875q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.3125 -0.375 -0.84375q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm7.2265625 -1.671875l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.921875 -2.546875 0.921875q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.4375 -1.171875 -1.25q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm7.0546875 2.03125l1.40625 -0.078125q0 0.609375 0.1875 1.046875q0.1875 0.421875 0.6875 0.703125q0.515625 0.265625 1.1875 0.265625q0.9375 0 1.40625 -0.375q0.46875 -0.375 0.46875 -0.890625q0 -0.359375 -0.28125 -0.6875q-0.296875 -0.328125 -1.421875 -0.8125q-1.109375 -0.484375 -1.421875 -0.671875q-0.53125 -0.328125 -0.796875 -0.75q-0.265625 -0.4375 -0.265625 -1.0q0 -0.984375 0.78125 -1.6875q0.78125 -0.703125 2.1875 -0.703125q1.5625 0 2.375 0.71875q0.828125 0.71875 0.859375 1.90625l-1.390625 0.09375q-0.03125 -0.75 -0.53125 -1.1875q-0.5 -0.4375 -1.40625 -0.4375q-0.734375 0 -1.140625 0.34375q-0.40625 0.328125 -0.40625 0.71875q0 0.390625 0.34375 0.6875q0.234375 0.203125 1.21875 0.625q1.625 0.703125 2.046875 1.109375q0.671875 0.640625 0.671875 1.578125q0 0.609375 -0.390625 1.203125q-0.375 0.59375 -1.15625 0.953125q-0.765625 0.359375 -1.828125 0.359375q-1.4375 0 -2.4375 -0.71875q-1.015625 -0.703125 -0.953125 -2.3125z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 104.07612l418.2677 0l0 39.30709l-418.2677 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 104.07612l418.2677 0l0 39.30709l-418.2677 0z" fill-rule="evenodd"/><path fill="#000000" d="m35.062584 124.74862l1.4375 -0.125q0.09375 0.859375 0.46875 1.421875q0.375 0.546875 1.15625 0.890625q0.78125 0.328125 1.75 0.328125q0.875 0 1.53125 -0.25q0.671875 -0.265625 0.984375 -0.703125q0.328125 -0.453125 0.328125 -0.984375q0 -0.546875 -0.3125 -0.9375q-0.3125 -0.40625 -1.03125 -0.6875q-0.453125 -0.171875 -2.03125 -0.546875q-1.578125 -0.390625 -2.21875 -0.71875q-0.8125 -0.4375 -1.21875 -1.0625q-0.40625 -0.640625 -0.40625 -1.4375q0 -0.859375 0.484375 -1.609375q0.5 -0.765625 1.4375 -1.15625q0.953125 -0.390625 2.109375 -0.390625q1.28125 0 2.25 0.421875q0.96875 0.40625 1.484375 1.203125q0.53125 0.796875 0.578125 1.796875l-1.453125 0.109375q-0.125 -1.078125 -0.796875 -1.625q-0.671875 -0.5625 -2.0 -0.5625q-1.375 0 -2.0 0.5q-0.625 0.5 -0.625 1.21875q0 0.609375 0.4375 1.015625q0.4375 0.390625 2.28125 0.8125q1.859375 0.421875 2.546875 0.734375q1.0 0.453125 1.46875 1.171875q0.484375 0.703125 0.484375 1.625q0 0.90625 -0.53125 1.71875q-0.515625 0.8125 -1.5 1.2656174q-0.984375 0.453125 -2.203125 0.453125q-1.5625 0 -2.609375 -0.453125q-1.046875 -0.46874237 -1.65625 -1.3749924q-0.59375 -0.90625 -0.625 -2.0625zm16.421875 0.640625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8124924 -2.28125 0.8124924q-1.703125 0 -2.75 -1.1093674q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm2.59375 3.0468674l0 -11.453117l1.40625 0l0 4.109375q0.984375 -1.140625 2.484375 -1.140625q0.921875 0 1.59375 0.359375q0.6875 0.359375 0.96875 1.0q0.296875 0.640625 0.296875 1.859375l0 5.2656174l-1.40625 0l0 -5.2656174q0 -1.046875 -0.453125 -1.53125q-0.453125 -0.484375 -1.296875 -0.484375q-0.625 0 -1.171875 0.328125q-0.546875 0.328125 -0.78125 0.890625q-0.234375 0.546875 -0.234375 1.515625l0 4.5468674l-1.40625 0zm14.5703125 -2.6718674l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.7031174 -2.359375 0.7031174q-1.828125 0 -2.890625 -1.1249924q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875zm13.2109375 4.9531174l0 -1.0468674q-0.78125 1.2343674 -2.3125 1.2343674q-1.0 0 -1.828125 -0.546875q-0.828125 -0.5468674 -1.296875 -1.5312424q-0.453125 -0.984375 -0.453125 -2.25q0 -1.25 0.40625 -2.25q0.421875 -1.015625 1.25 -1.546875q0.828125 -0.546875 1.859375 -0.546875q0.75 0 1.328125 0.3125q0.59375 0.3125 0.953125 0.828125l0 -4.109375l1.40625 0l0 11.453117l-1.3125 0zm-4.4375 -4.1406174q0 1.59375 0.671875 2.390625q0.671875 0.78125 1.578125 0.78125q0.921875 0 1.5625 -0.75q0.65625 -0.765625 0.65625 -2.3125q0 -1.703125 -0.65625 -2.5q-0.65625 -0.796875 -1.625 -0.796875q-0.9375 0 -1.5625 0.765625q-0.625 0.765625 -0.625 2.421875zm13.3984375 4.1406174l0 -1.2187424q-0.96875 1.4062424 -2.640625 1.4062424q-0.734375 0 -1.375 -0.28125q-0.625 -0.28125 -0.9375 -0.7031174q-0.3125 -0.4375 -0.4375 -1.046875q-0.078125 -0.421875 -0.078125 -1.3125l0 -5.140625l1.40625 0l0 4.59375q0 1.109375 0.078125 1.484375q0.140625 0.5625 0.5625 0.875q0.4375 0.3125 1.0625 0.3125q0.640625 0 1.1875 -0.3125q0.5625 -0.328125 0.78125 -0.890625q0.234375 -0.5625 0.234375 -1.625l0 -4.4375l1.40625 0l0 8.296867l-1.25 0zm3.4296875 0l0 -11.453117l1.40625 0l0 11.453117l-1.40625 0zm9.2578125 -2.6718674l1.453125 0.171875q-0.34375 1.28125 -1.28125 1.984375q-0.921875 0.7031174 -2.359375 0.7031174q-1.828125 0 -2.890625 -1.1249924q-1.0625 -1.125 -1.0625 -3.140625q0 -2.09375 1.078125 -3.25q1.078125 -1.15625 2.796875 -1.15625q1.65625 0 2.703125 1.140625q1.0625 1.125 1.0625 3.171875q0 0.125 0 0.375l-6.1875 0q0.078125 1.375 0.765625 2.109375q0.703125 0.71875 1.734375 0.71875q0.78125 0 1.328125 -0.40625q0.546875 -0.40625 0.859375 -1.296875zm-4.609375 -2.28125l4.625 0q-0.09375 -1.046875 -0.53125 -1.5625q-0.671875 -0.8125 -1.734375 -0.8125q-0.96875 0 -1.640625 0.65625q-0.65625 0.640625 -0.71875 1.71875z" fill-rule="nonzero"/><path fill="#000000" d="m136.96883 125.607994l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.9218674 -2.546875 0.9218674q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.43749237 -1.171875 -1.2499924q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm9.0078125 4.8749924l-1.359375 -8.296867l1.375 0l0.71875 4.5625q0.109375 0.75 0.28125 2.453125q0.40625 -0.890625 1.046875 -2.03125l2.765625 -4.984375l1.5 0l-4.75 8.296867l-1.578125 0zm12.0 -2.8281174l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.9218674 -2.546875 0.9218674q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.43749237 -1.171875 -1.2499924q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625zm6.9140625 4.8749924l1.734375 -8.296867l1.25 0l-0.34375 1.6875q0.640625 -0.953125 1.25 -1.40625q0.609375 -0.46875 1.25 -0.46875q0.421875 0 1.046875 0.296875l-0.578125 1.3125q-0.375 -0.265625 -0.8125 -0.265625q-0.734375 0 -1.515625 0.828125q-0.78125 0.828125 -1.234375 2.984375l-0.703125 3.3281174l-1.34375 0zm4.796875 3.203125l0.09375 -1.328125q0.4375 0.125 0.84375 0.125q0.4375 0 0.703125 -0.1875q0.34375 -0.265625 0.75 -0.96875l0.453125 -0.8125l-1.390625 -8.328117l1.390625 0l0.625 4.1875q0.1875 1.25 0.328125 2.484375l3.703125 -6.671875l1.484375 0l-5.296875 9.406242q-0.765625 1.375 -1.359375 1.8125q-0.59375 0.453125 -1.359375 0.453125q-0.5 0 -0.96875 -0.171875zm12.9765625 -3.203125l1.734375 -8.296867l1.40625 0l-0.28125 1.359375q0.78125 -0.875 1.40625 -1.203125q0.625 -0.34375 1.34375 -0.34375q0.78125 0 1.296875 0.40625q0.515625 0.40625 0.6875 1.140625q0.625 -0.78125 1.328125 -1.15625q0.703125 -0.390625 1.46875 -0.390625q1.046875 0 1.5625 0.5q0.515625 0.484375 0.515625 1.375q0 0.375 -0.171875 1.265625l-1.125 5.3437424l-1.40625 0l1.140625 -5.4843674q0.140625 -0.671875 0.140625 -0.96875q0 -0.40625 -0.265625 -0.640625q-0.25 -0.234375 -0.71875 -0.234375q-0.625 0 -1.28125 0.390625q-0.65625 0.375 -1.03125 1.0q-0.359375 0.625 -0.625 1.90625l-0.84375 4.0312424l-1.421875 0l1.171875 -5.6093674q0.125 -0.5625 0.125 -0.8125q0 -0.40625 -0.25 -0.65625q-0.25 -0.25 -0.65625 -0.25q-0.609375 0 -1.265625 0.390625q-0.65625 0.375 -1.078125 1.0625q-0.40625 0.6875 -0.671875 1.953125l-0.828125 3.9218674l-1.40625 0zm15.34375 -9.859367l0.328125 -1.59375l1.40625 0l-0.328125 1.59375l-1.40625 0zm-2.0625 9.859367l1.734375 -8.296867l1.40625 0l-1.734375 8.296867l-1.40625 0zm3.6015625 0l1.734375 -8.296867l1.28125 0l-0.296875 1.4375q0.828125 -0.84375 1.546875 -1.234375q0.734375 -0.390625 1.5 -0.390625q1.0 0 1.578125 0.546875q0.578125 0.546875 0.578125 1.453125q0 0.46875 -0.203125 1.453125l-1.0625 5.0312424l-1.40625 0l1.09375 -5.2656174q0.171875 -0.765625 0.171875 -1.125q0 -0.421875 -0.296875 -0.671875q-0.28125 -0.265625 -0.8125 -0.265625q-1.09375 0 -1.9375 0.78125q-0.84375 0.78125 -1.25 2.6875l-0.796875 3.8593674l-1.421875 0zm14.5703125 -1.4999924q-1.5 1.6874924 -3.0625 1.6874924q-0.953125 0 -1.546875 -0.546875q-0.59375 -0.5624924 -0.59375 -1.3593674q0 -0.515625 0.265625 -1.796875l1.0 -4.78125l1.421875 0l-1.109375 5.296875q-0.140625 0.671875 -0.140625 1.03125q0 0.46875 0.28125 0.734375q0.28125 0.265625 0.84375 0.265625q0.59375 0 1.15625 -0.28125q0.5625 -0.296875 0.96875 -0.78125q0.421875 -0.5 0.671875 -1.171875q0.171875 -0.4375 0.40625 -1.515625l0.75 -3.578125l1.40625 0l-1.734375 8.296867l-1.296875 0l0.3125 -1.4999924zm6.5390625 0.34375l-0.234375 1.1718674q-0.515625 0.125 -0.984375 0.125q-0.84375 0 -1.34375 -0.421875q-0.375 -0.31249237 -0.375 -0.8437424q0 -0.28125 0.203125 -1.265625l1.0 -4.8125l-1.109375 0l0.21875 -1.09375l1.125 0l0.421875 -2.046875l1.625 -0.96875l-0.640625 3.015625l1.390625 0l-0.234375 1.09375l-1.375 0l-0.96875 4.578125q-0.171875 0.875 -0.171875 1.046875q0 0.25 0.140625 0.390625q0.140625 0.125 0.46875 0.125q0.46875 0 0.84375 -0.09375zm7.2265625 -1.671875l1.375 0.140625q-0.296875 1.03125 -1.359375 1.953125q-1.0625 0.9218674 -2.546875 0.9218674q-0.921875 0 -1.6875 -0.421875q-0.765625 -0.43749237 -1.171875 -1.2499924q-0.40625 -0.8125 -0.40625 -1.84375q0 -1.359375 0.625 -2.640625q0.640625 -1.28125 1.640625 -1.890625q1.0 -0.625 2.15625 -0.625q1.484375 0 2.375 0.921875q0.890625 0.921875 0.890625 2.515625q0 0.609375 -0.109375 1.25l-6.109375 0q-0.03125 0.234375 -0.03125 0.4375q0 1.15625 0.53125 1.78125q0.53125 0.609375 1.3125 0.609375q0.71875 0 1.421875 -0.46875q0.703125 -0.484375 1.09375 -1.390625zm-4.109375 -2.046875l4.65625 0q0.015625 -0.21875 0.015625 -0.3125q0 -1.0625 -0.53125 -1.625q-0.53125 -0.578125 -1.375 -0.578125q-0.90625 0 -1.65625 0.625q-0.734375 0.625 -1.109375 1.890625z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m25.343832 152.92389l418.2677 0l0 129.07086l-418.2677 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m25.343832 152.92389l418.2677 0l0 129.07086l-418.2677 0z" fill-rule="evenodd"/><path fill="#000000" d="m34.312584 177.28389l4.40625 -11.453125l1.640625 0l4.6875 11.453125l-1.734375 0l-1.328125 -3.46875l-4.796875 0l-1.25 3.46875l-1.625 0zm3.3125 -4.703125l3.890625 0l-1.203125 -3.171875q-0.546875 -1.453125 -0.8125 -2.375q-0.21875 1.09375 -0.609375 2.1875l-1.265625 3.359375zm13.859375 1.65625l1.390625 0.1875q-0.234375 1.421875 -1.171875 2.234375q-0.921875 0.8125 -2.28125 0.8125q-1.703125 0 -2.75 -1.109375q-1.03125 -1.125 -1.03125 -3.203125q0 -1.34375 0.4375 -2.34375q0.453125 -1.015625 1.359375 -1.515625q0.921875 -0.5 1.984375 -0.5q1.359375 0 2.21875 0.6875q0.859375 0.671875 1.09375 1.9375l-1.359375 0.203125q-0.203125 -0.828125 -0.703125 -1.25q-0.484375 -0.421875 -1.1875 -0.421875q-1.0625 0 -1.734375 0.765625q-0.65625 0.75 -0.65625 2.40625q0 1.671875 0.640625 2.4375q0.640625 0.75 1.671875 0.75q0.828125 0 1.375 -0.5q0.5625 -0.515625 0.703125 -1.578125zm5.65625 1.78125l0.203125 1.25q-0.59375 0.125 -1.0625 0.125q-0.765625 0 -1.1875 -0.234375q-0.421875 -0.25 -0.59375 -0.640625q-0.171875 -0.40625 -0.171875 -1.671875l0 -4.765625l-1.03125 0l0 -1.09375l1.03125 0l0 -2.0625l1.40625 -0.84375l0 2.90625l1.40625 0l0 1.09375l-1.40625 0l0 4.84375q0 0.609375 0.0625 0.78125q0.078125 0.171875 0.25 0.28125q0.171875 0.09375 0.484375 0.09375q0.234375 0 0.609375 -0.0625zm1.3828125 -8.578125l0 -1.609375l1.40625 0l0 1.609375l-1.40625 0zm0 9.84375l0 -8.296875l1.40625 0l0 8.296875l-1.40625 0zm3.0234375 -4.15625q0 -2.296875 1.28125 -3.40625q1.078125 -0.921875 2.609375 -0.921875q1.71875 0 2.796875 1.125q1.09375 1.109375 1.09375 3.09375q0 1.59375 -0.484375 2.515625q-0.484375 0.921875 -1.40625 1.4375q-0.90625 0.5 -2.0 0.5q-1.734375 0 -2.8125 -1.109375q-1.078125 -1.125 -1.078125 -3.234375zm1.453125 0q0 1.59375 0.6875 2.390625q0.703125 0.796875 1.75 0.796875q1.046875 0 1.734375 -0.796875q0.703125 -0.796875 0.703125 -2.4375q0 -1.53125 -0.703125 -2.328125q-0.6875 -0.796875 -1.734375 -0.796875q-1.046875 0 -1.75 0.796875q-0.6875 0.78125 -0.6875 2.375zm7.9765625 4.15625l0 -8.296875l1.265625 0l0 1.171875q0.90625 -1.359375 2.640625 -1.359375q0.75 0 1.375 0.265625q0.625 0.265625 0.9375 0.703125q0.3125 0.4375 0.4375 1.046875q0.078125 0.390625 0.078125 1.359375l0 5.109375l-1.40625 0l0 -5.046875q0 -0.859375 -0.171875 -1.28125q-0.15625 -0.4375 -0.578125 -0.6875q-0.40625 -0.25 -0.96875 -0.25q-0.90625 0 -1.5625 0.578125q-0.640625 0.5625 -0.640625 2.15625l0 4.53125l-1.40625 0zm8.3359375 -2.484375l1.390625 -0.21875q0.109375 0.84375 0.640625 1.296875q0.546875 0.4375 1.5 0.4375q0.96875 0 1.4375 -0.390625q0.46875 -0.40625 0.46875 -0.9375q0 -0.46875 -0.40625 -0.75q-0.296875 -0.1875 -1.4375 -0.46875q-1.546875 -0.390625 -2.15625 -0.671875q-0.59375 -0.296875 -0.90625 -0.796875q-0.296875 -0.5 -0.296875 -1.109375q0 -0.5625 0.25 -1.03125q0.25 -0.46875 0.6875 -0.78125q0.328125 -0.25 0.890625 -0.40625q0.578125 -0.171875 1.21875 -0.171875q0.984375 0 1.71875 0.28125q0.734375 0.28125 1.078125 0.765625q0.359375 0.46875 0.5 1.28125l-1.375 0.1875q-0.09375 -0.640625 -0.546875 -1.0q-0.453125 -0.359375 -1.265625 -0.359375q-0.96875 0 -1.390625 0.328125q-0.40625 0.3125 -0.40625 0.734375q0 0.28125 0.171875 0.5q0.171875 0.21875 0.53125 0.375q0.21875 0.078125 1.25 0.359375q1.484375 0.390625 2.078125 0.65625q0.59375 0.25 0.921875 0.734375q0.34375 0.484375 0.34375 1.203125q0 0.703125 -0.421875 1.328125q-0.40625 0.609375 -1.1875 0.953125q-0.765625 0.34375 -1.734375 0.34375q-1.625 0 -2.46875 -0.671875q-0.84375 -0.671875 -1.078125 -2.0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m131.97372 163.3517l296.9449 0l0 106.92915l-296.9449 0z" fill-rule="evenodd"/><path stroke="#999999" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m131.97372 163.3517l296.9449 0l0 106.92915l-296.9449 0z" fill-rule="evenodd"/><path fill="#000000" d="m144.0831 183.8717l0 -7.578125l-2.828125 0l0 -1.015625l6.8125 0l0 1.015625l-2.84375 0l0 7.578125l-1.140625 0zm4.3085938 2.390625l-0.125 -0.984375q0.34375 0.09375 0.609375 0.09375q0.34375 0 0.546875 -0.125q0.21875 -0.109375 0.359375 -0.3125q0.09375 -0.171875 0.328125 -0.796875q0.015625 -0.078125 0.09375 -0.25l-2.375 -6.234375l1.140625 0l1.296875 3.59375q0.25 0.6875 0.453125 1.453125q0.1875 -0.734375 0.4375 -1.421875l1.328125 -3.625l1.046875 0l-2.359375 6.328125q-0.390625 1.015625 -0.59375 1.40625q-0.28125 0.53125 -0.65625 0.765625q-0.359375 0.25 -0.859375 0.25q-0.296875 0 -0.671875 -0.140625zm6.046875 0l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm6.158203 -1.3125l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m241.94247 181.76233l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.173828 3.65625l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm14.199219 -0.78125q-0.546875 0.484375 -1.0625 0.703125q-0.5 0.21875 -1.09375 0.21875q-0.859375 0 -1.390625 -0.5q-0.515625 -0.515625 -0.515625 -1.3125q0 -0.515625 0.234375 -0.90625q0.234375 -0.40625 0.625 -0.640625q0.390625 -0.25 0.96875 -0.359375q0.359375 -0.078125 1.359375 -0.109375q1.0 -0.046875 1.421875 -0.21875q0.125 -0.4375 0.125 -0.71875q0 -0.375 -0.265625 -0.578125q-0.375 -0.296875 -1.078125 -0.296875q-0.671875 0 -1.09375 0.296875q-0.421875 0.296875 -0.625 0.84375l-1.0625 -0.09375q0.328125 -0.921875 1.03125 -1.40625q0.71875 -0.5 1.796875 -0.5q1.15625 0 1.828125 0.546875q0.515625 0.40625 0.515625 1.0625q0 0.5 -0.140625 1.15625l-0.34375 1.546875q-0.171875 0.734375 -0.171875 1.203125q0 0.296875 0.140625 0.84375l-1.078125 0q-0.09375 -0.3125 -0.125 -0.78125zm0.390625 -2.375q-0.21875 0.09375 -0.484375 0.140625q-0.25 0.046875 -0.84375 0.09375q-0.921875 0.078125 -1.3125 0.21875q-0.375 0.125 -0.578125 0.40625q-0.1875 0.265625 -0.1875 0.59375q0 0.453125 0.3125 0.734375q0.3125 0.28125 0.875 0.28125q0.53125 0 1.015625 -0.265625q0.484375 -0.28125 0.765625 -0.78125q0.28125 -0.5 0.4375 -1.421875zm3.5957031 -4.234375l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6191406 0l1.796875 -8.59375l1.0625 0l-1.796875 8.59375l-1.0625 0z" fill-rule="nonzero"/><path fill="#000000" d="m148.03622 199.85608l1.125 0.296875q-0.359375 1.390625 -1.28125 2.125q-0.921875 0.734375 -2.265625 0.734375q-1.390625 0 -2.265625 -0.5625q-0.875 -0.5625 -1.328125 -1.625q-0.453125 -1.078125 -0.453125 -2.3125q0 -1.34375 0.515625 -2.34375q0.515625 -1.0 1.453125 -1.515625q0.953125 -0.515625 2.09375 -0.515625q1.28125 0 2.15625 0.65625q0.890625 0.65625 1.234375 1.84375l-1.125 0.265625q-0.296875 -0.9375 -0.875 -1.359375q-0.5625 -0.4375 -1.421875 -0.4375q-0.984375 0 -1.65625 0.484375q-0.65625 0.46875 -0.9375 1.265625q-0.265625 0.796875 -0.265625 1.65625q0 1.09375 0.3125 1.90625q0.328125 0.8125 1.0 1.21875q0.671875 0.40625 1.46875 0.40625q0.953125 0 1.609375 -0.546875q0.671875 -0.546875 0.90625 -1.640625zm2.0097656 -0.09375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.673828 0l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm10.923828 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm9.939453 1.421875l1.03125 0.140625q-0.171875 1.0625 -0.875 1.671875q-0.703125 0.609375 -1.71875 0.609375q-1.28125 0 -2.0625 -0.828125q-0.765625 -0.84375 -0.765625 -2.40625q0 -1.0 0.328125 -1.75q0.34375 -0.765625 1.015625 -1.140625q0.6875 -0.375 1.5 -0.375q1.0 0 1.640625 0.515625q0.65625 0.5 0.84375 1.453125l-1.03125 0.15625q-0.140625 -0.625 -0.515625 -0.9375q-0.375 -0.328125 -0.90625 -0.328125q-0.796875 0 -1.296875 0.578125q-0.5 0.5625 -0.5 1.796875q0 1.265625 0.484375 1.828125q0.484375 0.5625 1.25 0.5625q0.625 0 1.03125 -0.375q0.421875 -0.375 0.546875 -1.171875zm4.234375 1.34375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm2.2753906 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 3.109375l0 -6.21875l0.9375 0l0 0.875q0.6875 -1.015625 1.984375 -1.015625q0.5625 0 1.03125 0.203125q0.484375 0.203125 0.71875 0.53125q0.234375 0.328125 0.328125 0.765625q0.046875 0.296875 0.046875 1.03125l0 3.828125l-1.046875 0l0 -3.78125q0 -0.65625 -0.125 -0.96875q-0.125 -0.3125 -0.4375 -0.5q-0.3125 -0.203125 -0.734375 -0.203125q-0.671875 0 -1.171875 0.4375q-0.484375 0.421875 -0.484375 1.609375l0 3.40625l-1.046875 0zm6.955078 -5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0zm0 5.015625l0 -1.203125l1.203125 0l0 1.203125l-1.203125 0z" fill-rule="nonzero"/><path fill="#000000" d="m237.37997 202.8717l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm6.861328 -2.359375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.533203 0.34375l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm8.375 1.265625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm3.9824219 2.4375l1.296875 -6.21875l1.0625 0l-0.21875 1.015625q0.59375 -0.65625 1.0625 -0.90625q0.46875 -0.25 1.015625 -0.25q0.578125 0 0.96875 0.3125q0.390625 0.296875 0.515625 0.84375q0.46875 -0.578125 0.984375 -0.859375q0.53125 -0.296875 1.109375 -0.296875q0.78125 0 1.171875 0.375q0.390625 0.359375 0.390625 1.03125q0 0.28125 -0.140625 0.9375l-0.828125 4.015625l-1.0625 0l0.859375 -4.109375q0.109375 -0.515625 0.109375 -0.71875q0 -0.3125 -0.203125 -0.484375q-0.1875 -0.171875 -0.53125 -0.171875q-0.484375 0 -0.984375 0.28125q-0.484375 0.28125 -0.765625 0.75q-0.265625 0.46875 -0.46875 1.4375l-0.625 3.015625l-1.0625 0l0.875 -4.203125q0.09375 -0.421875 0.09375 -0.609375q0 -0.296875 -0.1875 -0.484375q-0.1875 -0.1875 -0.5 -0.1875q-0.453125 0 -0.953125 0.28125q-0.484375 0.28125 -0.796875 0.796875q-0.3125 0.515625 -0.515625 1.46875l-0.609375 2.9375l-1.0625 0zm9.605469 2.40625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm5.796875 -2.40625l0.25 -1.203125l1.203125 0l-0.25 1.203125l-1.203125 0zm7.3339844 -2.265625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm1.90625 -0.09375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125z" fill-rule="nonzero"/><path fill="#000000" d="m236.84872 219.26233l1.796875 -8.609375l0.984375 0l-0.1875 0.859375q0.546875 -0.5625 0.96875 -0.78125q0.4375 -0.21875 0.921875 -0.21875q0.890625 0 1.46875 0.65625q0.59375 0.640625 0.59375 1.84375q0 0.96875 -0.328125 1.765625q-0.3125 0.796875 -0.78125 1.296875q-0.46875 0.484375 -0.953125 0.71875q-0.484375 0.21875 -0.984375 0.21875q-1.125 0 -1.734375 -1.140625l-0.703125 3.390625l-1.0625 0zm2.09375 -4.9375q0 0.703125 0.109375 0.96875q0.140625 0.375 0.46875 0.609375q0.34375 0.234375 0.78125 0.234375q0.921875 0 1.484375 -1.015625q0.5625 -1.03125 0.5625 -2.109375q0 -0.78125 -0.390625 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.40625 0 -0.75 0.21875q-0.34375 0.21875 -0.640625 0.640625q-0.296875 0.421875 -0.5 1.046875q-0.1875 0.609375 -0.1875 1.0625zm5.298828 0.1875q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm6.4648438 -0.859375l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm4.435547 -0.015625l1.078125 -0.109375q-0.015625 0.234375 -0.015625 0.28125q0 0.375 0.1875 0.78125q0.203125 0.390625 0.53125 0.59375q0.34375 0.203125 0.71875 0.203125q0.5 0 1.0 -0.328125q0.515625 -0.34375 0.828125 -0.984375q0.3125 -0.65625 0.3125 -1.296875q0 -0.71875 -0.421875 -1.15625q-0.421875 -0.4375 -1.109375 -0.4375q-0.46875 0 -0.890625 0.234375q-0.40625 0.21875 -0.765625 0.65625l-0.921875 -0.0625l1.296875 -4.390625l4.203125 0l-0.21875 0.96875l-3.25 0l-0.65625 2.1875q0.375 -0.265625 0.75 -0.390625q0.390625 -0.140625 0.796875 -0.140625q0.984375 0 1.609375 0.65625q0.640625 0.640625 0.640625 1.78125q0 0.984375 -0.4375 1.828125q-0.4375 0.828125 -1.203125 1.28125q-0.75 0.4375 -1.625 0.4375q-0.75 0 -1.3125 -0.328125q-0.5625 -0.328125 -0.859375 -0.90625q-0.28125 -0.59375 -0.28125 -1.1875q0 -0.0625 0.015625 -0.171875zm8.533203 -2.265625q-0.46875 -0.265625 -0.71875 -0.671875q-0.234375 -0.421875 -0.234375 -0.890625q0 -0.78125 0.5625 -1.453125q0.75 -0.890625 2.03125 -0.890625q1.125 0 1.78125 0.609375q0.65625 0.609375 0.65625 1.484375q0 0.625 -0.359375 1.125q-0.34375 0.5 -1.09375 0.8125q0.515625 0.3125 0.734375 0.671875q0.28125 0.484375 0.28125 1.109375q0 1.15625 -0.8125 2.0625q-0.8125 0.90625 -2.171875 0.90625q-1.09375 0 -1.78125 -0.671875q-0.6875 -0.671875 -0.6875 -1.671875q0 -0.9375 0.484375 -1.609375q0.5 -0.6875 1.328125 -0.921875zm0.09375 -1.515625q0 0.546875 0.34375 0.890625q0.359375 0.328125 0.984375 0.328125q0.71875 0 1.171875 -0.4375q0.453125 -0.453125 0.453125 -1.09375q0 -0.546875 -0.359375 -0.890625q-0.34375 -0.34375 -0.96875 -0.34375q-0.46875 0 -0.859375 0.21875q-0.390625 0.21875 -0.578125 0.59375q-0.1875 0.375 -0.1875 0.734375zm-0.828125 4.140625q0 0.359375 0.171875 0.6875q0.171875 0.328125 0.515625 0.515625q0.359375 0.1875 0.8125 0.1875q0.859375 0 1.390625 -0.796875q0.421875 -0.640625 0.421875 -1.375q0 -0.59375 -0.390625 -0.96875q-0.390625 -0.390625 -1.015625 -0.390625q-0.796875 0 -1.359375 0.59375q-0.546875 0.59375 -0.546875 1.546875zm6.439453 2.09375q0.140625 -0.875 0.609375 -2.09375q0.546875 -1.46875 1.421875 -2.90625q0.890625 -1.453125 1.96875 -2.5l-4.28125 0l0.203125 -0.96875l5.484375 0l-0.203125 0.96875q-1.390625 1.21875 -2.4375 3.15625q-1.203125 2.234375 -1.65625 4.34375l-1.109375 0z" fill-rule="nonzero"/><path fill="#000000" d="m141.8956 236.8717l0 -8.59375l3.25 0q0.84375 0 1.296875 0.078125q0.640625 0.109375 1.0625 0.40625q0.4375 0.296875 0.6875 0.828125q0.265625 0.53125 0.265625 1.171875q0 1.09375 -0.703125 1.859375q-0.6875 0.75 -2.515625 0.75l-2.203125 0l0 3.5l-1.140625 0zm1.140625 -4.5l2.21875 0q1.109375 0 1.5625 -0.40625q0.46875 -0.421875 0.46875 -1.171875q0 -0.53125 -0.28125 -0.90625q-0.265625 -0.390625 -0.703125 -0.515625q-0.296875 -0.078125 -1.0625 -0.078125l-2.203125 0l0 3.078125zm6.7226562 4.5l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm3.6210938 -3.109375q0 -1.734375 0.953125 -2.5625q0.796875 -0.6875 1.953125 -0.6875q1.28125 0 2.09375 0.84375q0.828125 0.828125 0.828125 2.3125q0 1.203125 -0.359375 1.890625q-0.359375 0.6875 -1.0625 1.078125q-0.6875 0.375 -1.5 0.375q-1.296875 0 -2.109375 -0.828125q-0.796875 -0.84375 -0.796875 -2.421875zm1.078125 0q0 1.1875 0.515625 1.78125q0.53125 0.59375 1.3125 0.59375q0.796875 0 1.3125 -0.59375q0.515625 -0.59375 0.515625 -1.8125q0 -1.15625 -0.53125 -1.75q-0.515625 -0.59375 -1.296875 -0.59375q-0.78125 0 -1.3125 0.59375q-0.515625 0.578125 -0.515625 1.78125zm5.986328 5.5l0 -8.609375l0.953125 0l0 0.796875q0.34375 -0.46875 0.765625 -0.703125q0.4375 -0.234375 1.046875 -0.234375q0.796875 0 1.40625 0.40625q0.609375 0.40625 0.90625 1.15625q0.3125 0.75 0.3125 1.640625q0 0.953125 -0.34375 1.71875q-0.328125 0.765625 -0.984375 1.171875q-0.65625 0.40625 -1.375 0.40625q-0.53125 0 -0.953125 -0.21875q-0.421875 -0.234375 -0.6875 -0.5625l0 3.03125l-1.046875 0zm0.953125 -5.46875q0 1.203125 0.484375 1.78125q0.484375 0.5625 1.171875 0.5625q0.703125 0 1.203125 -0.59375q0.5 -0.59375 0.5 -1.84375q0 -1.1875 -0.484375 -1.765625q-0.484375 -0.59375 -1.171875 -0.59375q-0.671875 0 -1.1875 0.625q-0.515625 0.625 -0.515625 1.828125zm9.970703 1.078125l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.861328 3.703125l0 -6.21875l0.953125 0l0 0.9375q0.359375 -0.65625 0.65625 -0.859375q0.3125 -0.21875 0.6875 -0.21875q0.53125 0 1.078125 0.328125l-0.359375 0.984375q-0.390625 -0.234375 -0.765625 -0.234375q-0.359375 0 -0.640625 0.21875q-0.265625 0.203125 -0.375 0.578125q-0.1875 0.5625 -0.1875 1.21875l0 3.265625l-1.046875 0zm6.3085938 -0.9375l0.15625 0.921875q-0.453125 0.09375 -0.796875 0.09375q-0.578125 0 -0.890625 -0.171875q-0.3125 -0.1875 -0.453125 -0.484375q-0.125 -0.296875 -0.125 -1.25l0 -3.578125l-0.765625 0l0 -0.8125l0.765625 0l0 -1.546875l1.046875 -0.625l0 2.171875l1.0625 0l0 0.8125l-1.0625 0l0 3.640625q0 0.453125 0.046875 0.578125q0.0625 0.125 0.1875 0.203125q0.125 0.078125 0.359375 0.078125q0.1875 0 0.46875 -0.03125zm1.0371094 -6.4375l0 -1.21875l1.0625 0l0 1.21875l-1.0625 0zm0 7.375l0 -6.21875l1.0625 0l0 6.21875l-1.0625 0zm6.9160156 -2.0l1.09375 0.125q-0.25 0.953125 -0.953125 1.484375q-0.703125 0.53125 -1.78125 0.53125q-1.359375 0 -2.171875 -0.84375q-0.796875 -0.84375 -0.796875 -2.359375q0 -1.5625 0.8125 -2.421875q0.8125 -0.875 2.09375 -0.875q1.25 0 2.03125 0.84375q0.796875 0.84375 0.796875 2.390625q0 0.09375 0 0.28125l-4.640625 0q0.0625 1.03125 0.578125 1.578125q0.515625 0.53125 1.296875 0.53125q0.578125 0 0.984375 -0.296875q0.421875 -0.3125 0.65625 -0.96875zm-3.453125 -1.703125l3.46875 0q-0.0625 -0.796875 -0.390625 -1.1875q-0.515625 -0.609375 -1.3125 -0.609375q-0.734375 0 -1.234375 0.484375q-0.484375 0.484375 -0.53125 1.3125zm5.455078 1.84375l1.03125 -0.15625q0.09375 0.625 0.484375 0.953125q0.40625 0.328125 1.140625 0.328125q0.71875 0 1.0625 -0.28125q0.359375 -0.296875 0.359375 -0.703125q0 -0.359375 -0.3125 -0.5625q-0.21875 -0.140625 -1.078125 -0.359375q-1.15625 -0.296875 -1.609375 -0.5q-0.4375 -0.21875 -0.671875 -0.59375q-0.234375 -0.375 -0.234375 -0.84375q0 -0.40625 0.1875 -0.765625q0.1875 -0.359375 0.515625 -0.59375q0.25 -0.171875 0.671875 -0.296875q0.421875 -0.125 0.921875 -0.125q0.71875 0 1.265625 0.21875q0.5625 0.203125 0.828125 0.5625q0.265625 0.359375 0.359375 0.953125l-1.03125 0.140625q-0.0625 -0.46875 -0.40625 -0.734375q-0.328125 -0.28125 -0.953125 -0.28125q-0.71875 0 -1.03125 0.25q-0.3125 0.234375 -0.3125 0.5625q0 0.203125 0.125 0.359375q0.140625 0.171875 0.40625 0.28125q0.15625 0.0625 0.9375 0.265625q1.125 0.3125 1.5625 0.5q0.4375 0.1875 0.6875 0.546875q0.25 0.359375 0.25 0.90625q0 0.53125 -0.3125 1.0q-0.296875 0.453125 -0.875 0.71875q-0.578125 0.25 -1.3125 0.25q-1.21875 0 -1.859375 -0.5q-0.625 -0.515625 -0.796875 -1.5z" fill-rule="nonzero"/><path fill="#000000" d="m237.47372 234.7467l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.140625 1.0q-1.109375 1.265625 -2.28125 1.265625q-0.71875 0 -1.171875 -0.40625q-0.4375 -0.421875 -0.4375 -1.015625q0 -0.390625 0.203125 -1.34375l0.75 -3.59375l1.0625 0l-0.84375 3.96875q-0.09375 0.5 -0.09375 0.78125q0 0.34375 0.203125 0.546875q0.21875 0.1875 0.640625 0.1875q0.4375 0 0.859375 -0.203125q0.4375 -0.21875 0.734375 -0.59375q0.3125 -0.375 0.5 -0.875q0.140625 -0.3125 0.296875 -1.125l0.5625 -2.6875l1.0625 0l-1.296875 6.21875l-0.984375 0l0.234375 -1.125zm2.4394531 1.125l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm6.611328 -4.828125l0.25 -1.203125l1.046875 0l-0.25 1.203125l-1.046875 0zm-3.359375 9.734375l0.1875 -0.90625q0.359375 0.09375 0.640625 0.09375q0.34375 0 0.546875 -0.234375q0.203125 -0.21875 0.421875 -1.234375l1.296875 -6.28125l1.0625 0l-1.34375 6.46875q-0.25 1.21875 -0.578125 1.65625q-0.4375 0.578125 -1.234375 0.578125q-0.40625 0 -1.0 -0.140625zm9.087891 -4.453125l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm9.470703 1.390625l1.0625 0.109375q-0.390625 1.171875 -1.125 1.734375q-0.734375 0.5625 -1.671875 0.5625q-1.015625 0 -1.65625 -0.65625q-0.625 -0.65625 -0.625 -1.828125q0 -1.03125 0.40625 -2.015625q0.40625 -0.984375 1.15625 -1.484375q0.75 -0.515625 1.71875 -0.515625q1.0 0 1.578125 0.5625q0.59375 0.5625 0.59375 1.5l-1.03125 0.0625q-0.015625 -0.59375 -0.359375 -0.921875q-0.328125 -0.328125 -0.875 -0.328125q-0.640625 0 -1.109375 0.40625q-0.46875 0.390625 -0.734375 1.21875q-0.265625 0.828125 -0.265625 1.578125q0 0.796875 0.34375 1.203125q0.359375 0.390625 0.875 0.390625q0.515625 0 0.984375 -0.390625q0.46875 -0.390625 0.734375 -1.1875zm4.1875 1.40625l-0.171875 0.859375q-0.375 0.109375 -0.734375 0.109375q-0.640625 0 -1.015625 -0.3125q-0.28125 -0.234375 -0.28125 -0.640625q0 -0.203125 0.15625 -0.9375l0.75 -3.625l-0.828125 0l0.171875 -0.8125l0.828125 0l0.328125 -1.53125l1.203125 -0.734375l-0.46875 2.265625l1.046875 0l-0.171875 0.8125l-1.046875 0l-0.71875 3.4375q-0.140625 0.65625 -0.140625 0.796875q0 0.1875 0.109375 0.28125q0.109375 0.09375 0.359375 0.09375q0.359375 0 0.625 -0.0625zm10.542969 -4.1875l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm1.6835938 7.0l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm16.835938 -3.03125l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm7.9160156 1.234375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/><path fill="#000000" d="m237.37997 250.8717l1.78125 -8.59375l1.0625 0l-0.640625 3.078125q0.515625 -0.46875 0.921875 -0.65625q0.40625 -0.1875 0.859375 -0.1875q0.859375 0 1.4375 0.65625q0.59375 0.640625 0.59375 1.875q0 0.828125 -0.234375 1.515625q-0.234375 0.6875 -0.578125 1.15625q-0.34375 0.46875 -0.71875 0.75q-0.359375 0.265625 -0.75 0.40625q-0.390625 0.140625 -0.75 0.140625q-0.609375 0 -1.078125 -0.328125q-0.46875 -0.328125 -0.734375 -0.984375l-0.25 1.171875l-0.921875 0zm1.5625 -2.5625l0 0.203125q0 0.796875 0.375 1.21875q0.375 0.40625 0.953125 0.40625q0.546875 0 1.015625 -0.375q0.46875 -0.390625 0.765625 -1.21875q0.296875 -0.828125 0.296875 -1.53125q0 -0.78125 -0.375 -1.21875q-0.375 -0.4375 -0.9375 -0.4375q-0.5625 0 -1.046875 0.453125q-0.484375 0.4375 -0.8125 1.359375q-0.234375 0.6875 -0.234375 1.140625zm5.298828 0.203125q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm9.626953 1.5625q-0.90625 1.046875 -1.890625 1.046875q-0.890625 0 -1.484375 -0.65625q-0.578125 -0.65625 -0.578125 -1.890625q0 -1.140625 0.453125 -2.078125q0.46875 -0.9375 1.171875 -1.40625q0.703125 -0.46875 1.40625 -0.46875q1.15625 0 1.75 1.109375l0.703125 -3.34375l1.046875 0l-1.78125 8.59375l-0.984375 0l0.1875 -0.90625zm-2.90625 -1.703125q0 0.65625 0.125 1.03125q0.140625 0.375 0.4375 0.625q0.3125 0.25 0.75 0.25q0.71875 0 1.3125 -0.75q0.78125 -1.0 0.78125 -2.46875q0 -0.734375 -0.390625 -1.140625q-0.390625 -0.421875 -0.96875 -0.421875q-0.375 0 -0.703125 0.171875q-0.3125 0.15625 -0.625 0.5625q-0.296875 0.40625 -0.515625 1.046875q-0.203125 0.625 -0.203125 1.09375zm4.986328 5.015625l0.0625 -1.0q0.328125 0.09375 0.640625 0.09375q0.328125 0 0.515625 -0.140625q0.265625 -0.203125 0.5625 -0.734375l0.34375 -0.609375l-1.03125 -6.234375l1.046875 0l0.46875 3.140625q0.140625 0.9375 0.234375 1.859375l2.78125 -5.0l1.109375 0l-3.96875 7.046875q-0.578125 1.03125 -1.03125 1.359375q-0.4375 0.34375 -1.015625 0.34375q-0.359375 0 -0.71875 -0.125zm16.083984 -7.453125l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm0 2.609375l-5.671875 0l0 -0.984375l5.671875 0l0 0.984375zm8.185547 -4.5625l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.1875 -0.953125 0.609375 -1.390625q0.421875 -0.4375 0.984375 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.921875 1.28125l0.65625 0zm-1.875 0l-0.25 1.203125l-1.203125 0l0.21875 -1.046875q0.203125 -0.953125 0.609375 -1.390625q0.421875 -0.4375 1.0 -0.5l-0.09375 0.453125q-0.6875 0.1875 -0.9375 1.28125l0.65625 0zm8.511719 3.96875l1.140625 0.171875q-0.546875 1.484375 -1.578125 2.25q-1.03125 0.75 -2.3125 0.75q-1.5625 0 -2.484375 -0.953125q-0.90625 -0.953125 -0.90625 -2.734375q0 -2.3125 1.390625 -3.84375q1.25 -1.34375 3.09375 -1.34375q1.359375 0 2.203125 0.734375q0.84375 0.734375 0.984375 1.96875l-1.078125 0.09375q-0.15625 -0.9375 -0.6875 -1.390625q-0.53125 -0.453125 -1.375 -0.453125q-1.578125 0 -2.546875 1.390625q-0.84375 1.203125 -0.84375 2.875q0 1.3125 0.640625 2.015625q0.65625 0.703125 1.703125 0.703125q0.890625 0 1.609375 -0.578125q0.71875 -0.59375 1.046875 -1.65625zm1.9472656 3.03125l1.796875 -8.59375l3.59375 0q0.921875 0 1.390625 0.21875q0.46875 0.21875 0.765625 0.734375q0.3125 0.515625 0.3125 1.15625q0 0.53125 -0.21875 1.09375q-0.21875 0.546875 -0.546875 0.90625q-0.328125 0.359375 -0.671875 0.546875q-0.34375 0.171875 -0.71875 0.25q-0.828125 0.203125 -1.671875 0.203125l-2.15625 0l-0.71875 3.484375l-1.15625 0zm2.078125 -4.453125l1.890625 0q1.109375 0 1.625 -0.234375q0.515625 -0.25 0.828125 -0.734375q0.3125 -0.484375 0.3125 -1.03125q0 -0.421875 -0.171875 -0.6875q-0.15625 -0.265625 -0.46875 -0.390625q-0.296875 -0.125 -1.140625 -0.125l-2.203125 0l-0.671875 3.203125zm7.7851562 -4.140625l1.15625 0l-1.109375 5.28125q-0.125 0.65625 -0.125 0.96875q0 0.703125 0.53125 1.125q0.546875 0.421875 1.375 0.421875q0.65625 0 1.21875 -0.296875q0.578125 -0.3125 0.90625 -0.890625q0.328125 -0.59375 0.59375 -1.875l0.984375 -4.734375l1.140625 0l-1.046875 5.046875q-0.265625 1.28125 -0.703125 2.046875q-0.4375 0.75 -1.21875 1.203125q-0.78125 0.453125 -1.8125 0.453125q-0.96875 0 -1.6875 -0.328125q-0.703125 -0.328125 -1.0625 -0.890625q-0.359375 -0.5625 -0.359375 -1.28125q0 -0.453125 0.25 -1.5625l0.96875 -4.6875zm10.21875 6.234375q0 -1.828125 1.0625 -3.015625q0.890625 -0.984375 2.328125 -0.984375q1.125 0 1.8125 0.703125q0.6875 0.703125 0.6875 1.890625q0 1.078125 -0.4375 2.0q-0.4375 0.921875 -1.234375 1.421875q-0.796875 0.484375 -1.6875 0.484375q-0.71875 0 -1.3125 -0.3125q-0.59375 -0.3125 -0.90625 -0.875q-0.3125 -0.578125 -0.3125 -1.3125zm1.046875 -0.109375q0 0.875 0.421875 1.328125q0.421875 0.453125 1.078125 0.453125q0.34375 0 0.671875 -0.125q0.34375 -0.140625 0.625 -0.421875q0.28125 -0.28125 0.484375 -0.640625q0.203125 -0.359375 0.328125 -0.78125q0.1875 -0.578125 0.1875 -1.109375q0 -0.84375 -0.4375 -1.3125q-0.421875 -0.46875 -1.0625 -0.46875q-0.5 0 -0.90625 0.25q-0.40625 0.234375 -0.75 0.6875q-0.328125 0.453125 -0.484375 1.0625q-0.15625 0.609375 -0.15625 1.078125zm5.439453 2.46875l1.296875 -6.21875l0.953125 0l-0.21875 1.078125q0.625 -0.640625 1.171875 -0.921875q0.546875 -0.296875 1.109375 -0.296875q0.75 0 1.171875 0.40625q0.4375 0.40625 0.4375 1.09375q0 0.34375 -0.140625 1.09375l-0.796875 3.765625l-1.0625 0l0.828125 -3.9375q0.125 -0.578125 0.125 -0.859375q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.8125 0 -1.453125 0.59375q-0.640625 0.578125 -0.9375 2.0l-0.609375 2.890625l-1.046875 0zm10.4296875 -3.59375q0.453125 0 0.78125 -0.234375q0.34375 -0.234375 0.546875 -0.703125q0.171875 -0.34375 0.375 -1.3125q0.21875 -0.984375 0.34375 -1.34375q0.15625 -0.484375 0.375 -0.78125q0.21875 -0.3125 0.46875 -0.46875q0.25 -0.171875 0.625 -0.25q0.203125 -0.046875 0.671875 -0.046875l0.328125 0l-0.203125 0.921875l-0.171875 0q-0.5 0 -0.71875 0.125q-0.21875 0.109375 -0.34375 0.375q-0.109375 0.25 -0.3125 1.125q-0.234375 1.171875 -0.453125 1.6875q-0.203125 0.5 -0.53125 0.828125q-0.3125 0.3125 -0.90625 0.5625q0.421875 0.203125 0.625 0.53125q0.203125 0.328125 0.203125 0.875q0 0.453125 -0.265625 1.671875q-0.1875 0.859375 -0.1875 1.078125q0 0.21875 0.09375 0.34375q0.0625 0.109375 0.21875 0.15625q0.171875 0.0625 0.703125 0.0625l-0.1875 0.921875l-0.328125 0q-0.546875 0 -0.765625 -0.078125q-0.34375 -0.125 -0.546875 -0.40625q-0.1875 -0.265625 -0.1875 -0.734375q0 -0.390625 0.265625 -1.671875q0.203125 -0.96875 0.203125 -1.3125q0 -0.46875 -0.234375 -0.703125q-0.234375 -0.25 -0.6875 -0.25l0.203125 -0.96875zm4.0078125 0q0.453125 0 0.78125 -0.234375q0.34375 -0.234375 0.546875 -0.703125q0.171875 -0.34375 0.375 -1.3125q0.21875 -0.984375 0.34375 -1.34375q0.15625 -0.484375 0.375 -0.78125q0.21875 -0.3125 0.46875 -0.46875q0.25 -0.171875 0.625 -0.25q0.203125 -0.046875 0.671875 -0.046875l0.328125 0l-0.203125 0.921875l-0.171875 0q-0.5 0 -0.71875 0.125q-0.21875 0.109375 -0.34375 0.375q-0.109375 0.25 -0.3125 1.125q-0.234375 1.171875 -0.453125 1.6875q-0.203125 0.5 -0.53125 0.828125q-0.3125 0.3125 -0.90625 0.5625q0.421875 0.203125 0.625 0.53125q0.203125 0.328125 0.203125 0.875q0 0.453125 -0.265625 1.671875q-0.1875 0.859375 -0.1875 1.078125q0 0.21875 0.09375 0.34375q0.0625 0.109375 0.21875 0.15625q0.171875 0.0625 0.703125 0.0625l-0.1875 0.921875l-0.328125 0q-0.546875 0 -0.765625 -0.078125q-0.34375 -0.125 -0.546875 -0.40625q-0.1875 -0.265625 -0.1875 -0.734375q0 -0.390625 0.265625 -1.671875q0.203125 -0.96875 0.203125 -1.3125q0 -0.46875 -0.234375 -0.703125q-0.234375 -0.25 -0.6875 -0.25l0.203125 -0.96875zm3.6796875 1.46875l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm10.46875 0.015625l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm5.5585938 0l-1.015625 -6.21875l1.03125 0l0.53125 3.421875q0.09375 0.5625 0.21875 1.828125q0.296875 -0.65625 0.78125 -1.515625l2.078125 -3.734375l1.109375 0l-3.5625 6.21875l-1.171875 0zm9.0 -2.109375l1.03125 0.09375q-0.21875 0.765625 -1.03125 1.46875q-0.796875 0.6875 -1.890625 0.6875q-0.703125 0 -1.28125 -0.3125q-0.578125 -0.328125 -0.875 -0.9375q-0.296875 -0.609375 -0.296875 -1.390625q0 -1.015625 0.46875 -1.96875q0.46875 -0.96875 1.21875 -1.421875q0.75 -0.46875 1.625 -0.46875q1.109375 0 1.765625 0.6875q0.671875 0.6875 0.671875 1.890625q0 0.453125 -0.078125 0.9375l-4.578125 0q-0.03125 0.171875 -0.03125 0.328125q0 0.875 0.40625 1.328125q0.40625 0.453125 0.984375 0.453125q0.546875 0 1.0625 -0.34375q0.53125 -0.359375 0.828125 -1.03125zm-3.078125 -1.546875l3.484375 0q0.015625 -0.171875 0.015625 -0.234375q0 -0.796875 -0.40625 -1.21875q-0.390625 -0.421875 -1.015625 -0.421875q-0.6875 0 -1.25 0.46875q-0.5625 0.46875 -0.828125 1.40625zm5.189453 3.65625l1.296875 -6.21875l0.9375 0l-0.265625 1.265625q0.484375 -0.71875 0.9375 -1.0625q0.46875 -0.34375 0.9375 -0.34375q0.328125 0 0.78125 0.21875l-0.4375 0.984375q-0.265625 -0.1875 -0.59375 -0.1875q-0.5625 0 -1.15625 0.625q-0.578125 0.609375 -0.90625 2.21875l-0.53125 2.5l-1.0 0zm7.2929688 -3.59375l-0.203125 0.96875q-0.4375 0 -0.78125 0.234375q-0.328125 0.234375 -0.515625 0.640625q-0.1875 0.40625 -0.40625 1.390625q-0.21875 0.984375 -0.3125 1.3125q-0.171875 0.5 -0.390625 0.796875q-0.21875 0.3125 -0.484375 0.46875q-0.25 0.171875 -0.609375 0.265625q-0.203125 0.046875 -0.6875 0.046875l-0.328125 0l0.203125 -0.921875l0.1875 0q0.5 0 0.71875 -0.125q0.21875 -0.125 0.359375 -0.421875q0.09375 -0.21875 0.28125 -1.09375q0.234375 -1.109375 0.40625 -1.546875q0.234375 -0.59375 0.59375 -0.953125q0.359375 -0.359375 0.890625 -0.578125q-0.453125 -0.234375 -0.640625 -0.546875q-0.171875 -0.3125 -0.171875 -0.859375q0 -0.453125 0.25 -1.671875q0.1875 -0.84375 0.1875 -1.078125q0 -0.296875 -0.15625 -0.421875q-0.15625 -0.125 -0.671875 -0.125l-0.1875 0l0.203125 -0.921875l0.328125 0q0.546875 0 0.765625 0.078125q0.34375 0.109375 0.53125 0.390625q0.203125 0.265625 0.203125 0.734375q0 0.390625 -0.203125 1.296875q-0.28125 1.359375 -0.28125 1.6875q0 0.46875 0.234375 0.71875q0.234375 0.234375 0.6875 0.234375zm4.0078125 0l-0.203125 0.96875q-0.4375 0 -0.78125 0.234375q-0.328125 0.234375 -0.515625 0.640625q-0.1875 0.40625 -0.40625 1.390625q-0.21875 0.984375 -0.3125 1.3125q-0.171875 0.5 -0.390625 0.796875q-0.21875 0.3125 -0.484375 0.46875q-0.25 0.171875 -0.609375 0.265625q-0.203125 0.046875 -0.6875 0.046875l-0.328125 0l0.203125 -0.921875l0.1875 0q0.5 0 0.71875 -0.125q0.21875 -0.125 0.359375 -0.421875q0.09375 -0.21875 0.28125 -1.09375q0.234375 -1.109375 0.40625 -1.546875q0.234375 -0.59375 0.59375 -0.953125q0.359375 -0.359375 0.890625 -0.578125q-0.453125 -0.234375 -0.640625 -0.546875q-0.171875 -0.3125 -0.171875 -0.859375q0 -0.453125 0.25 -1.671875q0.1875 -0.84375 0.1875 -1.078125q0 -0.296875 -0.15625 -0.421875q-0.15625 -0.125 -0.671875 -0.125l-0.1875 0l0.203125 -0.921875l0.328125 0q0.546875 0 0.765625 0.078125q0.34375 0.109375 0.53125 0.390625q0.203125 0.265625 0.203125 0.734375q0 0.390625 -0.203125 1.296875q-0.28125 1.359375 -0.28125 1.6875q0 0.46875 0.234375 0.71875q0.234375 0.234375 0.6875 0.234375zm5.544922 -3.796875l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.8066406 -2.125l1.0625 -0.0625q0 0.453125 0.140625 0.78125q0.140625 0.3125 0.515625 0.515625q0.375 0.203125 0.875 0.203125q0.703125 0 1.046875 -0.28125q0.359375 -0.28125 0.359375 -0.65625q0 -0.28125 -0.203125 -0.515625q-0.21875 -0.25 -1.0625 -0.609375q-0.84375 -0.359375 -1.078125 -0.515625q-0.390625 -0.234375 -0.59375 -0.5625q-0.1875 -0.328125 -0.1875 -0.75q0 -0.734375 0.578125 -1.25q0.59375 -0.53125 1.640625 -0.53125q1.171875 0 1.78125 0.546875q0.625 0.53125 0.640625 1.421875l-1.03125 0.0625q-0.03125 -0.5625 -0.40625 -0.890625q-0.375 -0.328125 -1.0625 -0.328125q-0.546875 0 -0.859375 0.25q-0.296875 0.25 -0.296875 0.546875q0 0.296875 0.265625 0.515625q0.171875 0.15625 0.90625 0.46875q1.21875 0.53125 1.53125 0.828125q0.515625 0.5 0.515625 1.1875q0 0.46875 -0.296875 0.921875q-0.28125 0.4375 -0.859375 0.703125q-0.578125 0.265625 -1.375 0.265625q-1.078125 0 -1.828125 -0.53125q-0.765625 -0.53125 -0.71875 -1.734375zm9.240234 2.125l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm8.173828 -7.390625l0.25 -1.203125l1.0625 0l-0.265625 1.203125l-1.046875 0zm-1.546875 7.390625l1.296875 -6.21875l1.0625 0l-1.296875 6.21875l-1.0625 0zm2.6503906 0.5625l1.0625 0.09375q0 0.375 0.09375 0.546875q0.09375 0.1875 0.3125 0.28125q0.296875 0.140625 0.75 0.140625q0.953125 0 1.375 -0.5q0.28125 -0.34375 0.515625 -1.453125l0.109375 -0.515625q-0.828125 0.84375 -1.765625 0.84375q-0.9375 0 -1.578125 -0.6875q-0.625 -0.703125 -0.625 -1.96875q0 -1.046875 0.5 -1.921875q0.5 -0.890625 1.1875 -1.328125q0.6875 -0.453125 1.421875 -0.453125q1.21875 0 1.890625 1.15625l0.203125 -1.015625l0.984375 0l-1.265625 6.0q-0.203125 1.0 -0.546875 1.546875q-0.328125 0.546875 -0.921875 0.84375q-0.59375 0.3125 -1.375 0.3125q-0.75 0 -1.296875 -0.1875q-0.53125 -0.1875 -0.796875 -0.5625q-0.265625 -0.375 -0.265625 -0.859375q0 -0.140625 0.03125 -0.3125zm1.328125 -3.3125q0 0.640625 0.109375 0.953125q0.1875 0.453125 0.5 0.6875q0.328125 0.234375 0.734375 0.234375q0.515625 0 1.03125 -0.359375q0.515625 -0.359375 0.828125 -1.125q0.328125 -0.78125 0.328125 -1.46875q0 -0.765625 -0.421875 -1.21875q-0.421875 -0.46875 -1.046875 -0.46875q-0.390625 0 -0.765625 0.21875q-0.359375 0.203125 -0.671875 0.625q-0.3125 0.421875 -0.46875 1.015625q-0.15625 0.59375 -0.15625 0.90625zm5.408203 2.75l1.78125 -8.59375l1.0625 0l-0.6875 3.296875q0.59375 -0.5625 1.09375 -0.8125q0.515625 -0.25 1.0625 -0.25q0.765625 0 1.1875 0.40625q0.4375 0.40625 0.4375 1.078125q0 0.328125 -0.1875 1.203125l-0.765625 3.671875l-1.0625 0l0.796875 -3.765625q0.171875 -0.828125 0.171875 -1.03125q0 -0.3125 -0.21875 -0.5q-0.203125 -0.1875 -0.609375 -0.1875q-0.578125 0 -1.09375 0.296875q-0.515625 0.296875 -0.8125 0.828125q-0.296875 0.515625 -0.546875 1.6875l-0.5625 2.671875l-1.046875 0zm7.892578 -7.359375l0.25 -1.203125l1.203125 0l-0.21875 1.0625q-0.203125 0.9375 -0.625 1.375q-0.40625 0.4375 -0.984375 0.515625l0.109375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0zm1.921875 0l0.25 -1.203125l1.21875 0l-0.234375 1.0625q-0.1875 0.9375 -0.609375 1.375q-0.421875 0.4375 -0.984375 0.515625l0.09375 -0.46875q0.6875 -0.1875 0.921875 -1.28125l-0.65625 0z" fill-rule="nonzero"/></g></svg> \ No newline at end of file diff --git a/docs/user/alerting/index.asciidoc b/docs/user/alerting/index.asciidoc deleted file mode 100644 index 56404d9a33b8..000000000000 --- a/docs/user/alerting/index.asciidoc +++ /dev/null @@ -1,5 +0,0 @@ -include::alerting-getting-started.asciidoc[] -include::defining-alerts.asciidoc[] -include::action-types.asciidoc[] -include::alert-types.asciidoc[] -include::alerting-scale-performance.asciidoc[] diff --git a/docs/user/canvas.asciidoc b/docs/user/canvas.asciidoc deleted file mode 100644 index c10641bb3a6b..000000000000 --- a/docs/user/canvas.asciidoc +++ /dev/null @@ -1,185 +0,0 @@ -[role="xpack"] -[[canvas]] -= Canvas - -[partintro] --- - -Canvas is a data visualization and presentation tool that sits within {kib}. With Canvas, you can pull live data directly from {es}, and combine the data with colors, images, text, and your imagination to create dynamic, multi-page, pixel-perfect displays. If you are a little bit creative, a little bit technical, and a whole lot curious, then Canvas is for you. - -With Canvas, you can: - -* Create and personalize your work space with backgrounds, borders, colors, fonts, and more. - -* Customize your workpad with your own visualizations, such as images and text. - -* Pull your data directly from Elasticsearch, then show it off with charts, graphs, progress monitors, and more. - -* Focus the data you want to display with filters. - -To begin, open the main menu, then click *Canvas*. - -[role="screenshot"] -image::images/canvas-gs-example.png[Getting started example] - -For a quick overview of Canvas, watch link:https://www.youtube.com/watch?v=ZqvF_5-1xjQ[Stand out with Canvas]. - -[float] -[[create-workpads]] -== Create workpads - -A _workpad_ provides you with a space where you can build presentations of your live data. With Canvas, -you can create a workpad from scratch, start with a preconfigured workpad, import an existing workpad, or use a sample data workpad. - -[float] -[[start-with-a-blank-workpad]] -=== Start with a blank workpad - -To use the background colors, images, and data of your choice, start with a blank workpad. - -. On the *Canvas workpads* page, click *Create workpad*. - -. Specify the *Workpad settings*. - -.. Add a *Name* to your workpad. - -.. In the *Width* and *Height* fields, specify the size, or select one of default layouts. - -.. Click the *Background* color picker, then select the color for your workpad. -+ -[role="screenshot"] -image::images/canvas-background-color-picker.png[Canvas color picker] - -[float] -[[create-workpads-from-templates]] -=== Create workpads from templates - -If you're unsure about where to start, you can use one of the preconfigured templates that come with Canvas. - -. On the *Canvas workpads* page, select *Templates*. - -. Click the preconfigured template that you want to use. - -. Add your own *Name* to the workpad. - -[float] -[[import-existing-workpads]] -=== Import existing workpads - -When you want to use a workpad that someone else has already started, import the JSON file. - -To begin, drag the file to the *Import workpad JSON file* field on the *Canvas workpads* page. - -[float] -[[use-sample-data-workpads]] -=== Use sample data workpads - -Each of the {kib} sample data sets comes with a workpad that you can use for your own workpad inspiration. - -. Add a {kibana-ref}/add-sample-data.html[sample data set]. - -. On the *Add Data* page, click *View data*, then select *Canvas*. - -[float] -[[add-canvas-elements]] -== Add elements - -Create a story about your data by adding elements to your workpad that include images, text, charts, and more. - -[float] -[[create-elements]] -=== Create elements - -Choose the type of element you want to use, then use the preconfigured demo data to familiarize yourself with the element. When you're ready, connect the element to your own data. By default, most of the elements you create use -demo data until you change the data source. The demo data includes a small data set that you can use to experiment with your element. - -To begin, click *Add element*, then select the element you want to use. - -[role="screenshot"] -image::images/canvas-element-select.gif[Canvas elements] - -When you're ready to connect the element to your data, select *Data*, then select one of the following data sources: - -* *{es} SQL* — Access your data in {es} using {ref}/sql-spec.html[SQL syntax]. - -* *{es} documents* — Access your data in {es} without using aggregations. To use, select an index and fields, and optionally enter a query using the <<lucene-query,Lucene Query Syntax>>. Use the *{es} documents* data source when you have low volume datasets, to view raw documents, or to plot exact, non-aggregated values on a chart. - -* *Timelion* — Access your time series data using <<timelion,Timelion>> queries. To use Timelion queries, you can enter a query using the <<lucene-query,Lucene Query Syntax>>. - -Each element can display a different data source, and pages and workpads often contain multiple data sources. - -When you're ready to save your element, select the element, then click *Edit > Save as new element*. - -[role="screenshot"] -image::images/canvas_save_element.png[] - -To save a group of elements, press and hold Shift, select the elements you want to save, then click *Edit > Save as new element*. - -Elements are saved in *Add element > My elements*. - -[float] -[[add-saved-objects]] -=== Add saved objects - -Add <<managing-saved-objects,saved objects>> to your workpad, such as maps and visualizations. - -. Click *Add element > Add from {kib}*. - -. Select the saved object you want to add. -+ -[role="screenshot"] -image::images/canvas-map-embed.gif[] - -. To use the customization options, click the panel menu, then select one of the following options: - -* *Edit map* — Opens <<maps,Maps>> or a visualization builder so that you can edit the original saved object. - -* *Edit panel title* — Adds a title to the saved object. - -* *Customize time range* — Exposes a time filter dedicated to the saved object. - -* *Inspect* — Allows you to drill down into the element data. - -[float] -[[add-your-own-images]] -=== Add your own images - -To personalize your workpad, add your own logos and graphics. - -. Click *Add element > Manage assets*. - -. On the *Manage workpad assets* window, drag and drop your images. - -. To add the image to the workpad, click the *Create image element* icon. -+ -[role="screenshot"] -image::images/canvas-add-image.gif[Add image to Canvas] - -[float] -[[add-more-pages]] -== Add pages - -Organize and separate your ideas by adding more pages. - -. Click *Page 1*, then click *+*. - -. On the *Page* editor panel, select the page transition from the *Transition* dropdown. -+ -[role="screenshot"] -image::images/canvas-add-pages.gif[Add pages] - --- - -include::{kib-repo-dir}/canvas/canvas-edit-workpads.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-present-workpad.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-share-workpad.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-tutorial.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-expression-lifecycle.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-function-reference.asciidoc[] - -include::{kib-repo-dir}/canvas/canvas-tinymath-functions.asciidoc[] diff --git a/docs/user/dashboard/drilldowns.asciidoc b/docs/user/dashboard/drilldowns.asciidoc deleted file mode 100644 index ec9a6dcb8a8a..000000000000 --- a/docs/user/dashboard/drilldowns.asciidoc +++ /dev/null @@ -1,260 +0,0 @@ -[role="xpack"] -[[drilldowns]] -== Create custom dashboard actions - -Custom dashboard actions, also known as drilldowns, allow you to create -workflows for analyzing and troubleshooting your data. Drilldowns apply only to the panel that you created the drilldown from, and are not shared across all of the panels. Each panel can have multiple drilldowns. - -Third-party developers can create drilldowns. To learn how to code drilldowns, refer to {kib-repo}blob/{branch}/x-pack/examples/ui_actions_enhanced_examples[this example plugin]. - -[float] -[[supported-drilldowns]] -=== Supported drilldowns - -{kib} supports two types of drilldowns. - -[NOTE] -============================================== -Some drilldowns are paid subscription features, while others are free. -For a comparison of the Elastic subscription levels, -refer https://www.elastic.co/subscriptions[the subscription page]. -============================================== - -[float] -[[dashboard-drilldowns]] -==== Dashboard drilldowns - -Dashboard drilldowns enable you to open a dashboard from another dashboard, -taking the time range, filters, and other parameters with you, -so the context remains the same. Dashboard drilldowns help you to continue your analysis from a new perspective. - -For example, if you have a dashboard that shows the overall status of multiple data center, -you can create a drilldown that navigates from the overall status dashboard to a dashboard -that shows a single data center or server. - -[float] -[[url-drilldowns]] -==== URL drilldowns - -beta[] URL drilldowns enable you to navigate from a dashboard to internal or external URLs. -Destination URLs can be dynamic, depending on the dashboard context or user interaction with a panel. -For example, if you have a dashboard that shows data from a Github repository, you can create a URL drilldown -that opens Github from the dashboard. - -Some panels support multiple interactions, also known as triggers. - -The <<url-template-variables,variables>> you use to create a <<url_templating-language, URL template>> depends on the trigger you choose. URL drilldowns support these types of triggers: - -* *Single click* — A single data point in the visualization. - -* *Range selection* — A range of values in a visualization. - -For example, *Single click* has `{{event.value}}` and *Range selection* has `{{event.from}}` and `{{event.to}}`. - -To disable URL drilldowns on your {kib} instance, disable the plugin: - -["source","yml"] ------------ -url_drilldown.enabled: false ------------ - -[float] -[[dashboard-drilldown-supported-panels]] -=== Supported panels - -The following panels support dashboard and URL drilldowns. - -[options="header"] -|=== - -| Panel | Dashboard drilldown | URL drilldown - -| Lens -^| X -^| X - -| Area -^| X -^| X - -| Controls -^| -^| - -| Data Table -^| X -^| X - -| Gauge -^| -^| - -| Goal -^| -^| - -| Heat map -^| X -^| X - -| Horizontal Bar -^| X -^| X - -| Line -^| X -^| X - -| Maps -^| X -^| - -| Markdown -^| -^| - -| Metric -^| -^| - -| Pie -^| X -^| X - -| TSVB -^| X -^| - -| Tag Cloud -^| X -^| X - -| Timelion -^| X -^| - -| Vega -^| X -^| - -| Vertical Bar -^| X -^| X - -|=== - -[float] -[[drilldowns-example]] -=== Try it: Create a dashboard drilldown - -To create dashboard drilldowns, you create or locate the dashboards you want to connect, then configure the drilldown that allows you to easily open one dashboard from the other dashboard. - -image:images/drilldown_on_piechart.gif[Drilldown on pie chart that navigates to another dashboard] - -[float] -==== Create the dashboard - -. Add the *Sample web logs* data. - -. Create a new dashboard, then add the following panels: - -* *[Logs] Heatmap* -* *[Logs] Host, Visits, and Bytes Table* -* *[Logs] Total Requests and Bytes* -* *[Logs] Visitors by OS* -+ -If you don’t see data for a panel, try changing the <<set-time-filter,time filter>>. - -. Save the dashboard. In the *Title* field, enter `Host Overview`. - -. Open the *[Logs] Web traffic* dashboard. - -. Set a search and filter. -+ -[%hardbreaks] -Search: `extension.keyword: ("gz" or "css" or "deb")` -Filter: `geo.src: CN` - -[float] -==== Create the drilldown - -. In the toolbar, click *Edit*. - -. Open the *[Logs] Visitors by OS* panel menu, then select *Create drilldown*. - -. Give the drilldown a name, then select *Go to dashboard*. - -. From the *Choose a destination dashboard* dropdown, select *Host Overview*. - -. To carry over the filter, query, and date range, make sure that *Use filters and query from origin dashboard* and *Use date range from origin dashboard* are selected. -+ -[role="screenshot"] -image::images/drilldown_create.png[Create drilldown with entries for drilldown name and destination] - -. Click *Create drilldown*. -+ -The drilldown is stored as dashboard metadata. - -. Save the dashboard. -+ -If you fail to save the dashboard, the drilldown is lost when you navigate away from the dashboard. - -. In the *[Logs] Visitors by OS* panel, click *win 8*, then select the drilldown. -+ -[role="screenshot"] -image::images/drilldown_on_panel.png[Drilldown on pie chart that navigates to another dashboard] - -. On the *Host Overview* dashboard, verify that the search query, filters, -and date range are carried over. - -[float] -[[create-a-url-drilldown]] -=== Try it: Create a URL drilldown - -beta[] To create URL drilldowns, you add <<variables,variables>> to a URL template, which configures the bahavior of the drilldown. - -image:images/url_drilldown_go_to_github.gif[Drilldown on pie chart that navigates to Github] - -. Add the *Sample web logs* data. - -. Open the *[Logs] Web traffic* dashboard. This isn’t data from Github, but works for demonstration purposes. - -. In the toolbar, click *Edit*. - -. Open the *[Logs] Visitors by OS* panel menu, then select *Create drilldown*. - -.. In the *Name* field, enter `Show on Github`. - -.. Select *Go to URL*. - -.. Enter the URL template: -+ -[source, bash] ----- -https://github.com/elastic/kibana/issues?q=is:issue+is:open+{{event.value}} ----- -+ -The example URL navigates to {kib} issues on Github. `{{event.value}}` is substituted with a value associated with a selected pie slice. In *URL preview*, `{{event.value}}` is substituted with a <<values-in-preview, dummy>> value. -+ -[role="screenshot"] -image:images/url_drilldown_url_template.png[URL template input] - -.. Click *Create drilldown*. -+ -The drilldown is stored as dashboard metadata. - -. Save the dashboard. -+ -If you fail to save the dashboard, the drilldown is lost when you navigate away from the dashboard. - -. On the *[Logs] Visitors by OS* panel, click any chart slice, then select *Show on Github*. -+ -[role="screenshot"] -image:images/url_drilldown_popup.png[URL drilldown popup] - -. On the page that lists the issues in the {kib} repository, verify the slice value appears in Github. -+ -[role="screenshot"] -image:images/url_drilldown_github.png[Github] - -include::url-drilldown.asciidoc[] diff --git a/docs/user/graph/configuring-graph.asciidoc b/docs/user/graph/configuring-graph.asciidoc deleted file mode 100644 index 4eb8939b004b..000000000000 --- a/docs/user/graph/configuring-graph.asciidoc +++ /dev/null @@ -1,75 +0,0 @@ -[role="xpack"] -[[graph-configuration]] -== Configure Graph - -When a user saves a graph workspace in Kibana, it is stored in the `.kibana` -index along with other saved objects like visualizations and dashboards. -By default, both the configuration and data are saved for the workspace: - -[horizontal] -*configuration*:: -The selected index pattern, fields, colors, icons, -and settings. -*data*:: -The visualized content (the vertices and connections displayed in -the workspace). - -The data in a saved workspace is like a report--it is a saved snapshot that -potentially summarizes millions of raw documents. Once saved, these summaries -are no longer controlled by security policies. Because the original documents -might be deleted after a workspace is saved, there's no practical basis for -checking permissions for the data in a saved workspace. - -For this reason, you can configure the save policy for graph workspaces to -ensure appropriate handling of your data. You can allow all users to save -only the configuration information for a graph, require all users to -explicitly include the workspace data, or completely disable the ability -to save a workspace. - -For example, to disable the save option entirely, set -`xpack.graph.savePolicy` to `none` in `kibana.yml`: - -[source,yaml] --------------------------------------------------- -xpack.graph.savePolicy: none --------------------------------------------------- - -The supported save policies are: - -`none`:: -Neither the configuration or data can be saved. -`config`:: -Only the configuration is saved. -`configAndData`:: -Both configuration and data are saved. This is the -default policy. -`configAndDataWithConsent`:: -Only the configuration is saved unless the user -explicitly selects the include data option. - -[float] -=== Use Security to grant access -You can also use security to grant read only or all access to different roles. -When security is used to grant read only access, the following indicator in Kibana -is displayed. For more information on granting access to Kibana, see -<<xpack-security-authorization>>. - -[role="screenshot"] -image::user/graph/images/graph-read-only-badge.png[Example of Graph's read only access indicator in Kibana's header] - -[discrete] -[[disable-drill-down]] -=== Disable drilldown configuration - -By default, users can configure _drilldown_ URLs to display additional -information about a selected vertex in a new browser window. For example, -you could configure a drilldown URL to perform a web search for the selected -vertex term. - -To prevent users from adding drilldown URLs, set -`xpack.graph.canEditDrillDownUrls` to `false` in `kibana.yml`: - -[source,yaml] --------------------------------------------------- -xpack.graph.canEditDrillDownUrls: false --------------------------------------------------- diff --git a/docs/user/graph/getting-started.asciidoc b/docs/user/graph/getting-started.asciidoc deleted file mode 100644 index 086c0707b3c2..000000000000 --- a/docs/user/graph/getting-started.asciidoc +++ /dev/null @@ -1,123 +0,0 @@ -[role="xpack"] -[[graph-getting-started]] -== Create a graph - -You must index data into {es} before you can create a graph. -<<index-patterns, Learn how>> or get started with a <<add-sample-data, sample data set>>. - -[float] -[[exploring-connections]] -=== Graph a data connection - -. Open the main menu, then click *Graph*. -+ -If this is your first graph, follow the prompts to create it. -For subsequent graphs, click *New*. - -. Select a data source to explore. - -. Add one or more multi-value fields that contain the terms you want to -graph. -+ -The vertices in the graph are selected from these terms. - -. Enter a search query to discover relationships between terms in the selected -fields. -+ -For example, if you are using the {kib} sample web logs data set, and you want -to generate a graph of the successful requests to -particular pages from different locations, you could search for the 200 -response code. The weight of the connection between two vertices indicates how strongly they -are related. -+ -[role="screenshot"] -image::user/graph/images/graph-url-connections.png["URL connections"] - -. To view more information about the relationship, click any connection. -+ -[role="screenshot"] -image::user/graph/images/graph-link-summary.png["Link summary"] - -. Use the control bar to explore -additional connections: -+ -* To display additional vertices that connect to your graph, click the expand icon -image:user/graph/images/graph-expand-button.png[Expand Selection]. -* To display additional -connections between the displayed vertices, click the link icon -image:user/graph/images/graph-link-button.png[Add links to existing terms]. -* To explore a particular area of the -graph, select the vertices you are interested in, and then click expand or link. -* To step back through your changes to the graph, click undo -image:user/graph/images/graph-undo-button.png[Undo] and redo -image:user/graph/images/graph-redo-button.png[Redo]. - -. To see more relationships in your data, submit additional queries. -+ -[role="screenshot"] -image::user/graph/images/graph-add-query.png["Adding networks"] - -. *Save* your graph. - -[float] -[[style-vertex-properties]] -=== Style vertex properties - -Each vertex has a color, icon, and label. To change -the color or icon of all vertices -of a certain field, click it's badge, and then -select *Edit settings*. - -To change the color and label of selected vertices, -click the style icon image:user/graph/images/graph-style-button.png[Style] -in the control bar. - - -[float] -[[edit-graph-settings]] -=== Edit graph settings - -By default, *Graph* is configured to tune out noise in your data. -If this isn't a good fit for your data, use *Settings > Advanced settings* -to adjust the way *Graph* queries your data. You can tune the graph to show -only the results relevant to you and to improve performance. -For more information, see <<graph-troubleshooting, Graph troubleshooting>>. - -You can configure the number of vertices that a search or -expand operation adds to the graph. -By default, only the five most relevant terms for any given field are added -at a time. This keeps the graph from overflowing. To increase this number, click -a field, select *Edit Settings*, and change *Terms per hop*. - -[float] -[[graph-block-terms]] -=== Block terms from the graph -Documents that match a blocked term are not allowed in the graph. -To block a term, select its vertex and click -the block icon -image:user/graph/images/graph-block-button.png[Block selection] -in the control panel. -For a list of blocked terms, go to *Settings > Blocked terms*. - -[float] -[[graph-drill-down]] -=== Drill down into raw documents -With drilldowns, you can display additional information about a -selected vertex in a new browser window. For example, you might -configure a drilldown URL to perform a web search for the selected vertex term. - -Use the drilldown icon image:user/graph/images/graph-info-icon.png[Drilldown selection] -in the control panel to show the drilldown buttons for the selected vertices. -To configure drilldowns, go to *Settings > Drilldowns*. See also -<<disable-drill-down, Disabling drilldown configuration>>. - -[float] -[[graph-run-layout]] -=== Run and pause layout -Graph uses a "force layout", where vertices behave like magnets, -pushing off of one another. By default, when you add a new vertex to -the graph, all vertices begin moving. In some cases, the movement might -go on for some time. To freeze the current vertex position, -click the pause icon -image:user/graph/images/graph-pause-button.png[Block selection] -in the control panel. diff --git a/docs/user/graph/gs-index.asciidoc b/docs/user/graph/gs-index.asciidoc deleted file mode 100644 index ee739e012c33..000000000000 --- a/docs/user/graph/gs-index.asciidoc +++ /dev/null @@ -1,67 +0,0 @@ -[[xpack-graph]] -== Graphing connections in your data - -The {kib} {graph-features} enable you to discover how items in an -Elasticsearch index are related. You can explore the connections between -indexed terms and see which connections are the most meaningful. This is -useful in a variety of applications, from fraud detection to recommendation -engines. - -For example, graph exploration can help you uncover website vulnerabilities -that hackers are targeting, so you can harden your website. Or, you might -provide graph-based personalized recommendations to your e-commerce customers. - -The {graph-features} provide a simple, yet powerful graph exploration API, and an -interactive graph visualization tool for Kibana. Both work with out of the -box with existing Elasticsearch indices--you don't need to store any -additional data to use these features. - -[[how-graph-works]] -[float] -=== How Graph works -The graph API provides an alternative way to extract and summarize information -about the documents and terms in your Elasticsearch index. A _graph_ is really -just a network of related items. In our case, this means a network of related -terms in the index. - -The terms you want to include in the graph are called _vertices_. The -relationship between any two vertices is a _connection_. The connection -summarizes the documents that contain both vertices' terms. - -image::images/graph-vertices-connections.jpg["Graph components"] - -NOTE: If you're into https://en.wikipedia.org/wiki/Graph_theory[graph theory], -you might know vertices and connections as _nodes_ and _edges_. They're the -same thing, we just want to use terminology that makes sense to people who -aren't graph geeks and avoid any confusion with the nodes in an Elasticsearch -cluster. - -The graph vertices are simply the terms that you've already indexed. The -connections are derived on the fly using Elasticsearch aggregations. To -identify the most _meaningful_ connections, the graph API leverages -Elasticsearch relevance scoring. The same data structures and relevance ranking -tools built into Elasticsearch to support text searches enable the graph API to -separate useful signals from the noise that is typical of most connected data. - -This foundation lets you easily answer questions like: - -* What are the shared behaviors of people trying to hack my website? -* If users bought this type of gardening glove, what other products might they -be interested in? -* Which people on Stack Overflow have expertise in both Hadoop-related -technologies and Python-related tech? - -But what about performance? The Elasticsearch aggregation framework -enables the graph API to quickly summarize millions of documents as a single -super-connection. Instead of retrieving every banking transaction between -accounts A and B, it derives a single connection that represents that -relationship. - -This summarization process works across -multi-node clusters and scales with your Elasticsearch deployment. -Advanced options let you control how your data is sampled and summarized. -You can also set timeouts to prevent graph queries from adversely -affecting the cluster. --- - -include::getting-started.asciidoc[] \ No newline at end of file diff --git a/docs/user/graph/images/connection.jpg b/docs/user/graph/images/connection.jpg deleted file mode 100644 index b1342e5d06d9..000000000000 Binary files a/docs/user/graph/images/connection.jpg and /dev/null differ diff --git a/docs/user/graph/images/graph-add-query.png b/docs/user/graph/images/graph-add-query.png deleted file mode 100644 index 93ddf6a6132f..000000000000 Binary files a/docs/user/graph/images/graph-add-query.png and /dev/null differ diff --git a/docs/user/graph/images/graph-advanced-button.jpg b/docs/user/graph/images/graph-advanced-button.jpg deleted file mode 100644 index 8a50d1b80f8f..000000000000 Binary files a/docs/user/graph/images/graph-advanced-button.jpg and /dev/null differ diff --git a/docs/user/graph/images/graph-block-button.png b/docs/user/graph/images/graph-block-button.png deleted file mode 100755 index b378883572f3..000000000000 Binary files a/docs/user/graph/images/graph-block-button.png and /dev/null differ diff --git a/docs/user/graph/images/graph-expand-button.png b/docs/user/graph/images/graph-expand-button.png deleted file mode 100755 index 7d9816a8adb9..000000000000 Binary files a/docs/user/graph/images/graph-expand-button.png and /dev/null differ diff --git a/docs/user/graph/images/graph-info-icon.png b/docs/user/graph/images/graph-info-icon.png deleted file mode 100644 index c1e89384b738..000000000000 Binary files a/docs/user/graph/images/graph-info-icon.png and /dev/null differ diff --git a/docs/user/graph/images/graph-init-screen.jpg b/docs/user/graph/images/graph-init-screen.jpg deleted file mode 100644 index a00f569b7ad3..000000000000 Binary files a/docs/user/graph/images/graph-init-screen.jpg and /dev/null differ diff --git a/docs/user/graph/images/graph-link-button.png b/docs/user/graph/images/graph-link-button.png deleted file mode 100755 index 43ac85537b9b..000000000000 Binary files a/docs/user/graph/images/graph-link-button.png and /dev/null differ diff --git a/docs/user/graph/images/graph-link-summary.png b/docs/user/graph/images/graph-link-summary.png deleted file mode 100644 index a3dfdc0f79d9..000000000000 Binary files a/docs/user/graph/images/graph-link-summary.png and /dev/null differ diff --git a/docs/user/graph/images/graph-network.jpg b/docs/user/graph/images/graph-network.jpg deleted file mode 100644 index 567635822fb8..000000000000 Binary files a/docs/user/graph/images/graph-network.jpg and /dev/null differ diff --git a/docs/user/graph/images/graph-pause-button.png b/docs/user/graph/images/graph-pause-button.png deleted file mode 100755 index e05418d7df7f..000000000000 Binary files a/docs/user/graph/images/graph-pause-button.png and /dev/null differ diff --git a/docs/user/graph/images/graph-read-only-badge.png b/docs/user/graph/images/graph-read-only-badge.png deleted file mode 100644 index a33b927ef062..000000000000 Binary files a/docs/user/graph/images/graph-read-only-badge.png and /dev/null differ diff --git a/docs/user/graph/images/graph-redo-button.png b/docs/user/graph/images/graph-redo-button.png deleted file mode 100755 index 5adcfa478652..000000000000 Binary files a/docs/user/graph/images/graph-redo-button.png and /dev/null differ diff --git a/docs/user/graph/images/graph-style-button.png b/docs/user/graph/images/graph-style-button.png deleted file mode 100644 index 5015e39b8095..000000000000 Binary files a/docs/user/graph/images/graph-style-button.png and /dev/null differ diff --git a/docs/user/graph/images/graph-undo-button.png b/docs/user/graph/images/graph-undo-button.png deleted file mode 100755 index e8a72b8b358c..000000000000 Binary files a/docs/user/graph/images/graph-undo-button.png and /dev/null differ diff --git a/docs/user/graph/images/graph-url-connections.png b/docs/user/graph/images/graph-url-connections.png deleted file mode 100644 index 34b57d489b04..000000000000 Binary files a/docs/user/graph/images/graph-url-connections.png and /dev/null differ diff --git a/docs/user/graph/images/graph-vertices-connections.jpg b/docs/user/graph/images/graph-vertices-connections.jpg deleted file mode 100644 index 59072be31c31..000000000000 Binary files a/docs/user/graph/images/graph-vertices-connections.jpg and /dev/null differ diff --git a/docs/user/graph/images/graph.jpg b/docs/user/graph/images/graph.jpg deleted file mode 100644 index bb16ca302569..000000000000 Binary files a/docs/user/graph/images/graph.jpg and /dev/null differ diff --git a/docs/user/graph/images/midiclicks.jpg b/docs/user/graph/images/midiclicks.jpg deleted file mode 100644 index 3262b4a428ca..000000000000 Binary files a/docs/user/graph/images/midiclicks.jpg and /dev/null differ diff --git a/docs/user/graph/images/spy.jpg b/docs/user/graph/images/spy.jpg deleted file mode 100644 index 2934d9c328e5..000000000000 Binary files a/docs/user/graph/images/spy.jpg and /dev/null differ diff --git a/docs/user/graph/index.asciidoc b/docs/user/graph/index.asciidoc deleted file mode 100644 index 40c75c868e23..000000000000 --- a/docs/user/graph/index.asciidoc +++ /dev/null @@ -1,75 +0,0 @@ -[role="xpack"] -[[xpack-graph]] -= Graph - -[partintro] --- -The {graph-features} enable you to discover how items in an -Elasticsearch index are related. You can explore the connections between -indexed terms and see which connections are the most meaningful. This can be -useful in a variety of applications, from fraud detection to recommendation -engines. - -For example, graph exploration could help you uncover website vulnerabilities -that hackers are targeting so you can harden your website. Or, you might -provide graph-based personalized recommendations to your e-commerce customers. - -The {graph-features} provide a simple, yet powerful {ref}/graph-explore-api.html[graph exploration API], -and an interactive graph visualization tool for Kibana. Both work out of the -box with existing Elasticsearch indices--you don't need to store any -additional data to use these features. - -[discrete] -[[how-graph-works]] -== How Graph works -The graph API provides an alternative way to extract and summarize information -about the documents and terms in your Elasticsearch index. A _graph_ is really -just a network of related items. In our case, this means a network of related -terms in the index. - -The terms you want to include in the graph are called _vertices_. The -relationship between any two vertices is a _connection_. The connection -summarizes the documents that contain both vertices' terms. - -[role="screenshot"] -image::user/graph/images/graph-vertices-connections.jpg["Graph components"] - -NOTE: If you're into https://en.wikipedia.org/wiki/Graph_theory[graph theory], -you might know vertices and connections as _nodes_ and _edges_. They're the -same thing, we just want to use terminology that makes sense to people who -aren't graph geeks and avoid any confusion with the nodes in an Elasticsearch -cluster. - -The graph vertices are simply the terms that you've already indexed. The -connections are derived on the fly using Elasticsearch aggregations. To -identify the most _meaningful_ connections, the graph API leverages -Elasticsearch relevance scoring. The same data structures and relevance ranking -tools built into Elasticsearch to support text searches enable the graph API to -separate useful signals from the noise that is typical of most connected data. - -This foundation lets you easily answer questions like: - -* What are the shared behaviors of people trying to hack my website? -* If users bought this type of gardening glove, what other products might they -be interested in? -* Which people on Stack Overflow have expertise in both Hadoop-related -technologies and Python-related tech? - -But what about performance, you ask? The Elasticsearch aggregation framework -enables the graph API to quickly summarize millions of documents as a single -super-connection. Instead of retrieving every banking transaction between -accounts A and B, it derives a single connection that represents that -relationship. And, of course, this summarization process works across -multi-node clusters and scales with your Elasticsearch deployment. -Advanced options let you control how your data is sampled and summarized. -You can also set timeouts to prevent graph queries from adversely -affecting the cluster. --- - -include::getting-started.asciidoc[] - -include::configuring-graph.asciidoc[] - -include::troubleshooting.asciidoc[] - -include::limitations.asciidoc[] diff --git a/docs/user/graph/introduction.asciidoc b/docs/user/graph/introduction.asciidoc deleted file mode 100644 index 9c1cb85378c0..000000000000 --- a/docs/user/graph/introduction.asciidoc +++ /dev/null @@ -1,101 +0,0 @@ -[[graph-introduction]] -=== Introduction - -_Graph_ provides a way to discover how items in an {es} index are related. You can -explore the connections between indexed terms and see which connections are the most meaningful. -This can be useful in a variety of applications, from fraud detection to recommendation engines. - -image::user/graph/images/graph-network.jpg["Graph network"] - -For example, you might use Graph to uncover website vulnerabilities that hackers are targeting -so you can harden your website. Or, you might provide Graph-based personalized recommendations -to your e-commerce customers. - -Graph consists of two components: a simple, yet powerful -graph exploration API and a {kib} UI that provides an interactive Graph visualization tool. - -You can use Graph with your existing {es} indices--simply start exploring! - -[[how-graph-works]] -[float] -==== How Graph works -Graph provides an alternative way to extract and summarize information about the documents and terms in your {es} index. A _graph_ is really just a network of related items. In our case, this means a network of related terms in the index. - -In the Graph API, the terms you want to include in the graph are called _vertices_. -The relationship between any two vertices is a _connection_. The connection -summarizes the documents that contain both vertices' terms. - -image::user/graph/images/graph-vertices-connections.jpg["Graph components"] - -NOTE: If you're into https://en.wikipedia.org/wiki/Graph_theory[Graph theory], you might know -vertices and connections as _nodes_ and _edges_. They're the same thing, we just want to use -terminology that makes sense to people who aren't graph geeks and avoid any confusion with the -nodes in an {es} cluster. - -The beauty of Graph is that it works out of the box with existing {es} indices and doesn't -require you to store any additional data. How? The vertices are simply the terms that you've -already indexed. The connections are derived on the fly using {es} aggregations. What's -more, Graph is able to identify the most _meaningful_ connections by taking advantage of {es} -relevance scoring. The same data structures and relevance ranking tools built into {es} to -support text searches enable the Graph API to separate useful signals from the noise that is typical -of most connected data. - -This foundation lets you easily answer questions like: - -* What are the shared behaviors of people trying to hack my website? -* If users bought this type of gardening gloves, what other products might they be interested in? -* Which people on Stack Overflow have expertise in both Hadoop-related technologies and Python-related tech? - -But what about performance, you ask? The {es} aggregation framework enables Graph to quickly -summarize millions of documents as a single super-connection. Instead of retrieving every banking transaction -between accounts A and B, Graph can derive a single connection that represents that relationship. And, of course, -this summarization process works across multi-node clusters and scales with your {es} deployment. -Advanced options let you control how Graph samples and summarizes the data. You can also set timeouts to -prevent Graph queries from adversely affecting the cluster. - -[[exploring-connections]] -[float] -==== Visualizing connections with Graph - -The Graph plugin for {kib} lets you interactively explore connections within your data. This -is a great way to get acquainted with what the Graph API has to offer. - -When you open the Graph app, getting started is as easy as 1, 2, 3: - -. Select an index. -. Select a multi-value field that contains the terms you want to graph. (The vertices -in the graph will be selected from these terms.) -. Enter a search query to discover relationships between terms in the selected field. - -For example, we indexed user data from Last.fm that contains the top artists played by each -user. To use the Graph UI to find artists we might like, we can select the Last.fm index, select the field that contains the raw artist information, and search for an artist we like: - -image::user/graph/images/graph-init-screen.jpg["Getting started with graph"] - - -The weight of the connection between two vertices indicates how strongly they are related. -You can click any connection to view more information about the relationship: - -image::user/graph/images/graph-link-summary.jpg["Link summary"] - -Once you have your initial graph, you can use the toolbar buttons to explore additional connections. Click the Expand button image:user/graph/images/graph-expand-button.jpg[Expand Selection] to display additional vertices that connect to your graph. Click the Link button image:user/graph/images/graph-link-button.jpg[Add links to existing terms] to display additional connections between the displayed vertices. To explore a particular area of the graph, select the vertices you are interested in and click the Expand or Link button. To step back through your changes to the graph, click the Undo button image:user/graph/images/graph-undo-button.jpg[Undo]. - -To see more relationships within your data, you can submit additional queries. - -image::user/graph/images/graph-add-query.jpg["Adding networks"] - -NOTE: By default, when you submit a search query Graph searches all available fields. You can constrain your search to a particular field using the Lucene query syntax. For example, -`country: ireland`. - - -[float] -=== Where to go next - -<<graph-getting-started, Getting Started>> :: Install the Graph plugin and Kibana app to start -exploring relationships in your data. - -[float] -=== Have comments, questions, or feedback? - -Head over to our {forum}[Graph Discussion Forum] to share your experience, questions, and -suggestions. diff --git a/docs/user/graph/limitations.asciidoc b/docs/user/graph/limitations.asciidoc deleted file mode 100644 index e96910bd27b4..000000000000 --- a/docs/user/graph/limitations.asciidoc +++ /dev/null @@ -1,27 +0,0 @@ -[role="xpack"] -[[graph-limitations]] -== Graph limitations -++++ -<titleabbrev>Limitations</titleabbrev> -++++ - -[discrete] -=== Limited support for multiple indices -The graph API can explore multiple indices, types, or aliases in a -single API request, but the assumption is that each "hop" it performs -is querying the same set of indices. Currently, it is not possible to -take a term found in a field from one index and use that value to explore -connections in _a different field_ held in another type or index. - -A good example of where this might be useful is if an IP address is -found in the `remote_host` field of an index called "weblogs20160101", -you might want to follow that up by looking for the same address in -the `ip_address` field of an index called "knownthreats". - -Supporting this behaviour would require extra mappings to indicate that -the weblogs' `remote_host` field contained values that had currency and -meaning in the `ip_address` field of the threats index. - -Since we do not currently support this translation, you would have to -perform multiple calls to take the values from the weblogs index -response and build them into a separate request to the threats index. diff --git a/docs/user/graph/troubleshooting.asciidoc b/docs/user/graph/troubleshooting.asciidoc deleted file mode 100644 index 3819d99036f9..000000000000 --- a/docs/user/graph/troubleshooting.asciidoc +++ /dev/null @@ -1,59 +0,0 @@ -[role="xpack"] -[[graph-troubleshooting]] -== Graph troubleshooting -++++ -<titleabbrev>Troubleshoot</titleabbrev> -++++ - -[discrete] -=== Why are results missing? - -The default settings in Graph API requests are configured to tune out noisy -results by using the following strategies: - -* Only looking at samples of the most-relevant documents for a query -* Only considering terms that have a significant statistical correlation with -the sample -* Only considering terms to be paired that have at least 3 documents asserting -that connection - -These are useful defaults for getting the "big picture" signals from noisy data, -but they can miss details from individual documents. If you need to perform a -detailed forensic analysis, you can adjust the following settings to ensure a -graph exploration produces all of the relevant data: - -* Increase the `sample_size` to a larger number of documents to analyse more -data on each shard. -* Set the `use_significance` setting to `false` to retrieve terms regardless -of any statistical correlation with the sample. -* Set the `min_doc_count` for your vertices to 1 to ensure only one document is -required to assert a relationship. - -[discrete] -=== What can I do to to improve performance? - -With the default setting of `use_significance` set to `true`, the Graph API -performs a background frequency check of the terms it discovers as part of -exploration. Each unique term has to have its frequency looked up in the index, -which costs at least one disk seek. Disk seeks are expensive. If you don't need -to perform this noise-filtering, setting `use_significance` to `false` -eliminates all of these expensive checks (at the expense of not performing any -quality-filtering on the terms). - -If your data is noisy and you need to filter based on significance, you can -reduce the number of frequency checks by: - -* Reducing the `sample_size`. Considering fewer documents can actually be better -when the quality of matches is quite variable. -* Avoiding noisy documents that have a large number of terms. You can do this by -either allowing ranking to naturally favor shorter documents in the top-results -sample (see {ref}/norms.html[enabling norms]) or by explicitly excluding -large documents with your seed and guiding queries. -* Increasing the frequency threshold. Many many terms occur very infrequently -so even increasing the frequency threshold by one can massively reduce the -number of candidate terms whose background frequencies are checked. - -Keep in mind that all of these options reduce the scope of information analysed -and can increase the potential to miss what could be interesting details. However, -the information that's lost tends to be associated with lower-quality documents -with lower-frequency terms, which can be an acceptable trade-off. diff --git a/docs/user/images/alerts-and-actions.png b/docs/user/images/alerts-and-actions.png deleted file mode 100755 index d851a3d972aa..000000000000 Binary files a/docs/user/images/alerts-and-actions.png and /dev/null differ diff --git a/docs/user/images/copy-import-objects.png b/docs/user/images/copy-import-objects.png deleted file mode 100755 index c933c91d45e3..000000000000 Binary files a/docs/user/images/copy-import-objects.png and /dev/null differ diff --git a/docs/user/images/data-frame-analytics.png b/docs/user/images/data-frame-analytics.png deleted file mode 100755 index 32f168f6e10d..000000000000 Binary files a/docs/user/images/data-frame-analytics.png and /dev/null differ diff --git a/docs/user/images/drilldown-to-url.png b/docs/user/images/drilldown-to-url.png deleted file mode 100644 index da167e0d39cc..000000000000 Binary files a/docs/user/images/drilldown-to-url.png and /dev/null differ diff --git a/docs/user/images/edit-connector.png b/docs/user/images/edit-connector.png deleted file mode 100755 index 321a5e56a1d0..000000000000 Binary files a/docs/user/images/edit-connector.png and /dev/null differ diff --git a/docs/user/images/feature-importance.png b/docs/user/images/feature-importance.png deleted file mode 100755 index fc695af78a9a..000000000000 Binary files a/docs/user/images/feature-importance.png and /dev/null differ diff --git a/docs/user/images/kibana-privileges.png b/docs/user/images/kibana-privileges.png deleted file mode 100755 index 0268f091282d..000000000000 Binary files a/docs/user/images/kibana-privileges.png and /dev/null differ diff --git a/docs/user/images/lens-whats-new.png b/docs/user/images/lens-whats-new.png deleted file mode 100755 index c1a13d4aed89..000000000000 Binary files a/docs/user/images/lens-whats-new.png and /dev/null differ diff --git a/docs/user/index.asciidoc b/docs/user/index.asciidoc index afbd8cb5a166..7d75aafaa757 100644 --- a/docs/user/index.asciidoc +++ b/docs/user/index.asciidoc @@ -11,38 +11,22 @@ include::monitoring/monitoring-metricbeat.asciidoc[leveloffset=+2] include::monitoring/viewing-metrics.asciidoc[leveloffset=+2] include::monitoring/monitoring-kibana.asciidoc[leveloffset=+2] -include::security/securing-kibana.asciidoc[] - include::discover.asciidoc[] include::dashboard/dashboard.asciidoc[] -include::canvas.asciidoc[] - include::{kib-repo-dir}/maps/index.asciidoc[] include::ml/index.asciidoc[] include::graph/index.asciidoc[] -include::{kib-repo-dir}/observability/index.asciidoc[] - -include::{kib-repo-dir}/apm/index.asciidoc[] - -include::{kib-repo-dir}/siem/index.asciidoc[] - include::dev-tools.asciidoc[] include::monitoring/index.asciidoc[] include::management.asciidoc[] -include::{kib-repo-dir}/fleet/fleet.asciidoc[] - -include::reporting/index.asciidoc[] - -include::alerting/index.asciidoc[] - include::api.asciidoc[] include::plugins.asciidoc[] diff --git a/docs/user/ml/images/ml-annotations-list.png b/docs/user/ml/images/ml-annotations-list.png deleted file mode 100644 index f1a0b6624112..000000000000 Binary files a/docs/user/ml/images/ml-annotations-list.png and /dev/null differ diff --git a/docs/user/ml/images/ml-data-visualizer-sample.jpg b/docs/user/ml/images/ml-data-visualizer-sample.jpg deleted file mode 100644 index ce2bb660d7da..000000000000 Binary files a/docs/user/ml/images/ml-data-visualizer-sample.jpg and /dev/null differ diff --git a/docs/user/ml/images/ml-job-management.png b/docs/user/ml/images/ml-job-management.png deleted file mode 100644 index 4589c7093a7c..000000000000 Binary files a/docs/user/ml/images/ml-job-management.png and /dev/null differ diff --git a/docs/user/ml/images/ml-settings.png b/docs/user/ml/images/ml-settings.png deleted file mode 100644 index f5c9fca64738..000000000000 Binary files a/docs/user/ml/images/ml-settings.png and /dev/null differ diff --git a/docs/user/ml/images/ml-single-metric-viewer.png b/docs/user/ml/images/ml-single-metric-viewer.png deleted file mode 100644 index 04c21d9bc533..000000000000 Binary files a/docs/user/ml/images/ml-single-metric-viewer.png and /dev/null differ diff --git a/docs/user/ml/images/outliers.png b/docs/user/ml/images/outliers.png deleted file mode 100644 index 874ebbc79201..000000000000 Binary files a/docs/user/ml/images/outliers.png and /dev/null differ diff --git a/docs/user/ml/index.asciidoc b/docs/user/ml/index.asciidoc deleted file mode 100644 index fa15e0652e2a..000000000000 --- a/docs/user/ml/index.asciidoc +++ /dev/null @@ -1,102 +0,0 @@ -[role="xpack"] -[[xpack-ml]] -= {ml-cap} - -[partintro] --- -As data sets increase in size and complexity, the human effort required to -inspect dashboards or maintain rules for spotting infrastructure problems, -cyber attacks, or business issues becomes impractical. Elastic {ml-features} -such as {anomaly-detect} and {oldetection} make it easier to notice suspicious -activities with minimal human interference. - -{kib} includes a free *{data-viz}* to learn more about your data. In particular, -if your data is stored in {es} and contains a time field, you can use the -*{data-viz}* to identify possible fields for {anomaly-detect}: - -[role="screenshot"] -image::user/ml/images/ml-data-visualizer-sample.jpg[{data-viz} for sample flight data] - -experimental[] You can also upload a CSV, NDJSON, or log file. The *{data-viz}* -identifies the file format and field mappings. You can then optionally import -that data into an {es} index. To change the default file size limit, see -<<kibana-ml-settings,Machine learning advanced settings>>. - -If {stack-security-features} are enabled, users must have the necessary -privileges to use {ml-features}. Refer to -{ml-docs}/setup.html#setup-privileges[Set up {ml-features}]. - -NOTE: There are limitations in {ml-features} that affect {kib}. For more information, refer to {ml-docs}/ml-limitations.html[Machine learning]. - --- - -[[xpack-ml-anomalies]] -== {anomaly-detect-cap} - -The Elastic {ml} {anomaly-detect} feature automatically models the normal -behavior of your time series data — learning trends, periodicity, and more — in -real time to identify anomalies, streamline root cause analysis, and reduce -false positives. {anomaly-detect-cap} runs in and scales with {es}, and -includes an intuitive UI on the {kib} *Machine Learning* page for creating -{anomaly-jobs} and understanding results. - -If you have a license that includes the {ml-features}, you can -create {anomaly-jobs} and manage jobs and {dfeeds} from the *Job Management* -pane: - -[role="screenshot"] -image::user/ml/images/ml-job-management.png[Job Management] - -You can use the *Settings* pane to create and edit -{ml-docs}/ml-calendars.html[calendars] and the filters that are used in -{ml-docs}/ml-rules.html[custom rules]: - -[role="screenshot"] -image::user/ml/images/ml-settings.png[Calendar Management] - -The *Anomaly Explorer* and *Single Metric Viewer* display the results of your -{anomaly-jobs}. For example: - -[role="screenshot"] -image::user/ml/images/ml-single-metric-viewer.png[Single Metric Viewer] - -You can optionally add annotations by drag-selecting a period of time in -the *Single Metric Viewer* and adding a description. For example, you can add an -explanation for anomalies in that time period or provide notes about what is -occurring in your operational environment at that time: - -[role="screenshot"] -image::user/ml/images/ml-annotations-list.png[Single Metric Viewer with annotations] - -In some circumstances, annotations are also added automatically. For example, if -the {anomaly-job} detects that there is missing data, it annotates the affected -time period. For more information, see -{ml-docs}/ml-delayed-data-detection.html[Handling delayed data]. The -*Job Management* pane shows the full list of annotations for each job. - -NOTE: The {kib} {ml-features} use pop-ups. You must configure your web -browser so that it does not block pop-up windows or create an exception for your -{kib} URL. - -For more information about the {anomaly-detect} feature, see -https://www.elastic.co/what-is/elastic-stack-machine-learning[{ml-cap} in the {stack}] -and {ml-docs}/xpack-ml.html[{ml-cap} {anomaly-detect}]. - -[[xpack-ml-dfanalytics]] -== {dfanalytics-cap} - -experimental[] - -The Elastic {ml} {dfanalytics} feature enables you to analyze your data using -{classification}, {oldetection}, and {regression} algorithms and generate new -indices that contain the results alongside your source data. - -If you have a license that includes the {ml-features}, you can create -{dfanalytics-jobs} and view their results on the *Data Frame Analytics* page in -{kib}. For example: - -[role="screenshot"] -image::user/ml/images/outliers.png[{oldetection-cap} results in {kib}] - -For more information about the {dfanalytics} feature, see -{ml-docs}/ml-dfanalytics.html[{ml-cap} {dfanalytics}]. \ No newline at end of file diff --git a/docs/user/monitoring/beats-details.asciidoc b/docs/user/monitoring/beats-details.asciidoc deleted file mode 100644 index dbd9aecd0476..000000000000 --- a/docs/user/monitoring/beats-details.asciidoc +++ /dev/null @@ -1,30 +0,0 @@ -[role="xpack"] -[[beats-page]] -= Beats Monitoring Metrics -++++ -<titleabbrev>Beats Metrics</titleabbrev> -++++ - -If you are monitoring Beats, the *Stack Monitoring* page in {kib} contains a -panel for Beats in the cluster overview. - -[role="screenshot"] -image::user/monitoring/images/monitoring-beats.jpg["Monitoring Beats",link="user/monitoring/images/monitoring-beats.jpg"] - -To view an overview of the Beats data in the cluster, click *Overview*. The -overview page has a section for activity in the last day, which is a real-time -sample of data. The summary bar and charts follow the typical paradigm -of data in the Monitoring UI, which is bound to the span of the time filter. -This overview page can therefore show -up-to-date or historical information. - -To view a listing of the individual Beat instances in the cluster, click *Beats*. -The table listing shows each Beat instance that reports data to the monitoring -cluster. All columns are sortable. Clicking a Beat name takes you to the detail -page. For example: - -[role="screenshot"] -image::user/monitoring/images/monitoring-beats-detail.jpg["Monitoring details for Filebeat",link="user/monitoring/images/monitoring-beats-detail.jpg"] - -The detail page contains a summary bar and charts. There are more charts on this -page than the overview page and they are specific to a single Beat instance. diff --git a/docs/user/monitoring/cluster-alerts.asciidoc b/docs/user/monitoring/cluster-alerts.asciidoc deleted file mode 100644 index 98d14de226bd..000000000000 --- a/docs/user/monitoring/cluster-alerts.asciidoc +++ /dev/null @@ -1,64 +0,0 @@ -[role="xpack"] -[[cluster-alerts]] -= Cluster Alerts - -The *Stack Monitoring > Clusters* page in {kib} summarizes the status of your -{stack}. You can drill down into the metrics to view more information about your -cluster and specific nodes, instances, and indices. - -The Top Cluster Alerts shown on the Clusters page notify you of -conditions that require your attention: - -* {es} Cluster Health Status is Yellow (missing at least one replica) -or Red (missing at least one primary). -* {es} Version Mismatch. You have {es} nodes with -different versions in the same cluster. -* {kib} Version Mismatch. You have {kib} instances with different -versions running against the same {es} cluster. -* Logstash Version Mismatch. You have Logstash nodes with different -versions reporting stats to the same monitoring cluster. -* {es} Nodes Changed. You have {es} nodes that were recently added or removed. -* {es} License Expiration. The cluster's license is about to expire. -+ --- -If you do not preserve the data directory when upgrading a {kib} or -Logstash node, the instance is assigned a new persistent UUID and shows up -as a new instance --- -* {xpack} License Expiration. When the {xpack} license expiration date -approaches, you will get notifications with a severity level relative to how -soon the expiration date is: - ** 60 days: Informational alert - ** 30 days: Low-level alert - ** 15 days: Medium-level alert - ** 7 days: Severe-level alert -+ -The 60-day and 30-day thresholds are skipped for Trial licenses, which are only -valid for 30 days. - -The {monitor-features} check the cluster alert conditions every minute. Cluster -alerts are automatically dismissed when the condition is resolved. - -NOTE: {watcher} must be enabled to view cluster alerts. If you have a Basic -license, Top Cluster Alerts are not displayed. - -[float] -[[cluster-alert-email-notifications]] -== Email Notifications -To receive email notifications for the Cluster Alerts: - -1. Configure an email account as described in -{ref}/actions-email.html#configuring-email[Configuring email accounts]. -2. Configure the -`monitoring.cluster_alerts.email_notifications.email_address` setting in -`kibana.yml` with your email address. -+ --- -TIP: If you have separate production and monitoring clusters and separate {kib} -instances for those clusters, you must put the -`monitoring.cluster_alerts.email_notifications.email_address` setting in -the {kib} instance that is associated with the production cluster. - --- - -Email notifications are sent only when Cluster Alerts are triggered and resolved. diff --git a/docs/user/monitoring/configuring-monitoring.asciidoc b/docs/user/monitoring/configuring-monitoring.asciidoc deleted file mode 100644 index f158dcc3eee6..000000000000 --- a/docs/user/monitoring/configuring-monitoring.asciidoc +++ /dev/null @@ -1,18 +0,0 @@ -[role="xpack"] -[[configuring-monitoring]] -= Configure monitoring in {kib} -++++ -<titleabbrev>Configure monitoring</titleabbrev> -++++ - -If you enable the {monitor-features} in your cluster, there are two methods to -collect metrics about {kib}: - -* <<monitoring-metricbeat,{metricbeat} collection methods>> -* <<monitoring-kibana,Legacy collection methods>> - -You can also use {kib} to -<<monitoring-data,visualize monitoring data from across the {stack}>>. - -To learn about monitoring in general, see -{ref}/monitor-elasticsearch-cluster.html[Monitor a cluster]. diff --git a/docs/user/monitoring/elasticsearch-details.asciidoc b/docs/user/monitoring/elasticsearch-details.asciidoc deleted file mode 100644 index 11a561e7ad01..000000000000 --- a/docs/user/monitoring/elasticsearch-details.asciidoc +++ /dev/null @@ -1,167 +0,0 @@ -[role="xpack"] -[[elasticsearch-metrics]] -= {es} Monitoring Metrics -[subs="attributes"] -++++ -<titleabbrev>{es} Metrics</titleabbrev> -++++ - -You can drill down into the status of your {es} cluster in {kib} by clicking -the <<cluster-overview-page, Overview>>, <<nodes-page, Nodes>>, -<<indices-overview-page, Indices>> and <<logs-monitor-page,Logs>> links on the -*Stack Monitoring* page. - -[role="screenshot"] -image::user/monitoring/images/monitoring-elasticsearch.png["Monitoring clusters"] - -See also {ref}/monitor-elasticsearch-cluster.html[Monitor a cluster]. - -[float] -[[cluster-overview-page]] -== Cluster Overview - -To view the key metrics that indicate the overall health of an {es} cluster, -click **Overview** in the {es} section. Anything that needs your attention is -highlighted in yellow or red. - -TIP: Conditions that require your attention are listed at the top of the -Clusters page. You can also set up watches to alert you when the status -of your cluster changes. To learn how, see -{ref}/watch-cluster-status.html[Watching the status of an {es} cluster]. - -The panel at the top shows the current cluster statistics, the charts show the -search and indexing performance over time, and the table at the bottom shows -information about any shards that are being recovered. If you use {filebeat} to -collect log data from this cluster, you can also see its recent logs. - -[role="screenshot"] -image::user/monitoring/images/monitoring-overview.png["Elasticsearch Cluster Overview"] - -TIP: Not sure what a chart is showing? Click the info button for a description -of the metrics. - -From there, you can dive into detailed metrics for particular nodes and indices. - -[float] -[[nodes-page]] -== Nodes - -To view node metrics, click **Nodes**. The Nodes section shows the status -of each node in your cluster. - -[role="screenshot"] -image::user/monitoring/images/monitoring-nodes.png["Elasticsearch Nodes"] - -[float] -[[nodes-page-overview]] -=== Node Overview - -Click the name of a node to view its node statistics over time. These represent -high-level statistics collected from {es} that provide a good overview of -health. If you use {filebeat} to collect log data from this node, you can also -see its recent logs. - -[role="screenshot"] -image::user/monitoring/images/monitoring-node.png["Elasticsearch Node Overview"] - -[float] -[[nodes-page-advanced]] -=== Node Advanced - -To view advanced node metrics, click the **Advanced** tab for a node. The -*Advanced* tab shows additional metrics, such as memory and garbage collection -statistics reported by the selected {es} node. - -[role="screenshot"] -image::user/monitoring/images/monitoring-node-advanced.png["Elasticsearch Node Advanced"] - -You can use the advanced node view to diagnose issues that generally involve -more advanced knowledge of {es}, such as poor garbage collection performance. - - -[float] -[[indices-overview-page]] -== Indices - -To view index metrics, click **Indices**. The Indices section shows the same -overall index and search metrics as the Overview and a table of your indices. - -[role="screenshot"] -image::user/monitoring/images/monitoring-indices.png["Elasticsearch Indices"] - -[float] -[[indices-page-overview]] -=== Index Overview - -From the Indices listing, you can view data for a particular index. To drill -down into the data for a particular index, click its name in the Indices table. - -[role="screenshot"] -image::user/monitoring/images/monitoring-index.png["Elasticsearch Index Overview"] - -[float] -[[indices-page-advanced]] -=== Index Advanced - -To view advanced index metrics, click the **Advanced** tab for an index. The -*Advanced* tab shows additional metrics, such as memory statistics reported -about the {es} index. If the index has more than one shard, then its shards -might live on more than one node. - -[role="screenshot"] -image::user/monitoring/images/monitoring-index-advanced.png["Elasticsearch Index Advanced"] - -The Advanced index view can be used to diagnose issues that generally involve -more advanced knowledge of {es}, such as wasteful index memory usage. - -[float] -[[jobs-page]] -== Jobs - -To view {ml} job metrics, click **Jobs**. For each job in your cluster, it shows -information such as its status, the number of records processed, the size of the -model, the number of forecasts, and the node that runs the job. - -[role="screenshot"] -image::user/monitoring/images/monitoring-jobs.png["Machine learning jobs",link="images/monitoring-jobs.png"] - -[float] -[[ccr-overview-page]] -== CCR - -To view {ccr} metrics, click **CCR**. For each follower index on the cluster, it -shows information such as the leader index, an indication of how much the -follower index is lagging behind the leader index, the last fetch time, the -number of operations synced, and error messages. If you select a follower index, -you can view the same information for each shard. For example: - -[role="screenshot"] -image::user/monitoring/images/monitoring-ccr.png["Cross-cluster replication",link="images/monitoring-ccr.png"] - -If you select a shard, you can see graphs for the fetch and operation delays. -You can also see advanced information, which contains the results from the -{ref}/ccr-get-follow-stats.html[get follower stats API]. For example: - -[role="screenshot"] -image::user/monitoring/images/monitoring-ccr-shard.png["Cross-cluster replication shard details",link="images/monitoring-ccr-shard.png"] - -For more information, see {ref}/xpack-ccr.html[{ccr-cap}]. - -[float] -[[logs-monitor-page]] -== Logs - -If you use {filebeat} to collect log data from your cluster, you can see its -recent logs in the *Stack Monitoring* application. The *Clusters* page lists the -number of informational, debug, and warning messages in the server and -deprecation logs. - -If you click *Logs*, you can see the most recent logs for the cluster. For -example: - -[role="screenshot"] -image::user/monitoring/images/monitoring-elasticsearch-logs.png["Recent {es} logs"] - -TIP: By default, up to 10 log entries are shown. You can show up to 50 log -entries by changing the -<<monitoring-ui-settings,`monitoring.ui.elasticsearch.logFetchCount` setting>>. diff --git a/docs/user/monitoring/images/metricbeat.png b/docs/user/monitoring/images/metricbeat.png deleted file mode 100644 index 17b9516e91b8..000000000000 Binary files a/docs/user/monitoring/images/metricbeat.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-architecture.png b/docs/user/monitoring/images/monitoring-architecture.png deleted file mode 100644 index c87b18cca3bd..000000000000 Binary files a/docs/user/monitoring/images/monitoring-architecture.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-beats-detail.jpg b/docs/user/monitoring/images/monitoring-beats-detail.jpg deleted file mode 100644 index 86a26558b9e6..000000000000 Binary files a/docs/user/monitoring/images/monitoring-beats-detail.jpg and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-beats.jpg b/docs/user/monitoring/images/monitoring-beats.jpg deleted file mode 100644 index fa86f2bd0ff3..000000000000 Binary files a/docs/user/monitoring/images/monitoring-beats.jpg and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-ccr-shard.png b/docs/user/monitoring/images/monitoring-ccr-shard.png deleted file mode 100644 index 88d3a02ee6f8..000000000000 Binary files a/docs/user/monitoring/images/monitoring-ccr-shard.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-ccr.png b/docs/user/monitoring/images/monitoring-ccr.png deleted file mode 100644 index d76f2e7bd791..000000000000 Binary files a/docs/user/monitoring/images/monitoring-ccr.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-elasticsearch-logs.png b/docs/user/monitoring/images/monitoring-elasticsearch-logs.png deleted file mode 100644 index e0050762b3db..000000000000 Binary files a/docs/user/monitoring/images/monitoring-elasticsearch-logs.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-elasticsearch.png b/docs/user/monitoring/images/monitoring-elasticsearch.png deleted file mode 100644 index a33ecb00964d..000000000000 Binary files a/docs/user/monitoring/images/monitoring-elasticsearch.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-es-cgroup-true.png b/docs/user/monitoring/images/monitoring-es-cgroup-true.png deleted file mode 100644 index c8412642db55..000000000000 Binary files a/docs/user/monitoring/images/monitoring-es-cgroup-true.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-index-advanced.png b/docs/user/monitoring/images/monitoring-index-advanced.png deleted file mode 100644 index 825692add214..000000000000 Binary files a/docs/user/monitoring/images/monitoring-index-advanced.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-index.png b/docs/user/monitoring/images/monitoring-index.png deleted file mode 100644 index f859bd10d0fd..000000000000 Binary files a/docs/user/monitoring/images/monitoring-index.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-indices.png b/docs/user/monitoring/images/monitoring-indices.png deleted file mode 100644 index 42b523609678..000000000000 Binary files a/docs/user/monitoring/images/monitoring-indices.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-jobs.png b/docs/user/monitoring/images/monitoring-jobs.png deleted file mode 100644 index 6d830bd1d338..000000000000 Binary files a/docs/user/monitoring/images/monitoring-jobs.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-kibana-alerts.png b/docs/user/monitoring/images/monitoring-kibana-alerts.png deleted file mode 100644 index 43edcb450414..000000000000 Binary files a/docs/user/monitoring/images/monitoring-kibana-alerts.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-kibana-instance.png b/docs/user/monitoring/images/monitoring-kibana-instance.png deleted file mode 100644 index bd04c4000329..000000000000 Binary files a/docs/user/monitoring/images/monitoring-kibana-instance.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-kibana-instances.png b/docs/user/monitoring/images/monitoring-kibana-instances.png deleted file mode 100644 index 577fdfa3c9a4..000000000000 Binary files a/docs/user/monitoring/images/monitoring-kibana-instances.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-kibana-overview.png b/docs/user/monitoring/images/monitoring-kibana-overview.png deleted file mode 100644 index d183ea7f0577..000000000000 Binary files a/docs/user/monitoring/images/monitoring-kibana-overview.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-logstash-node.png b/docs/user/monitoring/images/monitoring-logstash-node.png deleted file mode 100644 index 72fd25cd19dc..000000000000 Binary files a/docs/user/monitoring/images/monitoring-logstash-node.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-logstash-nodes.png b/docs/user/monitoring/images/monitoring-logstash-nodes.png deleted file mode 100644 index 185e6909fa70..000000000000 Binary files a/docs/user/monitoring/images/monitoring-logstash-nodes.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-logstash-overview.png b/docs/user/monitoring/images/monitoring-logstash-overview.png deleted file mode 100644 index 36636aaaaba5..000000000000 Binary files a/docs/user/monitoring/images/monitoring-logstash-overview.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-multicluster.jpg b/docs/user/monitoring/images/monitoring-multicluster.jpg deleted file mode 100644 index 8b586d1a5e07..000000000000 Binary files a/docs/user/monitoring/images/monitoring-multicluster.jpg and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-node-advanced.png b/docs/user/monitoring/images/monitoring-node-advanced.png deleted file mode 100644 index 754a5be6e483..000000000000 Binary files a/docs/user/monitoring/images/monitoring-node-advanced.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-node.png b/docs/user/monitoring/images/monitoring-node.png deleted file mode 100644 index 176cf5437fb8..000000000000 Binary files a/docs/user/monitoring/images/monitoring-node.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-nodes.png b/docs/user/monitoring/images/monitoring-nodes.png deleted file mode 100644 index 9183a7be6ea1..000000000000 Binary files a/docs/user/monitoring/images/monitoring-nodes.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-overview-shards.jpg b/docs/user/monitoring/images/monitoring-overview-shards.jpg deleted file mode 100644 index c7cf78a7e3da..000000000000 Binary files a/docs/user/monitoring/images/monitoring-overview-shards.jpg and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring-overview.png b/docs/user/monitoring/images/monitoring-overview.png deleted file mode 100644 index 6ffb816afd89..000000000000 Binary files a/docs/user/monitoring/images/monitoring-overview.png and /dev/null differ diff --git a/docs/user/monitoring/images/monitoring.jpg b/docs/user/monitoring/images/monitoring.jpg deleted file mode 100644 index 991dfa3f7b54..000000000000 Binary files a/docs/user/monitoring/images/monitoring.jpg and /dev/null differ diff --git a/docs/user/monitoring/images/sense.png b/docs/user/monitoring/images/sense.png deleted file mode 100644 index 2ceb2c6518c7..000000000000 Binary files a/docs/user/monitoring/images/sense.png and /dev/null differ diff --git a/docs/user/monitoring/images/sense_thumb.png b/docs/user/monitoring/images/sense_thumb.png deleted file mode 100644 index 3db886a4badd..000000000000 Binary files a/docs/user/monitoring/images/sense_thumb.png and /dev/null differ diff --git a/docs/user/monitoring/index.asciidoc b/docs/user/monitoring/index.asciidoc deleted file mode 100644 index 514988792d21..000000000000 --- a/docs/user/monitoring/index.asciidoc +++ /dev/null @@ -1,8 +0,0 @@ -include::xpack-monitoring.asciidoc[] -include::beats-details.asciidoc[leveloffset=+1] -include::cluster-alerts.asciidoc[leveloffset=+1] -include::elasticsearch-details.asciidoc[leveloffset=+1] -include::kibana-alerts.asciidoc[leveloffset=+1] -include::kibana-details.asciidoc[leveloffset=+1] -include::logstash-details.asciidoc[leveloffset=+1] -include::monitoring-troubleshooting.asciidoc[leveloffset=+1] diff --git a/docs/user/monitoring/kibana-alerts.asciidoc b/docs/user/monitoring/kibana-alerts.asciidoc deleted file mode 100644 index 300497126c3e..000000000000 --- a/docs/user/monitoring/kibana-alerts.asciidoc +++ /dev/null @@ -1,63 +0,0 @@ -[role="xpack"] -[[kibana-alerts]] -= {kib} Alerts - -The {stack} {monitor-features} provide -<<alerting-getting-started,{kib} alerts>> out-of-the box to notify you of -potential issues in the {stack}. These alerts are preconfigured based on the -best practices recommended by Elastic. However, you can tailor them to meet your -specific needs. - -When you open *{stack-monitor-app}*, the preconfigured {kib} alerts are -created automatically. If you collect monitoring data from multiple clusters, -these alerts can search, detect, and notify on various conditions across the -clusters. The alerts are visible alongside your existing {watcher} cluster -alerts. You can view details about the alerts that are active and view health -and performance data for {es}, {ls}, and Beats in real time, as well as -analyze past performance. You can also modify active alerts. - -[role="screenshot"] -image::user/monitoring/images/monitoring-kibana-alerts.png["Kibana alerts in the Stack Monitoring app"] - -To review and modify all the available alerts, use -<<managing-alerts-and-actions,*{alerts-ui}*>> in *{stack-manage-app}*. - -[discrete] -[[kibana-alerts-cpu-threshold]] -== CPU threshold - -This alert is triggered when a node runs a consistently high CPU load. By -default, the trigger condition is set at 85% or more averaged over the last 5 -minutes. The alert is grouped across all the nodes of the cluster by running -checks on a schedule time of 1 minute with a re-notify internal of 1 day. - -[discrete] -[[kibana-alerts-disk-usage-threshold]] -== Disk usage threshold - -This alert is triggered when a node is nearly at disk capacity. By -default, the trigger condition is set at 80% or more averaged over the last 5 -minutes. The alert is grouped across all the nodes of the cluster by running -checks on a schedule time of 1 minute with a re-notify internal of 1 day. - -[discrete] -[[kibana-alerts-jvm-memory-threshold]] -== JVM memory threshold - -This alert is triggered when a node runs a consistently high JVM memory usage. By -default, the trigger condition is set at 85% or more averaged over the last 5 -minutes. The alert is grouped across all the nodes of the cluster by running -checks on a schedule time of 1 minute with a re-notify internal of 1 day. - -[discrete] -[[kibana-alerts-missing-monitoring-data]] -== Missing monitoring data - -This alert is triggered when any stack products nodes or instances stop sending -monitoring data. By default, the trigger condition is set to missing for 15 minutes -looking back 1 day. The alert is grouped across all the nodes of the cluster by running -checks on a schedule time of 1 minute with a re-notify internal of 6 hours. - -NOTE: Some action types are subscription features, while others are free. -For a comparison of the Elastic subscription levels, see the alerting section of -the {subscriptions}[Subscriptions page]. diff --git a/docs/user/monitoring/kibana-details.asciidoc b/docs/user/monitoring/kibana-details.asciidoc deleted file mode 100644 index a5466f1418ae..000000000000 --- a/docs/user/monitoring/kibana-details.asciidoc +++ /dev/null @@ -1,24 +0,0 @@ -[role="xpack"] -[[kibana-page]] -= {kib} Monitoring Metrics -[subs="attributes"] -++++ -<titleabbrev>{kib} Metrics</titleabbrev> -++++ - -To view the key metrics that indicate the overall health of {kib} itself, -click **Overview** in the {kib} section of the *Stack Monitoring* page. - -[role="screenshot"] -image::user/monitoring/images/monitoring-kibana-overview.png["Kibana Overview"] - -To view {kib} instance metrics, click **Instances**. The Instances section -shows the status of each {kib} instance. - -[role="screenshot"] -image::user/monitoring/images/monitoring-kibana-instances.png["Kibana Instances"] - -Click the name of an instance to view its instance statistics over time. - -[role="screenshot"] -image::user/monitoring/images/monitoring-kibana-instance.png["Kibana Instance View"] diff --git a/docs/user/monitoring/logstash-details.asciidoc b/docs/user/monitoring/logstash-details.asciidoc deleted file mode 100644 index 9d7e3ce342e1..000000000000 --- a/docs/user/monitoring/logstash-details.asciidoc +++ /dev/null @@ -1,27 +0,0 @@ -[role="xpack"] -[[logstash-page]] -= Logstash Monitoring Metrics -++++ -<titleabbrev>Logstash Metrics</titleabbrev> -++++ - -If you are monitoring Logstash nodes, click **Overview** in the Logstash section -of the *Stack Monitoring* page in {kib}. You can view the overall health of the -Logstash nodes. - -[role="screenshot"] -image::user/monitoring/images/monitoring-logstash-overview.png["Logstash Overview",link="images/monitoring-logstash-overview.png"] - -To view Logstash node metrics, click **Nodes**. The Nodes section shows the -status of each Logstash node. - -[role="screenshot"] -image::user/monitoring/images/monitoring-logstash-nodes.png["Logstash Nodes",link="images/monitoring-logstash-nodes.png"] - -Click the name of a node to view its statistics over time. - -[role="screenshot"] -image::user/monitoring/images/monitoring-logstash-node.png["Logstash Node View",link="images/monitoring-logstash-node.png"] - -For more information, see -{logstash-ref}/monitoring-logstash.html[Monitoring Logstash]. diff --git a/docs/user/monitoring/monitoring-kibana.asciidoc b/docs/user/monitoring/monitoring-kibana.asciidoc deleted file mode 100644 index 047fcc08775e..000000000000 --- a/docs/user/monitoring/monitoring-kibana.asciidoc +++ /dev/null @@ -1,112 +0,0 @@ -[role="xpack"] -[[monitoring-kibana]] -= Collect monitoring data using legacy collectors -++++ -<titleabbrev>Legacy collection methods</titleabbrev> -++++ - -If you enable the Elastic {monitor-features} in your cluster, you can -optionally collect metrics about {kib}. - -[IMPORTANT] -========================= -{metricbeat} is the recommended method for collecting and shipping monitoring -data to a monitoring cluster. - -If you have previously configured legacy collection methods, you should migrate -to using {metricbeat} collection methods. Use either {metricbeat} collection or -legacy collection methods; do not use both. - -For the recommended method, refer to <<monitoring-metricbeat>>. -========================= - -The following method involves sending the metrics to the production cluster, -which ultimately routes them to the monitoring cluster. - -To learn about monitoring in general, see -{ref}/monitor-elasticsearch-cluster.html[Monitor a cluster]. - -. Set the `xpack.monitoring.collection.enabled` setting to `true` on each -node in the production cluster. By default, it is is disabled (`false`). -+ --- -NOTE: You can specify this setting in either the `elasticsearch.yml` on each -node or across the cluster as a dynamic cluster setting. If -{stack-security-features} are enabled, you must have `monitor` cluster -privileges to view the cluster settings and `manage` cluster privileges to -change them. - --- - -** To update the cluster settings in {kib}: - -... Open {kib} in your web browser. -+ --- -By default, if you are running {kib} locally, go to `http://localhost:5601/`. - -If {security-features} are enabled, log in. --- - -... Open the main menu, then click *Stack Monitoring*. If data collection is -disabled, you are prompted to turn it on. - -** From the Console or command line, set `xpack.monitoring.collection.enabled` -to `true` on the production cluster. + -+ --- -For example, you can use the following APIs to review and change this setting: - -[source,js] ----------------------------------- -GET _cluster/settings - -PUT _cluster/settings -{ - "persistent": { - "xpack.monitoring.collection.enabled": true - } -} ----------------------------------- - -For more information, see {ref}/monitoring-settings.html[Monitoring settings in {es}] -and {ref}/cluster-update-settings.html[Cluster update settings]. --- - -. Verify that `monitoring.enabled` and -`monitoring.kibana.collection.enabled` are set to `true` in the -`kibana.yml` file. These are the default values. For -more information, see <<monitoring-settings-kb,Monitoring settings in {kib}>>. - -. Identify where to send monitoring data. {kib} automatically -sends metrics to the {es} cluster specified in the `elasticsearch.hosts` setting -in the `kibana.yml` file. This property has a default value of -`http://localhost:9200`. + -+ --- -[TIP] -=============================== -In production environments, we strongly recommend using a separate cluster -(referred to as the _monitoring cluster_) to store the data. Using a separate -monitoring cluster prevents production cluster outages from impacting your -ability to access your monitoring data. It also prevents monitoring activities -from impacting the performance of your production cluster. - -If {security-features} are enabled on the production cluster, use an HTTPS -URL such as `https://<your_production_cluster>:9200` in this setting. -=============================== - --- - -. If {security-features} are enabled on the production cluster: - -.. Verify that there is a -valid user ID and password in the `elasticsearch.username` and -`elasticsearch.password` settings in the `kibana.yml` file. These values are -used when {kib} sends monitoring data to the production cluster. - -.. <<configuring-tls-kib-es,Configure encryption for traffic between {kib} and {es}>>. - -. <<start-stop,Start {kib}>>. - -. <<monitoring-data,View the monitoring data in {kib}>>. diff --git a/docs/user/monitoring/monitoring-metricbeat.asciidoc b/docs/user/monitoring/monitoring-metricbeat.asciidoc deleted file mode 100644 index 5ef3b8177a9c..000000000000 --- a/docs/user/monitoring/monitoring-metricbeat.asciidoc +++ /dev/null @@ -1,213 +0,0 @@ -[role="xpack"] -[[monitoring-metricbeat]] -= Collect {kib} monitoring data with {metricbeat} -[subs="attributes"] -++++ -<titleabbrev>Collect monitoring data with {metricbeat}</titleabbrev> -++++ - -In 6.4 and later, you can use {metricbeat} to collect data about {kib} -and ship it to the monitoring cluster, rather than routing it through the -production cluster as described in <<monitoring-kibana>>. - -image::user/monitoring/images/metricbeat.png[Example monitoring architecture] - -To learn about monitoring in general, see -{ref}/monitor-elasticsearch-cluster.html[Monitor a cluster]. - -//NOTE: The tagged regions are re-used in the Stack Overview. - -. Disable the default collection of {kib} monitoring metrics. + -+ --- -// tag::disable-kibana-collection[] -Add the following setting in the {kib} configuration file (`kibana.yml`): - -[source,yaml] ----------------------------------- -monitoring.kibana.collection.enabled: false ----------------------------------- - -Leave the `monitoring.enabled` set to its default value (`true`). -// end::disable-kibana-collection[] -For more information, see -<<monitoring-settings-kb,Monitoring settings in {kib}>>. --- - -. <<start-stop,Start {kib}>>. - -. Set the `xpack.monitoring.collection.enabled` setting to `true` on -each node in the production cluster. By default, it is disabled (`false`). -+ --- -NOTE: You can specify this setting in either the `elasticsearch.yml` on each -node or across the cluster as a dynamic cluster setting. If {es} -{security-features} are enabled, you must have `monitor` cluster privileges to -view the cluster settings and `manage` cluster privileges to change them. - --- - -** In {kib}: - -... Open {kib} in your web browser. -+ --- -If you are running {kib} locally, go to `http://localhost:5601/`. - -If the Elastic {security-features} are enabled, log in. --- - -... In the side navigation, click *Stack Monitoring*. If data collection is -disabled, you are prompted to turn it on. - -** From the Console or command line, set `xpack.monitoring.collection.enabled` -to `true` on the production cluster. + -+ --- -For example, you can use the following APIs to review and change this setting: - -[source,js] ----------------------------------- -GET _cluster/settings - -PUT _cluster/settings -{ - "persistent": { - "xpack.monitoring.collection.enabled": true - } -} ----------------------------------- - -For more information, see {ref}/monitoring-settings.html[Monitoring settings in {es}] -and {ref}/cluster-update-settings.html[Cluster update settings]. --- - -. {metricbeat-ref}/metricbeat-installation-configuration.html[Install {metricbeat}] on the -same server as {kib}. - -. Enable the {kib} {xpack} module in {metricbeat}. + -+ --- -// tag::enable-kibana-module[] -For example, to enable the default configuration in the `modules.d` directory, -run the following command: - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -metricbeat modules enable kibana-xpack ----------------------------------------------------------------------- - -For more information, see -{metricbeat-ref}/configuration-metricbeat.html[Specify which modules to run] and -{metricbeat-ref}/metricbeat-module-kibana.html[{kib} module]. -// end::enable-kibana-module[] --- - -. Configure the {kib} {xpack} module in {metricbeat}. + -+ --- -// tag::configure-kibana-module[] -The `modules.d/kibana-xpack.yml` file contains the following settings: - -[source,yaml] ----------------------------------- -- module: kibana - metricsets: - - stats - period: 10s - hosts: ["localhost:5601"] - #basepath: "" - #username: "user" - #password: "secret" - xpack.enabled: true ----------------------------------- - -By default, the module collects {kib} monitoring metrics from `localhost:5601`. -If that host and port number are not correct, you must update the `hosts` -setting. If you configured {kib} to use encrypted communications, you must -access it via HTTPS. For example, use a `hosts` setting like -`https://localhost:5601`. -// end::configure-kibana-module[] - -// tag::remote-monitoring-user[] -If the Elastic {security-features} are enabled, you must also provide a user -ID and password so that {metricbeat} can collect metrics successfully: - -.. Create a user on the production cluster that has the -`remote_monitoring_collector` {ref}/built-in-roles.html[built-in role]. -Alternatively, use the `remote_monitoring_user` -{ref}/built-in-users.html[built-in user]. - -.. Add the `username` and `password` settings to the {kib} module configuration -file. -// end::remote-monitoring-user[] --- - -. Optional: Disable the system module in {metricbeat}. -+ --- -// tag::disable-system-module[] -By default, the {metricbeat-ref}/metricbeat-module-system.html[system module] is -enabled. The information it collects, however, is not shown on the *Monitoring* -page in {kib}. Unless you want to use that information for other purposes, run -the following command: - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -metricbeat modules disable system ----------------------------------------------------------------------- -// end::disable-system-module[] --- - -. Identify where to send the monitoring data. + -+ --- -TIP: In production environments, we strongly recommend using a separate cluster -(referred to as the _monitoring cluster_) to store the data. Using a separate -monitoring cluster prevents production cluster outages from impacting your -ability to access your monitoring data. It also prevents monitoring activities -from impacting the performance of your production cluster. - -For example, specify the {es} output information in the {metricbeat} -configuration file (`metricbeat.yml`): - -[source,yaml] ----------------------------------- -output.elasticsearch: - # Array of hosts to connect to. - hosts: ["http://es-mon-1:9200", "http://es-mon2:9200"] <1> - - # Optional protocol and basic auth credentials. - #protocol: "https" - #username: "elastic" - #password: "changeme" ----------------------------------- -<1> In this example, the data is stored on a monitoring cluster with nodes -`es-mon-1` and `es-mon-2`. - -If you configured the monitoring cluster to use encrypted communications, you -must access it via HTTPS. For example, use a `hosts` setting like -`https://es-mon-1:9200`. - -IMPORTANT: The {es} {monitor-features} use ingest pipelines, therefore the -cluster that stores the monitoring data must have at least one ingest node. - -If the {es} {security-features} are enabled on the monitoring cluster, you -must provide a valid user ID and password so that {metricbeat} can send metrics -successfully: - -.. Create a user on the monitoring cluster that has the -`remote_monitoring_agent` {ref}/built-in-roles.html[built-in role]. -Alternatively, use the `remote_monitoring_user` -{ref}/built-in-users.html[built-in user]. - -.. Add the `username` and `password` settings to the {es} output information in -the {metricbeat} configuration file. - -For more information about these configuration options, see -{metricbeat-ref}/elasticsearch-output.html[Configure the {es} output]. --- - -. {metricbeat-ref}/metricbeat-starting.html[Start {metricbeat}]. - -. <<monitoring-data,View the monitoring data in {kib}>>. diff --git a/docs/user/monitoring/monitoring-troubleshooting.asciidoc b/docs/user/monitoring/monitoring-troubleshooting.asciidoc deleted file mode 100644 index 64f1b01de14b..000000000000 --- a/docs/user/monitoring/monitoring-troubleshooting.asciidoc +++ /dev/null @@ -1,53 +0,0 @@ -[role="xpack"] -[[monitor-troubleshooting]] -= Troubleshooting monitoring in {kib} -++++ -<titleabbrev>Troubleshooting</titleabbrev> -++++ - -Use the information in this section to troubleshoot common problems and find -answers for frequently asked questions related to the {kib} {monitor-features}. - -[float] -== Cannot view the cluster because the license information is invalid - -*Symptoms:* - -The following error appears in a banner at the top of the screen in {kib} on the -*Stack Monitoring > Clusters* page: -`You can't view the "<my_cluster>" cluster because the license information is invalid.` - -*Resolution:* - -You cannot monitor a version 6.3 or later cluster from {kib} version 6.2 or earlier. -To resolve this issue, upgrade {kib} to 6.3 or later. See -{stack-ref}/upgrading-elastic-stack.html[Upgrading the {stack}]. - -[float] -== No monitoring data is visible in {kib} - -*Symptoms:* - -The *Stack Monitoring* page in {kib} is empty. - -*Resolution:* - -. Confirm that you are not using {kib} 6.7.0 or 6.7.1. If you have a version 7.0 -monitoring cluster, a version 6.7 production cluster and {kib} version 6.7.0 or -6.7.1, you cannot see the monitoring data in {kib}. For more information, see -https://github.com/elastic/kibana/issues/34357 - -. Confirm that {kib} is seeking monitoring data from the appropriate {es} URL. -By default, data is retrieved from the cluster specified in the -`elasticsearch.hosts` setting in the `kibana.yml` file. If you want to retrieve it -from a different monitoring cluster, set `monitoring.ui.elasticsearch.hosts`. -See <<monitoring-settings-kb>>. - -. Confirm that there is monitoring data available at that URL. It is stored in -indices such as `.monitoring-kibana-*` and `.monitoring-es-*`. At a minimum, you -must have monitoring data for the {es} production cluster. Once that data exists, -{kib} can display monitoring data for other products in the cluster. - -. Set the time filter to “Last 1 hour”. When monitoring data appears in your -cluster, the page automatically refreshes with the monitoring summary. - diff --git a/docs/user/monitoring/viewing-metrics.asciidoc b/docs/user/monitoring/viewing-metrics.asciidoc deleted file mode 100644 index 9507b70c4f72..000000000000 --- a/docs/user/monitoring/viewing-metrics.asciidoc +++ /dev/null @@ -1,104 +0,0 @@ -[role="xpack"] -[[monitoring-data]] -= View monitoring data in {kib} -++++ -<titleabbrev>View monitoring data</titleabbrev> -++++ - -After you collect monitoring data for one or more products in the {stack}, you -can configure {kib} to retrieve that information and display it in on the -*Stack Monitoring* page. - -At a minimum, you must have monitoring data for the {es} production cluster. -Once that data exists, {kib} can display monitoring data for other products in -the cluster. - -TIP: If you use a separate monitoring cluster to store the monitoring data, it -is strongly recommended that you use a separate {kib} instance to view it. If -you log in to {kib} using SAML, Kerberos, PKI, OpenID Connect, or token -authentication providers, a dedicated {kib} instance is *required*. The security -tokens that are used in these contexts are cluster-specific, therefore you -cannot use a single {kib} instance to connect to both production and monitoring -clusters. For more information about the recommended configuration, see -{ref}/monitoring-overview.html[Monitoring overview]. - -. Identify where to retrieve monitoring data from. -+ --- -If the monitoring data is stored on a dedicated monitoring cluster, it is -accessible even when the cluster you're monitoring is not. If you have at least -a gold license, you can send data from multiple clusters to the same monitoring -cluster and view them all through the same instance of {kib}. - -By default, data is retrieved from the cluster specified in the -`elasticsearch.hosts` value in the `kibana.yml` file. If you want to retrieve it -from a different cluster, set `monitoring.ui.elasticsearch.hosts`. - -To learn more about typical monitoring architectures, -see {ref}/how-monitoring-works.html[How monitoring works] and -{ref}/monitoring-production.html[Monitoring in a production environment]. --- - -. Verify that `monitoring.ui.enabled` is set to `true`, which is the -default value, in the `kibana.yml` file. For more information, see -<<monitoring-settings-kb>>. - -. If the Elastic {security-features} are enabled on the monitoring cluster, you -must provide a user ID and password so {kib} can retrieve the data. - -.. Create a user that has the `monitoring_user` -{ref}/built-in-roles.html[built-in role] on the monitoring cluster. - -.. Add the `monitoring.ui.elasticsearch.username` and -`monitoring.ui.elasticsearch.password` settings in the `kibana.yml` file. -If these settings are omitted, {kib} uses the `elasticsearch.username` and -`elasticsearch.password` setting values. For more -information, see {kibana-ref}/using-kibana-with-security.html[Configuring security in {kib}]. - -. (Optional) Configure {kib} to encrypt communications between the {kib} server -and the monitoring cluster. See <<configuring-tls>>. - -. If the Elastic {security-features} are enabled on the {kib} server, only users -that have the authority to access {kib} indices and to read the monitoring indices -can use the monitoring dashboards. -+ --- -NOTE: These users must exist on the monitoring cluster. If you are accessing a -remote monitoring cluster, you must use credentials that are valid on both the -{kib} server and the monitoring cluster. - --- - -.. Create users that have the `monitoring_user` and `kibana_admin` -{ref}/built-in-roles.html[built-in roles]. - -. Open {kib} in your web browser. -+ --- -By default, if you are running {kib} locally, go to `http://localhost:5601/`. - -If the Elastic {security-features} are enabled, log in. --- - -. Open the main menu, then click *Stack Monitoring*. -+ --- -If data collection is disabled, you are prompted to turn on data collection. -If {es} {security-features} are enabled, you must have `manage` cluster -privileges to turn on data collection. - -NOTE: If you are using a separate monitoring cluster, you do not need to turn on -data collection. The dashboards appear when there is data in the monitoring -cluster. - --- - -You'll see cluster alerts -that require your attention and a summary of the available monitoring metrics -for {es}, Logstash, {kib}, and Beats. To view additional information, click the -Overview, Nodes, Indices, or Instances links. See <<xpack-monitoring>>. - -[role="screenshot"] -image::images/monitoring-dashboard.png[Monitoring dashboard] - -If you encounter problems, see <<monitor-troubleshooting,Troubleshooting monitoring>>. diff --git a/docs/user/monitoring/xpack-monitoring.asciidoc b/docs/user/monitoring/xpack-monitoring.asciidoc deleted file mode 100644 index c3aafe7f90db..000000000000 --- a/docs/user/monitoring/xpack-monitoring.asciidoc +++ /dev/null @@ -1,26 +0,0 @@ -[role="xpack"] -[[xpack-monitoring]] -= Stack Monitoring - -[partintro] --- - -The {kib} {monitor-features} serve two separate purposes: - -. To visualize monitoring data from across the {stack}. You can view health and -performance data for {es}, {ls}, and Beats in real time, as well as analyze past -performance. -. To monitor {kib} itself and route that data to the monitoring cluster. - -If you enable monitoring across the {stack}, each {es} node, {ls} node, {kib} -instance, and Beat is considered unique based on its persistent -UUID, which is written to the <<settings,`path.data`>> directory when the node -or instance starts. - -NOTE: Watcher must be enabled to view cluster alerts. If you have a Basic -license, Top Cluster Alerts are not displayed. - -For more information, see <<configuring-monitoring>> and -{ref}/monitor-elasticsearch-cluster.html[Monitor a cluster]. - --- \ No newline at end of file diff --git a/docs/user/reporting/automating-report-generation.asciidoc b/docs/user/reporting/automating-report-generation.asciidoc deleted file mode 100644 index 413573e7ec18..000000000000 --- a/docs/user/reporting/automating-report-generation.asciidoc +++ /dev/null @@ -1,72 +0,0 @@ -[role="xpack"] -[[automating-report-generation]] -== Automating report generation -Automatically generate PDF and CSV reports by submitting HTTP `POST` requests using {watcher} or a script. - -include::report-intervals.asciidoc[] - -[float] -=== Create a POST URL - -Create the POST -URL that triggers a report to generate. - -To create the POST URL for PDF reports: - -. Open then main menu, click *Dashboard*, then open a dashboard. -+ -To specify a relative or absolute time period, use the time filter. - -. From the {kib} toolbar, click *Share*, then select *PDF Reports*. - -. Click *Copy POST URL*. -+ -[role="screenshot"] -image::images/report-automate-pdf.png[Generate Visualize and Dashboard reports] - - -To create the POST URL for CSV reports: - -. Load the saved search in *Discover*. -+ -To specify a relative or absolute time period, use the time filter. - -. From the {kib} toolbar, click *Share*, then select *CSV Reports*. - -. Click *Copy POST URL*. -+ -[role="screenshot"] -image::images/report-automate-csv.png[Generate Discover reports] - -[float] -=== Use Watcher - -include::watch-example.asciidoc[] - -[float] -=== Use a script - -include::script-example.asciidoc[] - -[float] -=== HTTP response codes - -include::response-codes.asciidoc[] - -[float] -== Deprecated report URLs - -The following POST URL paths were once supported but are now deprecated. If there are -any problems with using these paths after upgrading {kib}, use -{kib} to regenerate the POST URL for a particular report. - -* Dashboard Reports: `/api/reporting/generate/dashboard/<dashboard-id>` -* Visualization Reports: `/api/reporting/generate/visualization/<visualization-id>` -* Saved Search Reports: `/api/reporting/generate/search/<saved-search-id>` - -[IMPORTANT] -=================== -Previously there was a `&sync` parameter appended to generation URLs which would hold -the request open until the document was fully generated. This feature has been removed. -Existing use of the `&sync` parameter, in Watcher for example, will need to be updated. -=================== diff --git a/docs/user/reporting/chromium-sandbox.asciidoc b/docs/user/reporting/chromium-sandbox.asciidoc deleted file mode 100644 index dcb421261c06..000000000000 --- a/docs/user/reporting/chromium-sandbox.asciidoc +++ /dev/null @@ -1,26 +0,0 @@ -[role="xpack"] -[[reporting-chromium-sandbox]] -=== Chromium sandbox - -When {report-features} uses the Chromium browser for generating PDF reports, -it's recommended to use the sandbox for an additional layer of security. The -Chromium sandbox uses operating system provided mechanisms to ensure that -code execution cannot make persistent changes to the computer or access -confidential information. The specific sandboxing techniques differ for each -operating system. - -==== Linux sandbox -The Linux sandbox depends on user namespaces, which were introduced with the 3.8 Linux kernel. However, many -distributions don't have user namespaces enabled by default, or they require the CAP_SYS_ADMIN capability. The {report-features} -will automatically disable the sandbox when it is running on Debian and CentOS as additional steps are required to enable -unprivileged usernamespaces. In these situations, you'll see the following message in your {kib} startup logs: -`Chromium sandbox provides an additional layer of protection, but is not supported for your OS. -Automatically setting 'xpack.reporting.capture.browser.chromium.disableSandbox: true'.` - -Reporting will automatically enable the Chromium sandbox at startup when a supported OS is detected. However, if your kernel is 3.8 or newer, it's -recommended to set `xpack.reporting.capture.browser.chromium.disableSandbox: false` in your `kibana.yml` to explicitly enable usernamespaces. - -==== Docker -When running {kib} in a Docker container, all container processes are run within a usernamespace with seccomp-bpf and -AppArmor profiles that prevent the Chromium sandbox from being used. In these situations, disabling the sandbox is recommended, -as the container implements similar security mechanisms. \ No newline at end of file diff --git a/docs/user/reporting/configuring-reporting.asciidoc b/docs/user/reporting/configuring-reporting.asciidoc deleted file mode 100644 index a8b76f36b9a8..000000000000 --- a/docs/user/reporting/configuring-reporting.asciidoc +++ /dev/null @@ -1,78 +0,0 @@ -[role="xpack"] -[[configuring-reporting]] -== Reporting configuration - -You can configure settings in `kibana.yml` to control how the {report-features} -communicate with the {kib} server, manages background jobs, and captures -screenshots. See <<reporting-settings-kb, Reporting Settings>> for the complete -list of settings. - -[float] -[[encryption-keys]] -=== Encryption keys for multiple {kib} instances - -By default, a new encryption key is generated for the {report-features} each -time you start {kib}. This means if a static encryption key is not persisted in -the {kib} configuration, any pending reports will fail when you restart {kib}. - -If you are load balancing across multiple {kib} instances, they need to have -the same reporting encryption key. Otherwise, report generation will fail if a -report is queued through one instance and another instance picks up the job -from the report queue. The other instance will not be able to decrypt the -reporting job metadata. - -To set a static encryption key for reporting, set the -`xpack.reporting.encryptionKey` property in the `kibana.yml` -configuration file. You can use any alphanumeric, at least 32 characters long text string as the encryption key. - -[source,yaml] --------------------------------------------------------------------------------- -xpack.reporting.encryptionKey: "something_secret" --------------------------------------------------------------------------------- - -[float] -[[report-indices]] -=== Report indices for multiple {kib} workspaces - -If you divide workspaces in an Elastic cluster using multiple {kib} instances -with a different `kibana.index` setting per instance, you must set a unique `xpack.reporting.index` -setting per `kibana.index`. Otherwise, report generation will periodically fail -if a report is queued through an instance with one `kibana.index` setting, and -an instance with a different `kibana.index` attempts to claim the job. - -Kibana instance A: -[source,yaml] --------------------------------------------------------------------------------- -kibana.index: ".kibana-a" -xpack.reporting.index: ".reporting-a" -xpack.reporting.encryptionKey: "something_secret" --------------------------------------------------------------------------------- - -Kibana instance B: -[source,yaml] --------------------------------------------------------------------------------- -kibana.index: ".kibana-b" -xpack.reporting.index: ".reporting-b" -xpack.reporting.encryptionKey: "something_secret" --------------------------------------------------------------------------------- - -NOTE: If security is enabled, the `xpack.reporting.index` setting should begin -with `.reporting-` in order for the `kibana_system` role to have the necessary -privileges over the index. - -[float] -[[using-reverse-proxies]] -=== Use reverse proxies - -If your {kib} instance requires a reverse proxy (NGINX, Apache, etc.) for -access, because of rewrite rules or special headers being added by the proxy, -then you need to configure the `xpack.reporting.kibanaServer` settings to make -the headless browser process connect to the proxy in <<reporting-kibana-server-settings, Kibana server settings>>. - -NOTE: A headless browser runs on the Kibana server to open a Kibana page for -capturing screenshots. Configuring the `xpack.reporting.kibanaServer` settings -to point to a proxy host requires that the Kibana server has network access to -the proxy. - -include::{kib-repo-dir}/user/security/reporting.asciidoc[] -include::network-policy.asciidoc[] diff --git a/docs/user/reporting/development/csv-integration.asciidoc b/docs/user/reporting/development/csv-integration.asciidoc deleted file mode 100644 index 8ccd33f5f24e..000000000000 --- a/docs/user/reporting/development/csv-integration.asciidoc +++ /dev/null @@ -1,51 +0,0 @@ -[float] -=== CSV - -[float] -==== Job parameters -If integrating with Reporting via a custom UI, the following job parameters must be Rison encoded and posted to -the aforementioned generate job url: - ----- -interface jobParameters { - type: string; - title: string; - searchRequest: { - index: string; - body: object; - }; - fields: string[]; - metaFields: string[]; - conflictedTypesFields: string[]; - indexPatternId: string; -} ----- - -The `searchRequest.body` should abide by the {ref}/search-request-body.html[Elasticsearch Search Request Body] syntax - -[float] -==== `export-config` Directive -If integrating with Reporting via the `export-config` directive, the AngularJS controller that contains the directive should expose -the following methods and the `export-config` directive will POST them to the reporting API: - ----- -interface sharingData { - searchRequest: { - index: string; - body: object; - }; - fields: string[]; - metaFields: string[]; - conflictedTypesFields: string[]; - indexPatternId: string; -} - -function getSharingData(): sharingData; - -function getSharingType(): string; - -function getSharingTitle() string; - ----- - -The `sharingData.searchRequest.body` should abide by the {ref}/search-request-body.html[Elasticsearch Search Request Body] syntax \ No newline at end of file diff --git a/docs/user/reporting/development/index.asciidoc b/docs/user/reporting/development/index.asciidoc deleted file mode 100644 index 4e86c803bd82..000000000000 --- a/docs/user/reporting/development/index.asciidoc +++ /dev/null @@ -1,29 +0,0 @@ -[role="xpack"] -[[reporting-integration]] -== Reporting integration -Integrating a {kib} application with the {report-features} requires a minimum -amount of code, and the goal is to not have to modify the reporting code as we -add additional applications. Instead, applications abide by a contract that -{report-features} use to determine the information that is required to export -CSVs and PDFs. - -[IMPORTANT] -============================================== -These pages document internal APIs and are not guaranteed to be supported across future versions of {kib}. -However, these docs will be kept up-to-date to reflect the current implementation of Reporting integration in {kib}. -============================================== - -[float] -[[reporting-nav-bar-extensions]] -=== Share menu extensions -X-Pack uses the `share` plugin of the Kibana platform to register actions in the share menu. - -[float] -=== Generate job URL -To generate a new reporting job, different export types require different `jobParams` that are Rison encoded into a URL -that abide by the following convention: `/api/reporting/generate?jobParams=${rison.encode(jobParams)}`. If you use the -aforementioned <<reporting-nav-bar-extensions, nav bar extensions>> then this detail will be abstracted away, but if you -provide a custom UI for generating the report, you will have to generate the URL and create a POST request to the URL. - -include::csv-integration.asciidoc[] -include::pdf-integration.asciidoc[] diff --git a/docs/user/reporting/development/pdf-integration.asciidoc b/docs/user/reporting/development/pdf-integration.asciidoc deleted file mode 100644 index e9f32de41baa..000000000000 --- a/docs/user/reporting/development/pdf-integration.asciidoc +++ /dev/null @@ -1,67 +0,0 @@ -[float] -=== PDF - -[float] -==== Job parameters -If integrating with Reporting via a custom UI, the following job parameters must be Rison encoded and posted to -the aforementioned generate job url: - ----- -interface jobParameters { - objectType: string; - title: string; - browserTimezone: string; - relativeUrls: string[]; - layout: { - id: string; - dimensions: { - height: number; - width: number; - }; - }; -} ----- - -`jobParameters.browserTimezone` is a string that appears in the tz database -`jobParameters.layout.id` presently only accepts "print" and "preserve_layout" -`jobParameters.layout.dimensions` is only currently used by "preserve_layout" - -[float] -==== `export-config` directive -If integrating with Reporting via the `export-config` directive, the AngularJS controller that contains -the directive should expose the following methods and the `export-config` directive will POST them to the -reporting API: - ----- - -function getSharingType(): string; - -function getSharingTitle(): string; - ----- - -The `export-config` directive will use the browser's current URL and timezone when generating the job -parameters automatically. The `export-config` directive will also grab the height/width of the element -with the `data-shared-items-container` attribute and use this as the dimensions. - -[float] -==== Screenshot capturing attributes -When generating the PDF, reporting looks for a number of attributes in the DOM to determine which elements -should have their screenshot taken and when the Visualizations are done rendering. - -The print layout takes a screenshot of every element with the `data-shared-item` attribute and includes the -individual screenshots in the PDF. The print layout also uses the `data-title` and `data-description` -attributes on the same HTMLElement as the `data-shared-item` to specify the title and description. - -The preserve layout takes a screenshot of the element with the `data-shared-items-container` attribute. Additionally, -reporting will resize the element with the `data-shared-items-container` to be the size specified in the layout dimensions. -The preserve layout also uses the `data-title` and `data-description` attributes on the HTMLElement with the -`data-shared-items-container` attribute to specify the title/description for the entire PDF. - -Reporting needs to determine when all of the visualizations have completed rendering, so that it can begin taking screenshots. -If there are multiple visualizations, the `data-shared-items-count` attribute should be specified to let Reporting know how -many Visualizations to look for. Reporting will look at every element with the `data-shared-item` attribute and use the corresponding -`data-render-complete` attribute and `renderComplete` events to listen for rendering to complete. When rendering is complete for a visualization -the `data-render-complete` attribute should be set to "true" and it should dispatch a custom DOM `renderComplete` event. - -If the reporting job uses multiple URLs, before looking for any of the `data-shared-item` or `data-shared-items-count` attributes, it waits for a `data-shared-page` attribute that specifies which page is being loaded. diff --git a/docs/user/reporting/generating-reports.asciidoc b/docs/user/reporting/generating-reports.asciidoc deleted file mode 100644 index 6503838cb441..000000000000 --- a/docs/user/reporting/generating-reports.asciidoc +++ /dev/null @@ -1 +0,0 @@ -[role="xpack"] diff --git a/docs/user/reporting/gs-index.asciidoc b/docs/user/reporting/gs-index.asciidoc deleted file mode 100644 index 46c1fd38b7d6..000000000000 --- a/docs/user/reporting/gs-index.asciidoc +++ /dev/null @@ -1,28 +0,0 @@ -[role="xpack"] -[[xpack-reporting]] -= Reporting from Kibana - -[partintro] --- -You can generate reports that contain {kib} dashboards, -visualizations, and saved searches. The reports are exported as -print-optimized PDF documents. - -NOTE: On Linux, the `libfontconfig` and `libfreetype6` packages and system -fonts are required to generate reports. If no system fonts are available, -labels are not rendered correctly in the reports. - -The following Reporting button appears in the {kib} toolbar: - -image:images/reporting.jpg["Reporting",link="reporting.jpg"] - -You can also <<automating-report-generation,generate reports automatically>>. - -IMPORTANT: Reports are stored in the `.reporting-*` indices. Any user with -access to these indices has access to every report generated by all users. - -To use {report-features} in a production environment, -<<securing-reporting,secure the Reporting endpoints>>. --- - -include::getting-started.asciidoc[] diff --git a/docs/user/reporting/images/canvas-share-button.png b/docs/user/reporting/images/canvas-share-button.png deleted file mode 100644 index 1137a263444e..000000000000 Binary files a/docs/user/reporting/images/canvas-share-button.png and /dev/null differ diff --git a/docs/user/reporting/images/preserve-layout-switch.png b/docs/user/reporting/images/preserve-layout-switch.png deleted file mode 100644 index 0aaefb14d7ee..000000000000 Binary files a/docs/user/reporting/images/preserve-layout-switch.png and /dev/null differ diff --git a/docs/user/reporting/images/share-menu.png b/docs/user/reporting/images/share-menu.png deleted file mode 100644 index 7f1d9eda0b5b..000000000000 Binary files a/docs/user/reporting/images/share-menu.png and /dev/null differ diff --git a/docs/user/reporting/images/shareable-container.png b/docs/user/reporting/images/shareable-container.png deleted file mode 100644 index 829fe15706a5..000000000000 Binary files a/docs/user/reporting/images/shareable-container.png and /dev/null differ diff --git a/docs/user/reporting/index.asciidoc b/docs/user/reporting/index.asciidoc deleted file mode 100644 index 224973d3c840..000000000000 --- a/docs/user/reporting/index.asciidoc +++ /dev/null @@ -1,116 +0,0 @@ -[role="xpack"] -[[reporting-getting-started]] -= Reporting - -[partintro] - --- - -You can generate a report that contains a {kib} dashboard, visualization, -saved search, or Canvas workpad. Depending on the object type, you can export the data as -a PDF, PNG, or CSV document, which you can keep for yourself, or share with others. - -Reporting is available from the *Share* menu -in *Discover*, *Dashboard*, and *Canvas*. - -[role="screenshot"] -image::user/reporting/images/share-menu.png["Share"] - -[float] -== Setup - -The {report-features} are automatically enabled in {kib}. It runs a custom build of the Chromium web browser, which -runs on the server in headless mode to load {kib} and capture the rendered {kib} charts as images. - -Chromium is an open-source project not related to Elastic, but the Chromium binary for {kib} has been custom-built by Elastic to ensure it -works with minimal setup. However, the {kib} server OS might still require additional dependencies for Chromium. See the -<<reporting-troubleshooting-system-dependencies, Reporting troubleshooting>> section for more information about the system dependencies -for different operating systems. - -[float] -[[reporting-required-privileges]] -== Roles and privileges - -To generate a report, you must have the `reporting_user` role. You also need -the appropriate {kib} privileges to access the objects that you -want to report on and the {es} indices. See <<secure-reporting, Reporting and security>> -for an example. - -[float] -[[manually-generate-reports]] -== Generate a report manually - -. Open the dashboard, visualization, Canvas workpad, or saved search that you want to include in the report. - -. In the {kib} toolbar, click *Share*. If you are working in Canvas, -click the share icon image:user/reporting/images/canvas-share-button.png["Canvas Share button"]. - -. Select the option appropriate for your object. You can export: -+ -** A dashboard or visualization as either a PNG or PDF document -** A Canvas workpad as a PDF document -** A saved search as a CSV document - -. Generate the report. -+ -A notification appears when the report is complete. - -NOTE: When you export a data table or saved search from a dashboard report, the PDF includes only the visible data. - -[float] -[[reporting-layout-sizing]] -== Layout and sizing -The layout and size of the PDF or PNG image depends on the {kib} app -with which the Reporting plugin is integrated. For Canvas, the -worksheet dimensions determine the size for Reporting. In other apps, -the dimensions are taken on the fly by looking at -the size of the visualization elements or panels on the page. - -The size dimensions are part of the reporting job parameters. Therefore, to -make the report output larger or smaller, you can change the size of the browser. -This resizes the shareable container before generating the -report, so the desired dimensions are passed in the job parameters. - -In the following {kib} dashboard, the shareable container is highlighted. -The shareable container is captured when you click the -*Generate* or *Copy POST URL* button. It might take some trial and error -before you're satisfied with the layout and dimensions in the resulting -PNG or PDF image. - -[role="screenshot"] -image::user/reporting/images/shareable-container.png["Shareable Container"] - - - -[float] -[[optimize-pdf]] -== Optimize PDF for print—dashboard only - -To create a printer-friendly PDF with multiple A4 portrait pages and two visualizations per page, turn on *Optimize for printing*. - -[role="screenshot"] -image::user/reporting/images/preserve-layout-switch.png["Share"] - - -[float] -[[manage-report-history]] -== View and manage report history - -For a list of your reports, open the main menu, then click *Stack Management > Reporting*. -From this view, you can monitor the generation of a report and -download reports that you previously generated. - -[float] -[[automatically-generate-reports]] -== Automatically generate a report - -To automatically generate a report from a script or with -{watcher}, see <<automating-report-generation, Automating report generation>>. - --- - -include::automating-report-generation.asciidoc[] -include::configuring-reporting.asciidoc[] -include::chromium-sandbox.asciidoc[] -include::reporting-troubleshooting.asciidoc[] -include::development/index.asciidoc[] diff --git a/docs/user/reporting/network-policy.asciidoc b/docs/user/reporting/network-policy.asciidoc deleted file mode 100644 index 782473a3b0f1..000000000000 --- a/docs/user/reporting/network-policy.asciidoc +++ /dev/null @@ -1,71 +0,0 @@ -[role="xpack"] -[[reporting-network-policy]] -=== Restrict requests with a Reporting network policy - -When Reporting generates PDF reports, it uses the Chromium browser to fully load the {kib} page on the server. This -potentially involves sending requests to external hosts. For example, a request might go to an external image server to show a -field formatted as an image, or to show an image in a Markdown visualization. - -If the Chromium browser is asked to send a request that violates the network policy, Reporting stops processing the page -before the request goes out, and the report is marked as a failure. Additional information about the event is in -the Kibana server logs. - -[NOTE] -============ -{kib} installations are not designed to be publicly accessible over the Internet. The Reporting network policy and other capabilities -of the Elastic Stack security features do not change this condition. -============ - -==== Configure a Reporting network policy - -You configure the network policy by specifying the `xpack.reporting.capture.networkPolicy.rules` setting in `kibana.yml`. A policy is specified as -an array of objects that describe what to allow or deny based on a host or protocol. If a host or protocol -is not specified, the rule matches any host or protocol. - -The rule objects are evaluated sequentially from the beginning to the end of the array, and continue until there is a matching rule. -If no rules allow a request, the request is denied. - -[source,yaml] -------------------------------------------------------- -# Only allow requests to placeholder.com -xpack.reporting.capture.networkPolicy: - rules: [ { allow: true, host: "placeholder.com" } ] -------------------------------------------------------- - -[source,yaml] -------------------------------------------------------- -# Only allow requests to https://placeholder.com -xpack.reporting.capture.networkPolicy: - rules: [ { allow: true, host: "placeholder.com", protocol: "https:" } ] -------------------------------------------------------- - -A final `allow` rule with no host or protocol will allow all requests that are not explicitly denied. - -[source,yaml] -------------------------------------------------------- -# Denies requests from http://placeholder.com, but anything else is allowed. -xpack.reporting.capture.networkPolicy: - rules: [{ allow: false, host: "placeholder.com", protocol: "http:" }, { allow: true }]; -------------------------------------------------------- - -A network policy can be composed of multiple rules. - -[source,yaml] -------------------------------------------------------- -# Allow any request to http://placeholder.com but for any other host, https is required -xpack.reporting.capture.networkPolicy - rules: [ - { allow: true, host: "placeholder.com", protocol: "http:" }, - { allow: true, protocol: "https:" }, - ] -------------------------------------------------------- - -[NOTE] -============ -The `file:` protocol is always denied, even if no network policy is configured. -============ - -==== Disable a Reporting network policy - -You can use the `xpack.reporting.capture.networkPolicy.enabled: false` setting to disable the network policy feature. The default for -this configuration property is `true`, so it is not necessary to explicitly enable it. diff --git a/docs/user/reporting/report-intervals.asciidoc b/docs/user/reporting/report-intervals.asciidoc deleted file mode 100644 index d826ef70f4ee..000000000000 --- a/docs/user/reporting/report-intervals.asciidoc +++ /dev/null @@ -1,12 +0,0 @@ -[IMPORTANT] -=================== -The interval between report requests must be longer than the time it -takes to generate the reports--otherwise, the report queue can back up. To -avoid this, increase the time between report requests. - -By default, report generation times out if the report cannot be generated -within two minutes. If you are generating reports that contain many complex -visualizations or your machine is slow or under constant heavy load, it -might take longer than two minutes to generate a report. You can increase -the timeout by setting `xpack.reporting.queue.timeout` in `kibana.yml`. -=================== \ No newline at end of file diff --git a/docs/user/reporting/reporting-troubleshooting.asciidoc b/docs/user/reporting/reporting-troubleshooting.asciidoc deleted file mode 100644 index 1f07b0b57d8c..000000000000 --- a/docs/user/reporting/reporting-troubleshooting.asciidoc +++ /dev/null @@ -1,158 +0,0 @@ -[role="xpack"] -[[reporting-troubleshooting]] -== Reporting troubleshooting -++++ -<titleabbrev>Troubleshooting</titleabbrev> -++++ - -Having trouble? Here are solutions to common problems you might encounter while using Reporting. - -* <<reporting-diagnostics>> -* <<reporting-troubleshooting-system-dependencies>> -* <<reporting-troubleshooting-text-incorrect>> -* <<reporting-troubleshooting-missing-data>> -* <<reporting-troubleshooting-file-permissions>> -* <<reporting-troubleshooting-error-messages>> -* <<reporting-troubleshooting-puppeteer-debug-logs>> -* <<reporting-troubleshooting-system-requirements>> - -[float] -[[reporting-diagnostics]] -=== Reporting diagnostics -Reporting comes with a built-in utility to try to automatically find common issues. -When {kib} is running, navigate to the Report Listing page, and click *Run reporting diagnostics*. -This will open up a diagnostic tool that checks various parts of the {kib} deployment and -come up with any relevant recommendations. - -[float] -[[reporting-troubleshooting-system-dependencies]] -=== System dependencies -Reporting launches a "headless" web browser called Chromium on the Kibana server. It is a custom build made by Elastic of an open source -project, and it is intended to have minimal dependencies on OS libraries. However, the Kibana server OS might still require additional -dependencies to run the Chromium executable. - -Make sure Kibana server OS has the appropriate packages installed for the distribution. - -If you are using CentOS/RHEL systems, install the following packages: - -* `ipa-gothic-fonts` -* `xorg-x11-fonts-100dpi` -* `xorg-x11-fonts-75dpi` -* `xorg-x11-utils` -* `xorg-x11-fonts-cyrillic` -* `xorg-x11-fonts-Type1` -* `xorg-x11-fonts-misc` -* `fontconfig` -* `freetype` - -If you are using Ubuntu/Debian systems, install the following packages: - -* `fonts-liberation` -* `libfontconfig1` - -If the system is missing dependencies, then Reporting will fail in a non-deterministic way. {kib} runs a self-test at server startup, and -if it encounters errors, logs them in the Console. Unfortunately, the error message does not include -information about why Chromium failed to run. The most common error message is `Error: connect ECONNREFUSED`, which indicates -that {kib} could not connect to the Chromium process. - -To troubleshoot the problem, start the {kib} server with environment variables that tell Chromium to print verbose logs. See the -<<reporting-troubleshooting-puppeteer-debug-logs, Puppeteer debug method>> for more information. - -[float] -[[reporting-troubleshooting-text-incorrect]] -=== Text rendered incorrectly in generated reports - -If a report label is rendered as an empty rectangle, no system fonts are available. Install at least one font package on the system. - -If the report is missing certain Chinese, Japanese or Korean characters, ensure that a system font with those characters is installed. - -[float] -[[reporting-troubleshooting-missing-data]] -=== Missing data in PDF report of data table visualization -There is currently a known limitation with the Data Table visualization that only the first page of data rows, which are the only data -visible on the screen, are shown in PDF reports. - -[float] -[[reporting-troubleshooting-file-permissions]] -=== File permissions -Ensure that the `headless_shell` binary located in your Kibana data directory is owned by the user who is running Kibana, that the -user has the execute permission, and if applicable, that the filesystem is mounted with the `exec` option. - -[NOTE] --- -The Chromium binary is located in the Kibana installation directory as `data/headless_shell-OS_TYPE/headless_shell`. The full path is logged -the first time Kibana starts when verbose logging is enabled. --- - -[float] -[[reporting-troubleshooting-error-messages]] -=== Error messages -Whenever possible, a Reporting error message tries to be as self-explanatory as possible. Here are some error messages you might encounter, -along with the solution. - -[float] -==== Max attempts reached -There are two primary causes of this error: - -* You're creating a PDF of a visualization or dashboard that spans a large amount of data and Kibana is hitting the `xpack.reporting.queue.timeout` - -* Kibana is hosted behind a reverse-proxy, and the <<reporting-kibana-server-settings, Kibana server settings>> are not configured correctly - -Create a Markdown visualization and then create a PDF report. If this succeeds, increase the `xpack.reporting.queue.timeout` setting. If the -PDF report fails with "Max attempts reached," check your <<reporting-kibana-server-settings, Kibana server settings>>. - -[float] -[[reporting-troubleshooting-nss-dependency]] -==== You must install nss for Reporting to work -Reporting using the Chromium browser relies on the Network Security Service libraries (NSS). Install the appropriate nss package for your -distribution. - -[float] -[[reporting-troubleshooting-sandbox-dependency]] -==== Unable to use Chromium sandbox -Chromium uses sandboxing techniques that are built on top of operating system primitives. The Linux sandbox depends on user namespaces, -which were introduced with the 3.8 Linux kernel. However, many distributions don't have user namespaces enabled by default, or they require -the CAP_SYS_ADMIN capability. - -Elastic recommends that you research the feasibility of enabling unprivileged user namespaces before disabling the sandbox. An exception -is if you are running Kibana in Docker because the container runs in a user namespace with the built-in seccomp/bpf filters. - -[float] -[[reporting-troubleshooting-verbose-logs]] -=== Verbose logs -{kib} server logs have a lot of useful information for troubleshooting and understanding how things work. If you're having any issues at -all, the full logs from Reporting will be the first place to look. In `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -logging.verbose: true --------------------------------------------------------------------------------- - -For more information about logging, see <<logging-verbose,Kibana configuration settings>>. - -[float] -[[reporting-troubleshooting-puppeteer-debug-logs]] -=== Puppeteer debug logs -The Chromium browser that {kib} launches on the server is driven by a NodeJS library for Chromium called Puppeteer. The Puppeteer library -has its own command-line method to generate its own debug logs, which can sometimes be helpful, particularly to figure out if a problem is -caused by Kibana or Chromium. See more at https://github.com/GoogleChrome/puppeteer/blob/v1.19.0/README.md#debugging-tips[debugging tips]. - -Using Puppeteer's debug method when launching Kibana would look like: -``` -env DEBUG="puppeteer:*" ./bin/kibana -``` -The internal DevTools protocol traffic will be logged via the `debug` module under the `puppeteer` namespace. - - -The Puppeteer logs are very verbose and could possibly contain sensitive information. Handle the generated output with care. - -[float] -[[reporting-troubleshooting-system-requirements]] -=== System requirements -In Elastic Cloud, the {kib} instances that most configurations provide by default is for 1GB of RAM for the instance. That is enough for -{kib} Reporting when the visualization or dashboard is relatively simple, such as a single pie chart or a dashboard with -a few visualizations. However, certain visualization types incur more load than others. For example, a TSVB panel has a lot of network -requests to render. - -If the {kib} instance doesn't have enough memory to run the report, the report fails with an error such as `Error: Page crashed!` -In this case, try increasing the memory for the {kib} instance to 2GB. diff --git a/docs/user/reporting/response-codes.asciidoc b/docs/user/reporting/response-codes.asciidoc deleted file mode 100644 index 50a27766f37f..000000000000 --- a/docs/user/reporting/response-codes.asciidoc +++ /dev/null @@ -1,23 +0,0 @@ -The Reporting APIs use HTTP response codes to give feedback. In automation, -this helps external systems track the various possible job states: - -- **`200` (OK)**: As expected, Kibana returns `200` status in the response for - successful requests to queue or download reports. -+ -NOTE: Kibana will send a `200` response status for successfully queuing a Reporting job via -the POST URL. This is true even if the job somehow fails later, since report -generation happens asynchronously from queuing. - -- **`400` (Bad Request)**: When sending requests to the POST URL, if you don't use - `POST` as the HTTP method, or if your request is missing the `kbn-xsrf` header, - Kibana will return a code `400` status response for the request. - -- **`503` (Service Unavailable)**: When using the `path` to request the download, you - will get a `503` status response if report generation hasn't completed yet. The - response will include a `Retry-After` header. You can set the script to wait the - number of seconds in the `Retry-After` header, and then repeat if needed, until the - report is complete. - -- **`500` (Internal Server Error)**: When using the `path` to request the download, you - will get a `500` status response if the report isn't available due to an error when - generating the report. More information is available at **Management > Kibana > Reporting**. diff --git a/docs/user/reporting/script-example.asciidoc b/docs/user/reporting/script-example.asciidoc deleted file mode 100644 index 56721d20ea3c..000000000000 --- a/docs/user/reporting/script-example.asciidoc +++ /dev/null @@ -1,50 +0,0 @@ -To automatically generate reports from a script, you'll make a request to the `POST` URL. -The response from this request will be JSON, and will contain a `path` property with a -URL to use to download the generated report. Use the `GET` method in the HTTP request to -download the report. - -The request method must be `POST` and it must include a `kbn-xsrf` header for Kibana -to allow the request. - -The following example queues CSV report generation using the `POST` URL with cURL: - -["source","sh",subs="attributes"] ---------------------------------------------------------- -curl \ --XPOST \ <1> --u elastic \ <2> --H 'kbn-xsrf: true' \ <3> -'http://0.0.0.0:5601/api/reporting/generate/csv?jobParams=...' <4> ---------------------------------------------------------- -// CONSOLE - -<1> `POST` method is required. -<2> Provide user credentials for a user with permission to access Kibana and -{report-features}. -<3> The `kbn-xsrf` header is required for all `POST` requests to Kibana. For more information, see <<api-request-headers, API Request -Headers>>. -<4> The POST URL. You can copy and paste the URL for any report from the Kibana UI. - -Here is an example response for a successfully queued report: - -[source,json] ---------------------------------------------------------- -{ - "path": "/api/reporting/jobs/download/jxzaofkc0ykpf4062305t068", <1> - "job": { - "id": "jxzaofkc0ykpf4062305t068", - "index": ".reporting-2018.11.11", - "jobtype": "csv", - "created_by": "elastic", - "payload": ..., <2> - "timeout": 120000, - "max_attempts": 3, - "priority": 10 - } -} ---------------------------------------------------------- -// CONSOLE - -<1> The relative path on the Kibana host for downloading the report. -<2> (Not included in the example) Internal representation of the reporting job, as -found in the `.reporting-*` index. diff --git a/docs/user/reporting/watch-example.asciidoc b/docs/user/reporting/watch-example.asciidoc deleted file mode 100644 index 253722fefecc..000000000000 --- a/docs/user/reporting/watch-example.asciidoc +++ /dev/null @@ -1,71 +0,0 @@ -To automatically generate reports with a watch, you need to configure -{watcher} to trust the {kib} server’s certificate. For more information, -see {kibana-ref}/secure-reporting.html[Securing Reporting]. - -To configure a watch to email reports, you use the `reporting` attachment type -in an `email` action. For more information, see -{ref}/actions-email.html#configuring-email[Configuring email accounts]. - -For example, the following watch generates a PDF report and emails the report every hour: - -[source,js] ---------------------------------------------------------- -PUT _watcher/watch/error_report -{ - "trigger" : { - "schedule": { - "interval": "1h" - } - }, - "actions" : { - "email_admin" : { <1> - "email": { - "to": "'Recipient Name <recipient@example.com>'", - "subject": "Error Monitoring Report", - "attachments" : { - "error_report.pdf" : { - "reporting" : { - "url": "http://0.0.0.0:5601/api/reporting/generate/printablePdf?jobParams=...", <2> - "retries":40, <3> - "interval":"15s", <4> - "auth":{ <5> - "basic":{ - "username":"elastic", - "password":"changeme" - } - } - } - } - } - } - } - } -} ---------------------------------------------------------- -// CONSOLE - -<1> You must configure at least one email account to enable Watcher to send email. -For more information, see -{ref}/actions-email.html#configuring-email[Configuring email accounts]. -<2> This is an example POST URL. You can copy and paste the URL for any -report from the Kibana UI. -<3> Optional, default is 40 -<4> Optional, default is 15s -<5> Provide user credentials for a user with permission to access Kibana and -the {report-features}. -//For more information, see <<secure-reporting>>. -//<<reporting-app-users, Setting up a Reporting Role>>. - -[NOTE] -==== -Reporting is integrated with Watcher only as an email attachment type. - -The report Generation URL might contain date-math expressions -that cause the watch to fail with a `parse_exception`. -Remove curly braces `{` `}` from date-math expressions and -URL-encode characters to avoid this. -For example: `...(range:(%27@timestamp%27:(gte:now-15m%2Fd,lte:now%2Fd))))...` - -For more information about configuring watches, see -{ref}/how-watcher-works.html[How Watcher works]. -==== diff --git a/docs/user/security/access-agreement.asciidoc b/docs/user/security/access-agreement.asciidoc deleted file mode 100644 index 362eb8050121..000000000000 --- a/docs/user/security/access-agreement.asciidoc +++ /dev/null @@ -1,27 +0,0 @@ -[role="xpack"] -[[xpack-security-access-agreement]] -=== Access agreement - -Some work environments require you to acknowledge and accept an agreement before you can access {kib}, which can contain sensitive information. The agreement text supports Markdown format and can be specified using the `xpack.security.authc.providers.<provider-type>.<provider-name>.accessAgreement.message` setting. - -[NOTE] -============================================================================ -You need to acknowledge the access agreement only once per session, and {kib} reports the acknowledgement in the audit logs. -============================================================================ - -Here is how your `kibana.yml` can look like if you define an access agreement: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - basic.basic1: - order: 0 - accessAgreement: - message: "**You are accessing a system with a sensitive information** \n\n - By logging in, you acknowledge that (shortened ...)" --------------------------------------------------------------------------------- - -When you authenticate using `basic.basic1`, you'll see the following agreement that you must acknowledge before you can access {kib}: - -[role="screenshot"] -image::user/security/images/access-agreement.png["Access Agreement UI"] diff --git a/docs/user/security/api-keys/images/api-key-invalidate.png b/docs/user/security/api-keys/images/api-key-invalidate.png deleted file mode 100755 index c925679ab24b..000000000000 Binary files a/docs/user/security/api-keys/images/api-key-invalidate.png and /dev/null differ diff --git a/docs/user/security/api-keys/images/api-keys.png b/docs/user/security/api-keys/images/api-keys.png deleted file mode 100755 index df74f245676d..000000000000 Binary files a/docs/user/security/api-keys/images/api-keys.png and /dev/null differ diff --git a/docs/user/security/api-keys/index.asciidoc b/docs/user/security/api-keys/index.asciidoc deleted file mode 100644 index 3edd1f8f9c63..000000000000 --- a/docs/user/security/api-keys/index.asciidoc +++ /dev/null @@ -1,103 +0,0 @@ -[role="xpack"] -[[api-keys]] -=== API Keys - - -API keys enable you to create secondary credentials so that you can send -requests on behalf of the user. Secondary credentials have -the same or lower access rights. - -For example, if you extract data from an {es} cluster on a daily -basis, you might create an API key tied to your credentials, -configure it with minimum access, -and then put the API credentials into a cron job. -Or, you might create API keys to automate ingestion of new data from -remote sources, without a live user interaction. - -You can create API keys from the {kib} Console. To view and invalidate -API keys, open the main menu, then click *Stack Management > API Keys*. - -[role="screenshot"] -image:user/security/api-keys/images/api-keys.png["API Keys UI"] - -[float] -[[api-keys-service]] -=== {es} API key service - -The {es} API key service is automatically enabled when you configure -{ref}/configuring-tls.html#tls-http[TLS on the HTTP interface]. -This ensures that clients are unable to send API keys in clear-text. - -When HTTPS connections are not enabled between {kib} and {es}, -you cannot create or manage API keys, and you get an error message. -For more information, see the -{ref}/security-api-create-api-key.html[{es} API key documentation], -or contact your system administrator. - -[float] -[[api-keys-security-privileges]] -=== Security privileges - -You must have the `manage_security`, `manage_api_key`, or the `manage_own_api_key` -cluster privileges to use API keys in {kib}. To manage roles, open the main menu, then click -*Stack Management > Roles*, or use the <<role-management-api, {kib} Role Management API>>. - - -[float] -[[create-api-key]] -=== Create an API key -You can {ref}/security-api-create-api-key.html[create an API key] from -the {kib} Console. This example shows how to create an API key -to authenticate to a <<api, Kibana API>>. - -[source,js] -POST /_security/api_key -{ - "name": "kibana_api_key" -} - -This creates an API key with the -name `kibana_api_key`. API key -names must be globally unique. -An expiration date is optional and follows -{ref}/common-options.html#time-units[{es} time unit format]. -When an expiration is not provided, the API key does not expire. - -The response should look something like this: - -[source,js] -{ - "id" : "XFcbCnIBnbwqt2o79G4q", - "name" : "kibana_api_key", - "api_key" : "FD6P5UA4QCWlZZQhYF3YGw" -} - -Now, you can use the API key to request {kib} roles. You'll need to send a request with a -`Authorization` header with a value having the prefix `ApiKey` followed by the credentials, -where credentials is the base64 encoding of `id` and `api_key` joined by a colon. For example: - -[source,js] -curl --location --request GET 'http://localhost:5601/api/security/role' \ ---header 'Content-Type: application/json;charset=UTF-8' \ ---header 'kbn-xsrf: true' \ ---header 'Authorization: ApiKey aVZlLUMzSUJuYndxdDJvN0k1bU46aGxlYUpNS2lTa2FKeVZua1FnY1VEdw==' \ - -[float] -[[view-api-keys]] -=== View and invalidate API keys -The *API Keys* feature in Kibana lists your API keys, including the name, date created, -and expiration date. If an API key expires, its status changes from `Active` to `Expired`. - -If you have `manage_security` or `manage_api_key` permissions, -you can view the API keys of all users, and see which API key was -created by which user in which realm. -If you have only the `manage_own_api_key` permission, you see only a list of your own keys. - -You can invalidate API keys individually or in bulk. -Invalidated keys are deleted in batch after seven days. - -[role="screenshot"] -image:user/security/api-keys/images/api-key-invalidate.png["API Keys invalidate"] - -You cannot modify an API key. If you need additional privileges, -you must create a new key with the desired configuration and invalidate the old key. diff --git a/docs/user/security/audit-logging.asciidoc b/docs/user/security/audit-logging.asciidoc deleted file mode 100644 index a7359af38c1c..000000000000 --- a/docs/user/security/audit-logging.asciidoc +++ /dev/null @@ -1,36 +0,0 @@ -[role="xpack"] -[[xpack-security-audit-logging]] -=== Audit logs - -You can enable auditing to keep track of security-related events such as -authorization success and failures. Logging these events enables you -to monitor {kib} for suspicious activity and provides evidence in the -event of an attack. - -Use the {kib} audit logs in conjunction with {es}'s -audit logging to get a holistic view of all security related events. -{kib} defers to {es}'s security model for authentication, data -index authorization, and features that are driven by cluster-wide privileges. -For more information on enabling audit logging in {es}, see -{ref}/auditing.html[Auditing security events]. - -[IMPORTANT] -============================================================================ -Audit logs are **disabled** by default. To enable this functionality, you -must set `xpack.security.audit.enabled` to `true` in `kibana.yml`. -============================================================================ - -Audit logging uses the standard {kib} logging output, which can be configured -in the `kibana.yml` and is discussed in <<settings>>. - -==== Audit event types - -When you are auditing security events, each request can generate -multiple audit events. The following is a list of the events that can be generated: - -|====== -| `saved_objects_authorization_success` | Logged when a user is authorized to access a saved - objects when using a role with <<kibana-privileges>> -| `saved_objects_authorization_failure` | Logged when a user isn't authorized to access a saved - objects when using a role with <<kibana-privileges>> -|====== diff --git a/docs/user/security/authentication/index.asciidoc b/docs/user/security/authentication/index.asciidoc deleted file mode 100644 index c88fa9750b3e..000000000000 --- a/docs/user/security/authentication/index.asciidoc +++ /dev/null @@ -1,317 +0,0 @@ -[role="xpack"] -[[kibana-authentication]] -=== Authentication in {kib} -++++ -<titleabbrev>Authentication</titleabbrev> -++++ - -{kib} supports the following authentication mechanisms: - -- <<basic-authentication>> -- <<token-authentication>> -- <<pki-authentication>> -- <<saml>> -- <<oidc>> -- <<kerberos>> -- <<http-authentication>> - -Enable multiple authentication mechanisms at the same time specifying a prioritized list of the authentication _providers_ (typically of various types) in the configuration. Providers are consulted in ascending order. Make sure each configured provider has a unique name (e.g. `basic1` or `saml1` in the configuration example) and `order` setting. In the event that two or more providers have the same name or `order`, {kib} will fail to start. - -When two or more providers are configured, you can choose the provider you want to use on the Login Selector UI. The order the providers appear is determined by the `order` setting. The appearance of the specific provider entry can be customized with the `description`, `hint`, and `icon` settings. - -TIP: To provide login instructions to users, use the `xpack.security.loginHelp` setting, which supports Markdown format. When you specify the `xpack.security.loginHelp` setting, the Login Selector UI displays a `Need help?` link that lets users access login help information. - -If you don't want a specific provider to show up at the Login Selector UI (e.g. to only support third-party initiated login) you can hide it with `showInSelector` setting set to `false`. However, in this case, the provider is presented in the provider chain and may be consulted during authentication based on its `order`. To disable the provider, use the `enabled` setting. - -TIP: The Login Selector UI can also be disabled or enabled with `xpack.security.authc.selector.enabled` setting. - -Here is how your `kibana.yml` and Login Selector UI can look like if you deal with multiple authentication providers: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.loginHelp: "**Help** info with a [link](...)" -xpack.security.authc.providers: - basic.basic1: - order: 0 - icon: "logoElasticsearch" - hint: "Typically for administrators" - saml.saml1: - order: 1 - realm: saml1 - description: "Log in with SSO" - icon: "https://my-company.xyz/saml-logo.svg" - saml.saml2: - order: 2 - realm: saml2 - showInSelector: false - kerberos.kerberos1: - order: 3 - enabled: false --------------------------------------------------------------------------------- - -[role="screenshot"] -image::user/security/images/kibana-login.png["Login Selector UI"] - -For more information, refer to <<authentication-security-settings, authentication security settings>>. - -[[basic-authentication]] -==== Basic authentication - -To successfully log in to {kib}, basic authentication requires a username and password. Basic authentication is enabled by default, and is based on the Native, LDAP, or Active Directory security realm that is provided by {es}. The basic authentication provider uses a {kib} provided login form, and supports authentication using the `Authorization` request header `Basic` scheme. - -NOTE: You can configure only one Basic provider per {kib} instance. - -For more information about basic authentication and built-in users, see -{ref}/setting-up-authentication.html[User authentication]. - -[[token-authentication]] -==== Token authentication - -Token authentication allows users to log in using the same {kib} provided login form as basic authentication, and is based on the Native security realm or LDAP security realm that is provided by {es}. The token authentication provider is built on {es} token APIs. - -Prior to configuring {kib}, ensure token support is enabled in {es}. See the {ref}/security-api-get-token.html[{es} token API] documentation for more information. - -To enable the token authentication provider in {kib}, set the following value in your `kibana.yml`: - -NOTE: You can configure only one Token provider per {kib} instance. - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - token.token1: - order: 0 --------------------------------------------------------------------------------- - -Switching to the token authentication provider from basic one will make {kib} to reject requests from applications like `curl` that usually use `Authorization` request header with the `Basic` scheme for authentication. If you still want to support such applications you'll have to either switch to using `Bearer` scheme with the tokens {ref}/security-api-get-token.html[created by {es} token API] or add `Basic` scheme to the list of supported schemes for the <<http-authentication,HTTP authentication>>. - -[[pki-authentication]] -==== Public key infrastructure (PKI) authentication - -[IMPORTANT] -============================================================================ -PKI authentication will not work if {kib} is hosted behind a TLS termination reverse proxy. In this configuration, {kib} does not have direct access to the client certificates and cannot authenticate the user. -============================================================================ - -PKI authentication allows users to log into {kib} using X.509 client certificates that must be presented while connecting to {kib}. The certificates must first be accepted for authentication on the {kib} TLS layer, and then they are further validated by an {es} PKI realm. The PKI authentication provider relies on the {es} {ref}/security-api-delegate-pki-authentication.html[Delegate PKI authentication API] to exchange X.509 client certificates to access tokens. All subsequent requests to {es} APIs on behalf of users will be authenticated using these access tokens. - -Prior to configuring {kib}, ensure that the PKI realm is enabled in {es} and configured to permit delegation. See {ref}/configuring-pki-realm.html[Configuring a PKI realm] for more information. - -To enable the PKI authentication provider in {kib}, you must first <<configuring-tls,configure {kib} to encrypt communications between the browser and {kib} server>>. You must also enable TLS client authentication and include the certificate authority (CA) used to sign client certificates into a list of CAs trusted by {kib} in your `kibana.yml`: - -NOTE: You can configure only one PKI provider per {kib} instance. - -[source,yaml] --------------------------------------------------------------------------------- -server.ssl.certificateAuthorities: /path/to/your/cacert.pem -server.ssl.clientAuthentication: required -xpack.security.authc.providers: - pki.pki1: - order: 0 --------------------------------------------------------------------------------- - -NOTE: Trusted CAs can also be specified in a PKCS #12 keystore bundled with your {kib} server certificate/key using -`server.ssl.keystore.path` or in a separate trust store using `server.ssl.truststore.path`. - -You can also configure both PKI and basic authentication for the same {kib} instance: - -[source,yaml] --------------------------------------------------------------------------------- -server.ssl.clientAuthentication: optional -xpack.security.authc.providers: - pki.pki1: - order: 0 - basic.basic1: - order: 1 --------------------------------------------------------------------------------- - -Note that with `server.ssl.clientAuthentication` set to `required`, users are asked to provide a valid client certificate, even if they want to authenticate with username and password. Depending on the security policies, it may or may not be desired. If not, `server.ssl.clientAuthentication` can be set to `optional`. In this case, {kib} still requests a client certificate, but the client won't be required to present one. The `optional` client authentication mode might also be needed in other cases, for example, when PKI authentication is used in conjunction with Reporting. - -[[saml]] -==== SAML single sign-on - -SAML authentication allows users to log in to {kib} with an external Identity Provider, such as Okta or Auth0. Make sure that SAML is enabled and configured in {es} before setting it up in {kib}. See {ref}/saml-guide.html[Configuring SAML single sign-on on the Elastic Stack]. - -Enable the SAML authentication specifying which SAML realm in {es} should be used: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - saml.saml1: - order: 0 - realm: saml1 --------------------------------------------------------------------------------- - -You can log in to {kib} via SAML Single Sign-On by navigating directly to the {kib} URL. If you aren't authenticated, you are redirected to the Identity Provider for login. Most Identity Providers maintain a long-lived session. If you log in to a different application using the same Identity Provider in the same browser, you are automatically authenticated. An exception is if {es} or the Identity Provider is configured to force you to re-authenticate. This login scenario is called _Service Provider initiated login_. - -It's also possible to configure multiple SAML authentication providers at the same time. In this case, you will need to choose which provider to use for login at the Login Selector UI: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - saml.saml1: - order: 0 - realm: saml1 - description: "Log in with Elastic" - saml.saml2: - order: 1 - realm: saml2 - description: "Log in with Auth0" --------------------------------------------------------------------------------- - -[float] -===== SAML and basic authentication - -You can also configure both SAML and basic authentication for the same {kib} instance. This might be the case for {kib} or {es} admins whose accounts aren't linked to the Single Sign-On users database: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - saml.saml1: - order: 0 - realm: saml1 - description: "Log in with Elastic" - basic.basic1: - order: 1 --------------------------------------------------------------------------------- - -Basic authentication is supported _only_ if the `basic` authentication provider is explicitly declared in `xpack.security.authc.providers` setting, in addition to `saml`. - -To support basic authentication for the applications like `curl` or when the `Authorization: Basic base64(username:password)` HTTP header is included in the request (for example, by reverse proxy), add `Basic` scheme to the list of supported schemes for the <<http-authentication,HTTP authentication>>. - -[[oidc]] -==== OpenID Connect single sign-on - -Similar to SAML, authentication with OpenID Connect allows users to log in to {kib} using an OpenID Connect Provider such as Google, or Okta. OpenID Connect -should also be configured in {es}. For more details, see {ref}/oidc-guide.html[Configuring single sign-on to the {stack} using OpenID Connect]. - -Enable the OpenID Connect authentication specifying which OpenID Connect realm in {es} should be used: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - oidc.oidc1: - order: 0 - realm: oidc1 --------------------------------------------------------------------------------- - -If you want to use Third Party initiated Single Sign-On, configure your OpenID Provider to use `/api/security/oidc/initiate_login` as `Initiate Login URI`. - -It's also possible to configure multiple OpenID Connect authentication providers at the same time. In this case, you need to choose which provider to use for login at the Login Selector UI: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - oidc.oidc1: - order: 0 - realm: oidc1 - description: "Log in with Elastic" - oidc.oidc2: - order: 1 - realm: oidc2 - description: "Log in with Auth0" --------------------------------------------------------------------------------- - -[float] -===== OpenID Connect and basic authentication - -You can also configure both OpenID Connect and basic authentication for the same {kib} instance. This might be the case for {kib} or {es} admins whose accounts aren't linked to the Single Sign-On users database: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.providers: - oidc.oidc1: - order: 0 - realm: oidc1 - description: "Log in with Elastic" - basic.basic1: - order: 1 --------------------------------------------------------------------------------- - -Basic authentication is supported _only_ if the `basic` authentication provider is explicitly declared in `xpack.security.authc.providers` setting, in addition to `oidc`. - -To support basic authentication for the applications like `curl` or when the `Authorization: Basic base64(username:password)` HTTP header is included in the request (for example, by reverse proxy), add `Basic` scheme to the list of supported schemes for the <<http-authentication,HTTP authentication>>. - -[float] -==== Single sign-on provider details - -The following sections apply both to <<saml>> and <<oidc>> - -[float] -===== Access and refresh tokens - -Once the user logs in to {kib} Single Sign-On, either using SAML or OpenID Connect, {es} issues access and refresh tokens -that {kib} encrypts and stores as a part of its own session. This way, the user isn't redirected to the Identity Provider -for every request that requires authentication. It also means that the {kib} session depends on the <<security-session-and-cookie-settings, -`xpack.security.session.idleTimeout` and `xpack.security.session.lifespan`>> settings, and the user is automatically logged -out if the session expires. An access token that is stored in the session can expire, in which case {kib} will -automatically renew it with a one-time-use refresh token and store it in the same session. - -{kib} can only determine if an access token has expired if it receives a request that requires authentication. If both access -and refresh tokens have already expired (for example, after 24 hours of inactivity), {kib} initiates a new "handshake" and -redirects the user to the external authentication provider (SAML Identity Provider or OpenID Connect Provider) -Depending on {es} and the external authentication provider configuration, the user might be asked to re-enter credentials. - -If {kib} can't redirect the user to the external authentication provider (for example, for AJAX/XHR requests), an error -indicates that both access and refresh tokens are expired. Reloading the current {kib} page fixes the error. - -[float] -===== Local and global logout - -During logout, both the {kib} session and {es} access/refresh token pair are invalidated. This is known as "local" logout. - -{kib} can also initiate a "global" logout or _Single Logout_ if it's supported by the external authentication provider and not -explicitly disabled by {es}. In this case, the user is redirected to the external authentication provider for log out of -all applications associated with the active provider session. - -[[kerberos]] -==== Kerberos single sign-on - -As with the previous SSOs, make sure that you have configured {es} first accordingly. See {ref}/kerberos-realm.html[Kerberos authentication]. - -Next, to enable Kerberos in {kib}, you will need to enable the Kerberos authentication provider in the `kibana.yml` configuration file, as follows: - -NOTE: You can configure only one Kerberos provider per {kib} instance. - -[source,yaml] ------------------------------------------------ -xpack.security.authc.providers: - kerberos.kerberos1: - order: 0 ------------------------------------------------ - -You may want to be able to authenticate with the basic authentication provider as a secondary mechanism or while you are setting up Kerberos for the stack: - -[source,yaml] ------------------------------------------------ -xpack.security.authc.providers: - kerberos.kerberos1: - order: 0 - description: "Log in with Kerberos" - basic.basic1: - order: 1 ------------------------------------------------ - -Kibana uses SPNEGO, which wraps the Kerberos protocol for use with HTTP, extending it to web applications. At the end of the Kerberos handshake, Kibana will forward the service ticket to Elasticsearch. Elasticsearch will unpack it and it will respond with an access and refresh token which are then used for subsequent authentication. - -[[http-authentication]] -==== HTTP authentication - -[IMPORTANT] -============================================================================ -Be very careful when you modify HTTP authentication settings as it may indirectly affect other important {kib} features that implicitly rely on HTTP authentication (e.g. Reporting). -============================================================================ - -HTTP protocol provides a simple authentication framework that can be used by a client to provide authentication information. It uses a case-insensitive token as a means to identify the authentication scheme, followed by additional information necessary for achieving authentication via that scheme. - -This type of authentication is usually useful for machine-to-machine interaction that requires authentication and where human intervention is not desired or just infeasible. There are a number of use cases when HTTP authentication support comes in handy for {kib} users as well. - -By default {kib} supports <<api-keys, `ApiKey`>> authentication scheme _and_ any scheme supported by the currently enabled authentication provider. For example, `Basic` authentication scheme is automatically supported when basic authentication provider is enabled, or `Bearer` scheme when any of the token based authentication providers is enabled (Token, SAML, OpenID Connect, PKI or Kerberos). But it's also possible to add support for any other authentication scheme in the `kibana.yml` configuration file, as follows: - -NOTE: Don't forget to explicitly specify default `apikey` scheme when you just want to add a new one to the list. - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.http.schemes: [apikey, basic, something-custom] --------------------------------------------------------------------------------- - -With this configuration, you can send requests to {kib} with the `Authorization` header using `ApiKey`, `Basic` or `Something-Custom` HTTP schemes (case insensitive). Under the hood, {kib} relays this header to {es}, then {es} authenticates the request using the credentials in the header. diff --git a/docs/user/security/authorization/index.asciidoc b/docs/user/security/authorization/index.asciidoc deleted file mode 100644 index 780927b2d5df..000000000000 --- a/docs/user/security/authorization/index.asciidoc +++ /dev/null @@ -1,120 +0,0 @@ -[role="xpack"] -[[xpack-security-authorization]] - -=== Granting access to {kib} -The Elastic Stack comes with the `kibana_admin` {ref}/built-in-roles.html[built-in role], which you can use to grant access to all {kib} features in all spaces. To grant users access to a subset of spaces or features, you can create a custom role that grants the desired {kib} privileges. - -When you assign a user multiple roles, the user receives a union of the roles’ privileges. Therefore, assigning the `kibana_admin` role in addition to a custom role that grants {kib} privileges is ineffective because `kibana_admin` has access to all the features in all spaces. - -NOTE: When running multiple tenants of Kibana by changing the `kibana.index` in your `kibana.yml`, -you cannot use `kibana_admin` to grant access. You must create custom roles that authorize the user for that specific tenant. Although multi-tenant installations are supported, the recommended approach to securing access to Kibana segments is to grant users access to specific spaces. - -[role="xpack"] -[[kibana-role-management]] -=== {kib} role management - -To create a role that grants {kib} privileges, open the menu, then click *Stack Management > Roles* and click **Create role**. - -[float] -==== Required permissions - -The `manage_security` cluster privilege is required to access role management. - -[[adding_kibana_privileges]] -==== Adding {kib} privileges - -To assign {kib} privileges to the role, click **Add {kib} privilege** in the {kib} section. - -[role="screenshot"] -image::user/security/images/add-space-privileges.png[Add {kib} privileges] - -Open the **Spaces** selection control to specify whether to grant the role access to all spaces *** Global (all spaces)** or one or more individual spaces. If you select *** Global (all spaces)**, you can’t select individual spaces until you clear your selection. - -Use the **Privilege** menu to grant access to features. The default is **Custom**, which you can use to grant access to individual features. Otherwise, you can grant read and write access to all current and future features by selecting **All**, or grant read access to all current and future features by selecting **Read**. - -When using the **Customize by feature** option, you can choose either **All**, **Read** or **None** for access to each feature. As new features are added to {kib}, roles that use the custom option do not automatically get access to the new features. You must manually update the roles. - -NOTE: *{stack-monitor-app}* relies on built-in roles to grant access. When a -user is assigned the appropriate roles, the *{stack-monitor-app}* application is -available; otherwise, it is not visible. - -To apply your changes, click **Add {kib} privilege**. The privilege shows up under the {kib} privileges section of the role. - - -[role="screenshot"] -image::user/security/images/create-space-privilege.png[Add {kib} privilege] - -==== Feature availability - -Features are available to users when their roles grant access to the features, **and** those features are visible in their current space. The following matrix explains when features are available to users when controlling access via <<spaces-managing, spaces>> and role-based access control: - -|=== -|**Spaces config** |**Role config** |**Result** - -|Feature hidden -|Feature disabled -|Feature not available - -|Feature hidden -|Feature enabled -|Feature not available - -|Feature visible -|Feature disabled -|Feature not available - -|Feature visible -|Feature enabled -|**Feature available** -|=== - -==== Assigning different privileges to different spaces - -Using the same role, it’s possible to assign different privileges to different spaces. After you’ve added privileges, click **Add {kib} privilege**. If you’ve already added privileges for either *** Global (all spaces)** or an individual space, you will not be able to select these in the **Spaces** selection control. - -Additionally, if you’ve already assigned privileges at *** Global (all spaces)**, you are only able to assign additional privileges to individual spaces. Similar to the behavior of multiple roles granting the union of all privileges, {kib} privileges are also a union. If you’ve already granted the user the **All** privilege at *** Global (all spaces)**, you’re not able to restrict the role to only the **Read** privilege at an individual space. - - -==== Privilege summary - -To view a summary of the privileges granted, click **View privilege summary**. - -[role="screenshot"] -image::user/security/images/view-privilege-summary.png[View privilege summary] - -==== Example 1: Grant all access to Dashboard at an individual space - -. Click **Add {kib} privilege**. -. For **Spaces**, select an individual space. -. For **Privilege**, leave the default selection of **Custom**. -. For the Dashboard feature, select **All** -. Click **Add {kib} privilege**. - -[role="screenshot"] -image::user/security/images/privilege-example-1.png[Privilege example 1] - -==== Example 2: Grant all access to one space and read access to another - -. Click **Add {kib} privilege**. -. For **Spaces**, select the first space. -. For **Privilege**, select **All**. -. Click **Add {kib} privilege**. -. For **Spaces**, select the second space. -. For **Privilege**, select **Read**. -. Click **Add {kib} privilege**. - -[role="screenshot"] -image::user/security/images/privilege-example-2.png[Privilege example 2] - -==== Example 3: Grant read access to all spaces and write access to an individual space - -. Click **Add {kib} privilege**. -. For **Spaces**, select *** Global (all spaces)**. -. For **Privilege**, select **Read**. -. Click **Add {kib} privilege**. -. For **Spaces**, select the individual space. -. For **Privilege**, select **All**. -. Click **Add {kib} privilege**. - -[role="screenshot"] -image::user/security/images/privilege-example-3.png[Privilege example 3] diff --git a/docs/user/security/authorization/kibana-privileges.asciidoc b/docs/user/security/authorization/kibana-privileges.asciidoc deleted file mode 100644 index 21fcb9bdccb8..000000000000 --- a/docs/user/security/authorization/kibana-privileges.asciidoc +++ /dev/null @@ -1,76 +0,0 @@ -[role="xpack"] -[[kibana-privileges]] -=== Kibana privileges - -{kib} privileges grant users access to features within {kib}. Roles have privileges to determine whether users have write or read access. - -==== Base privileges -Assigning a base privilege grants access to all available features in Kibana (Discover, Visualize, Dashboard, and so on). -[[kibana-privileges-all]] -`all`:: Grants full read-write access. -`read`:: Grants read-only access. - -===== Assigning base privileges -From the role management screen: - -[role="screenshot"] -image::user/security/images/assign_base_privilege.png[Assign base privilege] - -From the <<role-management-api-put, role management API>>: -[source,js] --------------------------------------------------- -PUT /api/security/role/my_kibana_role -{ - "elasticsearch": { - "cluster" : [ ], - "indices" : [ ] - }, - "kibana": [ - { - "base": ["all"], - "feature": {}, - "spaces": ["marketing"] - } - ] -} --------------------------------------------------- - - -[[kibana-feature-privileges]] -==== Feature privileges -Assigning a feature privilege grants access to a specific feature. - -`all`:: Grants full read-write access. -`read`:: Grants read-only access. - -===== Sub-feature privileges -Some features allow for finer access control than the `all` and `read` privileges. -This additional level of control is available in the Gold subscription level and higher. - -===== Assigning feature privileges -From the role management screen: - -[role="screenshot"] -image::user/security/images/assign_feature_privilege.png[Assign feature privilege] - -From the <<role-management-api-put, role management API>>: -[source,js] --------------------------------------------------- -PUT /api/security/role/my_kibana_role -{ - "elasticsearch": { - "cluster" : [ ], - "indices" : [ ] - }, - "kibana": [ - { - "base": [], - "feature": { - "visualize": ["all"], - "dashboard": ["read", "url_create"] - }, - "spaces": ["marketing"] - } - ] -} --------------------------------------------------- diff --git a/docs/user/security/images/access-agreement.png b/docs/user/security/images/access-agreement.png deleted file mode 100644 index ecb6122875cb..000000000000 Binary files a/docs/user/security/images/access-agreement.png and /dev/null differ diff --git a/docs/user/security/images/add-space-privileges.png b/docs/user/security/images/add-space-privileges.png deleted file mode 100644 index d2fcbe76c1a0..000000000000 Binary files a/docs/user/security/images/add-space-privileges.png and /dev/null differ diff --git a/docs/user/security/images/assign_base_privilege.png b/docs/user/security/images/assign_base_privilege.png deleted file mode 100644 index 93bed0de0555..000000000000 Binary files a/docs/user/security/images/assign_base_privilege.png and /dev/null differ diff --git a/docs/user/security/images/assign_feature_privilege.png b/docs/user/security/images/assign_feature_privilege.png deleted file mode 100644 index d42ec208325a..000000000000 Binary files a/docs/user/security/images/assign_feature_privilege.png and /dev/null differ diff --git a/docs/user/security/images/create-space-privilege.png b/docs/user/security/images/create-space-privilege.png deleted file mode 100755 index 2e6cc299bfc5..000000000000 Binary files a/docs/user/security/images/create-space-privilege.png and /dev/null differ diff --git a/docs/user/security/images/kibana-login.png b/docs/user/security/images/kibana-login.png deleted file mode 100644 index 813f2c703908..000000000000 Binary files a/docs/user/security/images/kibana-login.png and /dev/null differ diff --git a/docs/user/security/images/mutual-tls-role-mapping.png b/docs/user/security/images/mutual-tls-role-mapping.png deleted file mode 100644 index e870efe5d5b7..000000000000 Binary files a/docs/user/security/images/mutual-tls-role-mapping.png and /dev/null differ diff --git a/docs/user/security/images/privilege-example-1.png b/docs/user/security/images/privilege-example-1.png deleted file mode 100644 index b8fb4d15b8f7..000000000000 Binary files a/docs/user/security/images/privilege-example-1.png and /dev/null differ diff --git a/docs/user/security/images/privilege-example-2.png b/docs/user/security/images/privilege-example-2.png deleted file mode 100755 index 2530ca5da36e..000000000000 Binary files a/docs/user/security/images/privilege-example-2.png and /dev/null differ diff --git a/docs/user/security/images/privilege-example-3.png b/docs/user/security/images/privilege-example-3.png deleted file mode 100755 index c2e5db3a18e2..000000000000 Binary files a/docs/user/security/images/privilege-example-3.png and /dev/null differ diff --git a/docs/user/security/images/reporting-privileges-example.png b/docs/user/security/images/reporting-privileges-example.png deleted file mode 100644 index d108fe6634fa..000000000000 Binary files a/docs/user/security/images/reporting-privileges-example.png and /dev/null differ diff --git a/docs/user/security/images/role-index-privilege.png b/docs/user/security/images/role-index-privilege.png deleted file mode 100644 index 1dc1ae640e3b..000000000000 Binary files a/docs/user/security/images/role-index-privilege.png and /dev/null differ diff --git a/docs/user/security/images/role-management.png b/docs/user/security/images/role-management.png deleted file mode 100644 index 29efdd85c4df..000000000000 Binary files a/docs/user/security/images/role-management.png and /dev/null differ diff --git a/docs/user/security/images/role-new-user.png b/docs/user/security/images/role-new-user.png deleted file mode 100644 index c882eeea42d6..000000000000 Binary files a/docs/user/security/images/role-new-user.png and /dev/null differ diff --git a/docs/user/security/images/role-space-visualization.png b/docs/user/security/images/role-space-visualization.png deleted file mode 100644 index 0de94d81065f..000000000000 Binary files a/docs/user/security/images/role-space-visualization.png and /dev/null differ diff --git a/docs/user/security/images/view-privilege-summary.png b/docs/user/security/images/view-privilege-summary.png deleted file mode 100644 index 7d2f3018d7de..000000000000 Binary files a/docs/user/security/images/view-privilege-summary.png and /dev/null differ diff --git a/docs/user/security/index.asciidoc b/docs/user/security/index.asciidoc deleted file mode 100644 index f84e9de87c73..000000000000 --- a/docs/user/security/index.asciidoc +++ /dev/null @@ -1,49 +0,0 @@ -[role="xpack"] -[[xpack-security]] -== Security - -The {stack} {security-features} enable you to easily secure a cluster. With -security, you can -password-protect your data as well as implement more advanced security measures -such as encrypting communications, role-based access control, IP filtering, and -auditing. For more information, see -{ref}/secure-cluster.html[Secure a cluster] and -<<using-kibana-with-security,Configuring Security in {kib}>>. - -NOTE: There are security limitations that affect {kib}. For more information, refer to {ref}/security-limitations.html[Security]. - -[float] -=== Required permissions - -The `manage_security` cluster privilege is required to access all Security features. - - -[float] -=== Users - -To create and manage users, open the main menu, then click *Stack Management > Users*. -You can also change their passwords and roles. For more information about -authentication and built-in users, see -{ref}/setting-up-authentication.html[Setting up user authentication]. - -[float] -=== Roles - -To manage roles, open the main menu, then click *Stack Management > Roles*, or use -the <<role-management-api>>. For more information on configuring roles for {kib}, see <<xpack-security-authorization, Granting access to {kib}>>. - -For a more holistic overview of configuring roles for the entire stack, -see {ref}/authorization.html[User authorization]. - -[NOTE] -============================================================================ -Managing roles that grant <<kibana-privileges>> using the {es} -{ref}/security-api.html#security-role-apis[role management APIs] is not supported. Doing so will likely -cause Kibana's authorization to behave unexpectedly. -============================================================================ - -include::authorization/index.asciidoc[] -include::authorization/kibana-privileges.asciidoc[] -include::api-keys/index.asciidoc[] -include::role-mappings/index.asciidoc[] -include::rbac_tutorial.asciidoc[] diff --git a/docs/user/security/rbac_tutorial.asciidoc b/docs/user/security/rbac_tutorial.asciidoc deleted file mode 100644 index 2088110f6de2..000000000000 --- a/docs/user/security/rbac_tutorial.asciidoc +++ /dev/null @@ -1,103 +0,0 @@ -[[space-rbac-tutorial]] -=== Tutorial: Use role-based access control to customize Kibana spaces - -With role-based access control (RBAC), you can provide users access to data, tools, -and Kibana spaces. In this tutorial, you will learn how to configure roles -that provide the right users with the right access to the data, tools, and -Kibana spaces. - -[float] -==== Scenario - -Our user is a web developer working on a bank's -online mortgage service. The web developer has these -three requirements: - -* Have access to the data for that service -* Build visualizations and dashboards -* Monitor the performance of the system - -You'll provide the web developer with the access and privileges to get the job done. - -[float] -==== Prerequisites - -To complete this tutorial, you'll need the following: - -* **Administrative privileges**: You must have a role that grants privileges to create a space, role, and user. This is any role which grants the `manage_security` cluster privilege. By default, the `superuser` role provides this access. See the {ref}/built-in-roles.html[built-in] roles. -* **A space**: In this tutorial, use `Dev Mortgage` as the space -name. See <<spaces-managing, spaces management>> for -details on creating a space. -* **Data**: You can use <<get-started, sample data>> or -live data. In the following steps, Filebeat and Metricbeat data are used. - -[float] -==== Steps - -With the requirements in mind, here are the steps that you will work -through in this tutorial: - -* Create a role named `mortgage-developer` -* Give the role permission to access the data in the relevant indices -* Give the role permission to create visualizations and dashboards -* Create the web developer's user account with the proper roles - -[float] -==== Create a role - -Open the main menu, then click *Stack Management > Roles* -for an overview of your roles. This view provides actions -for you to create, edit, and delete roles. - -[role="screenshot"] -image::security/images/role-management.png["Role management"] - - -You can create as many roles as you like. Click *Create role* and -provide a name. Use `dev-mortgage` because this role is for a developer -working on the bank's mortgage application. - - -[float] -==== Give the role permission to access the data - -Access to data in indices is an index-level privilege, so in -*Index privileges*, add lines for the indices that contain the -data for this role. Two privileges are required: `read` and -`view_index_metadata`. All privileges are detailed in the -https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html[security privileges] documentation. - -In the screenshots, Filebeat and Metricbeat data is used, but you -should use the index patterns for your indices. - -[role="screenshot"] -image::security/images/role-index-privilege.png["Index privilege"] - -[float] -==== Give the role permission to create visualizations and dashboards - -By default, roles do not give Kibana privileges. Click **Add space -privilege** and associate this role with the `Dev Mortgage` space. - -To enable users with the `dev-mortgage` role to create visualizations -and dashboards, click *All* for *Visualize* and *Dashboard*. Also -assign *All* for *Discover* because it is common for developers -to create saved searches while designing visualizations. - -[role="screenshot"] -image::security/images/role-space-visualization.png["Associate space"] - -[float] -==== Create the developer user account with the proper roles - -. Open the main menu, then click *Stack Management > Users*. -. Click **Create user**, then give the user the `dev-mortgage` -and `monitoring-user` roles, which are required for *Stack Monitoring* users. - -[role="screenshot"] -image::security/images/role-new-user.png["Developer user"] - -Finally, have the developer log in and access the Dev Mortgage space -and create a new visualization. - -NOTE: If the user is assigned to only one space, they will automatically enter that space on login. diff --git a/docs/user/security/reporting.asciidoc b/docs/user/security/reporting.asciidoc deleted file mode 100644 index e69643ef9712..000000000000 --- a/docs/user/security/reporting.asciidoc +++ /dev/null @@ -1,162 +0,0 @@ -[role="xpack"] -[[secure-reporting]] -=== Reporting and security - -Reporting operates by creating and updating documents in {es} in response to -user actions in {kib}. - -To use {report-features} with {security-features} enabled, you need to -<<using-kibana-with-security,configure security in {kib}>>. -If you are automatically generating reports with -{ref}/xpack-alerting.html[{watcher}], you also need to configure {watcher} -to trust the {kib} server's certificate. -//// -For more information, see -<<securing-reporting>>. -//// - -[[reporting-app-users]] -To enable users to generate reports, you must assign them the built-in `reporting_user` -role. Users will also need the appropriate <<kibana-privileges, {kib} privileges>> to access the objects -to report on and the {es} indices. - -[float] -[[reporting-roles-management-ui]] -=== If you are using the `native` realm - -To assign roles, use the *Roles* UI or <<reporting-roles-user-api, user API>>. -This example shows how to use *Roles* page to create a user who has a custom role and the -`reporting_user` role. - -. Open the main menu, then click *Stack Management > Roles*. - -. Click *Create role*, then give the role a name, for example, `custom_reporting_user`. - -. Specify the indices and privileges. -+ -Access to data is an index-level privilege, so in *Create role*, -add a line for each index that contains the data for the report and give each -index `read` and `view_index_metadata` privileges. -For more information, see {ref}/security-privileges.html[Security privileges]. -+ -[role="screenshot"] -image::user/security/images/reporting-privileges-example.png["Reporting privileges"] - -. Add space privileges. -+ -Reporting users typically save searches, create -visualizations, and build dashboards. They require a space -that provides read and write privileges in -*Discover* and *Dashboard*. - -. Save your new role. - -. Open the main menu, then click *Stack Management > Users*, add a new user, and assign the user the built-in -`reporting_user` role and your new custom role, `custom_reporting_user`. - -[float] -==== With a custom index - -If you are using Reporting with a custom index, -the `xpack.reporting.index` setting should begin -with `.reporting-*`. The default {kib} system user has -`all` privileges against the `.reporting-*` pattern of indices. - -[source,js] -xpack.reporting.index: '.reporting-custom-index' - -If you use a different pattern for the `xpack.reporting.index` setting, -you must create a custom role with appropriate access to the index, similar -to the following: - -. Open the main menu, then click *Stack Management > Roles*. -. Click *Create role*, then name the role `custom-reporting-user`. -. Specify the custom index and assign it the `all` index privilege. -. Open the main menu, then click *Stack Management > Users* and create a new user with -the `kibana_system` role and the `custom-reporting-user` role. -. Configure {kib} to use the new account: -[source,js] -elasticsearch.username: 'custom_kibana_system' - -[float] -[[reporting-roles-user-api]] -==== With the user API -This example uses the {ref}/security-api-put-user.html[user API] to create a user who has the -`reporting_user` role and the `kibana_admin` role: - -[source, sh] ---------------------------------------------------------------- -POST /_security/user/reporter -{ - "password" : "x-pack-test-password", - "roles" : ["kibana_admin", "reporting_user"], - "full_name" : "Reporting User" -} ---------------------------------------------------------------- - -[float] -=== If you are using an external identity provider - -If you are using an external identity provider, such as -LDAP or Active Directory, you can either assign -roles on a per user basis, or assign roles to groups of users. By default, role -mappings are configured in -{ref}/mapping-roles.html[`config/role_mapping.yml`]. -For example, the following snippet assigns the user named Bill Murray the -`kibana_admin` and `reporting_user` roles: - -[source,yaml] --------------------------------------------------------------------------------- -kibana_admin: - - "cn=Bill Murray,dc=example,dc=com" -reporting_user: - - "cn=Bill Murray,dc=example,dc=com" --------------------------------------------------------------------------------- - -[role="xpack"] -[[securing-reporting]] -=== Secure the reporting endpoints - -In a production environment, you should restrict access to -the reporting endpoints to authorized users. This requires that you: - -. Enable {stack-security-features} on your {es} cluster. For more information, -see {ref}/security-getting-started.html[Getting started with security]. -. Configure TLS/SSL encryption for the {kib} server. For more information, see -<<configuring-tls>>. -. Specify the {kib} server's CA certificate chain in `elasticsearch.yml`: -+ --- -If you are using your own CA to sign the {kib} server certificate, then you need -to specify the CA certificate chain in {es} to properly establish trust in TLS -connections between {watcher} and {kib}. If your CA certificate chain is -contained in a PKCS #12 trust store, specify it like so: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.http.ssl.truststore.path: "/path/to/your/truststore.p12" -xpack.http.ssl.truststore.type: "PKCS12" -xpack.http.ssl.truststore.password: "optional decryption password" --------------------------------------------------------------------------------- - -Otherwise, if your CA certificate chain is in PEM format, specify it like so: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.http.ssl.certificate_authorities: ["/path/to/your/cacert1.pem", "/path/to/your/cacert2.pem"] --------------------------------------------------------------------------------- - -For more information, see {ref}/notification-settings.html#ssl-notification-settings[the {watcher} HTTP TLS/SSL Settings]. --- - -. Add one or more users who have the permissions -necessary to use {kib} and {report-features}. For more information, see -<<secure-reporting>>. - -Once you've enabled SSL for {kib}, all requests to the reporting endpoints -must include valid credentials. For example, see the following page which -includes a watch that submits requests as the built-in `elastic` user: -<<automating-report-generation>>. - -For more information about configuring watches, see -{ref}/how-watcher-works.html[How {watcher} works]. diff --git a/docs/user/security/role-mappings/images/role-mappings-create-step-1.png b/docs/user/security/role-mappings/images/role-mappings-create-step-1.png deleted file mode 100644 index 76aee8fd85b6..000000000000 Binary files a/docs/user/security/role-mappings/images/role-mappings-create-step-1.png and /dev/null differ diff --git a/docs/user/security/role-mappings/images/role-mappings-create-step-2.gif b/docs/user/security/role-mappings/images/role-mappings-create-step-2.gif deleted file mode 100644 index c4a982d96c36..000000000000 Binary files a/docs/user/security/role-mappings/images/role-mappings-create-step-2.gif and /dev/null differ diff --git a/docs/user/security/role-mappings/images/role-mappings-grid.png b/docs/user/security/role-mappings/images/role-mappings-grid.png deleted file mode 100644 index f33cd7a3652b..000000000000 Binary files a/docs/user/security/role-mappings/images/role-mappings-grid.png and /dev/null differ diff --git a/docs/user/security/role-mappings/index.asciidoc b/docs/user/security/role-mappings/index.asciidoc deleted file mode 100644 index ca3ca9a68689..000000000000 --- a/docs/user/security/role-mappings/index.asciidoc +++ /dev/null @@ -1,57 +0,0 @@ -[role="xpack"] -[[role-mappings]] -=== Role mappings - -Role mappings allow you to describe which roles to assign to your users -using a set of rules. Role mappings are required when authenticating via -an external identity provider, such as Active Directory, Kerberos, PKI, OIDC, -or SAML. - -Role mappings have no effect for users inside the `native` or `file` realms. - -To manage your role mappings, open the main menu, then click *Stack Management > Role Mappings*. - -With *Role mappings*, you can: - -* View your configured role mappings -* Create/Edit/Delete role mappings - -[role="screenshot"] -image:user/security/role-mappings/images/role-mappings-grid.png["Role mappings"] - -[float] -==== Required permissions - -The `manage_security` cluster privilege is required to manage Role Mappings. - - -[float] -=== Create a role mapping - -. Open the main menu, then click *Stack Management > Role Mappings*. -. Click *Create role mapping*. -. Give your role mapping a unique name, and choose which roles you wish to assign to your users. -+ -If you need more flexibility, you can use {ref}/security-api-put-role-mapping.html#_role_templates[role templates] instead. -. Define the rules describing which users should receive the roles you defined. Rules can optionally grouped and nested, allowing for sophisticated logic to suite complex requirements. -. View the {ref}/role-mapping-resources.html[role mapping resources for an overview of the allowed rule types]. - - -[float] -=== Example - -Let's create a `sales-users` role mapping, which assigns a `sales` role to users whose username -starts with `sls_`, *or* belongs to the `executive` group. - -First, we give the role mapping a name, and assign the `sales` role: - -[role="screenshot"] -image:user/security/role-mappings/images/role-mappings-create-step-1.png["Create role mapping, step 1"] - -Next, we define the two rules, making sure to set the group to *Any are true*: - -[role="screenshot"] -image:user/security/role-mappings/images/role-mappings-create-step-2.gif["Create role mapping, step 2"] - -Click *Save role mapping* once you're finished. - diff --git a/docs/user/security/secure-saved-objects.asciidoc b/docs/user/security/secure-saved-objects.asciidoc deleted file mode 100644 index 3b15a576500f..000000000000 --- a/docs/user/security/secure-saved-objects.asciidoc +++ /dev/null @@ -1,47 +0,0 @@ -[role="xpack"] -[[xpack-security-secure-saved-objects]] -=== Secure saved objects - -{kib} stores entities such as dashboards, visualizations, alerts, actions, and advanced settings as saved objects, which are kept in a dedicated, internal {es} index. If such an object includes sensitive information, for example a PagerDuty integration key or email server credentials used by the alert action, {kib} encrypts it and makes sure it cannot be accidentally leaked or tampered with. - -Encrypting sensitive information means that a malicious party with access to the {kib} internal indices won't be able to extract that information without also knowing the encryption key. - -Example `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.encryptedSavedObjects: - encryptionKey: "min-32-byte-long-strong-encryption-key" --------------------------------------------------------------------------------- - -[IMPORTANT] -============================================================================ -If you don't specify an encryption key, {kib} automatically generates a random key at startup. Every time you restart {kib}, it uses a new ephemeral encryption key and is unable to decrypt saved objects encrypted with another key. To prevent data loss, {kib} might disable features that rely on this encryption until you explicitly set an encryption key. -============================================================================ - -[[encryption-key-rotation]] -==== Encryption key rotation - -Many policies and best practices stipulate that encryption keys should be periodically rotated to decrease the amount of content encrypted with one key and therefore limit the potential damage if the key is compromised. {kib} allows you to rotate encryption keys whenever there is a need. - -When you change an encryption key, be sure to keep the old one for some time. Although {kib} only uses a new encryption key to encrypt all new and updated data, it still may need the old one to decrypt data that was encrypted using the old key. It's possible to have multiple old keys used only for decryption. {kib} doesn't automatically re-encrypt existing saved objects with the new encryption key. Re-encryption only happens when you update existing object or use the <<saved-objects-api-rotate-encryption-key, rotate encryption key API>>. - -Here is how your `kibana.yml` might look if you use key rotation functionality: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.encryptedSavedObjects: - encryptionKey: "min-32-byte-long-NEW-encryption-key" <1> - keyRotation: - decryptionOnlyKeys: ["min-32-byte-long-OLD#1-encryption-key", "min-32-byte-long-OLD#2-encryption-key"] <2> --------------------------------------------------------------------------------- - -<1> The encryption key {kib} will use to encrypt all new or updated saved objects. This is known as the primary encryption key. -<2> A list of encryption keys {kib} will try to use to decrypt existing saved objects if decryption with the primary encryption key isn't possible. These keys are known as the decryption-only or secondary encryption keys. - -[NOTE] -============================================================================ -You might also leverage this functionality if multiple {kib} instances connected to the same {es} cluster use different encryption keys. In this case, you might have a mix of saved objects encrypted with different keys, and every {kib} instance can only deal with a specific subset of objects. To fix this, you must choose a single primary encryption key for `xpack.encryptedSavedObjects.encryptionKey`, move all other encryption keys to `xpack.encryptedSavedObjects.keyRotation.decryptionOnlyKeys`, and sync this configuration across all {kib} instances. -============================================================================ - -At some point, you might want to dispose of old encryption keys completely. Make sure there are no saved objects that {kib} encrypted with these encryption keys. You can use the <<saved-objects-api-rotate-encryption-key, rotate encryption key API>> to determine which existing saved objects require decryption-only keys and re-encrypt them with the primary key. diff --git a/docs/user/security/securing-communications/elasticsearch-mutual-tls.asciidoc b/docs/user/security/securing-communications/elasticsearch-mutual-tls.asciidoc deleted file mode 100644 index f5192f4641d4..000000000000 --- a/docs/user/security/securing-communications/elasticsearch-mutual-tls.asciidoc +++ /dev/null @@ -1,170 +0,0 @@ -[role="xpack"] -[[elasticsearch-mutual-tls]] -=== Mutual TLS authentication between {kib} and {es} -++++ -<titleabbrev>Mutual TLS with {es}</titleabbrev> -++++ - -Secure Sockets Layer (SSL) and Transport Layer Security (TLS) provide encryption for data-in-transit. While these terms are often used -interchangeably, {kib} supports only TLS, which supersedes the old SSL protocols. - -TLS requires X.509 certificates to authenticate the communicating parties and perform encryption of data-in-transit. Each certificate -contains a public key and has and an associated -- but separate -- private key; these keys are used for cryptographic operations. {kib} -supports certificates and private keys in PEM or PKCS#12 format. - -In a standard TLS configuration, the server presents a signed certificate to authenticate itself to the client. In a mutual TLS -configuration, the client also presents a signed certificate to authenticate itself to the server. - -When {es} {security-features} is enabled on your cluster, each request that {kib} (the client) makes to {es} (the server) must be -authenticated. Most requests made by end users through {kib} to {es} are authenticated by using the credentials of the logged-in user. There -are, however, a few internal requests that {kib} needs to make to {es}. For this reason, you must configure credentials for {kib} to use for -those requests. - -If {kib} has `elasticsearch.username` and `elasticsearch.password` configured, it will attempt to use these to authenticate to {es} via the -{ref}/native-realm.html[native realm]. However, {kib} also supports mutual TLS authentication with {es} via a {ref}/pki-realm.html[Public -Key Infrastructure (PKI) realm]. To do so, {es} needs to verify the signature on the {kib} client certificate, and it also needs to map the -client certificate's distinguished name (DN) to the appropriate `kibana_system` role. - -NOTE: Using a PKI realm is a gold feature. For a comparison of the Elastic license levels, see https://www.elastic.co/subscriptions[the -subscription page]. - -To configure {kib} and {es} to use mutual TLS authentication: - -. <<using-kibana-with-security,Set up {kib} to work with {stack} {security-features} with a username and password>>. - -. <<configuring-tls-kib-es,Set up TLS encryption between {kib} and {es}>>. -+ -This entails generating a "server certificate" for {es} to use on the HTTP layer. - -. Obtain a client certificate and private key for {kib}. -+ --- -{kib} must this "client certificate" and corresponding private key when connecting to {es}. - -NOTE: This is not the same as the <<configuring-tls-browser-kib,server certificate>> that {kib} will present to web browsers. - -You may choose to generate a client certificate and private key using the {ref}/certutil.html[`elasticsearch-certutil`] tool. If you -followed the {es} documentation for {ref}/configuring-tls.html#node-certificates[generating node certificates], then you likely have already -set up a certificate authority (CA) to sign the {es} server certificate. You may choose to use the same CA to sign the {kib} client -certificate. For example: - -[source,sh] --------------------------------------------------------------------------------- -bin/elasticsearch-certutil cert -ca elastic-stack-ca.p12 -name kibana-client -dns <your_kibana_hostname> --------------------------------------------------------------------------------- - -This will generate a client certificate and private key in a PKCS#12 file named `kibana-client.p12`. In this example, the client certificate -has a Common Name (CN) of `"kibana-client"` and a subject alternative name (SAN) of `"<your_kibana_hostname>"`. The SAN may be required if -you have hostname verification enabled on {es}. --- - -. Obtain the certificate authority (CA) certificate chain for {kib}. -+ --- -{es} needs the appropriate CA certificate chain to properly establish trust when receiving connections from {kib}. - -If you followed the instructions to generate a client certificate, then you will have a PKCS#12 file for {kib}. You can extract the CA -certificate chain from this file. For example: - -[source,sh] --------------------------------------------------------------------------------- -openssl pkcs12 -in kibana-client.p12 -cacerts -nokeys -out kibana-ca.crt --------------------------------------------------------------------------------- - -This will produce a PEM-formatted file named `kibana-ca.crt` that contains the CA certificate from the PKCS#12 file. --- - -. Configure {es} with a PKI realm and a native realm. -+ --- -By default, {es} provides a native realm for authenticating with a username and password. However, to support both a PKI realm (for {kib}) -and a native realm (for end users), you must configure each realm in `elasticsearch.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.authc.realms.pki.realm1.order: 1 -xpack.security.authc.realms.pki.realm1.certificate_authorities: "/path/to/kibana-ca.crt" -xpack.security.authc.realms.native.realm2.order: 2 --------------------------------------------------------------------------------- --- - -. Configure {es} to request client certificates. -+ --- -By default, {es} will not request a client certificate when establishing a TLS connection. To change this, you must set up optional client -certificate authentication in `elasticsearch.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.http.ssl.client_authentication: "optional" --------------------------------------------------------------------------------- --- - -. Restart {es}. - -. Use {kib} to create a role mapping in {es} for the client certificate. -+ --- -This role mapping will assign the `kibana_system` role to any user that matches the included mapping rule, which is set to equal the client -certificate's DN attribute: - -[role="screenshot"] -image:user/security/images/mutual-tls-role-mapping.png["Role mapping for the {kib} client certificate"] - -For more information, see <<role-mappings,role mappings>>. --- - -. Configure {kib} to use the client certificate and private key. -+ -You need to specify the information required to access your client certificate and corresponding private key. - -.. If your certificate and private key are contained in a PKCS#12 file: -+ --- -Specify your PKCS#12 file in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -elasticsearch.ssl.keystore.path: "/path/to/kibana-client.p12" --------------------------------------------------------------------------------- - -If your PKCS#12 file is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>: - -[source,yaml] --------------------------------------------------------------------------------- -bin/kibana-keystore add elasticsearch.ssl.keystore.password --------------------------------------------------------------------------------- - -TIP: If your PKCS#12 file isn't protected with a password, depending on how it was generated, you may need to set -`elasticsearch.ssl.keystore.password` to an empty string. --- - -.. Otherwise, if your certificate and private key are in PEM format: -+ --- -Specify your certificate and private key in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -elasticsearch.ssl.certificate: "/path/to/kibana-client.crt" -elasticsearch.ssl.key: "/path/to/kibana-client.key" --------------------------------------------------------------------------------- - -If your private key is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>: - -[source,yaml] --------------------------------------------------------------------------------- -bin/kibana-keystore add elasticsearch.ssl.keyPassphrase --------------------------------------------------------------------------------- --- - -. Configure {kib} _not_ to use a username and password for {es}. -+ -You must remove the `elasticsearch.username` and `elasticsearch.password` settings from `kibana.yml`. If these are present, {kib} will -attempt to use them to authenticate to {es} via the native realm. - -. Restart {kib}. - -These steps enable {kib} to authenticate to {es} using a certificate. However, end users will only be able to authenticate to -{kib} with a username and password. To allow end users to authenticate to {kib} using a client certificate, see <<pki-authentication,{kib} -PKI authentication>>. diff --git a/docs/user/security/securing-communications/index.asciidoc b/docs/user/security/securing-communications/index.asciidoc deleted file mode 100644 index 706c15fe6ec0..000000000000 --- a/docs/user/security/securing-communications/index.asciidoc +++ /dev/null @@ -1,192 +0,0 @@ -[[configuring-tls]] -=== Encrypt communications in {kib} -++++ -<titleabbrev>Encrypt communications</titleabbrev> -++++ - -Secure Sockets Layer (SSL) and Transport Layer Security (TLS) provide encryption for data-in-transit. While these terms are often used -interchangeably, {kib} supports only TLS, which supersedes the old SSL protocols. - -Browsers send traffic to {kib} and {kib} sends traffic to {es}. These communication channels are configured separately to use TLS. - -TLS requires X.509 certificates to authenticate the communicating parties and perform encryption of data-in-transit. Each certificate -contains a public key and has an associated -- but separate -- private key; these keys are used for cryptographic operations. {kib} -supports certificates and private keys in PEM or PKCS#12 format. - -[[configuring-tls-browser-kib]] -==== Encrypt traffic between the browser and {kib} - -NOTE: You do not need to enable the {es} {security-features} for this type of encryption. - -. Obtain a server certificate and private key for {kib}. -+ --- -{kib} will need to use this "server certificate" and corresponding private key when receiving connections from web browsers. - -When you obtain a server certificate, you must set its subject alternative name (SAN) correctly to ensure that modern web browsers with -hostname verification will trust it. You can set one or more SANs to the {kib} server's fully-qualified domain name (FQDN), hostname, or IP -address. When choosing the SAN, you should pick whichever attribute you will be using to connect to {kib} in your browser, which is likely -the FQDN in a production environment. - -You may choose to generate a signed certificate and private key using the {ref}/certutil.html[`elasticsearch-certutil`] tool. -For example: - -[source,sh] --------------------------------------------------------------------------------- -bin/elasticsearch-certutil cert -name kibana-server -dns localhost,127.0.0.1 --------------------------------------------------------------------------------- - -This will produce a PKCS#12 file named `kibana-server.p12`, which contains the server certificate and private key. - -NOTE: In this example, the server certificate is signed by a locally-generated certificate authority (CA). This is not suitable for a -production environment, and it will result in warnings in your web browser until you configure your browser to trust the certificate. Steps -to configure certificate trust vary depending upon your browser and operating system. If you want to obtain a server certificate for a -production environment, you can instead generate a certificate signing request (CSR) with `elasticsearch-certutil` using -{ref}/certutil.html#certutil-csr[CSR mode]. --- - -. Configure {kib} to access the server certificate and private key. - -.. If your server certificate and private key are contained in a PKCS#12 file: -+ --- -Specify your PKCS#12 file in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -server.ssl.keystore.path: "/path/to/kibana-server.p12" --------------------------------------------------------------------------------- - -If your PKCS#12 file is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>: - -[source,yaml] --------------------------------------------------------------------------------- -bin/kibana-keystore add server.ssl.keystore.password --------------------------------------------------------------------------------- - -NOTE: If you used `elasticsearch-certutil` to generate a PKCS#12 file and you did not specify a password, the file is encrypted, and you -need to set `server.ssl.keystore.password` to an empty string. --- - -.. Otherwise, if your server certificate and private key are in PEM format: -+ --- -Specify your server certificate and private key in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -server.ssl.certificate: "/path/to/kibana-server.crt" -server.ssl.key: "/path/to/kibana-server.key" --------------------------------------------------------------------------------- - -If your private key is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>: - -[source,yaml] --------------------------------------------------------------------------------- -bin/kibana-keystore add server.ssl.keyPassphrase --------------------------------------------------------------------------------- --- - -+ -For more information about settings for certificates and keys, see <<settings,{kib} configuration settings>>. - -. Configure {kib} to enable TLS for inbound connections. -+ --- -Specify that TLS is used in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -server.ssl.enabled: true --------------------------------------------------------------------------------- --- - -. Restart {kib}. - -After making these changes, you must always access {kib} via HTTPS. For example, `https://localhost:5601`. - -[[configuring-tls-kib-es]] -==== Encrypt traffic between {kib} and {es} - -NOTE: To perform this step, you must {ref}/configuring-security.html[enable the {es} {security-features}] or you must have a proxy that -provides an HTTPS endpoint for {es}. - -. {ref}/configuring-tls.html#tls-http[Enable TLS on the HTTP layer in {es}]. - -. Obtain the certificate authority (CA) certificate chain for {es}. -+ -{kib} needs the appropriate CA certificate chain to properly establish trust when connecting to {es}. - -.. If you followed the {es} documentation for {ref}/configuring-tls.html#node-certificates[generating node certificates] and used the -`elasticsearch-certutil http` command, check the `kibana` directory in its output. Depending on what options you chose, the output may -include the CA certificate chain in PEM format. - -.. Otherwise, you likely have a PKCS#12 file for each your {es} nodes. You can extract the CA certificate chain from one of these files. For -example: -+ --- -[source,sh] --------------------------------------------------------------------------------- -openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -out elasticsearch-ca.pem --------------------------------------------------------------------------------- - -This will produce a PEM-formatted file named `elasticsearch-ca.pem` that contains all CA certificates from the PKCS#12 file. --- - -. Configure {kib} to trust the {es} CA certificate chain for the HTTP layer. - -.. If your CA certificate chain is in PEM format: -+ --- -Specify one or more CA certificates in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -elasticsearch.ssl.certificateAuthorities: ["/path/to/elasticsearch-ca.pem"] --------------------------------------------------------------------------------- --- - -.. Otherwise, if your CA certificate chain is contained in a PKCS#12 file: -+ --- -WARNING: You should not use a PKCS#12 file that contains a private key. This is an unnecessary security risk. If you only have a PKCS#12 -file that contains a private key, a safer approach is to extract the CA certificate chain in PEM format. - -Specify your PKCS#12 file in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -elasticsearch.ssl.truststore.path: "/path/to/elasticsearch-ca.p12" --------------------------------------------------------------------------------- - -If your PKCS#12 file is encrypted, add the decryption password to your <<secure-settings,{kib} keystore>>: - -[source,yaml] --------------------------------------------------------------------------------- -bin/kibana-keystore add elasticsearch.ssl.truststore.password --------------------------------------------------------------------------------- - -NOTE: If you used `elasticsearch-certutil` to generate a PKCS#12 file and you did not specify a password, the file is encrypted, and you -need to set `server.ssl.truststore.password` to an empty string. --- - -+ -For more information about settings for certificates and keys, see <<settings,{kib} configuration settings>>. - -. Configure {kib} to enable TLS for outbound connections to {es}. -+ --- -Specify the HTTPS URL for {es} in `kibana.yml`: - -[source,yaml] --------------------------------------------------------------------------------- -elasticsearch.hosts: ["https://<your_elasticsearch_host>.com:9200"] --------------------------------------------------------------------------------- - -NOTE: Using the HTTPS protocol results in a default `elasticsearch.ssl.verificationMode` option of `full`, which utilizes hostname -verification. For more information about this setting, see <<settings,{kib} configuration settings>>. --- - -If the Elastic {monitor-features} are enabled and you have set up a separate {es} monitoring cluster, you can also configure {kib} to -connect to the monitoring cluster via HTTPS. The steps are the same, but each setting is prefixed by `monitoring.`. For -example, `monitoring.ui.elasticsearch.hosts`, `monitoring.ui.elasticsearch.ssl.truststore.path`, etc. diff --git a/docs/user/security/securing-kibana.asciidoc b/docs/user/security/securing-kibana.asciidoc deleted file mode 100644 index a4ec2ecadece..000000000000 --- a/docs/user/security/securing-kibana.asciidoc +++ /dev/null @@ -1,128 +0,0 @@ -[role="xpack"] -[[using-kibana-with-security]] -== Configure security in {kib} -++++ -<titleabbrev>Configure security</titleabbrev> -++++ - -{kib} users have to log in when {stack-security-features} are enabled on your -cluster. You configure roles for your {kib} users to control what data those -users can access. - -Most requests made through {kib} to {es} are authenticated by using the -credentials of the logged-in user. There are, however, a few internal requests -that the {kib} server needs to make to the {es} cluster. For this reason, you -must configure credentials for the {kib} server to use for those requests. - -With {security-features} enabled, if you load a {kib} dashboard that accesses -data in an index that you are not authorized to view, you get an error that -indicates the index does not exist. The {security-features} do not currently -provide a way to control which users can load which dashboards. - -To use {kib} with {security-features}: - -. {ref}/configuring-security.html[Configure security in {es}]. - -. Configure {kib} to use the appropriate built-in user. -+ --- -Update the following settings in the `kibana.yml` configuration -file: - -[source,yaml] ------------------------------------------------ -elasticsearch.username: "kibana_system" -elasticsearch.password: "kibanapassword" ------------------------------------------------ - -The {kib} server submits requests as this user to access the cluster monitoring -APIs and the `.kibana` index. The server does _not_ need access to user indices. - -NOTE: The password for the built-in `kibana_system` user is typically set as part of the security configuration process on {es}. For more -information, see {ref}/built-in-users.html[Built-in users]. --- - -. Set the `xpack.security.encryptionKey` property in the `kibana.yml` -configuration file. You can use any text string that is 32 characters or longer -as the encryption key. -+ --- -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.encryptionKey: "something_at_least_32_characters" --------------------------------------------------------------------------------- - -For more information, see <<security-settings-kb,Security settings in {kib}>>. --- - -. Configure {kib}'s session expiration settings. Set both the idle timeout and lifespan settings: -+ --- -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.session.idleTimeout: "1h" -xpack.security.session.lifespan: "30d" --------------------------------------------------------------------------------- - -For more information, see <<xpack-security-session-management, Session management in {kib}>>. --- - -. Optional: <<configuring-tls,Configure {kib} to encrypt communications>>. - -. Optional: <<elasticsearch-mutual-tls,Configure {kib} to authenticate to {es} with a client certificate>>. - -. Restart {kib}. - -. Temporarily log in to {kib} using the built-in `elastic` superuser so you can create new users and assign roles. If you are running {kib} -locally, go to `https://localhost:5601` to view the login page. -+ -NOTE: The password for the built-in `elastic` user is typically set as part of the security configuration process on {es}. For more -information, see {ref}/built-in-users.html[Built-in users]. - -. [[kibana-roles]]Create roles and users to grant access to {kib}. -+ --- -To manage privileges in {kib}, open the main menu, then click *Stack Management > Roles*. The built-in `kibana_admin` role will grant -access to {kib} with administrator privileges. Alternatively, you can create additional roles that grant limited access to {kib}. - -If you're using the default native realm with Basic Authentication, open the main menu, then click *Stack Management > Users* to create -users and assign roles, or use the {es} {ref}/security-api.html#security-user-apis[user management APIs]. For example, the following creates -a user named `jacknich` and assigns it the `kibana_admin` role: - -[source,js] --------------------------------------------------------------------------------- -POST /_security/user/jacknich -{ - "password" : "t0pS3cr3t", - "roles" : [ "kibana_admin" ] -} --------------------------------------------------------------------------------- -// CONSOLE - -TIP: For more information on Basic Authentication and additional methods of authenticating {kib} users, see <<kibana-authentication>>. --- - -. Grant users access to the indices that they will be working with in {kib}. -+ --- -TIP: You can define as many different roles for your {kib} users as you need. - -For example, create roles that have `read` and `view_index_metadata` privileges -on specific index patterns. For more information, see -{ref}/authorization.html[User authorization]. - --- - -. Log out of {kib} and verify that you can log in as a normal user. If you are running {kib} locally, go to `https://localhost:5601` and -enter the credentials for a user you've assigned a {kib} user role. For example, you could log in as the user `jacknich`. -+ -NOTE: This must be a user who has been assigned <<kibana-privileges, Kibana privileges>>. {kib} server credentials (the built-in -`kibana_system` user) should only be used internally by the {kib} server. - -include::authentication/index.asciidoc[] -include::securing-communications/index.asciidoc[] -include::securing-communications/elasticsearch-mutual-tls.asciidoc[] -include::audit-logging.asciidoc[] -include::access-agreement.asciidoc[] -include::session-management.asciidoc[] -include::secure-saved-objects.asciidoc[] diff --git a/docs/user/security/session-management.asciidoc b/docs/user/security/session-management.asciidoc deleted file mode 100644 index 0df5b3b31a20..000000000000 --- a/docs/user/security/session-management.asciidoc +++ /dev/null @@ -1,49 +0,0 @@ -[role="xpack"] -[[xpack-security-session-management]] -=== Session management - -When you log in, {kib} creates a session that is used to authenticate subsequent requests to {kib}. A session consists of two components: an encrypted cookie that is stored in your browser, and an encrypted document in a dedicated {es} hidden index. By default, the name of that index is `.kibana_security_session_1`, where the prefix is derived from the primary `.kibana` index. If either of these components are missing, the session is no longer valid. - -When your session expires, or you log out, {kib} will invalidate your cookie and remove session information from the index. {kib} also periodically invalidates and removes any expired sessions that weren't explicitly invalidated. - -[[session-idle-timeout]] -==== Session idle timeout - -You can use `xpack.security.session.idleTimeout` to expire sessions after a period of inactivity. This and `xpack.security.session.lifespan` are both highly recommended. -By default, sessions don't expire because of inactivity. To define a sliding session expiration, set the property in the `kibana.yml` configuration file. The idle timeout is formatted as a duration of `<count>[ms|s|m|h|d|w|M|Y]` (e.g. '20m', '24h', '7d', '1w'). For example, set the idle timeout to expire sessions after 1 hour of inactivity: - --- -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.session.idleTimeout: "1h" --------------------------------------------------------------------------------- --- - -[[session-lifespan]] -==== Session lifespan - -You can use `xpack.security.session.lifespan` to configure the maximum session duration or "lifespan" -- also known as the "absolute timeout". This and `xpack.security.session.idleTimeout` are both highly recommended. By default, sessions don't have a fixed lifespan, and if an idle timeout is defined, a session can still be extended indefinitely. To define a maximum session lifespan, set the property in the `kibana.yml` configuration file. The lifespan is formatted as a duration of `<count>[ms|s|m|h|d|w|M|Y]` (e.g. '20m', '24h', '7d', '1w'). For example, set the lifespan to expire sessions after 30 days: - --- -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.session.lifespan: "30d" --------------------------------------------------------------------------------- --- - -[[session-cleanup-interval]] -==== Session cleanup interval - -[IMPORTANT] -============================================================================ -If you specify neither session idle timeout nor lifespan, then {kib} will not automatically remove session information from the index unless you explicitly log out. This might lead to an infinitely growing session index. Configure the idle timeout and lifespan settings for the {kib} sessions so that they can be cleaned up even if you don't explicitly log out. -============================================================================ - -You can configure the interval at which {kib} tries to remove expired and invalid sessions from the session index. By default, this value is 1 hour and cannot be less than 10 seconds. To define another interval, set the `xpack.security.session.cleanupInterval` property in the `kibana.yml` configuration file. The interval is formatted as a duration of `<count>[ms|s|m|h|d|w|M|Y]` (e.g. '20m', '24h', '7d', '1w'). For example, schedule the session index cleanup to perform once a day: - --- -[source,yaml] --------------------------------------------------------------------------------- -xpack.security.session.cleanupInterval: "1d" --------------------------------------------------------------------------------- ---