Лично я симпатизирую Шатову и, скорее всего, потому, что больше некому. Симаптии читателя почти всегда на стороне жертвы.
Первая часть романа представляет собой странное введение в авторский замысел: изложение от лица г-на Г--ва впоследствии будет неоднократно нарушено, его указания на поворотные точки характеров и сюжета окажутся не столь уж важными, детали биографии Петра Степановича, Варвары Петровны и других не существенны. Так например, мы узнаем, что Шатов родился крепостным Варвары Петровны, был ею обласкан, но не сохранил должной, по ее мнению, благодарности и к описываемому моменту не пользуется ее расположением. Сын Верховенского упоминается в первой части лишь вскользь: родившись от первого брака П.С., он был отдан на воспитание "каким-то теткам", в какой-то глуши. Рассказчик, по всей видимости, не имеет никаких сведений о его становлении, связь его с отцом не вызывает внимания читателя только потому, что ей не уделяется в первой части и десяти строк. То же самое можно сказать и о Николае Ставрогине: его взаимоотношения с матерью (и уж, тем более, с отцом, о котором(единственное, что можно узнать, это его смерть в чине генерал-лейтенанта по пути в действующую армию в Крым) описаны довольно скупо. Сведения, поступающее о нем из Петербурга, скорее оттеняют реакцию на них Варвары Петровны, чем дают какое-либо представление о "принце Гарри"..Вообще, до его первого приезда в город, образ Николая Ставрогина вряд ли задерживает самостоятельное внимание читателя.
Читатель, таким образом, должен увериться, что
1). рассказчик обладает только той информацией, которая доступна ему в городе и в Скворешниках и только от тех лиц, с которыми он водит там знакомства.
2). повествование будет иметь остросюжетную линию, которая ждет читателя впоследствии и что введение (так и названа первая часть) призвана лишь приоткрыть занавес над характерами будущих героев.
К удивлению читателя, не происходит ни того, ни другого.Ничто не предвещает последующих театральных массовок с полным составом героев на сцене. И Петр Верховенский, и Николай Ставрогин будут представлены "выходными ариями" только через восприятие рассказчика. Их появление в городе ничем не подготовлено, их характеры туманны и даже кажутся второстепенными для изложения, во всяком случае, именно этого эффекта, видимо, и добивается Достоевский первой частью.Перед нами панорама отношений взбалмошной, богатой помещицы и ее приживальщика, которая сама по себе, не сулит никакой драмы, но занимает около ста страниц повествования.
Зачем понадобилось Достоевскому это совершенно неоправданноe введение с уймой деталей, с реминисценциями то из Фаута, то из Фальстафа, будто зовущее куда-то, как неторопливое интермеццо, которое играют до поднятия занавеса, но затянув на полчаса?
Мы, однако, имеем возможность узнать Шатове .Ему оказывается 26-27 лет, поездка в Европу и скоротечная связь с женой изменили его прежние убеждения...
Собственно роман начинается с приезда в город Дроздовых. К этому моменту читателя уже не может удивить предприимчивость Варвары Петровны, она вместе с Петром Степановичем выступают главными героями повествования. Взяв первоначальный замысел, Достоевский пока не хочет отступаться от него. Роль Даши-невесты хорошо подходит лишь для еще большего усиления деспотичности характера Ставрогиной.
Но вот и первая сцена, где замысел мешает Достоевскому: театральное собрание героев в доме Варвары Петровны, куда как по плохому сценарию, входят и выходят действующие лица. Те же и Николай Всеволодович. Подготовленный предыдущей структурой романа, читатель не ожидает, что рассказчик (г-н Г--в) переключит внимание своих хроник с прежних главных героев на прибывших. (Да и откуда же ему их знать?) Достоевский продолжает в том же ритме: пощечина, несколько замечаний о Лебядкине, обморок Лизы, появление Верховенского-сына проходят жизнеописательным порядком, но героев уже слишком много, за всеми не уследишь из массовки, как ни старается Г--нов. Он начинает мешать Достоевскому.Перед нами четыре линии: сватовство Степана Трофимовича, с одной стороны, будто бы себя уже исчерпало, введя на сцену Дашу Шатову, но читатель ждет именно от одного из них дальнейшего продолжения (и интересно было бы повернуть в эту сторону, если вспомнить смиренность Даши и всю предыдущую подготовку образа Степана Трофимовича). Вторая, только завязывающаяся, линия Лизы: было уже обмолвлено о ее разладе со Ставрогимым в Швейцарии, образ Маврикия Николаевича и ее мамаши сулят дальнейшую разработку в отдельную линию романа. Николай Ставрогин, в этом уже не остается сомнений, выведен на сцену для еще одного поворота в романе. И наконец, Верховенский уже успевший заявить о себе.
Напускная мемуарность романа, его неторопливость до сих пор, не успевают за всеми обозначившимися линиями. Роман должен изменить темп, но ведь не введением ли рассказчика от первого лица этот темп был так замедлен с самого начала. Как в пьесе, отдельными сценами можно развивать структуру и дальше,в отдельных сценах рассказчику надо
Странный параметр этой stored procedure остается 0 при ее интерактивном запуске. Но если по каким-то причинам вас угораздило изменить его на 1 и вы потеряли все активные subscriptions - не все потеряно. Экспортируем все (Sic!) установленные в BizTalk group applications и импортируем их заново из полученных msi. Потерянные subscriptions будут восстановлены!
Узнать о том, что запрашиваемый ресурс требует аутентификации, клиент может не раньше, чем запросив этот ресурс. Для чего и служит HTTP код 401. Этот код должен сопровождаться подробностями о том, какая аутентификация ожидается. Не рассматривая здесь Kerberos, как правило, применяются 4 варианта : 1). NTLM (Windows Integratated). 2).Basic, 4), Forms и 4) Digest. Относительно первого, сразу заметим, что он не поддерживается несколькими версиями Windows Vista, включая Vista Home Premium, а в остальном, это, пожалуй, наиболее распространенный способ аутентификации в мире Intranet и IIS .Ответ сервера, ресурс которого требует WindowsIntegrated Authentication выглядит так:
Здесь HTT- header WWW-Authenticate содержит т.наз. "challenge", который клиенту (в том числе браузеру) нужно теперь отправить на NTLM Manager, используя credentials текущего user для шифрования. В ответ NTLM Manager вернет token, который теперь клиент передаст серверу, начиная тем самым вторую фазу аутентификации. Сравнивая переданный challenge с полученным token, сервер решает, может ли эта пара быть признана аутенфикацией клиента, и, в случае положительного решения, дело заканчивается возвратом 200 с ожидаемым ресурсом. В противном случае, клиент получит 401 еще раз без WWW-Authenticate header'a, что является свидетельстовом того, что дальнейшие попытки аутентифицироваться от него больше не ожидатеся. В любом случае,NTLM не передает по сети клиентских credentials, чем и выгодно отличается от второго способа аутентификации - Basic .
В этом случае, серверный 401 содержит WWW-Authenticate header'e значениe "Basic realm=XXX", что означает, что от клиента в ответ (на второй фазе) требуется передача пары user_name:password, которые идентифицируют клиента внутри realm XXX. Сервер сам ответственен за ведение и учет клиентских записей в этом случае, а также, понятно, за проверку полученной пары среди своих записей. Для передачи пары используется base64 кодирование.
Реагируя на серверный 401 с WWW-Authenticate , браузеры обычно показывают окно, в котором (с соответствующим предупреждением) пользователю предлагается ввести свои credentials, для BizTalk host instance, который вызывает, скажем, Web service, соответствующие credentials настраиваются на уровне Send Port, но могут быть установлены и из оркестрации с помощью SOAP.UserName, SOAP.Password и SOAP.AuthenticationScheme properties.
Обычно ни тот, ни другой способ не являются достаточно гибкими для решений BizTalk, поэтому часто в случае basic authentication прибегают к SSO, который транслирует credentials учетной записи hosta в credentials, пригодные для проверки в web realm. Разумеется,SSO ничего не меняет в HTTP- протоколe.
Во всех случаях аутентификации, клиентский код использует <proxy>.Credentials для этих целей (обычно устанавливая это в System.Net.CredentialCache.DefaultCredentials)
As a direct message creator, the receive adaptor has a practically unfathomable power over the message context. It kindly writes to the context whatever it is that an adaptor designer's infinite power contemplates: the properties it considered to be useful and valuable, but two of these properties are extremely important.
These are "MessageType" and "InboundTransportType". They so important not only because most of subscriptions are evaluated on the "MessageType" stuff, but also because sometimes promoted properties are only the one way to link together the content and the context of the message.
The story of promotion, began in the receiver, is unfinished business. If following the BizTalk Engine and the XML Pipeline (if desired), within which XML Disassmbler component pushes up all the message fields and attributes marked as promoted, into the same message context. You can rely on this feature for safely map the inbound document into another one as the part of receive port. If the target of mapping does not have the same structure as the original message and you wondering how to pass into the 'extended' fields - just promote them in the original message and XML Disassambler will do the job. 'Extended' fields will be passed into in the message context.
Following the message life-circle, the context is brought to the orchestration.
Here the things going easy: despite any transformation, you can pass through the context as simple as coping it all (Message2(*) = Mesage1(*)) or its part (Message2(MyPromotedPropert1) = Message1(MyPromotedProperty1) ) to the transformation target. But how the orchestration itself can promote additional properties?
Well, it actually does so a lot when it uses correlation sets, dynamic port addressing and so forth. All it is about the promotion. For example, when XLANG/s schedule assigns the dynamic port address; it actually asks the engine to stick the address property on the outbound message so the further processing will takes it into the consideration. The same is true about the correlations: the correlated properties are promoted when leaving the schedule on behalf of their 'initialization' and are participated in subscription evaluation when they come back in the 'following' receive.
Explicit intentions to promote the property also may be expressed by orchestration, but they remain just intentions. Without passing to XML Disassembler these properties will never reach the context – so happens to the promotions did in the orchestration and passed through direct send port: no pipeline is attached to direct port processing and consequently no XML Disassembler will realize the intentions.
Going in opposite direction, there is must be a way to do the reverse operation that may be called as simple as context’s cleaning up. It’s generally good idea to keep the context as small as needed for the processing. (Maybe because the fact that if the context were only growing it would become Samoan.) Such operation is known as demotion and all its about is to populate the message content by the properties already published to its context. Usually after demotion, the context properties are cleaned up and sometimes just this part of the procedure is called demotion as well.
As you can deduce, the component responsible for this duty is XML Assembler build-in with a XML Send pipeline, although it is a bit quirky then its brother. Indeed, it rationally designed to ignore the message entries if they already were populated. Given that sadness fact that xml-nills are considered to be the first class citizens in the document population, this rationality leaded to confuse many BizTalk-programmers. The special <empty> value presented in BizTalk mapper in 2006 edition dilutes the population.
Worth to note that property demotion may be based not only on the custom property schema you added to the BizTalk solution. When you build up the promotion for the document schema, you can reference any pre-build property schema that shipped with BizTalk.
MessageBox - это центральная часть BizTalk Server, которая служит для ведения сообщений и их адресации. MessageBox представляет собой базу данных, реализованную на Microsoft SQL Server, в основе дизайна которой лежат следующие фундаментальные принципы :
Для повышения эффективности сообщения записываются в MessageBox как batch. Batch генерируется в MessageAgent и может считаться набором сообщений, рассматриваемых как одна транзакция. Многие batches однако, состоят только из одного сообщения.
Как часть batch, сообщения попадают в MessageBox в два этапа. На первом этапе вызывается stored procedure bts_InsertProperty, задачей которого является занести все контекстные properties сообщения в таблицу MessageProps в сопровождении соответствующего batchID. Сразу же после этого вызывается другая stored procedure - bts_FindSubscriptions, кот. должна проверить subscription predicates на сравнение с записанными properties, т.е. найти хотя бы одного подписчика для записываемого сообщения. Если не удалось вычислить ни одного подписчика, сообщение удаляется из рассмотрения с сопроводительной ошибкой. (Error event 5778 - "Could not find a matching subscription for the message.").
Если хотя бы один подписчик найден, сообщение записывается в таблицу spool, где оно и будет находиться на все время своей жизни внутри BizTalk. Еще до записи в таблицу MessageProps, сообщению присваивается уникальный GUID, кот. для таблицы spool записывается в колонку uidMessageID. Это и есть уникальный номер сообщения, на который, начиная с этого момента, будут ссылаться все остальные записи в других таблицах, или, другими словами, все BizTalk-services, которые тем или иным способом будут иметь дело с этим сообщением. Stored procedure, исполняющая запись сообщения в MessageBox, называется bts_InsertMessage. Она же, зная связанный с сообщением batchID, удалит только что записанные MessageProps, если запись завершилась успешно.
Сообщение состоит из parts. В простейшем случае из одной, называемой body. Но и в более сложных случаях невозможна ситуация, когда подписчик получит только part сообщения, а не его целиком. Тем не менее, с точки зрения MessagedBox, сообщение хранит свои parts отдельно от самого сообщения, в таблице MessageParts. Название bts_InsertMessage не совсем
As part of the protocol definition, SOAP provides the mechanism to notify a caller about the failures. SOAP Fault messages are specially designed for this purpose and are structured in extensible fashion. This means that as for callee, it may feel absolutely free to express its own failures as custom defined payloads and use SOAP Fault messages as transport for its transmission on the wire. Таким образом, совершенно естественным для WebServic'a будет определить, как должны выглядеть его exception. Казалось бы не менее естественным ожидать от инфраструктуры WebSerices соответствующей поддержки SOAP Faults : например, прекрасно смотрится WSDL, где при описании Fault methods используются XSD types, включенные в WSDL schemas section. Имея такой WSDL, для parser'a не будет проблемы создать соответствующие клиентский код, в котором все exceptions представлены классами, поддающимися анализу из catch-block. WSDL 1.1 standard (section 3.6) предполагает подобные конструкции, причем wsdl:fault определяется для каждого exposed method в отдельности с единственным ограничением на single part.
1. Godfather ( Al Pachino ) - 5. by Coppola
2. Godfather II (.Al Pachino/ R. De Niro) - 4.
3. The Fifth Element (B. Willis, Милла Йовович) by Luc Besson (fr.) -3. Why such a perfect girl shoul have a red hair?
4. Hostel by Eli Roth. Produced by Q. Tarantino - 4
5. Rocky Horror Picture Movie - ?
6. Death proof (V.Ferlitto as "Butterfly", R.McGovan as Pam Greer) by Q. Tarantino (2-nd part of Grindhouse) - ?
7. Planet terror (rose McGovan as Cherry Darling, F. Rodriguez, Marley Shelton as Dr. Dakota Block) by R.Rodriguez ( 1-st part of Grindhouse)
8. Truman show by Peter Weir - 4.
Аналогия между WCF endpoints и Receive/Send ports в BizTak'e настолько разительна, что я не удивлюсь, если следующая его версия (после R3) полностью заменит BizTalk EPM на WCF WAS.
Создание WCF Service в этой аналогии сопоставимо с созданием orchestration.
А(ddress). Выбор адреса, через который будет доступен сервис, зависит в обоих случаях только от требований клиентского приложения. Как одна и та же оркестрация может быть доступна через разные порты, так и WCF сервис может быть доступен через несколько независимых endpoints.Создание как портов, так и endpoints совершенно не зависит от самого сервиса.
B(inding). Привязка (binding) сервиса к адресу дается в BizTalk настройкой портов, а в WCF - настраиванием endpoints. Каждый endpoint/port имеет в свою очередь независимо-настраиваемые свойства, кот. в WCF называются behaviors. Аналог в - свойства порта, как, например, tracking, authentication etc.
C(ontract). Сервисы BizTalk ориентированы на сообщения, кот. имеют строгую структуру (XSD schemas). Сервисы WCF вместо XSD требуют строго структурированных контрактов/интерфейсов, т.е. описания данных в более свободной другой форме. Не забудем, однако, что сообщения BizTalk могут быть, вообще говоря, произвольными .Net-классами.
В то время как для порты BizTalk могут исполняться только внутри Windows service, известного как BizTalk host instance, существует несколько моделей хостинга для WCF сервисов. Они могут исполнятся 1) в специально созданном для этой цели приложении (т.наз. self-hosting model), 2) в IIS (конечно, речь идет о IIS 7) и 3) в WAS (Windows Activation Service). На этой картинке можно видеть WCF сервис, настроенный в IIS7 на поддержку и http, и tcp, и named pipes, и msmq.
По аналогии с тем, как поступающие сообщения записываются BizTalk адаптером в очередь сообщений для своего host'a, архитектура WAS использует для этих целей очередь того IIS Application Pool, который настроен исполнять WCF сервис. А именно, один из protocol listeners (для http это http.sys драйвер) по мере поступления сообщений записывает их в очередь Application Pool, далее задачей listener adapter является извлечение сообщений из этой очереди для передачи protocol handlers. Последние исполняются внутри WAS, который отвечает за активацию protocol handlers, их конфигурацию и проч. Можно сказать другими словами, что используя WAS, IIS больше не зависит от http для активации своих внутренних процессов (т.е. в конечном итоге - своих applications, которые и являются WCF сервисами).
Все это очень похоже на взаимодействие BizTalk адаптеров с Messaging Agent, причем для последнего, как и для WAS, обрабатываемый протокол не существенен.
Обычные Web-Services не вписываются в эту систему, но из-за их широкого распространения разработчики привыкли считать , что
Пока BizUnit используется программистами, их не смущает ни тот факт, что TestSteps для этого framework должны быть написаны на XML, ни тот, что для их запуска нужно откомпилироварь т.наз. boilerplate code. Тем более программисту не может помещать дюжина параметров при создании таких TestStep как WebService Invoke : SOAP-Action, WS Namespace etc. - естественно ожидать от программиста, что составление таких сценариев не составит для него большого труда.
С другой стороны, когда BizUnit пытаются использовать как средство QA, эти же свойства framework становятся непреодолимой преградой для тех, кто не знаком с кодированием. Даже если прилежный сотрудник QA освоит XML-формат сценариев, то уж компилировать boilerplate code ему просто не на чем : не устанавливать же VS на каждой машине QA.
Может быть поэтому, а может быть в силу разделения труда между производством (программированием) и техническим контролем (QA), BizUnit применяется только программистами, да и то так, как бог на душу положит. Методические проверки ведь все равно остаются за QA; например, code coverage это разве не методология?
В общем, картина довольно грустная : BizUnit сам по себе и QA сам по себе.
Прежде чем пытать решить эту проблему, неплохо было бы посмотреть по сторонам с тем, чтобы узнать, кого еще она беспокоит и кто уже пробовал думать иначе, чем Kevin B Smith. Начать с того, что некоторые пытались просто облегчить процесс создания TestSteps, генерируя их XML из UI. К сожалению, автор BizUnit не предусмотрел настоящей metadata для steps, поэтому, BizUnit Designer, например, вынужден довольствоваться "документацией" (я все-таки надеюсь, что под "документацией" они имеют в виду комментарии в коде самого BizUnit).
booUnit пошел значительно дальше, но во-первых сам boo знаком исключительно энтузиастам и писать скрипты на нем, возможно, и легче, чем вникать в XML-формат BizUnit, но я не представляю, чтобы кто-то взялся изучать новый язык программирования только для того, чтобы изложить на нем пару десятков тестов для BizTalk.
Собственно на этом обзор рынка и заканчивается, оставляя впечатление, что либо BizUnit не принимают всерьез, либо наоборот - настолько принимают, что боятся слово поперек сказать.
Начнем с сериализации. Даже если реализовать Step-классы с необходимыми properties для XML-сериализации, это не избавит от необходимости в исполнении boilerplate-code, а только разломает существующий BizUnit framework. Представляется, что это слишком догорая цена для возможности автоматической генерации test cases. Поэтому просится сериализовать Step-классы с необходимо добавленными properties в XAML.
Что это даст? После сериализации полученный XAML можно скомпилировать в полноценный assembly, и если добавить к откомпилированным классам и методам атрибуты NUnit (TestFixture к классам и Test к методам),- получится загружаемый в NUnit модуль. Мало того, если откомпилировать сериализованный XAML в исполняемый assembly, не понадобится и NUnit. Очевидным недостатком такого подхода является то, что нужно по сути выбросить всю существующую реализацию BizUnit и переписать под XAML все уже созданные для него Step-классы. Наградой за приложенные усилия будет возможность создавать тесты автоматически, без какого-либо участия программиста в написании кода для теста. Другими словами, XAML позволит превратить BizUnit в настоящий инструмент QA.
Итак, попробуем. Сериализация в XAML не представляет особых трудностей, поэтому не стоит на ней останавливаться, займемся компиляцией XAML.
Activity creation and Deployment.
1. Первый шаг предназначен для бизнес-аналитиков и состоит в использовании Excel Add-In. В Excel 2007 он расположен под закладкой "Add-Ins" :
[648x183]
Обратим внимание на то, что этот Add-In устанавливается независимо от остальной инфраструктуры BizTalk на любой компьютер бизнес-аналитика, оборудованный единственно что Office. Его использование состоит в определении составляющих единиц исполнения - Activities и CheckPoints (кот. в UI называются 'items') -естественно, в бизнес-понимании этого слова. Например, хорошим Activity будет, скажем, время старта оркестрации. Определение Activities требует понимания бизнес-процесса, во всяком случае его основных показателей, и исполняется Wizard'ом, по завершении которого бизнес-аналитику предлагается сохранить результаты своей деятельности в XML-файле. Вот для примера фрагмент такого файла :
2. Этот файл, известный как BAM definitions, передается разработчику или лучше - администратору для того чтобы тот "опубликовал" его содержимое. Под этим понимают автоматический ( с помощью bm.exe ) процесс создания таблиц, views и stored procedures в специально приготовленной для этого базе данных.
База эта называется BAMPrimaryImport (BTI).
Instrumenting Orchestrations, Pipelines and Ports.
Как видно из предыдущего рисунка, любое приложение, может использовать специально разработанный API для дальнейшей работы с BAM. Прежде всего этот API предназначен для приложений BizTalk, но ничто не мешает и другим приложениям .NET обращаться к нему, причем единственное, что для этого требуется - это присутствие на вызывающей машине файла Microsoft.BizTalk.Bam.EventObservation.dll без никаких других компонентов BizTalk Server 2006 (В BizTalk 2004 это не так!). Здесь подчеркивается, что это единственный поддерживаемый способ обращения к BAM, т.е. прямое обращение к созданным в базе объектам настоятельно не рекомендуется.
В рамках этого подхода, существует два способа обратиться к BAM. Первый - это использовать DirectEventStream/BufferedEventStream classes для непосредственной работы с Activities , второй - использовать BAMInterceptor. Первый способ имеет существенный недостаток связанный с тем, что с изменением модели соответствующие вызовы в коде должны изменяться. Это совершенно не приемлемо для оркестраций, поскольку сам смысл использования BAM в BizTalk состоит в изоляции бизнес-модели от ее реализации. Именно поэтому BizTalk-приложения используют только BAMInterceptor. ( Как мы увидим в дальнейшем, для полной изоляции потребуется еще BTT)
В XIII веке период беременности у монгольских женщин длился 10−43 секунды, что отвечало наиболее совершенному обороту Земли вокруг Солнца в то время. За один такой оборот большинство монголов разработали соёмбо (см!.), обогатив тем самым человечество символом процветания и обретения буддизма. Тибетские источники указывают, однако, на разделение культурных ценностей между потомками Тему-джина и последователями Гампопы, приведшее к первых на широкий путь орды, а вторых - к строительству первого в мире многолинейного метрополитена Кагью. Оставшиеся монголы были менее склонны к урбанизму, и объединившись под двумя оккупациями маньчжуров, создали собственное государство на берегах Волги - Хурал. (Полностью - Иссык их Хурал, столица на р. Калка с 1223 г.).
Демократические преобразования в Хурале имели место быть и в наше время : согласно древнерусскому поверью, воды Калмыкии, Дагестана и др. суверенных государств были отравлены напитком, состоявшем наполовину из кумыса и наполовину из мацы, что является первым случаем разделения ответственности за демократию между евреями и народами, употребляющими квасное всуе.
Вклад монголов в кирилическое языкознание трудно переоценить. Отцом этого отдела лингвистики по праву называют отца Бурундая (ок. 1208 - ок. 1250), предпринявшего изыскательскую экспедицию в степи Суздаля и Владимира с целью создания первого вертикального словаря монгольского языка. В завершенном виде эта работа была представлена Его Святейшеством Занабазаром Чолбайсаном в северном аймаке консульства Монголии в ООН в 1938 г. как свидетельство внутреннего аншлюса. Известно, что на его решение о главенствующей роли панмонголизма в устранении "ять" из монгольского языка особое влияние оказал известный русский символист Ал. Блок.
Спорт в Монголии не развит, но поддерживается филателией. В удаленные и временно захваченные династией Юань районы пустыни Гоби он он доставляется гужевым транспортом или специальными оказиями по предписаниям Богдо-гэгена Девятого.
Сам Богдо-гэген на ламу не тянет, потому как не протестует против миролюбивой политики Унгерна, уже который век обильно орошающую эту страну своими чингизгидами.