OpenSanctions (Editor Independente) (versão prévia)
A API OpenSanctions permite que você pesquise e consulte as sanções globais e o banco de dados PEP (pessoas politicamente expostas). Ele fornece pontos de extremidade para correspondência de entidade, pesquisa de texto, recuperação de entidade e dados granulares no nível da instrução. Use-o para verificar pessoas ou empresas contra listas de sanções ou explorar o grafo de entidade OpenSanctions.
Esse conector está disponível nos seguintes produtos e regiões:
| Service | Class | Regions |
|---|---|---|
| Copilot Studio | Premium | Todas as regiões do Power Automate , exceto as seguintes: – Governo dos EUA (GCC) – Governo dos EUA (GCC High) - China Cloud operado pela 21Vianet - Departamento de Defesa dos EUA (DoD) |
| Aplicativos Lógicos | Standard | Todas as regiões dos Aplicativos Lógicos , exceto as seguintes: – Regiões do Azure Governamental - Regiões do Azure China - Departamento de Defesa dos EUA (DoD) |
| Power Apps | Premium | Todas as regiões do Power Apps , exceto as seguintes: – Governo dos EUA (GCC) – Governo dos EUA (GCC High) - China Cloud operado pela 21Vianet - Departamento de Defesa dos EUA (DoD) |
| Power Automate | Premium | Todas as regiões do Power Automate , exceto as seguintes: – Governo dos EUA (GCC) – Governo dos EUA (GCC High) - China Cloud operado pela 21Vianet - Departamento de Defesa dos EUA (DoD) |
| Contato | |
|---|---|
| Nome | OpenSanctions |
| URL | https://developments.substack.com |
| dan.romano@swolcat.com |
| Metadados do conector | |
|---|---|
| Publicador | krautrocker |
| Site | https://www.opensanctions.org/ |
| Política de privacidade | https://www.opensanctions.org/docs/privacy/ |
| Categorias | Dados |
OpenSanctions
Visão geral
A API OpenSanctions fornece acesso a um banco de dados global de pessoas e empresas de interesse político, criminoso ou econômico. Agrega dados de centenas de listas de sanções, PEPs (pessoas politicamente expostas) e watchlists em todo o mundo.
Você pode usar esse conector para corresponder, pesquisar e buscar entidades, explorar relações e analisar a cobertura do conjunto de dados.
Saiba mais em OpenSanctions.org.
Publicador – Dan Romano (swolcat)
Pré-requisitos
Você precisará de uma chave de API do OpenSanctions para usar esse conector. Registre-se para obter uma chave gratuita em: https://www.opensanctions.org/api/
Operações com suporte
Corresponder entidades por conjunto de dados
Corresponder entidades com base no nome e campos opcionais, como data de nascimento, nacionalidade e identificadores. Esse ponto de extremidade dá suporte à correspondência difusa.
Pesquisar entidades em um conjunto de dados
Pesquise entidades usando uma consulta de texto simples. Dá suporte a filtros, tópicos, países e conjuntos de dados para pesquisas refinadas.
Obter entidade por ID
Recupere um único registro de entidade por seu identificador exclusivo, incluindo atributos aninhados e relacionados.
Obter entidades adjacentes
Retornar entidades adjacentes a uma entidade especificada (por exemplo, associados, familiares ou empresas relacionadas).
Obter entidades adjacentes por propriedade
Retornar entidades relacionadas para uma propriedade específica (por exemplo, familyPerson, ownershipOwner, membershipMember).
Obter catálogo de conjuntos de dados
Recupere a lista de todos os conjuntos de dados indexados disponíveis por meio do OpenSanctions.
Obter integridade do sistema
Execute uma verificação de integridade do sistema para verificar a disponibilidade do serviço.
Obter algoritmos correspondentes
Listar algoritmos de correspondência de entidades com suporte usados pelo sistema.
Forçar atualização de índice
Dispare uma operação de indexação novamente se autorizada com um token de atualização válido.
Introdução
- Crie uma conta em OpenSanctions.org.
- Uma chave de API
- No Power Automate ou no Power Apps, crie uma nova conexão usando sua chave de API.
- Use as ações do conector para pesquisar, corresponder ou buscar entidades.
Obtendo credenciais
Visite https://www.opensanctions.org/api/ para solicitar uma chave de API. Você receberá um ApiKey valor que deve ser usado no Authorization cabeçalho:
Autorização: ApiKey YOUR_API_KEY
Problemas e limitações conhecidos
- As estruturas de resposta são dinâmicas; use "Analisar JSON" no Power Automate para acessar valores aninhados.
- Os
searchpontos de extremidade ematchpodem retornar respostas grandes dependendo do escopo do conjunto de dados. - Alguns pontos de extremidade exigem um parâmetro válido
dataset(por exemplo,sanctions). - A classificação por campos sem suporte (como
score) pode disparar erros. - Os limites de taxa de API podem ser aplicados dependendo do seu plano.
Criando uma conexão
O conector dá suporte aos seguintes tipos de autenticação:
| Default | Parâmetros para criar conexão. | Todas as regiões | Não compartilhável |
Padrão
Aplicável: todas as regiões
Parâmetros para criar conexão.
Essa não é uma conexão compartilhável. Se o aplicativo de energia for compartilhado com outro usuário, outro usuário será solicitado a criar uma nova conexão explicitamente.
| Nome | Tipo | Description | Obrigatório |
|---|---|---|---|
| chave_de_api | secureString | O api_key desta api | Verdade |
Limitações
| Nome | Chamadas | Período de renovação |
|---|---|---|
| Chamadas à API por conexão | 100 | 60 segundos |
Ações
| Corresponder entidades com um conjunto de dados |
Use esse ponto de extremidade para corresponder pessoas ou empresas a um conjunto de dados usando o nome difuso, a data de nascimento e os critérios de nacionalidade. Retorna resultados de correspondência pontuados com limites de confiança. |
| Forçar a regeneração do índice |
Dispara uma recompilação manual do índice de pesquisa. Requer um token de atualização válido para autorização. Use isso para atualizar o conjunto de dados quando ocorrerem alterações de dados ou estrutura. |
| Obter algoritmos de correspondência com suporte |
Recupera uma lista de todos os algoritmos de correspondência e pontuação com suporte usados pela API para comparação de entidade e classificação de resultados. |
| Obter catálogo de conjuntos de dados |
Retorna o catálogo de serviços completo que contém todos os conjuntos de dados disponíveis e indexados na API OpenSanctions. Útil para descobrir os nomes e metadados do conjunto de dados. |
| Obter entidade por ID |
Retorna o registro completo de uma entidade especificada por sua ID, incluindo dados relacionados, como propriedade, associações e propriedades vinculadas. |
| Obter entidades adjacentes a uma entidade |
Retorna entidades conectadas à entidade especificada, como pessoas vinculadas, empresas, identificadores ou sanções. Útil para explorar relações de grafo no conjunto de dados OpenSanctions. |
| Obter entidades relacionadas por propriedade |
Retorna entidades relacionadas a uma determinada entidade por meio de uma propriedade específica, como propriedade, vínculos familiares ou identificadores. Útil para explorar as relações de grafo em detalhes. |
| Obter instruções de entidade bruta |
Retorna dados de entidade granular como instruções individuais do banco de dados OpenSanctions. Cada instrução representa um único fato (por exemplo, nome, endereço, data de nascimento) extraído dos dados de origem. |
| Pesquisar entidades em um conjunto de dados |
Use esse ponto de extremidade para pesquisar entidades por nome ou palavra-chave em um conjunto de dados. Dá suporte a filtros de campo, correspondência difusa e facetação opcional. |
| Reconciliar entidades para um conjunto de dados |
Fornece um ponto de extremidade de reconciliação compatível com a API do Google Refine (OpenRefine). Use isso para fazer a correspondência em massa ou verificar nomes de entidade em um conjunto de dados de uma ferramenta externa, como OpenRefine. |
| Verificar a preparação do índice de pesquisa |
Retorna o status do índice de pesquisa para indicar se a API está pronta para lidar com consultas. Útil para monitorar a preparação para inicialização e implantação. |
| Verificar o status de integridade da API |
Retorna uma resposta de status simples confirmando que a API é acessível e operacional. Normalmente usado por ferramentas de monitoramento ou investigações de vida do Kubernetes. |
Corresponder entidades com um conjunto de dados
Use esse ponto de extremidade para corresponder pessoas ou empresas a um conjunto de dados usando o nome difuso, a data de nascimento e os critérios de nacionalidade. Retorna resultados de correspondência pontuados com limites de confiança.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
Nome do conjunto de dados de destino
|
dataset | True | string |
Nome do conjunto de dados ou da coleção no qual executar a consulta de correspondência. |
|
Limite de resultados
|
limit | integer |
Número máximo de correspondências a serem retornadas (1 a 500). |
|
|
Limite de correspondência
|
threshold | double |
Pontuação mínima para incluir um resultado (0 a 1). |
|
|
Pontuação de corte
|
cutoff | double |
Pontuação mínima aceitável para melhor corte de jogo. |
|
|
Versão do algoritmo
|
algorithm | string |
Algoritmo de correspondência a ser usado, por exemplo, logic-v1. |
|
|
Conjuntos de dados incluídos
|
include_dataset | array |
Conjuntos de dados a serem incluídos explicitamente na correspondência. |
|
|
Esquemas excluídos
|
exclude_schema | array |
Esquemas a serem excluídos do processo de correspondência. |
|
|
Conjuntos de dados excluídos
|
exclude_dataset | array |
Conjuntos de dados a serem excluídos do processo de correspondência. |
|
|
Filtro de tópicos
|
topics | array |
Restrinja correspondências a entidades marcadas com esses tópicos. |
|
|
Alterado desde a data
|
changed_since | string |
Inclua apenas entidades alteradas desde essa data de ISO. |
|
|
IDs de entidade excluídas
|
exclude_entity_ids | array |
IDs de entidade a serem ignoradas durante a correspondência. Use para filtrar falsos positivos ou entidades revisadas anteriormente. |
|
|
Cabeçalho de tipo de conteúdo
|
Content-Type | string |
Tipo de conteúdo do corpo da solicitação (application/json). |
|
|
Pesos
|
weights | object | ||
|
config
|
config | object |
Parâmetros de configuração específicos do algoritmo. |
|
|
queries
|
queries | True | object |
Retornos
- EntityMatchResponse
- EntityMatchResponse
Forçar a regeneração do índice
Dispara uma recompilação manual do índice de pesquisa. Requer um token de atualização válido para autorização. Use isso para atualizar o conjunto de dados quando ocorrerem alterações de dados ou estrutura.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
Atualizar token
|
token | string |
Token de API necessário para autorizar a recompilação de índice. |
|
|
Modo de sincronização
|
sync | boolean |
Execute de forma síncrona e aguarde a conclusão do índice. |
Retornos
- StatusResponse
- StatusResponse
Obter algoritmos de correspondência com suporte
Recupera uma lista de todos os algoritmos de correspondência e pontuação com suporte usados pela API para comparação de entidade e classificação de resultados.
Retornos
- AlgorithmResponse
- AlgorithmResponse
Obter catálogo de conjuntos de dados
Retorna o catálogo de serviços completo que contém todos os conjuntos de dados disponíveis e indexados na API OpenSanctions. Útil para descobrir os nomes e metadados do conjunto de dados.
Retornos
- response
- object
Obter entidade por ID
Retorna o registro completo de uma entidade especificada por sua ID, incluindo dados relacionados, como propriedade, associações e propriedades vinculadas.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
ID da entidade
|
entity_id | True | string |
ID exclusiva da entidade a ser recuperada. |
|
Incluir entidades aninhadas
|
nested | boolean |
Inclua entidades vinculadas ou relacionadas na resposta. |
Retornos
Objeto JSON dinâmico. Permite todos os tipos de campo sem validação.
- response
- object
Obter entidades adjacentes a uma entidade
Retorna entidades conectadas à entidade especificada, como pessoas vinculadas, empresas, identificadores ou sanções. Útil para explorar relações de grafo no conjunto de dados OpenSanctions.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
ID da entidade
|
entity_id | True | string |
ID exclusiva da entidade cujas conexões recuperar. |
|
Ordem de classificação
|
sort | array |
Classificar os resultados por campo, por exemplo, score:desc. |
|
|
Limite de resultados
|
limit | integer |
Número máximo de entidades relacionadas a serem retornadas (1 a 500). |
|
|
Deslocamento de resultados
|
offset | integer |
Deslocamento inicial para entidades relacionadas paginadas. |
Retornos
- response
- object
Obter entidades relacionadas por propriedade
Retorna entidades relacionadas a uma determinada entidade por meio de uma propriedade específica, como propriedade, vínculos familiares ou identificadores. Útil para explorar as relações de grafo em detalhes.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
ID da entidade
|
entity_id | True | string |
ID exclusiva da entidade cujos itens relacionados serão buscados. |
|
Nome da propriedade
|
property_name | True | string |
Nome da propriedade usado para buscar entidades relacionadas. |
|
Ordem de classificação
|
sort | array |
Classificar entidades relacionadas por campo, por exemplo, score:desc. |
|
|
Limite de resultados
|
limit | integer |
Número máximo de entidades relacionadas a serem retornadas (1 a 500). |
|
|
Deslocamento de resultados
|
offset | integer |
Deslocamento inicial para resultados relacionados paginados. |
Retornos
Estrutura JSON dinâmica reentrada em entidades relacionadas. Cada propriedade pode conter matrizes de cadeias de caracteres ou objetos de entidade aninhados.
- response
- object
Obter instruções de entidade bruta
Retorna dados de entidade granular como instruções individuais do banco de dados OpenSanctions. Cada instrução representa um único fato (por exemplo, nome, endereço, data de nascimento) extraído dos dados de origem.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
Nome do conjunto de dados
|
dataset | string |
Limite os resultados a instruções desse conjunto de dados. |
|
|
ID da entidade
|
entity_id | string |
Retornar instruções vinculadas a essa ID de entidade. |
|
|
ID canônica
|
canonical_id | string |
Buscar instruções para a ID da entidade canônica. |
|
|
Filtro de propriedade
|
prop | string |
Filtrar instruções por nome da propriedade. |
|
|
Valor da propriedade
|
value | string |
Filtrar instruções que contêm esse valor de propriedade. |
|
|
Filtro de esquema
|
schema | string |
Restrinja instruções a entidades de um determinado esquema. |
|
|
Ordem de classificação
|
sort | array |
Classificar os resultados por campo, por exemplo, carimbo de data/hora:desc. |
|
|
Limite de resultados
|
limit | integer |
Número máximo de instruções a serem retornadas (1 a 5000). |
|
|
Deslocamento de resultados
|
offset | integer |
Deslocamento inicial para resultados paginados. |
Retornos
- StatementResponse
- StatementResponse
Pesquisar entidades em um conjunto de dados
Use esse ponto de extremidade para pesquisar entidades por nome ou palavra-chave em um conjunto de dados. Dá suporte a filtros de campo, correspondência difusa e facetação opcional.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
Conjunto de dados de destino
|
dataset | True | string |
Conjunto de dados ou coleção para pesquisar dentro. |
|
Consulta de pesquisa
|
q | string |
Texto a ser pesquisado, como nome ou palavra-chave. |
|
|
Filtro de esquema
|
schema | string |
Restrinja os resultados a um esquema específico (por exemplo, Pessoa). |
|
|
Conjuntos de dados incluídos
|
include_dataset | array |
Retorna apenas entidades desses conjuntos de dados. |
|
|
Conjuntos de dados excluídos
|
exclude_dataset | array |
Exclua entidades desses conjuntos de dados. |
|
|
Esquemas excluídos
|
exclude_schema | array |
Exclua entidades desses tipos de esquema. |
|
|
Alterado desde a data
|
changed_since | string |
Inclua apenas entidades atualizadas desde essa data de ISO. |
|
|
Filtro de país
|
countries | array |
Filtrar por códigos de país (ISO 3166-1 alfa-2). |
|
|
Filtro de tópicos
|
topics | array |
Restrinja os resultados a entidades marcadas com tópicos. |
|
|
Filtro de conjuntos de dados
|
datasets | array |
Filtrar por identificadores de conjunto de dados. |
|
|
Filtro de campo
|
filter | array |
Use a sintaxe 'field:value' para filtrar campos, por exemplo, properties.birthDate:1985. |
|
|
Limite de resultados
|
limit | integer |
Número máximo de resultados a serem retornados (1 a 500). |
|
|
Deslocamento de resultados
|
offset | integer |
Deslocamento inicial para resultados paginado. |
|
|
Ordem de classificação
|
sort | array |
Classificar os resultados por campo, por exemplo, score:desc. |
|
|
Destino (preterido)
|
target | string |
Preterido. Em vez disso, use o parâmetro 'topics'. |
|
|
Pesquisa difusa
|
fuzzy | boolean |
Habilite a correspondência de texto difusa (pesquisa aproximada). |
|
|
Modo simples
|
simple | boolean |
Simplifique os resultados ignorando metadados detalhados. |
|
|
Campos de faceta
|
facets | array |
Retornar contagens de facetas para esses campos. |
|
|
Operador de filtro
|
filter_op | string |
Lógica para combinar vários filtros (AND/OR). |
Retornos
- SearchResponse
- SearchResponse
Reconciliar entidades para um conjunto de dados
Fornece um ponto de extremidade de reconciliação compatível com a API do Google Refine (OpenRefine). Use isso para fazer a correspondência em massa ou verificar nomes de entidade em um conjunto de dados de uma ferramenta externa, como OpenRefine.
Parâmetros
| Nome | Chave | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
Conjunto de dados de destino
|
dataset | True | string |
Conjunto de dados ou nome de coleção com o qual reconciliar. |
Retornos
- FreebaseManifest
- FreebaseManifest
Verificar a preparação do índice de pesquisa
Retorna o status do índice de pesquisa para indicar se a API está pronta para lidar com consultas. Útil para monitorar a preparação para inicialização e implantação.
Retornos
- StatusResponse
- StatusResponse
Verificar o status de integridade da API
Retorna uma resposta de status simples confirmando que a API é acessível e operacional. Normalmente usado por ferramentas de monitoramento ou investigações de vida do Kubernetes.
Retornos
- StatusResponse
- StatusResponse
Definições
Algoritmo
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
nome
|
name | string |
Nome do algoritmo de correspondência ou pontuação. |
|
descrição
|
description | string |
Descrição breve do que o algoritmo faz. |
|
features
|
features | object |
Preterido. Use a propriedade |
|
AlgorithmDocs
|
docs | AlgorithmDocs |
Documentação de um algoritmo de pontuação. |
AlgorithmDocs
Documentação de um algoritmo de pontuação.
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
nome
|
name | string | |
|
descrição
|
description | ||
|
config
|
config | object | |
|
features
|
features | object |
AlgorithmResponse
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
Algoritmos
|
algorithms | array of Algorithm | |
|
padrão
|
default | string | |
|
melhor
|
best | string |
EntityMatchResponse
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
respostas
|
responses | object | |
|
Matcher
|
matcher | object |
Informações sobre o correspondente que foi usado para pontuar essa solicitação. Preterido, use |
|
limit
|
limit | integer |
EntityResponse
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
id
|
id | string | |
|
barra de título
|
caption | string | |
|
esquema
|
schema | string | |
|
propriedades
|
properties | object | |
|
conjuntos de dados
|
datasets | array of string | |
|
Referentes
|
referents | array of string | |
|
destino
|
target | boolean | |
|
first_seen
|
first_seen | ||
|
last_seen
|
last_seen | ||
|
last_change
|
last_change |
FreebaseManifest
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
versions
|
versions | array of string | |
|
nome
|
name | string | |
|
identifierSpace
|
identifierSpace | string | |
|
schemaSpace
|
schemaSpace | string | |
|
documentação
|
documentation | string | |
|
batchSize
|
batchSize | integer | |
|
FreebaseManifestView
|
view | FreebaseManifestView | |
|
FreebaseManifestPreview
|
preview | FreebaseManifestPreview | |
|
FreebaseManifestSuggest
|
suggest | FreebaseManifestSuggest | |
|
FreebaseManifestExtend
|
extend | FreebaseManifestExtend | |
|
defaultTypes
|
defaultTypes | array of FreebaseType |
FreebaseManifestExtend
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
FreebaseManifestExtendProposeProperties
|
propose_properties | FreebaseManifestExtendProposeProperties | |
|
propose_settings
|
propose_settings | array of FreebaseManifestExtendPropertySetting |
FreebaseManifestExtendPropertySetting
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
nome
|
name | string | |
|
etiqueta
|
label | string | |
|
tipo
|
type | string | |
|
padrão
|
default | ||
|
help_text
|
help_text | string | |
|
choices
|
choices | array of FreebaseManifestExtendPropertySettingChoice |
FreebaseManifestExtendPropertySettingChoice
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
id
|
id | string | |
|
nome
|
name | string |
FreebaseManifestExtendProposeProperties
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
service_url
|
service_url | string | |
|
service_path
|
service_path | string |
FreebaseManifestPreview
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
url
|
url | string | |
|
largura
|
width | integer | |
|
height
|
height | integer |
FreebaseManifestSuggest
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
FreebaseManifestSuggestType
|
entity | FreebaseManifestSuggestType | |
|
FreebaseManifestSuggestType
|
type | FreebaseManifestSuggestType | |
|
FreebaseManifestSuggestType
|
property | FreebaseManifestSuggestType |
FreebaseManifestSuggestType
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
service_url
|
service_url | string | |
|
service_path
|
service_path | string |
FreebaseManifestView
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
url
|
url | string |
FreebaseType
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
id
|
id | string | |
|
nome
|
name | string | |
|
descrição
|
description |
SearchResponse
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
limit
|
limit | integer | |
|
deslocamento
|
offset | integer | |
|
TotalSpec
|
total | TotalSpec | |
|
results
|
results | array of EntityResponse | |
|
Facetas
|
facets | object |
Statement
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
id
|
id | string | |
|
entity_id
|
entity_id | string | |
|
canonical_id
|
canonical_id | string | |
|
adereço
|
prop | string | |
|
prop_type
|
prop_type | string | |
|
esquema
|
schema | string | |
|
value
|
value | string | |
|
original_value
|
original_value | ||
|
conjunto de dados
|
dataset | string | |
|
lang
|
lang | ||
|
first_seen
|
first_seen | date-time | |
|
last_seen
|
last_seen | date-time |
StatementResponse
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
limit
|
limit | integer | |
|
deslocamento
|
offset | integer | |
|
TotalSpec
|
total | TotalSpec | |
|
results
|
results | array of Statement |
StatusResponse
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
status
|
status | string |
TotalSpec
| Nome | Caminho | Tipo | Description |
|---|---|---|---|
|
value
|
value | integer | |
|
relação
|
relation | string |
objeto
Esse é o tipo 'object'.