<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Помогите найти глюк]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10862&amp;type=atom" />
	<updated>2015-08-14T07:30:57Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10862</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96436#p96436" />
			<content type="html"><![CDATA[<p>Всем спасибо - всё заработало. Всё оказалось просто. Раздела Keyboard Layout в реестре не существует на целевом ПК... фишка в этом. Скрипт не может создать ключ в несуществующем разделе.<br />Сейчас уже не могу понять почему так всё, но я пробовал создавать раздел и скрипт всё равно не работал. UAC отключил уже потом, вероятно он и мешал срабатывать скрипту.</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-14T07:30:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96436#p96436</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96435#p96435" />
			<content type="html"><![CDATA[<p>Да, скрипт проверяет наличие прав, и убеждается, что они есть. Функция IsElevated возвращает Истину</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-14T07:20:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96435#p96435</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96434#p96434" />
			<content type="html"><![CDATA[<p>Мистика какая то... явно какой то встроенный механизм защиты Win7 работает. UAC я отключил... не помогло.</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-14T07:13:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96434#p96434</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96433#p96433" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>1) Всё-таки оставляю за собой право предполагать, что Вы не запустили <span class="bbu">командную строку с правами администратора</span>.<br />2) Переделал скрипт с учётом <span class="bbu">автоматической проверки прав</span>. К сожалению, сейчас не имею возможности проверить на XP и других системах. Под рукой только <strong>Win 10 Pro</strong>. И думаю, что наверняка можно проще всё это реализовать.</p></blockquote></div><p>1. У меня нет такого пункта, не нашёл. Видимо, т.к. я и так с админскими правами зарегистрировался в системе ,то и такого пункта в меню нет. Может есть вариант вызова через Пуск/выполнить?<br />2. Попробовал - выдаёт ошибку из обработчика (строка 42). Не удалось установить параметр...</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-14T07:11:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96433#p96433</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96414#p96414" />
			<content type="html"><![CDATA[<p><strong>Flasher</strong>,<br /></p><div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p>А так?</p><div class="codebox"><pre><code>Set objRegistry = _
    GetObject(&quot;winmgmts:{impersonationLevel=impersonate}\\.\root\default:StdRegProv&quot;)</code></pre></div></blockquote></div><p>Попробовал. К сожалению не &quot;прокатило&quot;, но с мыслью согласен. По идее должно было дать права от того кто запустил.</p><p><strong>komr</strong>, </p><p>1) Всё-таки оставляю за собой право предполагать, что Вы не запустили <span class="bbu">командную строку с правами администратора</span>.</p><p>Я имел в виду это:<br /><span class="postimg"><img src="http://itmix.com.ua/images/Img-1/Windows7_1_thumb.png" alt="http://itmix.com.ua/images/Img-1/Windows7_1_thumb.png" /></span></p><p>2) Переделал скрипт с учётом <span class="bbu">автоматической проверки прав</span>. К сожалению, сейчас не имею возможности проверить на XP и других системах. Под рукой только <strong>Win 10 Pro</strong>. И думаю, что наверняка можно проще всё это реализовать.<br /></p><div class="codebox"><pre><code>
Option Explicit

Dim objRegistry, strPath, uBinary, strValue01, strValue02

Const HKEY_LOCAL_MACHINE = &amp;H80000002
Const HKEY_USERS = &amp;H80000003

If Not IsElevated() Then
    RestartElevated()
    WScript.Quit
End if

Set objRegistry = _
    GetObject(&quot;Winmgmts:root\default:StdRegProv&quot;)

strPath = &quot;SYSTEM\CurrentControlSet\Control\Keyboard Layout&quot;
uBinary = Array(&amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, _
                &amp;H12, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H3B, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H3C, &amp;H00, &amp;H00, &amp;H00, &amp;H3D, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H3E, &amp;H00, &amp;H00, &amp;H00, &amp;H3F, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H40, &amp;H00, &amp;H00, &amp;H00, &amp;H41, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H42, &amp;H00, &amp;H00, &amp;H00, &amp;H43, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H44, &amp;H00, &amp;H00, &amp;H00, &amp;H57, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H58, &amp;H00, &amp;H00, &amp;H00, &amp;H5B, &amp;HE0, _
                &amp;H00, &amp;H00, &amp;H38, &amp;H00, &amp;H00, &amp;H00, &amp;H38, &amp;HE0, _
                &amp;H00, &amp;H00, &amp;H5C, &amp;HE0, &amp;H00, &amp;H00, &amp;H1D, &amp;HE0, _
                &amp;H00, &amp;H00, &amp;H00, &amp;H00)

SetBinaryValue HKEY_LOCAL_MACHINE, strPath, &quot;ScanCode Map&quot;, uBinary

strPath = &quot;.DEFAULT\Keyboard Layout\Preload&quot;
strValue01 = &quot;00000409&quot;
strValue02 = &quot;00000419&quot;

SetStringValue HKEY_USERS, strPath, &quot;1&quot;, strValue01
SetStringValue HKEY_USERS, strPath, &quot;2&quot;, strValue02

Private Sub SetBinaryValue(DefKey, SubKeyName, ValueName, Value)
    Dim intRet
    intRet = objRegistry.SetBinaryValue(DefKey, SubKeyName, ValueName, Value)
    If intRet &lt;&gt; 0 Then
        Err.Raise intRet, &quot;Не удалось установить параметр &quot;&quot;&quot; &amp; ValueName &amp; &quot;&quot;&quot;&quot;, &quot;SetBinaryValue&quot;
    End If
End Sub

&#039;Функция проверки - есть ли у нас повышенные права или нет
Private Function IsElevated()
    IsElevated = CreateObject(&quot;WScript.Shell&quot;).Run(&quot;%comspec% /c whoami /all | findstr /I /C:&quot;&quot;S-1-16-12288&quot;&quot;&quot;,0,True) = 0
End Function

&#039;Процедура перезапуска своего же процесса с повышенными правами
Private Sub RestartElevated()
    Dim i, strTmp
    &#039;Собираем строку параметров запуска на случай если скрипт был запущен с параметрами
    For i=0 To WScript.Arguments.Count-1
        If InStr(WScript.Arguments(i), &quot; &quot;) &gt; 0 Then
            strTmp = strTmp &amp; &quot; &quot;&quot;&quot; &amp; WScript.Arguments(i) &amp; &quot;&quot;&quot;&quot;
        Else
            strTmp = strTmp &amp; &quot; &quot; &amp; WScript.Arguments(i)
        End If
    Next
    &#039;Запускаем свой же скрипт с повышенными правами
    RunElevated WScript.FullName, &quot;&quot;&quot;&quot; &amp; WScript.ScriptFullName &amp; &quot;&quot;&quot;&quot; &amp; strTmp, &quot;&quot;
End Sub

&#039;Запуск приложения с повышенными правами
Private Sub RunElevated(strApplication, strArguments, strWorkingDir)
    CreateObject(&quot;Shell.Application&quot;).ShellExecute strApplication, strArguments, strWorkingDir, &quot;runas&quot;
End Sub
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2015-08-12T19:31:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96414#p96414</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96411#p96411" />
			<content type="html"><![CDATA[<p>А так?</p><div class="codebox"><pre><code>Set objRegistry = _
    GetObject(&quot;winmgmts:{impersonationLevel=impersonate}\\.\root\default:StdRegProv&quot;)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2015-08-12T16:01:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96411#p96411</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96410#p96410" />
			<content type="html"><![CDATA[<p>Получается, осталось понять, как запустить скрипт с нужными правами.</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-12T14:18:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96410#p96410</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96409#p96409" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>Код 5 соответствует запрету доступа, как я понимаю.</p><p>Первое что приходит в голову -&nbsp; Запуская скрипт, Вы интерпретатор <strong>WScript</strong> / <strong>CScript</strong> запускаете с правами администратора ? В <strong>XP</strong> это не требовалось, в <strong>Win 7</strong> и выше это часто бывает необходимо. Для проверки достаточно запустить командную строку с правами админа, а уже из неё запустить скрипт. Если же дело не в этом, то остаётся только выяснять по каким причинам у вас нет права записи в эту ветку.</p></blockquote></div><p>Кстати ДА, доступ... я попробовал сегодня скрипт на машине с ХР - работает без проблем. А на семёрке&nbsp; - нет. Странно то, что права на ветку у меня есть. Я могу и создать этот раздел и параметр и задать ему значения и удалить всё. А вот скрипт этого не может. Попробую сейчас через командную строку... хотя скрипт должен запускаться через групповую политику - а там, в разделе ПК ,права админа должны быть по умолчанию.</p><p>Ничего не вышло - и права, вроде бы, есть, но не работает.</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-12T13:47:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96409#p96409</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96406#p96406" />
			<content type="html"><![CDATA[<p>Понял Вас. Посмотрел подробности про <a href="https://msdn.microsoft.com/en-us/library/aa393286(v=vs.85).aspx">SetBinaryValue</a></p><p>Вот что пишут:<br /></p><div class="quotebox"><blockquote><p>Return value</p><p>In C++, the method returns a uint32 value that is 0 (zero) if successful. If the function fails, the return value is a nonzero error code that is defined in WinError.h. In C++, use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error. You can also look up return values under the WMI Error Constants.</p><p><strong>In scripting or Visual Basic, the method returns an integer value that is 0 (zero) if successful. If the function fails, the return value is a nonzero error code that you can look up in WbemErrorEnum.</strong></p></blockquote></div><p>К сожалению в списке ошибок, не нашёл чего-то подобного коду 5. </p><p>На просторах инета нашёл предложение посмотреть последнюю ошибку, произошедшую в WMI. - <br /><a href="http://microsoft.public.scripting.wsh.narkive.com/9NmnIEHt/question-on-error-handling-getbinaryvalue-setbinaryvalue">ссылка</a></p><br /><div class="codebox"><pre><code>Set oLastError = CreateObject(&quot;WbemScripting.SWbemLastError&quot;)
WScript.Echo oLastError.getObjectText_(1)</code></pre></div><p>Порылся ещё. Нашёл список кодов ошибок для API функций, используемых внутри объектов WMI. <a href="http://www.computerhope.com/forum/index.php?topic=1691.0">ссылка</a></p><div class="quotebox"><blockquote><p>Const ERROR_SUCCESS = 0&amp;<br />Const ERROR_BADDB = 1009&amp;<br />Const ERROR_BADKEY = 1010&amp;<br />Const ERROR_CANTOPEN = 1011&amp;<br />Const ERROR_CANTREAD = 1012&amp;<br />Const ERROR_CANTWRITE = 1013&amp;<br />Const ERROR_OUTOFMEMORY = 14&amp;<br />Const ERROR_INVALID_PARAMETER = 87&amp;<br /><strong>Const ERROR_ACCESS_DENIED = 5&amp;</strong><br />Const ERROR_NO_MORE_ITEMS = 259&amp;<br />Const ERROR_MORE_DATA = 234&amp;</p></blockquote></div><p>Код 5 соответствует запрету доступа, как я понимаю.</p><p>Первое что приходит в голову -&nbsp; Запуская скрипт, Вы интерпретатор <strong>WScript</strong> / <strong>CScript</strong> запускаете с правами администратора ? В <strong>XP</strong> это не требовалось, в <strong>Win 7</strong> и выше это часто бывает необходимо. Для проверки достаточно запустить командную строку с правами админа, а уже из неё запустить скрипт. Если же дело не в этом, то остаётся только выяснять по каким причинам у вас нет права записи в эту ветку.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2015-08-12T09:23:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96406#p96406</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96382#p96382" />
			<content type="html"><![CDATA[<p>Вот пример кода, с проверкой результатов выполнения добавления ключа в реестр.<br /></p><div class="codebox"><pre><code>intRes = objRegistry.SetBinaryValue(HKEY_LOCAL_MACHINE, strPath, &quot;ScanCode Map&quot;, uBinary)
If intRes &lt;&gt; 0 Then
    WScript.Echo intRes &amp; &quot;: не удалось установить параметр ScanCode Map&quot;
    WScript.Quit
End If</code></pre></div><p>Он выдаёт цифру 5. Кто знает что это значит?</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-11T07:07:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96382#p96382</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96381#p96381" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>1) В данном случае, глюк это: <br /></p><div class="codebox"><pre><code>On Error Resume Next</code></pre></div><p>Так как этот оператор подавляет вывод ошибок. Так что либо удаляйте, либо комментируйте эту строку и смотрите что сообщит скрипт.</p><p>2) </p><div class="quotebox"><cite>komr пишет:</cite><blockquote><p>Если сделать проверку, то метод выдаёт цифру 5. Т.е. какую то ошибку.</p></blockquote></div><p>О какой проверке идёт речь ?</p><p>Ошибки, как правило, сопровождаются пояснениями - причина, описание. В вашем случае они есть ?</p></blockquote></div><p>Оператор подавления ошибок, естественно комментировал. Никаких изменений.<br />Метод SetBinaryValuе возвращает 0, если прошло без ошибок. В моём случае возвращает 5. Что это означает - понять не могу.</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-11T07:04:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96381#p96381</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96371#p96371" />
			<content type="html"><![CDATA[<p>1) В данном случае, глюк это: <br /></p><div class="codebox"><pre><code>On Error Resume Next</code></pre></div><p>Так как этот оператор подавляет вывод ошибок. Так что либо удаляйте, либо комментируйте эту строку и смотрите что сообщит скрипт.</p><p>2) </p><div class="quotebox"><cite>komr пишет:</cite><blockquote><p>Если сделать проверку, то метод выдаёт цифру 5. Т.е. какую то ошибку.</p></blockquote></div><p>О какой проверке идёт речь ?</p><p>Ошибки, как правило, сопровождаются пояснениями - причина, описание. В вашем случае они есть ?</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2015-08-10T14:11:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96371#p96371</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96369#p96369" />
			<content type="html"><![CDATA[<p>Я запускаю скрипт на ПК с админскими правами и ничего... и ошибок, гад, не выдаёт. Если сделать проверку, то метод выдаёт цифру 5. Т.е. какую то ошибку.</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-10T12:58:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96369#p96369</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Помогите найти глюк]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96368#p96368" />
			<content type="html"><![CDATA[<p>Есть такой код переназначения кучи клавиш<br /></p><div class="codebox"><pre><code>Option Explicit

On Error Resume Next

Dim objRegistry, strPath, uBinary, strValue01, strValue02

Const HKEY_LOCAL_MACHINE = &amp;H80000002
Const HKEY_USERS = &amp;H80000003

Set objRegistry = _
    GetObject(&quot;Winmgmts:root\default:StdRegProv&quot;)

strPath = &quot;SYSTEM\CurrentControlSet\Control\Keyboard Layout&quot;
uBinary = Array(&amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, _
                &amp;H12, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H00, &amp;H3B, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H3C, &amp;H00, &amp;H00, &amp;H00, &amp;H3D, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H3E, &amp;H00, &amp;H00, &amp;H00, &amp;H3F, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H40, &amp;H00, &amp;H00, &amp;H00, &amp;H41, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H42, &amp;H00, &amp;H00, &amp;H00, &amp;H43, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H44, &amp;H00, &amp;H00, &amp;H00, &amp;H57, &amp;H00, _
                &amp;H00, &amp;H00, &amp;H58, &amp;H00, &amp;H00, &amp;H00, &amp;H5B, &amp;HE0, _
                &amp;H00, &amp;H00, &amp;H38, &amp;H00, &amp;H00, &amp;H00, &amp;H38, &amp;HE0, _
                &amp;H00, &amp;H00, &amp;H5C, &amp;HE0, &amp;H00, &amp;H00, &amp;H1D, &amp;HE0, _
                &amp;H00, &amp;H00, &amp;H00, &amp;H00)

objRegistry.SetBinaryValue HKEY_LOCAL_MACHINE, strPath, &quot;ScanCode Map&quot;, uBinary

strPath = &quot;.DEFAULT\Keyboard Layout\Preload&quot;
strValue01 = &quot;00000409&quot;
strValue02 = &quot;00000419&quot;

objRegistry.SetStringValue HKEY_USERS, strPath, &quot;1&quot;, strValue01
objRegistry.SetStringValue HKEY_USERS, strPath, &quot;2&quot;, strValue02</code></pre></div><p>Он работал, но сейчас не работает. Ну ни в какую... Не создаётся и не заполняется значениями бинарный ключ.<br />Куда копать?</p>]]></content>
			<author>
				<name><![CDATA[komr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25457</uri>
			</author>
			<updated>2015-08-10T12:56:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96368#p96368</id>
		</entry>
</feed>
