Получение вложения
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Чтение свойств, связей или необработанного содержимого вложения, присоединенного к событию пользователя, сообщению, задаче Outlook или групповой записи.
Предостережение
Задачи Outlook устарели и не возвращают данные 10 августа 2022 г. Обновите существующие приложения, использующие эту функцию, с задачами Outlook.
Допустимые типы вложений:
- Файл. На программном уровне это ресурс fileAttachment. См. пример 1.
- Элемент Outlook (контакт, событие или сообщение). На программном уровне вложением элемента является ресурс itemAttachment. Вы можете использовать параметр
$expand
, чтобы получить дополнительные свойства этого элемента, включая любые вложения (до 30 уровней). См. пример 3 и пример 4. - Ссылка на файл, хранящийся в облаке. На программном уровне это ресурс referenceAttachment. См. пример 5.
Все эти типы вложений являются производными от ресурса attachment.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Получение необработанного содержимого вложенного файла или элемента
Чтобы получить необработанное содержимое вложенного файла или элемента, вы можете добавить сегмент пути /$value
.
Для вложенного файла тип содержимого определяется исходя из его исходного типа. См. пример 6.
Для вложенного элемента, которое является контактом , событием и сообщением, возвращаемое необработанное содержимое будет иметь формат MIME.
тип вложенного элемента | Возвращаемое необработанное содержимое |
---|---|
контакт | vCard в формате MIME. См . пример 7. |
событие | iCal в формате MIME. См . пример 8. |
сообщение | Формат MIME. См . пример 9. |
При попытке получить $value
вложенной ссылки происходит возврат HTTP 405.
Примечание.
При запросе определенных файлов MIME может закодировать выходные данные потока байтов в ответе и предоставить ссылку для скачивания файла в виде вложения электронной почты.
Разрешения
В зависимости от ресурса (событие, сообщение, outlookTask или post), к которому присоединено вложение, и типа разрешения (делегированного или приложения), разрешение, указанное в следующей таблице, является наименее привилегированным, необходимым для вызова этого API. Чтобы получить дополнительные сведения, в том числе о соблюдении осторожности перед выбором разрешений с повышенными привилегиями, найдите следующие разрешения в разделе Разрешения.
Поддерживаемый ресурс | Делегированное (рабочая или учебная учетная запись) | Делегированное (личная учетная запись Майкрософт) | Для приложений |
---|---|---|---|
event | Calendars.Read | Calendars.Read | Calendars.Read |
message | Mail.Read | Mail.Read | Mail.Read |
outlookTask | Tasks.Read | Tasks.Read | Не поддерживается |
post | Group.Read.All | Не поддерживается | Не поддерживается |
HTTP-запрос
В этом разделе показан синтаксис HTTP-запроса GET для каждой сущности (событие, сообщение, задача Outlook и публикация), которые поддерживают вложения:
- Чтобы получить свойства и связи вложения, укажите идентификатор вложения для индексирования в коллекции вложений, присоединенной к указанному событию, сообщению, задаче Outlook или экземпляру post .
- Если вложением является файл или элемент Outlook (контакт, событие или сообщение), вы можете также получить необработанное содержимое вложения, добавив сегмент пути
/$value
в URL-адрес запроса.
Вложение события:
GET /me/events/{id}/attachments/{id}
GET /users/{id | userPrincipalName}/events/{id}/attachments/{id}
GET /me/events/{id}/attachments/{id}/$value
GET /users/{id | userPrincipalName}/events/{id}/attachments/{id}/$value
Вложение сообщения в почтовый ящик пользователя:
GET /me/messages/{id}/attachments/{id}
GET /users/{id | userPrincipalName}/messages/{id}/attachments/{id}
GET /me/messages/{id}/attachments/{id}/$value
GET /users/{id | userPrincipalName}/messages/{id}/attachments/{id}/$value
Вложение сообщения , содержащегося в папке mailFolder верхнего уровня в почтовом ящике пользователя:
GET /me/mailFolders/{id}/messages/{id}/attachments/{id}
GET /users/{id | userPrincipalName}/mailFolders/{id}/messages/{id}/attachments/{id}
GET /me/mailFolders/{id}/messages/{id}/attachments/{id}/$value
GET /users/{id | userPrincipalName}/mailFolders/{id}/messages/{id}/attachments/{id}/$value
Вложение сообщения , содержащегося в дочерней папке mailFolder в почтовом ящике пользователя:
GET /me/mailFolders/{id}/childFolders/{id}/.../messages/{id}/attachments/{id}
GET /users/{id | userPrincipalName}/mailFolders/{id}/childFolders/{id}/messages/{id}/attachments/{id}
GET /me/mailFolders/{id}/childFolders/{id}/.../messages/{id}/attachments/{id}/$value
GET /users/{id | userPrincipalName}/mailFolders/{id}/childFolders/{id}/messages/{id}/attachments/{id}/$value
В предыдущем примере показан один уровень вложенности, но сообщение может находиться в дочернем элементе дочернего элемента и т. д.
Вложение задачи Outlook:
GET /me/outlook/tasks/{id}/attachments/{id}
GET /users/{id}/outlook/tasks/{id}/attachments/{id}
GET /me/outlook/tasks/{id}/attachments/{id}/$value
GET /users/{id}/outlook/tasks/{id}/attachments/{id}/$value
Вложение записи в потоке , принадлежащем беседе группы:
GET /groups/{id}/threads/{id}/posts/{id}/attachments/{id}
GET /groups/{id}/conversations/{id}/threads/{id}/posts/{id}/attachments/{id}
GET /groups/{id}/threads/{id}/posts/{id}/attachments/{id}/$value
GET /groups/{id}/conversations/{id}/threads/{id}/posts/{id}/attachments/{id}/$value
Необязательные параметры запросов
Этот метод поддерживает некоторые параметры запросов OData для настройки отклика.
Используйте параметр $expand
, чтобы получить свойства вложения элемента (контакта, события или сообщения). См. пример 3 и пример 4.
Заголовки запросов
Имя | Тип | Описание |
---|---|---|
Authorization | string | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Текст запроса
Не указывайте текст запроса для этого метода.
Отклик
В случае успешного выполнения метод GET возвращает 200 OK
код ответа.
При получении свойств и связей вложения текст ответа включает объект attachment. Кроме того, возвращаются свойства этого типа вложения: fileAttachment, itemAttachment или referenceAttachment.
При получении необработанного содержимого вложенного файла или элемента, текст ответа содержит необработанное значение вложения.
Примеры
Пример 1. Получение свойств вложенного файла
Запрос
В следующем примере показан запрос на получение свойств вложения файла в сообщении.
GET https://graph.microsoft.com/beta/me/messages/AAMkAGUzY5QKjAAA=/attachments/AAMkAGUzY5QKjAAABEgAQAMkpJI_X-LBFgvrv1PlZYd8=
Отклик
Ниже показан пример отклика. Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('bb8775a4-4d8c-42cf-a1d4-4d58c2bb668f')/messages('AAMkAGUzY5QKjAAA%3D')/attachments/$entity",
"@odata.type": "#microsoft.graph.fileAttachment",
"id": "AAMkAGUzY5QKjAAABEgAQAMkpJI_X-LBFgvrv1PlZYd8=",
"lastModifiedDateTime": "2019-04-02T03:41:29Z",
"name": "Draft sales invoice template.docx",
"contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"size": 13068,
"isInline": false,
"contentId": null,
"contentLocation": null,
"contentBytes": "UEsDBBQABgAIAAAAIQ4AAAAA"
}
Пример 2. Получение свойств вложенного элемента
Запрос
В следующем примере показано, как получить вложенный элемент в сообщении. Возвращаются свойства itemAttachment.
GET https://graph.microsoft.com/beta/me/messages/AAMkADA1M-zAAA=/attachments/AAMkADA1M-CJKtzmnlcqVgqI=
Отклик
Ниже показан пример отклика. Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#users('d1a2fae9-db66-4cc9-8133-2184c77af1b8')/messages('AAMkADA1M-zAAA%3D')/attachments/$entity",
"@odata.type":"#microsoft.graph.itemAttachment",
"id":"AAMkADA1M-CJKtzmnlcqVgqI=",
"lastModifiedDateTime":"2017-07-21T00:20:34Z",
"name":"Reminder - please bring laptop",
"contentType":null,
"size":32005,
"isInline":false
}
Пример 3. Развертывание и изменение свойств элемента, вложенного в сообщение
Запрос
В следующем примере показано, как использовать $expand
для получения свойств элемента (контакт, событие или сообщение), вложенного в сообщение. В этом примере вложением является сообщением. Свойства вложенного сообщения также возвращаются.
GET https://graph.microsoft.com/beta/me/messages/AAMkADA1M-zAAA=/attachments/AAMkADA1M-CJKtzmnlcqVgqI=/?$expand=microsoft.graph.itemattachment/item
Отклик
Ниже показан пример отклика. Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#users('d1a2fae9-db66-4cc9-8133-2184c77af1b8')/messages('AAMkADA1M-zAAA%3D')/attachments/$entity",
"@odata.type":"#microsoft.graph.itemAttachment",
"id":"AAMkADA1MCJKtzmnlcqVgqI=",
"lastModifiedDateTime":"2017-07-21T00:20:34Z",
"name":"Reminder - please bring laptop",
"contentType":null,
"size":32005,
"isInline":false,
"item":{
"@odata.type":"#microsoft.graph.message",
"id":"",
"createdDateTime":"2017-07-21T00:20:41Z",
"lastModifiedDateTime":"2017-07-21T00:20:34Z",
"receivedDateTime":"2017-07-21T00:19:55Z",
"sentDateTime":"2017-07-21T00:19:52Z",
"hasAttachments":false,
"internetMessageId":"<BY2PR15MB05189A084C01F466709E414F9CA40@BY2PR15MB0518.namprd15.prod.outlook.com>",
"subject":"Reminder - please bring laptop",
"bodyPreview": "PFA\r\n\r\nThanks,\r\nRob",
"importance":"normal",
"conversationId":"AAQkADA1MzMyOGI4LTlkZDctNDkzYy05M2RiLTdiN2E1NDE3MTRkOQAQAMG_NSCMBqdKrLa2EmR-lO0=",
"conversationIndex":"AQHTAbcSwb41IIwGp0qstrYSZH+U7Q==",
"isDeliveryReceiptRequested":false,
"isReadReceiptRequested":false,
"isRead":false,
"isDraft":false,
"webLink":"https://outlook.office365.com/owa/?ItemID=AAMkADA1M3MTRkOQAAAA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem",
"internetMessageHeaders": [ ],
"body":{
"contentType":"html",
"content":"<html><head>\r\n</head>\r\n<body>\r\n</body>\r\n</html>"
},
"sender":{
"emailAddress":{
"name":"Adele Vance",
"address":"AdeleV@contoso.com"
}
},
"from":{
"emailAddress":{
"name":"Adele Vance",
"address":"AdeleV@contoso.com"
}
},
"toRecipients":[
{
"emailAddress":{
"name":"Alex Wilbur",
"address":"AlexW@contoso.com"
}
}
],
"ccRecipients":[
{
"emailAddress":{
"name":"Adele Vance",
"address":"AdeleV@contoso.com"
}
}
],
"flag":{
"flagStatus":"notFlagged"
}
}
}
Пример 4. Развертывание и получение свойств элемента, вложенного в сообщение, включая любые вложения элемента
Запрос
В следующем примере используется тот же запрос, что и в примере 3, чтобы получить свойства вложения элемента в сообщении с помощью параметра $expand
. В данном случае, так как вложенный элемент также содержит вложенный файл, в отклик также включаются свойства вложенного файла.
GET https://graph.microsoft.com/beta/me/messages/AAMkADA1M-zAAA=/attachments/AAMkADA1M-CJKtzmnlcqVgqI=/?$expand=microsoft.graph.itemattachment/item
Отклик
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('d1a2fae9-db66-4cc9-8133-2184c77af1b8')/messages('AAMkADA1M-zAAA%3D')/attachments(microsoft.graph.itemAttachment/item())/$entity",
"@odata.type": "#microsoft.graph.itemAttachment",
"id": "AAMkADA1MCJKtzmnlcqVgqI=",
"lastModifiedDateTime": "2021-01-06T13:28:11Z",
"name": "Nested Message With Attachment",
"contentType": null,
"size": 465916,
"isInline": false,
"item": {
"@odata.type": "#microsoft.graph.message",
"id": "",
"createdDateTime": "2021-01-06T13:28:30Z",
"lastModifiedDateTime": "2021-01-06T13:27:40Z",
"receivedDateTime": "2021-01-06T13:27:25Z",
"sentDateTime": "2021-01-06T13:27:04Z",
"hasAttachments": true,
"internetMessageId": "<BY2PR15MB05189A084C01F466709E414F9CA40@BY2PR15MB0518.namprd15.prod.outlook.com>",
"subject": "Nested Message With Attachment",
"bodyPreview": "PFAThanks,Adele",
"importance": "normal",
"conversationId": "AAQkADg3NTY5MDg4LWMzYmQtNDQzNi05OTgwLWQyZjg2YWQwMTNkZAAQAO6hkp84oMdGm6ZBsSH72sE=",
"conversationIndex": "AQHW5C+U7qGSnzigx0abpkGxIfvawQ==",
"isDeliveryReceiptRequested": false,
"isReadReceiptRequested": false,
"isRead": true,
"isDraft": false,
"webLink": "https://outlook.office365.com/owa/?ItemID=AAMkADA1M3MTRkOQAAAA%3D%3D&exvsurl=1&viewmodel=ItemAttachment",
"internetMessageHeaders": [],
"body": {
"contentType": "html",
"content": "<html><head>\r\n</head>\r\n<body>\r\n</body>\r\n</html>"
},
"sender": {
"emailAddress": {
"name": "Adele Vance",
"address": "Adele.Vance@microsoft.com"
}
},
"from": {
"emailAddress": {
"name": "Adele Vance",
"address": "Adele.Vance@microsoft.com"
}
},
"toRecipients": [
{
"emailAddress": {
"name": "Adele Vance",
"address": "Adele.Vance@microsoft.com"
}
}
],
"flag": {
"flagStatus": "notFlagged"
},
"attachments": [
{
"@odata.type": "#microsoft.graph.fileAttachment",
"@odata.mediaContentType": "application/pdf",
"id": "AAMkADg3NTYULmbsDYNg==",
"lastModifiedDateTime": "2021-01-21T14:56:18Z",
"name": "Info.pdf",
"contentType": "application/pdf",
"size": 417351,
"isInline": false,
"contentId": null,
"contentLocation": null,
"contentBytes": "JVBERi0xLjUNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyhlbi1JTikgL1N0cnVjdFRyZWVSb29"
}
]
}
}
Пример 5. Получение свойств вложенной ссылки
Запрос
В следующем примере показан запрос на получение ссылочного вложения для события.
GET https://graph.microsoft.com/beta/me/events/AAMkAGE1M88AADUv0uAAAG=/attachments/AAMkAGE1Mg72tgf7hJp0PICVGCc0g=
Отклик
Ниже показан пример отклика. Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users/ddfcd489-628b-40d7-b48b-57002df800e5/events/AAMkAGE1M88AADUv0uAAAG%3D/attachments/$entity",
"@odata.type": "#microsoft.graph.referenceAttachment",
"id": "AAMkAGE1Mg72tgf7hJp0PCGVCIc0g=",
"lastModifiedDateTime": "2016-03-12T06:04:38Z",
"name": "Personal pictures",
"contentType": null,
"size": 382,
"isInline": false,
"sourceUrl": "https://contoso.com/personal/mario_contoso_net/Documents/Pics",
"providerType": "oneDriveConsumer",
"thumbnailUrl": null,
"previewUrl": null,
"permission": "edit",
"isFolder": true
}
Пример 6. Получение необработанного содержимого вложенного файла в сообщении
Запрос
В следующем примере показан запрос на получение необработанного содержимого файла Word, присоединенного к сообщению.
GET https://graph.microsoft.com/beta/me/messages/AAMkAGUzY5QKjAAA=/attachments/AAMkAGUzY5QKjAAABEgAQAMkpJI_X-LBFgvrv1PlZYd8=/$value
Отклик
Ниже показан пример отклика. Фактический текст ответа содержит необработанные байты вложенного файла, которые кратко описаны ниже.
HTTP/1.1 200 OK
{Raw bytes of the file}
Пример 7. Получение необработанного содержимого MIME вложенного контакта в сообщении
Запрос
В следующем примере показан запрос на получение необработанного содержимого элемента контакта, присоединенного к сообщению.
GET https://graph.microsoft.com/beta/me/messages/AAMkADI5MAAGjk2PxAAA=/attachments/AAMkADI5MAAGjk2PxAAABEgAQACEJqrbJZBNIlr3pGFvd9K8=/$value
Отклик
Ниже показан пример отклика.
HTTP/1.1 200 OK
BEGIN:VCARD
PROFILE:VCARD
VERSION:3.0
MAILER:Microsoft Exchange
PRODID:Microsoft Exchange
FN:Alex Wilbur
N:Wilbur;Alex;;;
NOTE:Sunday\, June 10\, 2012 5:44 PM:\nGutter\, window cleaning\, pressure
washing\, roof debris blowing\n
ORG:Contoso;
CLASS:PUBLIC
ADR;TYPE=WORK,PREF:;;4567 Main St;Buffalo;NY;98052;United States of America
LABEL;TYPE=WORK,PREF:4567 Main St\nBuffalo\, NY 98052
ADR;TYPE=HOME:;;;;;;
ADR;TYPE=POSTAL:;;;;;;
TEL;TYPE=WORK:(425) 555-0100
TITLE:
X-MS-IMADDRESS:
REV;VALUE=DATE-TIME:2019-04-09T02:13:31,161Z
END:VCARD
Пример 8. Получение необработанного содержимого MIME вложенного события в сообщении
Запрос
В следующем примере показан запрос на получение необработанного содержимого события, присоединенного к сообщению.
GET https://graph.microsoft.com/beta/me/messages/AAMkADVIOAAA=/attachments/AAMkADVIOAAABEgAQACvkutl6c4FMifPyS6NvXsM=/$value
Отклик
Ниже показан пример отклика.
HTTP/1.1 200 OK
BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Pacific Standard Time
BEGIN:STANDARD
DTSTART:16010101T020000
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN=Adele Vance:MAILTO:adelev@contoso.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Adele Vance:MAILTO:adelev@contoso.com
DESCRIPTION;LANGUAGE=en-US:\n
UID:040000008200
SUMMARY;LANGUAGE=en-US:Review Megan's docs
DTSTART;TZID=Pacific Standard Time:20190409T140000
DTEND;TZID=Pacific Standard Time:20190409T160000
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20190409T211833Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION;LANGUAGE=en-US:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-OWNERAPPTID:0
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-LOCATIONS:[]
BEGIN:VALARM
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR
Пример 9. Получение необработанного содержимого MIME вложенного элемента приглашения на собрание в сообщении
Запрос
В следующем примере показан запрос на получение необработанного содержимого приглашения на собрание (типа eventMessage ), присоединенного к сообщению. Сущность eventMessage основана на типе сообщения.
GET https://graph.microsoft.com/beta/me/messages/AAMkAGUzY5QKiAAA=/attachments/AAMkAGUzY5QKiAAABEgAQAK8ktgiIO19OqkvUZAqLmyQ=/$value
Отклик
Ниже показан пример отклика.
В тексте ответа содержится приложение eventMessage в формате MIME. Текст eventMessage усекается для краткости. Полный текст сообщения возвращается от фактического вызова.
HTTP/1.1 200 OK
From: Megan Bowen <MeganB@contoso.com>
To: Adele Vance <AdeleV@contoso.com>
Subject: Let's go for lunch
Thread-Topic: Let's go for lunch
Thread-Index: AdTPqxOmg4AXoJV960a1j5NrJCHYjA==
X-MS-Exchange-MessageSentRepresentingType: 1
Date: Thu, 28 Feb 2019 21:17:58 +0000
Message-ID:
<CY4PR2201MB1046E9C83FC42478EF4EE283C9750@CY4PR2201MB1046.namprd22.prod.outlook.com>
Content-Language: en-US
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator:
X-MS-Exchange-Organization-RecordReviewCfmType: 0
Content-Type: multipart/alternative;
boundary="_000_CY4PR2201MB1046E9C83FC42478EF4EE283C9750CY4PR2201MB1046_"
MIME-Version: 1.0
--_000_CY4PR2201MB1046E9C83FC42478EF4EE283C9750CY4PR2201MB1046_
Content-Type: text/plain; charset="us-ascii"
Does mid month work for you?
--_000_CY4PR2201MB1046E9C83FC42478EF4EE283C9750CY4PR2201MB1046_
Content-Type: text/html; charset="us-ascii"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
Does mid month work for you?
</body>
</html>
--_000_CY4PR2201MB1046E9C83FC42478EF4EE283C9750CY4PR2201MB1046_
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
Content-Transfer-Encoding: base64
QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
--_000_CY4PR2201MB1046E9C83FC42478EF4EE283C9750CY4PR2201MB1046_--