Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В этой статье описываются технические характеристики стандарта офисных документов OpenDocument , разработанного отраслевым консорциумом OASIS . Различные организации разработали стандарт публично и сделали его общедоступным, что означает, что он может быть реализован кем угодно без ограничений. Формат OpenDocument призван предоставить открытую альтернативу проприетарным форматам документов.

Представление документа [ править ]

Формат OpenDocument поддерживает следующие два способа представления документа:

  • Как набор из нескольких вложенных документов в пакете , каждый из которых хранит часть полного документа. Это обычное представление документов OpenDocument. Он использует имя файла расширения , такие , как .odt, .ott, .ods, .odp... и т.д. Пакет представляет собой стандартный ZIP файл с различными расширениями и с определенной структурой поддокументов. Каждый вложенный документ в пакете имеет свой корень документа и хранит определенный аспект XML-документа. Все типы документов (например, текстовые документы и электронные таблицы) используют один и тот же набор определений документов и вложенных документов.
  • В виде единого XML-документа, также известного как Flat XML или несжатые XML-файлы . Отдельные XML-файлы OpenDocument широко не используются, [ необходима цитата ] они также не поддерживаются в некоторых офисных программах, которые утверждают, что поддерживают ODF (приложения Microsoft Office версий 2007–2013 их не распознают). Расширения файлов для документов XML через единый OpenDocument не определены в технической спецификации OpenDocument, но часто используются .xml, .fodt, [1] .fods , ... и т.д.

Рекомендуемые расширения имен файлов и типы MIME включены в официальный стандарт (OASIS, 1 мая 2005 г. и его более поздние версии или версии). Типы и расширения MIME, содержащиеся в спецификации ODF, применимы только к офисным документам, содержащимся в пакете. Документы Office, которые соответствуют спецификации OpenDocument, но не содержатся в пакете, должны использовать тип MIME text / xml.

Тип MIME также используется в office:mimetypeатрибуте. Очень важно использовать этот атрибут в плоских файлах XML / отдельных документах XML, где это единственный способ определить тип документа (в пакете тип MIME также присутствует в отдельном mimetype файла ). Его значения - это типы MIME, которые используются для упакованного варианта офисных документов.

Документы [ править ]

Чаще всего для документов OpenDocument используются расширения файлов .odtдля текстовых документов, .odsэлектронных таблиц, .odpпрограмм для презентаций и .odgграфики. Их легко запомнить, если рассматривать «.od» как сокращение от «OpenDocument», а затем отметить, что последняя буква указывает на его более конкретный тип (например, t для текста). Вот полный список типов документов, показывающий тип файла, рекомендуемое расширение файла и тип MIME :

Шаблоны [ править ]

OpenDocument также поддерживает набор типов шаблонов. Шаблоны представляют информацию о форматировании (включая стили) документов без самого содержимого. Рекомендуемое расширение имени файла начинается с «.ot» (интерпретируется как сокращение от «OpenDocument template»), причем последняя буква указывает тип шаблона (например, «t» для текста). В поддерживаемый набор входят:

Возможности [ править ]

Как отмечалось выше, формат OpenDocument может описывать текстовые документы (например, те, которые обычно редактируются текстовым редактором), электронные таблицы, презентации, рисунки / графика, изображения, диаграммы, математические формулы и «основные документы» (которые могут объединять их) . Он также может представлять шаблоны для многих из них.

Официальная версия стандарта OpenDocument 1.0 (OASIS, 1 мая 2005 г.) определяет возможности OpenDocument. Приведенный ниже текст дает краткое описание возможностей формата.

Метаданные [ править ]

Формат OpenDocument поддерживает хранение метаданных (данных о данных) за счет наличия набора предопределенных элементов метаданных, а также позволяет использовать определяемые пользователем и настраиваемые метаданные. Формат предопределяет следующие поля метаданных:

  • Генератор
  • Заголовок
  • Описание
  • Предмет
  • Ключевые слова
  • Первоначальный создатель
  • Создатель
  • Напечатано
  • Дата и время создания
  • Дата и время изменения
  • Печать даты и времени
  • Шаблон документа
  • Автоматическая перезагрузка
  • Поведение гиперссылки
  • Язык
  • Циклы редактирования
  • Продолжительность редактирования
  • Статистика документа

Содержание [ править ]

Формат текстового содержимого OpenDocument поддерживает как стандартные, так и расширенные возможности. Поддерживаются заголовки разного уровня, списки разного типа (нумерованные и нет), нумерованные абзацы и отслеживание изменений. Последовательности страниц и атрибуты разделов можно использовать для управления отображением текста. Также поддерживаются гиперссылки, рубиновый текст (который содержит аннотации и особенно важен для некоторых языков), закладки и ссылки. Также включены текстовые поля (для автоматически сгенерированного содержимого) и механизмы для автоматического создания таблиц, таких как оглавление, указатели и библиографии.

Формат OpenDocument реализует электронные таблицы как наборы таблиц. Таким образом, он имеет широкие возможности для форматирования отображения таблиц и электронных таблиц. OpenDocument также поддерживает диапазоны баз данных, фильтры и «пилотные данные» (известные в контекстах Microsoft Excel как « сводные таблицы »). Отслеживание изменений доступно и для электронных таблиц.

Графический формат поддерживает векторное графическое представление, в котором определяется набор слоев и содержимое [1] каждого слоя. Доступные фигуры для рисования включают прямоугольник, линию, полилинию, многоугольник, правильный многоугольник, путь, круг, эллипс и соединитель. Также доступны 3D-формы; формат включает информацию о Сцене, Свете, Кубе, Сфере, Вытягивании и Повороте (он предназначен для использования в качестве обмена данными в офисе и недостаточен для представления видео или других обширных трехмерных сцен). Также можно определить произвольные формы.

Поддерживаются презентации. Пользователи могут включать в презентации анимацию с контролем звука, отображением формы или текста, скрытием формы или текста или затемнением чего-либо, и их можно сгруппировать. В OpenDocument многие возможности форматирования повторно используются из текстового формата, что упрощает реализацию. Однако таблицы не поддерживаются в OpenDocument как объекты чертежа, поэтому могут быть включены в презентации только как встроенные таблицы.

Диаграммы определяют, как создавать графические изображения из числовых данных. Они поддерживают заголовки, субтитры, нижний колонтитул и легенду для пояснения диаграммы. Формат определяет ряд данных, которые будут использоваться для графического отображения, и ряд различных видов графических отображений (таких как линейные диаграммы, круговые диаграммы и т. Д.).

Формы специально поддерживаются на основе существующего стандарта XForms.

Объекты [ править ]

Документ в формате OpenDocument может содержать два типа объектов, а именно:

  • Объекты, которые имеют представление OpenDocument. Эти объекты:
    • Формулы (представленные как MathML)
    • Диаграммы
    • Таблицы
    • Текстовые документы
    • Рисунки
    • Презентаций
  • Объекты, не имеющие представления XML. Эти объекты имеют только двоичное представление. Примером такого типа объектов являются объекты OLE . [4]

Использование объектов Microsoft Object Linking and Embedding (OLE) ограничивает взаимодействие, поскольку эти объекты не широко поддерживаются в программах для просмотра или редактирования файлов (например, встраивание других файлов внутри файла, таких как таблицы или диаграммы из приложения для работы с электронными таблицами в текстовый документ или файл презентации). [5] [6] [7] [8] [9] Если программное обеспечение, которое понимает объект OLE, недоступно, объект обычно заменяется изображением (растровое представление объекта) или не отображается вообще. [10] [11] [12]

Форматирование [ править ]

Элементы управления стилем и форматированием многочисленны, обеспечивая ряд элементов управления отображением информации.

Макет страницы определяется множеством атрибутов. К ним относятся размер страницы, числовой формат, лоток для бумаги, ориентация печати, поля, граница (и ее ширина линии), отступы, тень, фон, столбцы, порядок страниц печати, номер первой страницы, масштаб, центрирование таблицы, максимальная высота сноски и разделитель. , и многие свойства сетки макета.

Верхние и нижние колонтитулы могут иметь фиксированную и минимальную высоту, поля, ширину линии границы, отступы, фон, тень и динамический интервал.

Есть много атрибутов для определенного текста, абзацев, рубинового текста , разделов, таблиц, столбцов, списков и заливок. Конкретные символы могут иметь свои шрифты, размеры, общие названия семейств шрифтов ( римский  - с засечками , швейцарский  - без засечек , современный  - моноширинный , декоративный , шрифт или системный.) и другие свойства. Вертикальное пространство абзацев может регулироваться с помощью атрибутов Keep together, widow и orphan, а также иметь другие атрибуты, такие как буквицы, для обеспечения особого форматирования. Список чрезвычайно обширен; см. ссылки (в частности, действующий стандарт) для получения подробной информации.

Формулы электронных таблиц [ править ]

OpenDocument версии 1.2 полностью описывает математические формулы, отображаемые на экране. Он полностью поддерживает обмен данными электронных таблиц, форматами, сводными таблицами и другой информацией, обычно включаемой в электронные таблицы. OpenDocument обменивается формулами как значениями таблицы атрибутов: формула.

Допустимый синтаксис таблицы: формула не был определен достаточно подробно в спецификации OpenDocument версии 1.0, которая определяла формулы электронных таблиц с помощью набора простых примеров, показывающих, например, как указать диапазоны и функцию SUM (). Таким образом, подгруппа формул OpenDocument Formula OASIS стандартизировала формулу table: в спецификации OpenFormula . Для получения дополнительной информации см. Статью OpenFormula .

Шифрование [ править ]

Когда файл OpenDocument защищен паролем, файловая структура пакета остается прежней, но содержимое файлов XML в пакете шифруется с использованием следующего алгоритма:

  1. Содержимое файла сжимается с помощью алгоритма DEFLATE .
  2. Вычисляется контрольная сумма части сжатого файла (SHA-1 содержимого файла, или SHA-1 первых 1024 байтов файла, или SHA-256 первых 1024 байтов файла) и сохраняется таким образом пароль правильность можно проверить при расшифровке.
  3. Дайджест (хеш) введенного пользователем пароля в кодировке UTF-8 создается и передается компоненту пакета. ODF версий 1.0 и 1.1 требует здесь поддержки только дайджеста SHA-1, тогда как версия 1.2 рекомендует SHA-256.
  4. Этот дайджест используется для создания производного ключа путем растягивания ключа с помощью PBKDF2 с использованием HMAC-SHA-1 с солью произвольной длины (в ODF 1.2 - это 16 байтов в ODF 1.1 и ниже), сгенерированных генератором случайных чисел для произвольной длины. количество итераций (1024 по умолчанию в ODF 1.2).
  5. Генератор случайных чисел используется для генерации случайного вектора инициализации для каждого файла.
  6. Вектор инициализации и производный ключ используются для шифрования содержимого сжатого файла. ODF 1.0 и 1.1 используют Blowfish в режиме обратной связи 8-битного шифра, в то время как ODF 1.2 считает его устаревшим алгоритмом и позволяет использовать вместо него Triple DES и AES (128, 196 или 256 бит), оба в режиме цепочки блоков шифра.

Внутреннее форматирование [ править ]

Файл OpenDocument обычно состоит из стандартного ZIP архива ( JAR архив [13] ) , содержащий несколько файлов и каталогов; но файл OpenDocument также может состоять только из одного XML-документа. Файл OpenDocument обычно представляет собой набор из нескольких вложенных документов в пакете (ZIP) . Файл OpenDocument как единый XML не получил широкого распространения. Согласно спецификации OpenDocument 1.0, спецификация файла ZIP определена в примечании к приложению Info-ZIP 970311, 1997 . [14] [15] Простой механизм сжатия, используемый для пакета, обычно делает файлы OpenDocument значительно меньше, чем эквивалентные Microsoft " .doc" или ".ppt"файлы. Этот меньший размер важен для организаций, которые хранят огромное количество документов в течение длительных периодов времени, а также для тех организаций, которым необходимо обмениваться документами через соединения с низкой пропускной способностью. После распаковки большая часть данных содержится в простых текстовых файлах XML. , поэтому несжатое содержимое данных имеет типичную простоту модификации и обработки файлов XML.Стандарт также позволяет создавать единый документ XML, который использует <office: document> в качестве корневого элемента, для использования при обработке документов.

Стандарт позволяет включать каталоги для хранения изображений, анимации , не относящейся к SMIL , и других файлов, которые используются в документе, но не могут быть выражены непосредственно в XML.

Благодаря используемому открыто указанному формату сжатия, пользователь может извлечь файл-контейнер, чтобы вручную редактировать содержащиеся в нем файлы. Это позволяет восстановить поврежденный файл или манипулировать содержимым на низком уровне.

Заархивированный набор файлов и каталогов включает следующее:

  • XML файлы
    • content.xml
    • meta.xml
    • settings.xml
    • styles.xml
  • Другие файлы
    • mimetype
  • Справочники
    • МЕТА-ИНФ /
      • manifest.xml
    • Эскизы /
      • thumbnail.png

Формат OpenDocument обеспечивает четкое разделение между содержимым, макетом и метаданными. Наиболее важные компоненты формата описаны в подразделах ниже. Файлы в формате XML дополнительно определяются с помощью языка RELAX NG для определения схем XML. Сам RELAX NG определяется спецификацией OASIS, а также частью второй международного стандарта ISO / IEC 19757: Языки определения схемы документов (DSDL).

content.xml [ править ]

content.xml , самый важный файл, содержит фактическое содержимое документа (за исключением двоичных данных, таких как изображения). Базовый формат основан на HTML, и хотя он намного сложнее, он должен быть достаточно понятным для людей:

<text: h  style-name = "Heading_2" > Это заголовок </ text: h> <text: p  style-name = "Text_body" /> <text: p  style-name = "Text_body" > Это абзац. Информация о форматировании в стиле Text_body. Пустой тег text: p выше это пустой абзац (пустая строка).</ text: p>

styles.xml [ править ]

styles.xml содержит информацию о стилях. OpenDocument интенсивно использует стили для форматирования и разметки. Большая часть информации о стилях находится здесь (хотя часть находится в content.xml). Типы стилей включают:

  • Стили абзаца
  • Стили страниц
  • Стили персонажей
  • Стили рамок
  • Список стилей

Формат OpenDocument несколько необычен тем, что нельзя избежать использования стилей для форматирования. Даже «ручное» форматирование реализуется с помощью стилей (приложение динамически создает новые стили по мере необходимости).

meta.xml [ править ]

meta.xml содержит метаданные файла. Например, Автор, «Автор последнего изменения», дата последнего изменения и т. Д. Содержимое выглядит примерно так:

<meta: creation-date> 2003-09-10T15: 31: 11 </ meta: creation-date> <dc: creator> Дэниел Каррера </ dc: creator> <dc: date> 2005-06-29T22: 02: 06 </ dc: date> <dc: language> es-ES </ dc: language> <meta: document-statistic  table-count = "6"  object-count = "0"  page-count = "59"  абзац- count = "676"  image-count = "2"  word-count = "16701"  character-count = "98757" />

Имена тегов <dc: ...> взяты из стандарта XML Dublin Core .

settings.xml [ править ]

settings.xml включает такие параметры, как коэффициент масштабирования или положение курсора. Это свойства, которые не являются содержимым или макетом.

mimetype (файл) [ править ]

mimetype - это просто однострочный файл с mimetype документа. Одним из следствий этого является то, что расширение файла на самом деле не имеет значения для формата. Расширение файла предназначено только для удобства пользователя.

Эскизы (каталог) [ править ]

Миниатюры - это отдельная папка для миниатюр документа. Миниатюра должна быть сохранена как «thumbnail.png». Миниатюрное представление документа должно быть создано по умолчанию при сохранении файла. Это должно быть изображение первой страницы, первого листа и т. Д. Документа. Требуемый размер миниатюр - 128x128 пикселей. Чтобы соответствовать Стандарту управления эскизами (TMS) на сайте www.freedesktop.org, эскизы должны быть сохранены как 8-битные изображения PNG без чересстрочной развертки с полной альфа-прозрачностью.

META-INF (каталог) [ править ]

META-INF - это отдельная папка. Информация о файлах, содержащихся в пакете OpenDocument, хранится в XML-файле, который называется файлом манифеста. Файл манифеста всегда хранится по пути META-INF / manifest.xml. В манифесте хранятся следующие основные части информации:

  • Список всех файлов в пакете.
  • Тип носителя каждого файла в пакете.
  • Если файл, хранящийся в пакете, зашифрован, информация, необходимая для расшифровки файла, сохраняется в манифесте.

Фотографии (каталог) [ редактировать ]

Картинки - это отдельная папка для изображений, включенных в документ. Эта папка не определена в спецификации OpenDocument. Файлы в этой папке могут использовать различные форматы изображений, в зависимости от формата вставленного файла. Хотя данные изображения могут иметь произвольный формат, рекомендуется хранить растровую графику в формате PNG, а векторную графику - в формате SVG.

Повторное использование существующих форматов [ править ]

По замыслу OpenDocument повторно использует существующие стандарты открытого XML всякий раз, когда они доступны, и создает новые теги только там, где ни один из существующих стандартов не может обеспечить необходимую функциональность. Таким образом, OpenDocument использует подмножество DublinCore для метаданных , MathML для отображаемых формул , SMIL для мультимедиа , XLink для гиперссылок и т. Д.

Хотя не полностью повторно использует SVG для векторной графики , OpenDocument действительно использует SVG-совместимую векторную графику в пространстве имен, зависящем от формата ODF, но также включает графику , не относящуюся к SVG.

История [ править ]

  • Версия 1.0 стала стандартом OASIS 01 мая 2005 г. [16]
  • Версия 1.1 стала стандартом OASIS 07 февраля 2007 г. [17]
  • Версия 1.2 стала стандартом OASIS 29.09.2011 [18]

Обнаружение версий [ править ]

Чтобы указать, какой версии спецификации OpenDocument соответствует файл, все корневые элементы принимают office:versionатрибут. Номер версии находится в формате revision.version (например, office: version = "1.1"). В office:versionатрибут указывает версию спецификации ODF , который определил связанный с ним элемент, его схемы, ее полное содержание, и его толкование.

ODF 1.0 / 1.1 [ править ]

Если версия файла известна процессору XML, он может проверить документ. В противном случае проверка документа необязательна, но документ должен быть правильно сформирован. Использование office:versionатрибутов в файлах ODF 1.0 и ODF 1.1 не является обязательным .

ODF 1.2 [ править ]

office:versionАтрибут должен присутствовать в каждом <офис: документ>, <офис: документ-контента>, <офис: документ-стили>, <офис: документ-мета> и <офис: документ-настройки> элемент в XML-документы, составляющие документ OpenDocument 1.2. Значение атрибута office: version должно быть «1.2».

Когда элемент имеет office: version = "1.1", элемент и его содержимое основаны на спецификации OpenDocument v1.1. Для office: version = "1.0" элемент и его содержимое основаны на спецификации OpenDocument v1.0. Если для элемента пропущено office: version, элемент основан на более ранней версии спецификации OpenDocument, чем v1.2. В этих случаях и в случае значений, отличных от «1.2», элементы не составляют документ OpenDocument 1.2. [19]

Соответствие [ править ]

ODF 1.0 / 1.1 [ править ]

Спецификация OpenDocument не определяет, какие элементы и атрибуты соответствующие приложения должны, должны или могут поддерживать. Даже типичные офисные приложения могут поддерживать только подмножество элементов и атрибутов, определенных в спецификации. Спецификация содержит ненормативную таблицу, которая дает обзор того, какие элементы и атрибуты обычно поддерживаются типичным офисным приложением.

Документы, соответствующие спецификации OpenDocument, могут содержать элементы и атрибуты, не указанные в схеме OpenDocument. Такие элементы и атрибуты не должны быть частью пространства имен, которое определено в спецификации и называется внешними элементами и атрибутами.

Соответствующие приложения должны либо читать документы, которые действительны для схемы OpenDocument, если все внешние элементы и атрибуты удаляются до того, как будет проведена проверка, либо должны писать документы, действительные для схемы OpenDocument, если все сторонние элементы и атрибуты удаляются до проверки. Соответствующие приложения, которые читают и записывают документы, могут сохранять сторонние элементы и атрибуты. В дополнение к этому соответствующие приложения должны сохранять метаинформацию и содержимое стилей.

Соответствующие заявки должны читать документы, содержащие инструкции по обработке, и сохранять их.

ODF 1.2 [ править ]

ODF 1.2 точно определяет потребности соответствия. Спецификация определяет соответствие для документов, потребителей и производителей с двумя классами соответствия, называемыми соответствием и расширенным соответствием. Кроме того, он определяет соответствующий текст, электронную таблицу, рисунок, презентацию, диаграмму, изображение, формулу и документы внешнего интерфейса базы данных. В главе 2 определены основные требования к отдельным целям соответствия. [20]

Сноски [ править ]

  1. ^ «OpenOffice.org Document Version Control With Mercurial» . Архивировано из оригинала на 2017-11-25 . Проверено 7 июня 2010 .
  2. ^ Типы MIME - приложения OpenSolaris по умолчанию , заархивировано из оригинала 16.07.2011 , получено 06.06.2010
  3. ^ .Odb Extension - Список программ , которые могут открывать файлы .odb , извлекаются 2010-06-06
  4. ^ Согласно спецификации OpenDocument 1.0, OLE определено в Kraig Brockschmidt, Inside OLE, Microsoft Press, 1995, ISBN 1-55615-843-2  .
  5. Брюс Байфилд (23 августа 2005 г.). «Сравнение текстовых процессоров FOSS: OOo Writer, AbiWord и KWord» . Проверено 6 апреля 2010 .
  6. ^ «Обмен файлами между OpenOffice.org и Microsoft Office» . 2005-07-28. Архивировано из оригинала на 2010-02-04 . Проверено 6 апреля 2010 .
  7. ^ «SoftMaker Office 2008 ориентирован на совместимость с Microsoft Office» . 2008-11-20 . Проверено 6 апреля 2010 .
  8. ^ «Бета-версия SoftMaker Office 2006: не убийственное приложение» . 2006-11-21 . Проверено 6 апреля 2010 .
  9. ^ Филипп Лагадек (30 ноября 2006 г.), OpenOffice / OpenDocument и Microsoft Office 2007 / безопасность Open XML (PDF) , получено 06 апреля 2010 г.
  10. ^ "Объект OLE - растровое представление?" . Архивировано из оригинала на 2011-07-24 . Проверено 6 апреля 2010 .
  11. ^ «Богатый элемент управления редактированием, отображающий растровые изображения и другие объекты OLE» . Проверено 6 апреля 2010 .
  12. ^ «ACC: Почему объекты OLE вызывают рост баз данных» . 2007-01-19. Архивировано из оригинала на 2009-12-13 . Проверено 29 апреля 2010 .
  13. ^ «Веб-ресурсы и интересные ссылки - легкое и простое введение в формат OpenDocument (ODF)» . Архивировано из оригинала на 2008-06-02 . Проверено 7 июня 2010 .
  14. ^ "ПОТРЕБНОСТИ-ОБСУЖДЕНИЕ: Почтовый индекс - N 1309" . Проверено 7 июня 2010 .
  15. ^ «Ссылка на почтовый индекс не является ни публичной, ни авторитетной» . 2009-10-11 . Проверено 7 июня 2010 .
  16. ^ «Формат открытого документа OASIS для офисных приложений (OpenDocument) TC» . Сайт ОАЗИСа . ОАЗИС . Проверено 8 февраля 2010 . Спецификация OpenDocument v1.0 была утверждена в качестве стандарта OASIS 1 мая 2005 г.
  17. ^ "OpenDocument v1.1 Specification" . Сайт ОАЗИСа . ОАЗИС . Проверено 8 февраля 2010 . Спецификация OpenDocument v1.1 была утверждена в качестве стандарта OASIS 2 февраля 2007 г.
  18. ^ Члены одобряют формат OpenDocument Format (ODF) версии 1.2 как стандарт OASIS , 2011-10-05 , получено 2012-04-12
  19. ^ «office: атрибут версии - OpenDocument версии 1.2, часть 1, 29 сентября 2011 г.» . Проверено 5 декабря 2012 .
  20. ^ «Соответствие определено в OpenDocument версии 1.2, часть 1, 29 сентября 2011 г.» . Проверено 5 декабря 2012 .

Ссылки [ править ]

  • Спецификация OpenDocument 1.2 в форматах ODT, HTML и PDF
  • Спецификация OpenDocument 1.1 в форматах ODT, HTML и PDF
  • Спецификация OpenDocument 1.0 в форматах ODT, HTML и PDF

Внешние ссылки [ править ]

  • Обсуждение сценария оболочки Linux для уменьшения размеров файлов OpenDocument
  • Типы носителей приложений IANA.
  • Формат открытого документа (ISO / IEC 26300) / Office Open XML (ISO / IEC 29500) Рекомендации по переводу - ISO / IEC PDTR 29166