|
Эрик Реймонд "Волшебный котел" 9. Косвенные модели получения продажной стоимости Однако , есть способы образования рынков, связанных с услугами в области программного обеспечения, которые представляют собой нечто, подобное получению косвенным образом продажной цены. Есть пять существующих и две выдуманных таких модели (др угие, может быть, появятся в будущем). 9.1. Торговля себе в убыток для занятия рыночной ниши В этой модели Вы используете программное обеспечение с открытыми текстами для того, чтобы создать или поддерживать рыночное положение составляющего собственность программного обеспечения, которое обеспечивает прямой поток дохода. В самом общем варианте, программа-клиент с открытым кодом позволяет продавать программу-сервер, или подписку/рекламу сервисов, связанных с каким-либо порталом. Netscape Communications , Inc преследовала эту стратегию, когда открывала исходники браузера Mozilla в начале 1998 года. Их бизнес, связанный с браузером, приносил около 13% доходов и понижался, когда Microsoft начала распространять Internet Explorer . Интенсивный маркетинг IE (и полулегальные методы связывания, которые позже стали центральной проблемой антимонопольного судебного процесса) быстро отъел долю рынка браузера Netscape , и заставлял беспокоиться о том, что Microsoft намеревается монополизировать рынок браузеров а затем использовать фактический контроль над языком HTML, чтобы изгнать Netscape с рынка серверных приложений. Открывая исходники своей все еще широко популярной программы, Netscape эффективно пресек для Microsoft возможность монополизации рынка браузеров. Они ожидали, что сотрудничество вокруг открытых текстов ускорит развитие и отладку браузера, и надеялось, что влияние Microsoft IE будет уменьшено до второстепенных значений, и он не сможет контролировать расширения HTML. Эта стратегия сработала . В ноябре 1998 года Netscape фактически начал восстанавливать долю на рынке долю по сравнению с IE. К тому времени, как Netscape был приобретен AOL в начале 1999 года, конкурентоспособное преимущество в игре, обусловленное разработкой Mozilla было настолько ясно, что одно из первых публичных обязательств AOL состояло в том, чтобы продолжить поддерживать проект Mozilla , даже учитывая то, что он был в стадии альфа-версии . Эта модель – для изготовителей аппаратных средств ЭВМ (понятие "аппаратные средства ЭВМ" в этом контексте включает в себя все, что угодно – от Ethernet или других периферийных плат до полных компьютерных систем). Рыночные воздействия вынудили компании, производящие аппаратные средства ЭВМ писать и поддерживать программное обеспечение (от драйверов устройств и инструментов конфигурирования до целых операционных систем), но само программное обеспечение не является для них источником прибыли. Это накладные расходы – и часто существенные. В этой ситуации, необходимость открытия исходных текстов очевидна. Нет никакого источника дохода, который можно потерять, так что в этом нет никакого риска. Прибылью продавца в данном случае является очень большое объединение разработчиков, более быстрый и гибкий ответ на потребности клиента, и лучшая надежность, которая обеспечивается благодаря мониторингу кода со стороны членов сообщества. Он также получает порты на другие платформы. Он, вероятно, также получает большую лояльность клиентов, так как технический персонал клиентов получает доступ к коду, и может сделать настройки, которые требуются покупателям. Есть несколько возражений, обычно заявляемых разработчиками именно против того, чтобы открыть исходники драйверов аппаратных средств ЭВМ. Вместо того , чтобы смешивать их с обсуждением более общих проблем здесь, я написал приложение , посвященное этой теме. Эффект "испытания будущим" открытых исходных текстов особенно силен в случае "покрывания фенечками". Аппаратные средства ЭВМ имеют ограниченный цикл производства и поддержки; после того, как он закончился, клиенты предоставлены сами себе. Но если они имеют доступ к исходнику драйвера и могут исправить его как необходимо, они, более вероятно, будут более довольны и повторно станут клиентами той же самой компании. Очень драматичным примером принятия модели "покрытия фенечками" было решение Apple Computers в середине марта 1999 года открыть исходники " Darwin " , ядра их серверной операционной системы MacOSX . 9.3. Отдавая рецепт, откройте ресторан В этой модели, программа с открытыми текстами используется для того, чтобы создать рыночную нишу, но не для закрытого программного обеспечения (как в случае "торговли себе в убыток"), а для услуг. (Я называл эту стратегию "Отдавая бритву, продавайте лезвия", используемая в статье метафора звучит не столь напряженно, как подразумевается при такой аналогии). Это – то, что делают Red Hat и другие производители дистрибутивов Linux. То, что они на самом деле продают – не программы как самостоятельные биты, а ценность, которая добавляется при сборке и проверке управления операционной системой, которая гарантировано (целиком и полностью), будет пользоваться спросом и будет совместимой с другими операционными системами, несущими ту же самую марку. Другие способы зарабатывания ими денег включают свободную инсталляционную поддержку и различные варианты контрактов на продолжение поддержки. Рынкообразующий эффект открытых исходных текстов может быть чрезвычайно мощным, особенно для тех компаний, которые неизбежно находятся в положении обслуживающих с момента создания. Один очень поучительный недавний случай – Digital Creations , компания веб-дизайна , созданная в 1998 году, которая специализируется на сайтах с поддержкой сложных баз данных и транзакций. Их главным инструментом, бриллиантом в короне компании, является серверная программа, которая сменила несколько названий и воплощений, и теперь называется Zope . Когда сотрудники Digital Creations искали того, кто вложит капитал в их предприятие, то инвестор, которого они нашли, тщательно оценивал их предполагаемую рыночную нишу, персонал, и инструменты. Он порекомендовал, чтобы Digital Creations открыли исходные тексты Zope . По традиционным стандартам промышленности программного обеспечения это было абсолютно сумасшедшим ходом. Традиционная мудрость бизнес-школы состоит в том, что основная интеллектуальная собственность, подобно Zope являющаяся фамильными драгоценностями компании, никогда и ни при каких обстоятельствах не может быть никому отдана. Но вкладчик привел два связанных между собой факта. Первый – на самом деле, фактически основной актив Zope –интеллектуальные способности и навыки его персонала. Второй – то, что Zope , вероятно, более ценен в качестве построителя рынка, нежели засекреченного инструмента. Чтобы понять это, сравните два сценария. В обычном Zope остается секретным оружием Digital Creations . Давайте предположим, что он очень эффективен. В результате фирма будет способный выполнять работы с превосходным качеством и вовремя – но никто не знает этого. Будет легко удовлетворить клиентов, но тяжелее собрать постоянный контингент заказчиков с самого начала. Инвестор вместо этого мог считать, что открытый текст Zope сыграет роль объявления о реальных активах Digital Creations – его людях. Он ожидал, что клиенты, оценившие Zope , сочтут более эффективным наем экспертов чем проведение внутренней экспертизы Zope . Один из ведущих разработчиков Zope с тех пор подтвердил публично, что их стратегия, основанная на открытых исходных текстах, "открыла много дверей, в которые иначе мы бы не вошли". Потенциальные клиенты действительно реагируют на логику ситуации – и Digital Creations , соответственно, процветает. Другим свежим примером является компания e-smith , inc . Эта компания продает контракты на поддержку программного обеспечения интернет-серверов "под ключ", которое представляет собой настроенный Linux. Один из руководителей, описывая распространение свободных копий программного обеспечения от " e-smith ", говорит : "Большинство компаний, рассматривало бы это как пиратское программное обеспечение; мы считаем это маркетингом свободного рынка". В этой модели Вы продаете принадлежности, связанные с открытым программным обеспечением. Как минимум, кружки и футболки; максимум – профессионально отредактированную и отпечатанную документацию. " O'Reilly Associates " , издатели многих превосходных руководств к открытому программному обеспечению, является хорошим примером дополняющей аксессуарами компании. " O'Reilly " фактически нанимает и поддерживает хакеров, известных среди разработчиков открытых программ (типа Лэрри Вола (Larry Wall) и Брайена Бехлендорфа (Brian Behlendorf)) в качестве способа формирования своей репутации на выбранном ими рынке. 9.5. Открой потом, продавай сейчас В этой модели Вы распространяете программное обеспечение откомпилированным и в исходнике с закрытой лицензией, которая включает в себя срок, в течение которого исходник будет закрыт. Например, Вы могли бы написать лицензию, которая разрешает свободное распространение, запрещает коммерческое использование без платы, и гарантирует, что программное обеспечение переводится под GPL спустя год после выпуска или в том случае, если продавец закрывается. При использовании этой модели клиенты могут быть уверены в том, что изделие можно настроить в соответствии с их потребностями, потому что у них есть его исходный текст. Изделие "защищено от будущего" – лицензия гарантирует, что сообщество разработчиков открытых программ сможет использовать его и в том случае, если компания-производитель перестанет существовать. Поскольку отпускная цена и объем продаж базируются на этих ожиданиях клиента, первоначальный производитель должен наслаждаться увеличенными доходами от программы по сравнению со случаем выпуска ее под исключительно "закрытой" лицензией. Кроме того, поскольку первоначальный код распространяется на условиях GPL, он может подвергнуться серьезной независимой экспертизе, устранению ошибок и добавление мелких усовершенствований, что избавляет производителя от примерно 75% работ по поддержке. Эта модель успешно использовалась Aladdin Enterprises , изготовителем популярной программы Ghostscript (переводчик PostScript , который может транслировать его на родные языки множества принтеров). Главный недостаток этой модели состоит в том, что условия закрытия обычно запрещают независимую экспертизу кода и совместную работу над ним на ранних стадиях существования, именно тогда, когда они необходимы больше всего. 9.6. Открой программу, продавай марку Это – выдуманная деловая модель. Вы открываете исходник технологии, лежащей в основе программы, сохранив за собой тестовые инструменты или право определять критерии совместимости, а затем продаете пользователям торговую марку, удостоверяя, что выполненные ими реализации технологии являются совместимыми со всеми, носящими данную марку. (Именно так " Sun Microsystems " должны были бы поступить с Java и Jini). 9.7. Открой программу, продавай наполнение Это – еще одна выдуманная деловая модель. Вообразите нечто наподобие сервиса по обслуживанию программы, показывающей биржевые котировки. Ценны здесь ни программа-клиент, и ни сервер, а обеспечение объективно надежной информации. Поэтому вы открываете исходники всего программного обеспечение и продаете подписку на информацию. По мере того, как хакеры переносят клиент на новые платформы и улучшают его различными способами, ваш рынок автоматически расширяется. (Это – причина, по которой AOL должна открыть исходный код своей программы-клиента.) 10. Когда открыть, а когда закрыть Рассмотрев деловые модели, которые поддерживают разработку программного обеспечения с открытыми текстами, мы можем теперь приблизиться к общему вопросу о том, когда исходному коду, с точки зрения экономики, имеет смысл быть "открытым", а когда – быть "закрытым". Но сначала, нам должно стать ясно, чем выгодна каждая из стратегий. "Закрытые" исходные тексты позволяет Вам собирать арендную плату за ваши секретные биты; с другой стороны, исключена возможность действительно независимого аудита кода. Подход, связанный с открытым кодом, обеспечивает условия для независимой экспертизы кода, но вы не получите арендной платы за секретные биты. Вознаграждение за секретность битов хорошо понятно; традиционно модель бизнеса по продаже программного обеспечения была построена на этой основе. До недавнего времени выгода, получаемая за счет независимого аудита кода со стороны сообщества не была понята в достаточной степени. Операционная система Linux, однако, внедрила в сознание урок, который мы должны были усвоить годы назад на опыте развития основных программ, обеспечивающих работу Интернет и других отраслей разработки: что независимая экспертиза открытых исходных текстов – единственный масштабный метод для достижения высокой надежности и качества программы. Поэтому на конкурентном рынке клиенты, ищущие высокую надежность и качество, вознаградят производителей программного обеспечения, которые идут путем открытия исходного кода, а заодно откроют способы поддержки потока дохода от обслуживания, способы создания добавленной стоимости, и также вспомогательных рынков, связанных с программным обеспечением. Этот процесс лежит в основе удивительного успеха Linux, доля которого росла от нулевой отметки в 1996 году до более чем в 17% на рынке серверов к концу 1998 года, и кажется, собирается доминировать на этом рынке в течение двух лет (в начале 1999 года IDC прогнозировала, что рост Linux до 2003 года будет происходить быстрее чем всех других операционных систем, вместе взятых). Почти настолько же важное преимущество открытых исходников – полезность их использования в качестве способа распространения открытых стандартов и построения рынков вокруг них. Лавинообразным ростом Интернет во многом обязан тому факту, что TCP/IP никому не принадлежит; ни у кого нет права распоряжаться основными протоколами Интернет как своей собственностью. Стоящие за успехом TCP/IP и Linux эффекты, обусловленные совместной работой над ними, должным образом прояснены, и, в конце концов, приводят нас к мысли о следствиях доверия и симметрии: потенциальные участники разделенной инфраструктуры могут обоснованно доверять ей в большей степени, если смогут полностью проследить, как она работает, и предпочтут инфраструктуру, в которой все стороны имеют равные права, нежели ту, в которой одна сторона находится в привилегированном положении, которое использует для того, чтобы получать арендную плату или осуществлять контроль. Однако, на самом деле, не столь уж необходимо использовать эффект от совместной работы, которые обеспечивают симметрию прав, чтобы поднять свой вес в глазах пользователей программы. Никакой потребитель программного обеспечения не будет сознательно стремиться запереть себя в контролируемую поставщиком монополию, становясь зависимым от закрытых исходных текстов, если существует любая альтернатива приемлемого качества, код которой открыт. Роль этого аргумента растет по мере того, как программное обеспечение становится более критичным для бизнеса потребителей программного обеспечения – чем более от него зависит существование бизнеса, тем менее потребитель может допустить контроль извне. Наконец, важное преимущество для потребителей открытого программного обеспечения, связанное с доверием – то, что оно является защищенным от будущих проблем. Если исходные тексты открыты, клиент может надеяться на помощь даже в том случае, если продавец пошел ко дну. Это может быть особенно важно для "покрывания фенечками", так как циклы эксплуатации аппаратных средств ЭВМ имеют тенденцию к сокращению; однако, этот эффект является более общим и влечет за собой увеличение ценности открытого программного обеспечения. 10.2. Как они взаимодействуют? Когда арендная плата за секретные биты выше, чем отдача от открытости исходного кода, становится экономически целесообразной закрытость исходных текстов. В тех же случаях, когда выгоды от открытости кода больше чем арендная плата за секретность, имеет смысл открыть исходный код. Само по себе, это – тривиальное наблюдение. Становится интересно, когда мы замечаем, что отдачу от открытости кода тяжелее измерить и предсказать чем арендную плату за секретность битов, а это говорит о том, что намного чаще ожидаемый доход недооценивается, нежели оценивается слишком высоко. Действительно, пока основная часть делового мира не начала заново продумывать предпосылки перехода к открытым исходным текстам после открытия Mozilla в начале 1998 года, их предполагаемая доходность повсеместно оценивалось, как близкая к нулю, что впоследствии оказалось неверным. Так, как мы можем оценить преимущества открытости кода? Вообще это – трудный вопрос, но мы можем приблизиться к решению этой проблемы, так же, как и к любой другой проблемы в будущем. Мы можем начать с наблюдения за прецедентами, в которых основанный на открытости подход преуспел, либо не оправдал себя. Мы можем пробовать обобщить наблюдения до модели, из контекста которой, по крайней мере, будет чувствоваться то, что открытый код приносит чистую прибыль для инвестора или бизнеса, стремящегося увеличить отдачу. Затем мы можем возвратиться к данным и пробовать усовершенствовать модель. После анализа, представленного в [1], мы можем ожидать, что открытый исходный текст дает высокую отдачу там, где (a) надежность/ стабильность/ масштабируемость – критическое требование, и (b) правильность проектирования и реализации проекта можно без труда проверить другими средствами, кроме независимой экспертизы кода. (Второй критерий встречается на практике в случае с большинством хоть сколько-нибудь сложных программ.) Рациональное желание потребителя избегать того, чтобы оказаться запертым в рамках монополии одного поставщика, увеличит его интерес к открытым текстам (и, следовательно, конкурентоспособность поставщиков открытых программ), поскольку программное обеспечение становится более критичным для него. Таким образом, появляется еще один критерий (c): тенденция движения к открытости кода появляется тогда, когда программное обеспечение становится критическим для бизнеса местом размещения капитала (как, например, во многих корпоративных информационно-управляющих системах). Что касается прикладной области, то, как мы заметили выше, инфраструктура, основанная на открытости, создает доверие и эффект соразмерности, которые имеют тенденцию со временем привлекать больше клиентов в соревновании с закрытой инфраструктурой; часто лучше захватить меньшую часть быстро расширяющего рынка, нежели большую часть закрытого и застойного. Соответственно, для программного обеспечения, являющегося основой инфраструктуры, стратегия, основанная на открытости кода, направленная на большее распространение, весьма вероятно, будет иметь более высокую отдачу в течение долгого периода, нежели стратегия, основанная на закрытости и арендной плате за интеллектуальную собственность. Фактически, способность потенциальных клиентов рассуждать о будущих последствиях стратегии продавца и их нежелание принимать монополию одного поставщика подразумевает более сильное ограничение; уже не обладая подавляющей властью над рынком, Вы можете выбрать либо стратегию, направленную на увеличение распространения открытого продукта или стратегию "доходов напрямую из закрытых исходных текстов" – но не обоих. (Аналоги этого принципа видимы и в других сферах, например на рынках электроники, где клиенты часто отказываются покупать устройства, имеющие только одного производителя). Ситуация может быть сформулирована без противопоставления: там, где эффект от совместной работы (положительные его аспекты) преобладают, открыть исходные тексты, вероятно, будет правильным. Мы можем подвести итог этим рассуждениям, заметив, что открытые тексты, вероятно, производят большую отдачу, чем закрытые, в случае с программным обеспечением, которое (d) формирует или обеспечивает инфраструктуру коммуникаций либо компьютерных систем. Наконец, мы можем обратить внимание на то, что поставщики уникальных или сильно отличающихся от других услуг имеют больше основания бояться копирования их методов конкурентами, нежели поставщики услуг, для которых критические алгоритмы и методы хорошо известны. Соответственно, открытые исходные тексты, более вероятно, доминируют, когда (e) ключевые методы (или их эквиваленты) – часть общеизвестных технических знаний. Программы, обеспечивающие работу Интернет, Apache , и реализация отвечающего стандартам ANSI Unix API под названием Linux – главные образцы программ, удовлетворяющих всем пяти критериям. Дорожка к открытости в развитии таких рынков хорошо-иллюстрирована переходом сетей передачи данных на TCP/IP в середине 1990-ых после пятнадцати лет неудавшихся попыток построить империю на закрытых протоколах типа DECNET, XNS, IPX, и им подобных. С другой стороны, открытые тексты, кажется, наименее пригодны для компании, которая является единственным обладателем приносящей доход программной технологии (строго выполняющей критерий (e)), которая, вместе с тем, являются (a) относительно нечувствительной к ошибкам, (b) может без труда быть проверенной другими средствами помимо независимой экспертизы кода; которая (c) некритична для бизнеса, и которая не увеличивают существенно свою ценность (d) из-за совместной работы над ней или повсеместного распространения. Приведу пример такого чрезвычайного случая: в начале 1999 года меня спрашивала, "мы должны открыть исходный текст?" компания, которая пишет программы для вычисления способов распила древесины на лесопилках, обеспечивающих максимальный выход теса из необработанного лесоматериала. Мое заключение было "нет". Единственный критерий, который выполнялся в данном случае – (c), но при необходимости опытный оператор мог бы произвести необходимые вычисления и вручную. Важное условие – то, что, специфичность изделия или технологии, заключенных в этих критериях, может изменяться со временем, что мы увидим в следующем ниже социологическом исследовании. В заключение сформулируем следующие критерии дифференциации, стимулирующие движение к открытости кода: (a) надежность/ стабильность/ масштабируемость является критической характеристикой; (b) правильность проектирования и реализации не может с легкостью быть проверена другими средствами, кроме независимой экспертизы; (c) программное обеспечение является критичным для пользователя в управлении его бизнесом; (d) программное обеспечение формирует или поддерживает общую инфраструктуру компьютерных систем и коммуникаций; (e) ключевые методы (или функциональные их эквиваленты) – общеизвестны из текущего уровня техники. 10.3. Doom: социологическое исследование История пользующейся спросом игры Doom фирмы Id software иллюстрирует способы, которыми давление со стороны рынка и эволюция продукта могут серьезно изменить соотношение сил в споре между закрытостью и открытостью исходных текстов. Когда игра Doom была сначала выпущена в конце 1993 года, мультипликация в реальном времени и от первого лица сделали ее совершенно уникальной (в противоположность критерию (e)). Это произошло не только из-за ошеломляющей техники визуального воздействия, но и потому, что в течение многих месяцев никто не мог выяснить, как это было достигнуто на маломощных микропроцессорах того времени. Эти секретные биты стоили некоторой очень серьезной арендной платы. Кроме того, потенциальная отдача от открытости кода была низкой. Как одиночная игра, программа была (a) терпимой к ошибкам в работе, (b) не сильно трудной для проверки правильности работы, (c) не критичной для пользователя, (d) не использовала преимущества от совместной разработки. Для Doom экономически рационально было оставаться закрытой. Однако , рынок вокруг Doom не останавливался. Потенциальные конкуренты изобрели функциональные эквиваленты ее методов мультипликации, начали появляться другие игры-стрелялки от первого лица, наподобие Duke Nukem . Поскольку эти игры отъедали долю в рынке Doom , стоимость арендной платы за секретность битов понизилась. С другой стороны, усилия по расширению доли на рынке ставили перед разработчиками новые задачи – лучшая надежность, больше функций игры, больше пользователей, многоплатформенность . С появлением режима мультиплеера (" deathmatch ") и сервисов для игроков в Doom , рынок начал демонстрировать существенные преимущества совместной разработки. Все это требовало часов программирования, которые id предпочла бы потратить на следующую игру. Все эти тенденции подняли преимущества от открытости исходных текстов. В некоторый момент кривые вознаграждения пересеклись, и открытие исходного кода Doom стало экономически рациональным для id , что позволило ей перейти к зарабатыванию денег на вторичных рынках типа производства сборников, основанных на сценарии игры. В некоторый момент времени после прохождения точки пересечения это, и в самом деле случилось. Полные исходные тексты Doom были опубликованы в конце 1997 года. Doom представляет собой интересный предмет для исследования, потому что это ни операционная система, ни программное обеспечение, обеспечивающее коммуникации либо являющееся основой сети; он к настоящему времени далеко отстоит от обычных и очевидных примеров успеха, связанного с открытостью кода. Действительно, цикл жизни Doom , вместе с "точкой пересечения", может служить характерным примером, символизирующим экологическую нишу приложений среди остального программного кода – того, в котором коммуникации и распределенные вычисления создают серьезные проблемы с устойчивостью к ошибкам/ надежностью/ масштабируемостью , определяемые только при аудите со стороны членов сообщества разработчиков, и часто пересекающие границы между техническими окружениями и конкурирующими участниками рынка (со учетом всего подразумеваемого доверия и проблемами симметрии прав). Doom развился от одиночной игры до " deathmatch ". Все в большей и большей степени эффектом от совместной разработки становится вычисление. Подобные тенденции видимы даже в самых критических деловых приложениях, типа ERP ([ enterprise resource planning ] планировании ресурсов предприятий), в той степени, в какой сетевые виды коммерческой деятельности все более интенсивно имеют дело с поставщиками и клиентами – и, конечно, они присущи всей архитектуре World Wide Web . Из этого следует, что почти всюду, выгоды от открытых исходников устойчиво повышаются. Если существующие тенденции продолжаются, центральной проблемой, стоящей перед разработчиками программного обеспечения, управляющими развитием продукта, в следующем столетии будет знание того, когда его "отпустить" – когда позволить закрытому коду перетечь в открытую инфраструктуру, чтобы эксплуатировать эффект экспертной оценки и получить более высокую отдачу от обслуживания и других вторичных рынков. При получения прибыли существуют очевидные стимулы для того, чтобы не отойти от точки пересечения слишком далеко в любом направлении. Кроме того, есть серьезный риск упустить возможность ожидая слишком долго: Вас могут похоронить конкуренты, перешедшие на открытые исходные тексты в той же самой рыночной нише. Причина этого является серьезной проблемой – то, что и масса пользователей, и объединение талантливых разработчиков, доступные для вовлечения в сотрудничество при разработке открытых программ, для любой конкретной категории изделий ограничено, вербовка их имеет тенденцию к прекращению. Если два производителя первым и вторым перейдут к открытым кодам, и их программы исполняют одинаковые функции, первый, вероятно, привлечет большинство пользователей и более заинтересованных разработчиков; второй должен будет подбирать остатки. Вербовка имеет тенденцию останавливаться и по мере того, как пользователи освоятся с продуктом и упадут инвестиции вложений времени разработчиков непосредственно в код. |
||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
|
|
|
|
|