The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google открыл исходный код PDF-движка Chrome

22.05.2014 19:40

Компания Google открыла исходные тексты проекта PDFium, в рамках которого развивается движок для отображения и обработки документов в формате PDF, а также сопутствующий комплект для разработчиков (FPDF SDK), позволяющий задействовать движок в своих проектах. Код PDFium написан на языке Си++ и распространяется под лицензией BSD.

Судя по присутствующему во всех исходных файлах примечанию и списку коммиттеров, движок основан на коде, созданном компанией Foxit Software, развивающей популярный проприетарный продукт для просмотра PDF - Foxit Reader, конкурирующий с Adobe Reader и отличающийся очень высокой производительностью. Отдельно стоит отметить, что PDFium использует геометрическую библиотеку AntiGrain, автором которой является Максим Шеманарев, погибший год назад.

Компания Google намерена включить PDFium в состав браузера Chromium, чтобы поддержать функциональный паритет с браузером Chrome. Если сравнивать PDFium с интегрированным в Firefox просмотрщиком PDF.js, с точки зрения производительности, потребления ресурсов, поддержке нюансов и особенностей PDF и качества отображения, PDFium значительно превосходит написанный на JavaScript PDF.js. С позиции безопасности PDF.js более предпочтителен, так как он абстрагирован от кода браузера и выполняется с применением более высокого уровня изоляции. Кроме того, функциональности PDF.js вполне достаточно для обработки большинства PDF-документов. При этом интеграция PDFium в Firefox маловероятна, так как для обработки встроенного в PDF-файлы JavaScript кода PDFium использует привязку к JavaScript-движку V8 и требует значительной переработки для перевода на использование движка SpiderMonkey.

Дополнение: Компания Foxit подтвердила, что PDFium является разработкой компании и позиционируется в качестве открытого варианта проприетарного Foxit PDF SDK. PDFium обеспечивает такие средства работы с PDF-документами и PDF-формами, как просмотр, вывод на печать, поиск внутри документа и заполнение форм.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Вышел Foxit Reader для Linux
  3. OpenNews: Фонд СПО признал проект GNU PDF состоявшимся и исключил его из списка приоритетных разработок
  4. OpenNews: Полноценная программа для чтения PDF, написанная целиком на JavaScript
Автор новости: rob pike
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/39838-pdf
Ключевые слова: pdf, chrome
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (62) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Crazy Alex (ok), 20:19, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    О, отлично. Фокситовский движок весьма хорош и шустр, если его можно будет использовать в открытых проектах - это жирный плюс.
     
     
  • 2.16, Vkni (ok), 22:15, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > О, отлично. Фокситовский движок весьма хорош и шустр, если его можно будет
    > использовать в открытых проектах - это жирный плюс.

    И ещё он будет избавлен от уязвимостей (см. недостатки xpdf, acroread).

     
     
  • 3.23, Crazy Alex (ok), 03:06, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Поглядим, как там с уязвимостями - но, учитывая, что код весьма неплох, плюс гугловская оплата за баги - думаю, особых ужасов ждать не приходится.
     
     
  • 4.29, Vkni (ok), 08:59, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Всё-таки, в отличие от других PDF-движков этот сразу планируется встраивать в браузер, т.е. обрабатывать им данные из недоверенных источников. Ну и культура написания защищённых программ у Гугеля значительно лучше, чем у Адобы.
     
  • 2.24, Аноннннн (?), 05:08, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ТОка печатает безобразно
     
     
  • 3.44, Аноним (-), 10:08, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ТОка печатает безобразно

    Как самокритично!

     

  • 1.2, Аноним (-), 20:28, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Было бы хорошо, если бы мозильщики забили на свой JS-горбыль, который истошно жрет проц по 2 минуты и юзали вот это.
     
     
  • 2.4, Аноным (ok), 20:42, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Зато безопасно
     
     
  • 3.17, Vkni (ok), 22:15, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зато безопасно

    Если не считать DOS (подвисание браузера) за уязвимость.

     
  • 3.18, Аноним (-), 22:28, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    это всего лишь самовнушение.
     
  • 3.45, Аноним (-), 10:10, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато безопасно

    А если компьютер не подключать к питанию - тогда вообще станет зашибись. Если программой невозможно пользоваться - при этом уже не так важно какая она там мегабезопасная.

     
  • 2.6, Хрен с горы (?), 21:03, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >свой JS-горбыль, который истошно жрет проц по 2 минуты

    ЛОЛШТО?
    http://arewefastyet.com/

     
     
  • 3.20, Lain_13 (ok), 22:43, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ЛОЛТО. Это у тебя сравнение JS-движков, а не производительности pdf.js и PDFium. Разницу понимаешь?
     
  • 3.46, Аноним (-), 10:14, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > ЛОЛШТО?

    Лолто. Это у...ще нисколько не сомневаясь будет перегонять весь PDF на 500 страниц в JS, пыхтя две минуты. Эти две минуты проц положен в полку, а интерфейс браузера будет клинить. Сколько оно памяти при этом съест - понятно, думаю. На большом может влегкую пойти на многие гигабайты.

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

    Мало того что писали на тормозном JS, так еще выбрали максимально идиoтскую стратегию рендеринга "а давайте все и сразу попробуем зарендерить, все 500 страниц!"

     
     
  • 4.59, Аноним (-), 14:36, 25/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А отключить встроенный просмотрщик руки отваливаются?
     
     
  • 5.60, Аноним (-), 21:05, 25/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А отключить встроенный просмотрщик руки отваливаются?

    Ну да, выходя на улицу не забудь одеть противогаз, напялить каску, убедись что взял бронежилет и костюм химзащиты. И миноискатель главное не забудь. Вдруг какой-нибудь добрый человек перекладывал асфальт? Для вашего же блага!

     
  • 2.26, Аноним (-), 07:06, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Для нытиков, идём в about:config
    pdfjs.disabled;true. Теперь скачиваем pdf и смотрим в том, чём нравится
     
     
  • 3.40, Crazy Alex (ok), 14:36, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Собственно, даже about:config не нужен, settings->applications - и выбираем для pdf нужный вариант. Но идея Мозиллы менее загадочной от этого не становится.
     
     
  • 4.41, rain87 (?), 16:28, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    просто она работает. да, у меня и7 и я не дрочу на индикатор загрузки проца
     
     
  • 5.47, Аноним (-), 10:17, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > индикатор загрузки проца

    Ффтыкать по 2 минуты в сильно тормозящий браузер - удовольствие ниже среднего. Оно конечно работает, но вопрос в том как. Мало того что JS сам по себе тормоз, так они еще выбрали максимально глупую и недружественную к пользователю стратегию рендеринга - рендерить сразу весь документ при попытке открытия. Более вменяемые вьюшки рендерят по мере мотания документа. И при том прорисовывают документ быстрее и лучше чем этот кусок гуано от мозиллы. Который половину пдфников рендерит некорректно, для начала. Простой как валенок evince обставляет это и по скорости рендера на порядки и по отсутствию глюков. Не говоря что он открывает пдфники мгновенно, без клина интерфейсов где либо на минуту.

     
     
  • 6.64, rain87 (?), 12:29, 26/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > Ффтыкать по 2 минуты в сильно тормозящий браузер - удовольствие ниже среднего.
    > Оно конечно работает, но вопрос в том как. Мало того что
    > JS сам по себе тормоз, так они еще выбрали максимально глупую
    > и недружественную к пользователю стратегию рендеринга - рендерить сразу весь документ
    > при попытке открытия. Более вменяемые вьюшки рендерят по мере мотания документа.
    > И при том прорисовывают документ быстрее и лучше чем этот кусок
    > гуано от мозиллы. Который половину пдфников рендерит некорректно, для начала. Простой
    > как валенок evince обставляет это и по скорости рендера на порядки
    > и по отсутствию глюков. Не говоря что он открывает пдфники мгновенно,
    > без клина интерфейсов где либо на минуту.

    я где то сказал хоть слово, что оно тормозит? повторюсь - у меня оно работает мгновенно и без тормозов. иначе я бы первым делом его отключил

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

     

  • 1.3, Аноним (-), 20:30, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > встроенного в PDF-файлы JavaScript кода

    "Ух ты, а что, так можно?"

    И, главное, а как это заблокировать? А то ща все пи...сы начнут кто биткоины майнить, кто за пользователями следить, кто серваки ддосить кучей запросов...

     
     
  • 2.10, Аноним (-), 21:43, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    До Чингачгука только на двадцатый год дошло, что у сарая нет задней стены? Ну ты и т@рмозилла, да еще поди идейный.

    Этой фишке в PDF 20 лет в обед.

     
     
  • 3.48, Аноним (-), 10:18, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Этой фишке в PDF 20 лет в обед.

    Это не фишка, это фишинг.

     
  • 2.50, Аноним (-), 11:49, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И, главное, а как это заблокировать?

    Ты не поверишь. Как обычно, в стандартной менюшке хрома, появляющейся по щелчку слева от урла в адресной строке.

     
     
  • 3.56, Аноним (-), 12:58, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Мде, хром головного мозга во все поля.
     

  • 1.5, Аноним (-), 20:58, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >поддержать функциональный паритет с браузером Chrome.

    Ну сейчас это не нужно, ведь есть https://chrome.google.com/webstore/detail/oemmndcbldboiebfnladdacbdfmadadm/ . Да и засинхронизировать его можно в случае чего. Но надо посмотреть, что оне там сделают. Главное, чтобы их новый просмотрщик можно было в случае чего отключить и вновь пользоваться вышеуказанным.

     
  • 1.7, paulus (ok), 21:06, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Еще один повод поблагодарить Google за поддержку СПО. Теперь не нужно будет самому добавлять в Chromium pdf-просмотрщик из Chrome.
     
     
  • 2.9, megabaks (ok), 21:42, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Теперь не нужно будет самому добавлять в Chromium pdf-просмотрщик из Chrome.
    >самому

    плохо быть тобой.
    вообще-то есть пакеты с хромо-плагинами.

     

  • 1.8, Хрен с горы (?), 21:09, 22/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    >При этом интеграция PDFium в Firefox маловероятна, так как для обработки встроенного в PDF-файлы JavaScript кода PDFium использует привязку к JavaScript-движку V8 и требует значительной переработки для перевода на использование движка SpiderMonkey.

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

     
     
  • 2.15, Vkni (ok), 22:13, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Мозилловцы специально же пишут просмоторщик на js, не от того что альтернатив
    > нет. Точно так же, как и флэш переписывают на него. Просто
    > JavaScript - это технолгия будущего, настоящая кроссплатформенность и гибкость.

    Ага, прямо как один сказал "C - язык будущего". :-) Единственная польза от PDF.js в том, что просмотрщик крутится в той же песочнице, что и скрипты со страницы. То есть, в отличие от C++-ного кода, не добавляет новых уязвимостей (если не считать уязвимостью DOS - подвисание браузера).

     
     
  • 3.19, Хрен с горы (?), 22:38, 22/05/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Единственная польза от PDF.js в том, что просмотрщик крутится в той же песочнице, что и скрипты со страницы.

    Нет же. JS позволяет показать пдф-ку хоть где, где есть нормальный браузер.

     
     
  • 4.21, Led (ok), 01:13, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >JS позволяет показать пдф-ку хоть где, где есть нормальный браузер.

    Врёшь, одного "нормального бразера" недостаточно. Нужно ещё пару лишних гигабайт памяти.

     
     
  • 5.33, Хрен с горы (?), 11:40, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Нужно ещё пару лишних гигабайт памяти.

    А мой телефон с 512 оперативы то этого не знает!

     
     
  • 6.49, Аноним (-), 10:20, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А мой телефон с 512 оперативы то этого не знает!

    Попробуй на нем в мозильской вьюшке посмотреть даташит на Ti OMAP. Хочу посмотреть как телефон расплавится и стечет в унитаз :)

     
  • 4.22, Vkni (ok), 01:46, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нормальный браузер есть на 3-х ОС: Windows, Linux, OSX. И везде, кроме Windows, есть просмотрщик PDF.
     
     
  • 5.34, Хрен с горы (?), 11:40, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Нормальный браузер есть на 3-х ОС: Windows, Linux, OSX. И везде, кроме
    > Windows, есть просмотрщик PDF.

    А как же телевизоры всякие? Сейчас куда не плюнь интернет встраивают.

     
     
  • 6.54, Аноним (-), 12:52, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А как же телевизоры всякие? Сейчас куда не плюнь интернет встраивают.

    Не думаю что это попадает под критерий нормального браузера.

     
  • 3.25, rob pike (?), 05:41, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >просмотрщик крутится в той же песочнице, что и скрипты со страницы. То есть, в отличие от C++-ного кода, не добавляет новых уязвимостей

    А если С++ный код крутится в другой песочнице, это добавляет уязвимостей?
    Каким образом? Или вы просто имеете в виду что с точки зрения теории вероятности больше песочниц - больше вероятности багов?

     
     
  • 4.30, Vkni (ok), 09:11, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А если С++ный код крутится в другой песочнице, это добавляет уязвимостей?

    Да. Следим за руками:

    а) Песочницы неидеальны - они содержат ошибки.

    б) Чем больше вариантов кода может бегать в песочнице, тем легче её взломать. Скажем, если в песочнице может выполняться только Hello world (в силу каких-то обстоятельств), такая песочница, скорее всего, невзламываема.

    в) Мы можем подсовывать браузеру любой JS код, а вот С++ код, выполняемый в песочнице, мы менять не можем. Например, мы можем подсунуть ему PDF.js, а заставить передать управление PDFium'у не можем (если тот не встроен).

    Таким образом, PDF.js не увеличивает кол-во программ, которые могут использоваться для взлома JS песочницы, а PDFium - увеличивает. Соответственно, если забыть про DOS атаки на браузер, то PDF.js безопаснее.

     
     
  • 5.55, Аноним (-), 12:55, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > а) Песочницы неидеальны - они содержат ошибки.

    Это можно сказать и про JSную VM, если что. Более того - половина уязвимостей именно там и возникает.

    > б) Чем больше вариантов кода может бегать в песочнице,

    По определению, количество кода бесконечно. Мозилла генерит код из входных данных.

    > Таким образом, PDF.js не увеличивает кол-во программ, которые могут использоваться для
    > взлома JS песочницы,

    Да, тав всего 1 немеряный движок всему вебу вывешен. И половина секурити багов лисы - именно там.

     
     
  • 6.57, Vkni (ok), 17:20, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Прочесть прочёл, а понять не понял. Аноним.
     

  • 1.27, mma (?), 07:10, 23/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ктонибудь сравнивал, как оно по сравнению с poppler?
     
  • 1.28, commiethebeastie (ok), 08:24, 23/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жду в chromium.
     
  • 1.31, meequz (ok), 11:24, 23/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Конечно ок что открыли, но имхо Mozilla ничего переделывать из-за этого не надо. У меня и на стареньком нетбуке Eee PC pdfки в Firefox с достаточной скоростью открываются и корректно отображаются.
     
     
  • 2.32, абыр (ok), 11:34, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А если открыть две pdf-ки ?
     
     
  • 3.36, Михаил (??), 13:35, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А зачем вообще в браузере открывать pdf-ки?
     
  • 3.37, meequz (ok), 13:50, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Нормально. Лаги есть, но некритичные (вроде полусекундной задержки раз в 15 секунд). В одной вкладке даташит на Atmel, 448 страниц, в другой на PIC16F87X, 218 страниц. Первое что в гугле нашлось. Asus Eee PC 1005PE, Mint 15 MATE 32bit, Firefox 32.0a1.
     
     
  • 4.39, Хрен с горы (?), 14:00, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >Лаги есть, но некритичные (вроде полусекундной задержки раз в 15 секунд)

    Ща Generational Garbage Collector допилят и те пропадут.

     
  • 4.52, Аноним (-), 12:40, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Теперь расскажи сколько минут они открываются Ну а вот если фичой еще и пользов... большой текст свёрнут, показать
     
  • 2.35, цирроз (ok), 12:46, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    И большие файлы тоже?
     
     
  • 3.38, meequz (ok), 13:52, 23/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > И большие файлы тоже?

    Да (448 страниц). Asus Eee PC 1005PE, Mint 15 MATE 32bit, Firefox 32.0a1.
    Но вы можете прислать мне для теста ссылку на большой в вашем понимании документ.

     
     
  • 4.53, Аноним (-), 12:41, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Но вы можете прислать мне для теста ссылку на большой в вашем
    > понимании документ.

    Просто погуглите разные PDF и опробуйте хотя-бы сотню-другую. Два пдфа из всех миллионов на планете - это не тест, извините.

     

  • 1.42, Аноним (-), 18:36, 23/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так это получается, что Chrome по сути стал полностью открытым?
     
     
  • 2.43, Аноним (-), 09:58, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Flash же.
     

  • 1.51, Аноним (-), 11:57, 24/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Итого, для рендеринга есть xpdf с отпрыском poppler, Ghostscript, реактивный MuPDF, да вот этот PDFium.  А чем из C создавать PDF?  libHaru не умеет в UTF-8 и CCITT/G4. Точнее, в UTF-8 умеет, но результат либо рендерится неправильно, либо через pdftotext не проходит и поиск не работает; а CCITT понимает только на импорт (в чём мало смысла, поскольку TIFF библиотека импортировать не умеет).  PoDoFo? Не умеет жать в CCITT/G4; с UTF-8, на первый взгляд в сорцы, получше.  Есть ещё варианты?
     
     
  • 2.58, rob pike (?), 22:18, 24/05/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    http://www.foxitsoftware.com/russian/products/sdk/
     
     
  • 3.61, Аноним (-), 21:08, 25/05/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > http://www.foxitsoftware.com/russian/products/sdk/

    Вы сайтом ошиблись. Тут про открытые технологии. А вендовoзная blob-онли буита - это не сюда, извините.

     
     
  • 4.62, rob pike (?), 23:19, 25/05/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Человек же просил рабочее а не открытое
     
     
  • 5.65, Аноним (-), 00:05, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я (тред-стартер) наивно полагал, что на сайте, посвященном открытому ПО, в новости об открытой библиотеке подскажут софт под свободными лицензиями (тем более, в коментарии закрытого ПО не упоминал). Заблуждался, должно быть…

    Собственно, меня пока устраивает питонячий свободный пакет ReportLab, но для идеала и ему не хватает поддержки вывода в CCITT/G4.

     

  • 1.63, universite (ok), 00:12, 26/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть еще SumatraPDF под GPL v3 лицензией.
     
     
  • 2.66, Аноним (-), 00:08, 27/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть еще SumatraPDF под GPL v3 лицензией.

    Цитата из «Википедии»: «For rendering PDFs it uses the MuPDF library». Да ещё и Windows-only.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру