<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>21509</bug_id>
          
          <creation_ts>2009-09-09 21:28:32 +0400</creation_ts>
          <short_desc>не становиться умолчательным браузером, но очень хочет</short_desc>
          <delta_ts>2009-10-15 21:01:32 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>firefox</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://widehat.opensuse.org/repositories/home:/llunak:/mozilla/openSUSE_Factory/src/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>usability</keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>21678</dependson>
          <blocked>19564</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zerg">anubix</reporter>
          <assigned_to name="Alexey Gladkov">legion</assigned_to>
          <cc>legion</cc>
    
    <cc>rauty</cc>
    
    <cc>sbolshakov</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>98675</commentid>
    <comment_count>0</comment_count>
      <attachid>3863</attachid>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 21:28:32 +0400</bug_when>
    <thetext>Created attachment 3863
firefox-cross-desktop.patch

После положительного ответа на вопрос &quot;Хотите стану умолчательным браузером?&quot; в KDE он им не становиться.
Патч взят из пакета MozillaFirefox
http://download.opensuse.org/repositories/mozilla:/Factory/openSUSE_Factory/src/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98676</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-09 21:32:23 +0400</bug_when>
    <thetext>У меня в gnome вроде всё работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98677</commentid>
    <comment_count>2</comment_count>
      <attachid>3864</attachid>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 21:48:43 +0400</bug_when>
    <thetext>Created attachment 3864
Пример кода для KDE3/4 на sh

Патч SuSE-специфичный. Его нужно изменить для ALT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98678</commentid>
    <comment_count>3</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 21:49:38 +0400</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; У меня в gnome вроде всё работает.
Забыл написать, что это в KDE*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98684</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-09 22:15:17 +0400</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; Забыл написать, что это в KDE*

Что это за shell-скрипт?

Прошу сделать патч, который я могу приложить к исходникам. Также прошу учесть в патче, что такой скрипт добавит зависимость на KDE в firefox. Этого нужно избежать для пользователей, не использующих KDE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98686</commentid>
    <comment_count>5</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 22:20:06 +0400</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; (В ответ на комментарий №3)
&gt; &gt; Забыл написать, что это в KDE*
&gt; Что это за shell-скрипт?
Я вроде по-русски точно описал.
 
&gt; Прошу сделать патч, который я могу приложить к исходникам.
Я не умею JS, поэтому привел пример на SH, чтобы тебе было легче исправить оригинальный патч.

&gt; добавит зависимость на KDE в firefox.
Не надо ничего добавлять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98689</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-09 22:25:12 +0400</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; Я вроде по-русски точно описал.

Я так понял, что вместо /usr/bin/kwriteconfig ты предложил вызывать этот скрипт.

&gt; Я не умею JS, поэтому привел пример на SH, чтобы тебе было легче исправить
&gt; оригинальный патч.

У меня нет ни одной машины с KDE. Патч в слепую я буду писать долго.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98691</commentid>
    <comment_count>7</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 22:36:24 +0400</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; Я так понял, что вместо /usr/bin/kwriteconfig ты предложил вызывать этот
&gt; скрипт.
Нет. Патч поправить, чтоб делал то же, что и скрипт.
Т.е., в патче только для 1-го kde и путь к kwriteconfig прибит гвоздями.

Т.е. то место, где shellObj.initWithPath(&quot;/usr/bin/kwriteconfig&quot;);, 2 раза сделать для каждого kwriteconfig
1. вычислить путь к каждому kwriteconfig
2. проверить, лежит ли он на диске
3. если лежит, добавить ему одни и те же аргументы и выполнить

Разница только в путях к kwriteconfig и гвоздями их лучше не прибивать</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98692</commentid>
    <comment_count>8</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 22:41:04 +0400</bug_when>
    <thetext>Но, если очень хочется попроще, то можно и прибить гвоздями
Выполнить одно и то же для каждого элемента списка:
/usr/bin/kwriteconfig
/usr/lib/kde4/kwriteconfig
Пути вроде устаканились. Если поломается, скажу, когда наткнусь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98693</commentid>
    <comment_count>9</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 22:42:51 +0400</bug_when>
    <thetext>Ой, наврал
/usr/bin/kwriteconfig
/usr/lib/kde4/bin/kwriteconfig</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98694</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-09 22:43:31 +0400</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; Нет. Патч поправить, чтоб делал то же, что и скрипт.

Тогда всё будет сложнее.

&gt; 1. вычислить путь к каждому kwriteconfig

Вот только вывод от команды в JS делается не так тривиально, как кажется. Сейчас я за это не возьмусь.

Всё что сейчас могу сделать для вас это положить приведённый вами скрипт в firefox-support-kde, и вызывать его из JS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98695</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-09 22:44:28 +0400</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; Ой, наврал
&gt; /usr/bin/kwriteconfig
&gt; /usr/lib/kde4/bin/kwriteconfig

Ну или так. Это хоть и уродливо, но реализуемо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98696</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-09 22:46:30 +0400</bug_when>
    <thetext>Конечно, правильнее было бы сделать так как сделано для GNOME (я про xulrunner-support-gnome), но раз никто не может осилить один модуль, то можно и захакать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98699</commentid>
    <comment_count>13</comment_count>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-09 22:52:47 +0400</bug_when>
    <thetext>(В ответ на комментарий №12)
&gt; xulrunner-support-gnome
Я смотрел, там прилично работы.
Да и куски раскиданы, обернутые #ifdef GNOME , а это уже фигово :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98704</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-09 23:19:26 +0400</bug_when>
    <thetext>(В ответ на комментарий №13)
&gt; Да и куски раскиданы, обернутые #ifdef GNOME , а это уже фигово :-(

ifdef есть в основном коде только для того чтобы проверить наличие GNOME-specific поддержки. Вся остальная поддержка делается отдельными компонентами.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99730</commentid>
    <comment_count>15</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2009-09-21 18:51:40 +0400</bug_when>
    <thetext>firefox-3.5.3-alt0.20090918 -&gt; sisyphus:

* Sun Sep 20 2009 Alexey Gladkov &lt;legion@altlinux&gt; 3.5.3-alt0.20090918

- New snapshot (3.5.3 20090918).
- Set firefox as default KDE/KDE4 browser (ALT#21509).
- Update desktop file (ALT#21510).
- Update requires (ALT#21533).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99942</commentid>
    <comment_count>16</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 15:42:03 +0400</bug_when>
    <thetext>Не работает ни для одного KDE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99943</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-23 16:03:20 +0400</bug_when>
    <thetext>(В ответ на комментарий №16)
&gt; Не работает ни для одного KDE

Эвенты шлются ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99947</commentid>
    <comment_count>18</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 16:10:27 +0400</bug_when>
    <thetext>(В ответ на комментарий №17)
&gt; Эвенты шлются ?
Какие куда? Где видно?
Нужно, чтоб команды выполнялись. Если не работает, значит не выполняются или выполняются не те, которые нужно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99954</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-23 16:49:17 +0400</bug_when>
    <thetext>(В ответ на комментарий №18)
&gt; (В ответ на комментарий №17)
&gt; &gt; Эвенты шлются ?
&gt; Какие куда? Где видно?
&gt; Нужно, чтоб команды выполнялись. Если не работает, значит не выполняются или
&gt; выполняются не те, которые нужно.

Вот я и хочу понять, дёргаются или нет утилиты. Этот код я правил в слепую, поэтому понятия не имею, рабочий он или нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99957</commentid>
    <comment_count>20</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 17:00:19 +0400</bug_when>
    <thetext>(В ответ на комментарий №19)
&gt; поэтому понятия не имею, рабочий он или нет.
Попробуй создать скрипт /usr/bin/kwriteconfig или /usr/lib/kde4/bin/kwriteconfig и написать в нем любую отладку</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99959</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-23 17:06:06 +0400</bug_when>
    <thetext>(В ответ на комментарий №20)
&gt; Попробуй создать скрипт /usr/bin/kwriteconfig или
&gt; /usr/lib/kde4/bin/kwriteconfig и написать в нем любую отладку

Мне предётся выставить ещё KDE_FULL_SESSION.
Кстати, когда ты пробовал firefox, эта переменная была выставлена ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99960</commentid>
    <comment_count>22</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 17:09:59 +0400</bug_when>
    <thetext>Естественно. Завел специально нового польователя и запустил KDE4 c FF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99961</commentid>
    <comment_count>23</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 17:11:51 +0400</bug_when>
    <thetext>По ссылке посмотри MOzillaFireFox. Может, патч обновился.
А то я в данный момент не могу скачать</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99962</commentid>
    <comment_count>24</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 17:19:30 +0400</bug_when>
    <thetext>Дык! Нет в пакете этого патча</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99967</commentid>
    <comment_count>25</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-09-23 17:34:16 +0400</bug_when>
    <thetext>(В ответ на комментарий №24)
&gt; Дык! Нет в пакете этого патча

Какого &quot;этого&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99969</commentid>
    <comment_count>26</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 17:35:44 +0400</bug_when>
    <thetext>(В ответ на комментарий №25)
&gt; Какого &quot;этого&quot; ?
Никакого не нашел. Как он называется?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99970</commentid>
    <comment_count>27</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 17:36:14 +0400</bug_when>
    <thetext>Торможу. Я ж в xulrunner смотрю</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99971</commentid>
    <comment_count>28</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2009-09-23 17:40:25 +0400</bug_when>
    <thetext>Я ж написал пример команды. Если это вдруг выполниться, то KDE* вообще перестанет открывать ссылки http*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99979</commentid>
    <comment_count>29</comment_count>
      <attachid>3932</attachid>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-23 21:22:11 +0400</bug_when>
    <thetext>Created attachment 3932
firefox-cross-desktop.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99980</commentid>
    <comment_count>30</comment_count>
      <attachid>3933</attachid>
    <who name="Zerg">anubix</who>
    <bug_when>2009-09-23 21:23:53 +0400</bug_when>
    <thetext>Created attachment 3933
firefox-kde.patch

Теперь просто эти 2 патча нужно.
Не забудь вместе с этим #21678</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101554</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-10-14 22:08:37 +0400</bug_when>
    <thetext>(В ответ на комментарий №30)
&gt; Created an attachment (id=3933) [details]
&gt; firefox-kde.patch

Этот патч не будет работать:

 ifeq ($(MOZ_WIDGET_TOOLKIT), gtk2)
-CPPSRCS = nsGNOMEShellService.cpp
+CPPSRCS = nsUnixShellService.cpp nsGNOMEShellService.cpp nsKDEShellService.cpp
 REQUIRES	+= \
 		mozgnome \
              ^^^^^^^^^^^^^^
 		thebes \
 		$(NULL)
+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
 endif

Таким образом ShellService хочет поддержку гнома. Возможно, достаточно доустановить xulrunner-gnome-support.

Собственно до запуска kwriteconfig дело не доходит в первом патче т.к.

    var shellSvc = Components.classes[&quot;@mozilla.org/browser/shell-service;1&quot;]
                             .getService(Components.interfaces.nsIShellService);

обламывается. Это и есть ShellService, который должен уметь работать c GNOME и KDE одновременно.

Пока пробую его заставить работать...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101555</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-10-14 22:19:10 +0400</bug_when>
    <thetext>Наврал ... у меня сервис не грузится потому что у меня нет ни KDE, ни GNOME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101611</commentid>
    <comment_count>33</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2009-10-15 21:01:32 +0400</bug_when>
    <thetext>firefox-3.5.3-alt0.20091010 -&gt; sisyphus:

* Sun Oct 11 2009 Alexey Gladkov &lt;legion@altlinux&gt; 3.5.3-alt0.20091010

- New snapshot (3.5.3 20091010).
- KDE: Update patches (ALT#21509).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3863</attachid>
            <date>2009-09-09 21:28:32 +0400</date>
            <delta_ts>2009-09-23 21:22:11 +0400</delta_ts>
            <desc>firefox-cross-desktop.patch</desc>
            <filename>firefox-cross-desktop.patch</filename>
            <type>text/plain</type>
            <size>3375</size>
            <attacher name="Zerg">anubix</attacher>
            
              <data encoding="base64">RnJvbTogV29sZmdhbmcgUm9zZW5hdWVyClN1YmplY3Q6IE5vbkdub21lL0tERSBpbnRlZ3JhdGlv
bgpSZWZlcmVuY2VzOgpodHRwczovL2J1Z3ppbGxhLm5vdmVsbC5jb20vc2hvd19idWcuY2dpP2lk
PTE3MDA1NQpDYXZlYXRzOiBkZXNrdG9wIGZpbGUgbmFtZSBvZiBGaXJlZm94IGlzIGhhcmRjb2Rl
ZCB0byBNb3ppbGxhRmlyZWZveAoKZGlmZiAtLWdpdCBhL2Jyb3dzZXIvYmFzZS9jb250ZW50L25z
Q29udGV4dE1lbnUuanMgYi9icm93c2VyL2Jhc2UvY29udGVudC9uc0NvbnRleHRNZW51LmpzCi0t
LSBhL2Jyb3dzZXIvYmFzZS9jb250ZW50L25zQ29udGV4dE1lbnUuanMKKysrIGIvYnJvd3Nlci9i
YXNlL2NvbnRlbnQvbnNDb250ZXh0TWVudS5qcwpAQCAtMjEwLDEzICsyMTAsMTUgQEAgbnNDb250
ZXh0TWVudS5wcm90b3R5cGUgPSB7CiAgICAgLy8gU2V0IGFzIERlc2t0b3AgYmFja2dyb3VuZCBk
ZXBlbmRzIG9uIHdoZXRoZXIgYW4gaW1hZ2Ugd2FzIGNsaWNrZWQgb24sCiAgICAgLy8gYW5kIG9u
bHkgd29ya3MgaWYgd2UgaGF2ZSBhIHNoZWxsIHNlcnZpY2UuCiAgICAgdmFyIGhhdmVTZXREZXNr
dG9wQmFja2dyb3VuZCA9IGZhbHNlOwogI2lmZGVmIEhBVkVfU0hFTExfU0VSVklDRQogICAgIC8v
IE9ubHkgZW5hYmxlIFNldCBhcyBEZXNrdG9wIEJhY2tncm91bmQgaWYgd2UgY2FuIGdldCB0aGUg
c2hlbGwgc2VydmljZS4KICAgICB2YXIgc2hlbGwgPSBnZXRTaGVsbFNlcnZpY2UoKTsKLSAgICBp
ZiAoc2hlbGwpCisgICAgdmFyIGVudiA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3Jn
L3Byb2Nlc3MvZW52aXJvbm1lbnQ7MSJdCisgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2Vy
dmljZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJRW52aXJvbm1lbnQpOworICAgIGlmIChzaGVs
bCAmJiBlbnYuZ2V0KCdERVNLVE9QX1NFU1NJT04nKSA9PSAiZ25vbWUiKQogICAgICAgaGF2ZVNl
dERlc2t0b3BCYWNrZ3JvdW5kID0gdHJ1ZTsKICNlbmRpZgogICAgIHRoaXMuc2hvd0l0ZW0oImNv
bnRleHQtc2V0RGVza3RvcEJhY2tncm91bmQiLAogICAgICAgICAgICAgICAgICAgaGF2ZVNldERl
c2t0b3BCYWNrZ3JvdW5kICYmIHRoaXMub25Mb2FkZWRJbWFnZSk7CiAKICAgICBpZiAoaGF2ZVNl
dERlc2t0b3BCYWNrZ3JvdW5kICYmIHRoaXMub25Mb2FkZWRJbWFnZSkgewpkaWZmIC0tZ2l0IGEv
YnJvd3Nlci9jb21wb25lbnRzL3ByZWZlcmVuY2VzL2FkdmFuY2VkLmpzIGIvYnJvd3Nlci9jb21w
b25lbnRzL3ByZWZlcmVuY2VzL2FkdmFuY2VkLmpzCi0tLSBhL2Jyb3dzZXIvY29tcG9uZW50cy9w
cmVmZXJlbmNlcy9hZHZhbmNlZC5qcworKysgYi9icm93c2VyL2NvbXBvbmVudHMvcHJlZmVyZW5j
ZXMvYWR2YW5jZWQuanMKQEAgLTU5NCwyMCArNTk0LDM4IEBAIHZhciBnQWR2YW5jZWRQYW5lID0g
ewogICAgIHZhciBicmFuZFNob3J0TmFtZSA9IGJyYW5kQnVuZGxlLmdldFN0cmluZygiYnJhbmRT
aG9ydE5hbWUiKTsKICAgICB2YXIgcHJvbXB0VGl0bGUgPSBzaGVsbEJ1bmRsZS5nZXRTdHJpbmco
InNldERlZmF1bHRCcm93c2VyVGl0bGUiKTsKICAgICB2YXIgcHJvbXB0TWVzc2FnZTsKICAgICBj
b25zdCBJUFMgPSBDb21wb25lbnRzLmludGVyZmFjZXMubnNJUHJvbXB0U2VydmljZTsKICAgICB2
YXIgcHN2YyA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3JnL2VtYmVkY29tcC9wcm9t
cHQtc2VydmljZTsxIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZShJUFMp
OworCisgICAgdmFyIGVudiA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3JnL3Byb2Nl
c3MvZW52aXJvbm1lbnQ7MSJdCisgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZShD
b21wb25lbnRzLmludGVyZmFjZXMubnNJRW52aXJvbm1lbnQpOworICAgIHZhciBrZGVfc2Vzc2lv
biA9IDA7CisgICAgaWYgKGVudi5nZXQoJ0tERV9GVUxMX1NFU1NJT04nKSA9PSAidHJ1ZSIpCisg
ICAgICBrZGVfc2Vzc2lvbiA9IDE7CisgICAgIAogICAgIGlmICghc2hlbGxTdmMuaXNEZWZhdWx0
QnJvd3NlcihmYWxzZSkpIHsKICAgICAgIHByb21wdE1lc3NhZ2UgPSBzaGVsbEJ1bmRsZS5nZXRG
b3JtYXR0ZWRTdHJpbmcoInNldERlZmF1bHRCcm93c2VyTWVzc2FnZSIsIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnJhbmRTaG9ydE5hbWVd
KTsKICAgICAgIHZhciBydiA9IHBzdmMuY29uZmlybUV4KHdpbmRvdywgcHJvbXB0VGl0bGUsIHBy
b21wdE1lc3NhZ2UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBTLlNURF9ZRVNf
Tk9fQlVUVE9OUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51
bGwsIG51bGwsIHsgfSk7Ci0gICAgICBpZiAocnYgPT0gMCkKKyAgICAgIGlmIChydiA9PSAwKSB7
CiAgICAgICAgIHNoZWxsU3ZjLnNldERlZmF1bHRCcm93c2VyKHRydWUsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKGtkZV9zZXNzaW9uID09IDEpIHsKKyAgICAgICAgICB2YXIgc2hlbGxPYmogPSBDb21w
b25lbnRzLmNsYXNzZXNbIkBtb3ppbGxhLm9yZy9maWxlL2xvY2FsOzEiXQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5zdGFuY2UoQ29tcG9uZW50cy5pbnRlcmZh
Y2VzLm5zSUxvY2FsRmlsZSk7CisgICAgICAgICAgc2hlbGxPYmouaW5pdFdpdGhQYXRoKCIvdXNy
L2Jpbi9rd3JpdGVjb25maWciKTsKKyAgICAgICAgICB2YXIgcHJvY2VzcyA9IENvbXBvbmVudHMu
Y2xhc3Nlc1siQG1vemlsbGEub3JnL3Byb2Nlc3MvdXRpbDsxIl0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAuY3JlYXRlSW5zdGFuY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5z
SVByb2Nlc3MpOworICAgICAgICAgIHByb2Nlc3MuaW5pdChzaGVsbE9iaik7CisgICAgICAgICAg
dmFyIGFyZ3MgPSBbIi0tZmlsZSIsICJrZGVnbG9iYWxzIiwgIi0tZ3JvdXAiLCAiR2VuZXJhbCIs
ICItLWtleSIsICJCcm93c2VyQXBwbGljYXRpb24iLCAiTW96aWxsYUZpcmVmb3giXTsKKyAgICAg
ICAgICBwcm9jZXNzLnJ1bihmYWxzZSwgYXJncywgYXJncy5sZW5ndGgpOworICAgICAgICB9Cisg
ICAgICB9CiAgICAgfQogICAgIGVsc2UgewogICAgICAgcHJvbXB0TWVzc2FnZSA9IHNoZWxsQnVu
ZGxlLmdldEZvcm1hdHRlZFN0cmluZygiYWxyZWFkeURlZmF1bHRCcm93c2VyIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JyYW5kU2hvcnRO
YW1lXSk7CiAgICAgICBwc3ZjLmFsZXJ0KHdpbmRvdywgcHJvbXB0VGl0bGUsIHByb21wdE1lc3Nh
Z2UpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3864</attachid>
            <date>2009-09-09 21:48:43 +0400</date>
            <delta_ts>2009-09-28 14:19:55 +0400</delta_ts>
            <desc>Пример кода для KDE3/4 на sh</desc>
            <filename>firefox-cross-desktop.sh</filename>
            <type>text/plain</type>
            <size>357</size>
            <attacher name="Zerg">anubix</attacher>
            
              <data encoding="base64">IyEvYmluL3NoCgpLREU0X0JJTj1ga2RlNC1jb25maWcgLS1pbnN0YWxsIGV4ZWAKCktERV9CSU49
YGtkZS1jb25maWcgLS1leGVjLXByZWZpeGAvYmluLwoKWyAteCAiJHtLREU0X0JJTn0va3dyaXRl
Y29uZmlnIiBdICYmCiAgICAkS0RFNF9CSU4va3dyaXRlY29uZmlnIC0tZmlsZSBrZGVnbG9iYWxz
IC0tZ3JvdXAgR2VuZXJhbCAtLWtleSBCcm93c2VyQXBwbGljYXRpb24gIiFmaXJlZm94IgoKWyAt
eCAiJHtLREVfQklOfS9rd3JpdGVjb25maWciIF0gJiYKICAgICRLREVfQklOL2t3cml0ZWNvbmZp
ZyAtLWZpbGUga2RlZ2xvYmFscyAtLWdyb3VwIEdlbmVyYWwgLS1rZXkgQnJvd3NlckFwcGxpY2F0
aW9uICIhZmlyZWZveCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3932</attachid>
            <date>2009-09-23 21:22:11 +0400</date>
            <delta_ts>2009-09-23 21:22:11 +0400</delta_ts>
            <desc>firefox-cross-desktop.patch</desc>
            <filename>firefox-cross-desktop.patch</filename>
            <type>text/plain</type>
            <size>1184</size>
            <attacher name="Zerg">anubix</attacher>
            
              <data encoding="base64">RnJvbTogV29sZmdhbmcgUm9zZW5hdWVyClN1YmplY3Q6IE5vbkdub21lL0tERSBpbnRlZ3JhdGlv
bgpSZWZlcmVuY2VzOgpodHRwczovL2J1Z3ppbGxhLm5vdmVsbC5jb20vc2hvd19idWcuY2dpP2lk
PTE3MDA1NQpDYXZlYXRzOiBkZXNrdG9wIGZpbGUgbmFtZSBvZiBGaXJlZm94IGlzIGhhcmRjb2Rl
ZCB0byBNb3ppbGxhRmlyZWZveAoKZGlmZiAtLWdpdCBhL2Jyb3dzZXIvYmFzZS9jb250ZW50L25z
Q29udGV4dE1lbnUuanMgYi9icm93c2VyL2Jhc2UvY29udGVudC9uc0NvbnRleHRNZW51LmpzCi0t
LSBhL2Jyb3dzZXIvYmFzZS9jb250ZW50L25zQ29udGV4dE1lbnUuanMKKysrIGIvYnJvd3Nlci9i
YXNlL2NvbnRlbnQvbnNDb250ZXh0TWVudS5qcwpAQCAtMjEwLDEzICsyMTAsMTUgQEAgbnNDb250
ZXh0TWVudS5wcm90b3R5cGUgPSB7CiAgICAgLy8gU2V0IGFzIERlc2t0b3AgYmFja2dyb3VuZCBk
ZXBlbmRzIG9uIHdoZXRoZXIgYW4gaW1hZ2Ugd2FzIGNsaWNrZWQgb24sCiAgICAgLy8gYW5kIG9u
bHkgd29ya3MgaWYgd2UgaGF2ZSBhIHNoZWxsIHNlcnZpY2UuCiAgICAgdmFyIGhhdmVTZXREZXNr
dG9wQmFja2dyb3VuZCA9IGZhbHNlOwogI2lmZGVmIEhBVkVfU0hFTExfU0VSVklDRQogICAgIC8v
IE9ubHkgZW5hYmxlIFNldCBhcyBEZXNrdG9wIEJhY2tncm91bmQgaWYgd2UgY2FuIGdldCB0aGUg
c2hlbGwgc2VydmljZS4KICAgICB2YXIgc2hlbGwgPSBnZXRTaGVsbFNlcnZpY2UoKTsKLSAgICBp
ZiAoc2hlbGwpCisgICAgdmFyIGVudiA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3Jn
L3Byb2Nlc3MvZW52aXJvbm1lbnQ7MSJdCisgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2Vy
dmljZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJRW52aXJvbm1lbnQpOworICAgIGlmIChzaGVs
bCAmJiBlbnYuZ2V0KCdERVNLVE9QX1NFU1NJT04nKSA9PSAiZ25vbWUiKQogICAgICAgaGF2ZVNl
dERlc2t0b3BCYWNrZ3JvdW5kID0gdHJ1ZTsKICNlbmRpZgogICAgIHRoaXMuc2hvd0l0ZW0oImNv
bnRleHQtc2V0RGVza3RvcEJhY2tncm91bmQiLAogICAgICAgICAgICAgICAgICAgaGF2ZVNldERl
c2t0b3BCYWNrZ3JvdW5kICYmIHRoaXMub25Mb2FkZWRJbWFnZSk7CiAKICAgICBpZiAoaGF2ZVNl
dERlc2t0b3BCYWNrZ3JvdW5kICYmIHRoaXMub25Mb2FkZWRJbWFnZSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3933</attachid>
            <date>2009-09-23 21:23:53 +0400</date>
            <delta_ts>2009-09-23 21:23:53 +0400</delta_ts>
            <desc>firefox-kde.patch</desc>
            <filename>firefox-kde.patch</filename>
            <type>text/plain</type>
            <size>16185</size>
            <attacher name="Zerg">anubix</attacher>
            
              <data encoding="base64">LS0tIG1vemlsbGEvYnJvd3Nlci9hcHAvTWFrZWZpbGUuaW4uc2F2CTIwMDktMDktMTQgMTA6MDA6
MjEuMDAwMDAwMDAwICswMjAwCisrKyBtb3ppbGxhL2Jyb3dzZXIvYXBwL01ha2VmaWxlLmluCTIw
MDktMDktMTQgMTA6MDQ6MTQuMDAwMDAwMDAwICswMjAwCkBAIC00OSw2ICs0OSw3IEBAIERJUlMJ
CT0gcHJvZmlsZS9leHRlbnNpb25zCiAKIFBSRUZfSlNfRVhQT1JUUyA9ICQoc3JjZGlyKS9wcm9m
aWxlL2ZpcmVmb3guanMgXAogCQkgICQoc3JjZGlyKS9wcm9maWxlL2NoYW5uZWwtcHJlZnMuanMg
XAorCQkgICQoc3JjZGlyKS9wcm9maWxlL2tkZS5qcyBcCiAJCSAgJChOVUxMKQogCiBpZm5kZWYg
TU9aX0JSQU5ESU5HX0RJUkVDVE9SWQotLS0gbW96aWxsYS9icm93c2VyL2NvbXBvbmVudHMvYnVp
bGQvbnNNb2R1bGUuY3BwLnNhdgkyMDA5LTA5LTE0IDEwOjAwOjIxLjAwMDAwMDAwMCArMDIwMAor
KysgbW96aWxsYS9icm93c2VyL2NvbXBvbmVudHMvYnVpbGQvbnNNb2R1bGUuY3BwCTIwMDktMDkt
MTQgMTA6MDQ6MTQuMDAwMDAwMDAwICswMjAwCkBAIC00Niw3ICs0Niw3IEBACiAjZWxpZiBkZWZp
bmVkKFhQX01BQ09TWCkKICNpbmNsdWRlICJuc01hY1NoZWxsU2VydmljZS5oIgogI2VsaWYgZGVm
aW5lZChNT1pfV0lER0VUX0dUSzIpCi0jaW5jbHVkZSAibnNHTk9NRVNoZWxsU2VydmljZS5oIgor
I2luY2x1ZGUgIm5zVW5peFNoZWxsU2VydmljZS5oIgogI2VuZGlmCiAKICNpZm5kZWYgV0lOQ0UK
QEAgLTg4LDcgKzg4LDggQEAgTlNfR0VORVJJQ19GQUNUT1JZX0NPTlNUUlVDVE9SKG5zV2luZG93
cwogI2VsaWYgZGVmaW5lZChYUF9NQUNPU1gpCiBOU19HRU5FUklDX0ZBQ1RPUllfQ09OU1RSVUNU
T1IobnNNYWNTaGVsbFNlcnZpY2UpCiAjZWxpZiBkZWZpbmVkKE1PWl9XSURHRVRfR1RLMikKLU5T
X0dFTkVSSUNfRkFDVE9SWV9DT05TVFJVQ1RPUl9JTklUKG5zR05PTUVTaGVsbFNlcnZpY2UsIElu
aXQpCisvLyBpbiBuc1VuaXhTaGVsbFNlcnZpY2UKKy8vTlNfR0VORVJJQ19GQUNUT1JZX0NPTlNU
UlVDVE9SX0lOSVQobnNVbml4U2hlbGxTZXJ2aWNlLCBJbml0KQogI2VuZGlmCiAKICNpZm5kZWYg
V0lOQ0UKQEAgLTEzMiw3ICsxMzMsNyBAQCBzdGF0aWMgY29uc3QgbnNNb2R1bGVDb21wb25lbnRJ
bmZvIGNvbXBvCiAgIHsgIkJyb3dzZXIgU2hlbGwgU2VydmljZSIsCiAgICAgTlNfU0hFTExTRVJW
SUNFX0NJRCwKICAgICBOU19TSEVMTFNFUlZJQ0VfQ09OVFJBQ1RJRCwKLSAgICBuc0dOT01FU2hl
bGxTZXJ2aWNlQ29uc3RydWN0b3IgfSwKKyAgICBuc1VuaXhTaGVsbFNlcnZpY2VDb25zdHJ1Y3Rv
ciB9LAogCiAjZW5kaWYKIAotLS0gbW96aWxsYS9icm93c2VyL2NvbXBvbmVudHMvc2hlbGwvc3Jj
L01ha2VmaWxlLmluLnNhdgkyMDA5LTA5LTE0IDEwOjAwOjIxLjAwMDAwMDAwMCArMDIwMAorKysg
bW96aWxsYS9icm93c2VyL2NvbXBvbmVudHMvc2hlbGwvc3JjL01ha2VmaWxlLmluCTIwMDktMDkt
MTQgMTA6MDQ6MTQuMDAwMDAwMDAwICswMjAwCkBAIC03NSwxMSArNzUsMTIgQEAgaWZuZXEgKCwk
KGZpbHRlciBtYWMgY29jb2EsJChNT1pfV0lER0VUXwogQ1BQU1JDUyA9IG5zTWFjU2hlbGxTZXJ2
aWNlLmNwcAogZWxzZQogaWZlcSAoJChNT1pfV0lER0VUX1RPT0xLSVQpLCBndGsyKQotQ1BQU1JD
UyA9IG5zR05PTUVTaGVsbFNlcnZpY2UuY3BwCitDUFBTUkNTID0gbnNVbml4U2hlbGxTZXJ2aWNl
LmNwcCBuc0dOT01FU2hlbGxTZXJ2aWNlLmNwcCBuc0tERVNoZWxsU2VydmljZS5jcHAKIFJFUVVJ
UkVTCSs9IFwKIAkJbW96Z25vbWUgXAogCQl0aGViZXMgXAogCQkkKE5VTEwpCitMT0NBTF9JTkNM
VURFUyArPSAtSSQodG9wc3JjZGlyKS90b29sa2l0L3hyZQogZW5kaWYKIGVuZGlmCiBlbmRpZgot
LS0gbW96aWxsYS9icm93c2VyL2NvbXBvbmVudHMvc2hlbGwvc3JjL25zS0RFU2hlbGxTZXJ2aWNl
LmNwcC5zYXYJMjAwOS0wOS0xNCAxMDowMDoyMS4wMDAwMDAwMDAgKzAyMDAKKysrIG1vemlsbGEv
YnJvd3Nlci9jb21wb25lbnRzL3NoZWxsL3NyYy9uc0tERVNoZWxsU2VydmljZS5jcHAJMjAwOS0w
OS0xNCAxMDowNDoxNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSwxOTMgQEAKKy8qIC0qLSBN
b2RlOiBDKys7IHRhYi13aWR0aDogMjsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjLWJhc2ljLW9m
ZnNldDogMiAtKi0gKi8KKy8qICoqKioqIEJFR0lOIExJQ0VOU0UgQkxPQ0sgKioqKioKKyAqIFZl
cnNpb246IE1QTCAxLjEvR1BMIDIuMC9MR1BMIDIuMQorICoKKyAqIFRoZSBjb250ZW50cyBvZiB0
aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lv
bgorICogMS4xICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNl
cHQgaW4gY29tcGxpYW5jZSB3aXRoCisgKiB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBj
b3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC8KKyAq
CisgKiBTb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl
ZCBvbiBhbiAiQVMgSVMiIGJhc2lzLAorICogV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg
ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlCisgKiBmb3IgdGhlIHNw
ZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyByaWdodHMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRo
ZQorICogTGljZW5zZS4KKyAqCisgKiBUaGUgT3JpZ2luYWwgQ29kZSBpcyBTaGVsbCBTZXJ2aWNl
LgorICoKKyAqIFRoZSBJbml0aWFsIERldmVsb3BlciBvZiB0aGUgT3JpZ2luYWwgQ29kZSBpcyBt
b3ppbGxhLm9yZy4KKyAqIFBvcnRpb25zIGNyZWF0ZWQgYnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVy
IGFyZSBDb3B5cmlnaHQgKEMpIDIwMDQKKyAqIHRoZSBJbml0aWFsIERldmVsb3Blci4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBDb250cmlidXRvcihzKToKKyAqCisgKiBBbHRlcm5hdGl2
ZWx5LCB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIG1heSBiZSB1c2VkIHVuZGVyIHRoZSB0ZXJt
cyBvZgorICogZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIg
b3IgbGF0ZXIgKHRoZSAiR1BMIiksIG9yCisgKiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIFZlcnNpb24gMi4xIG9yIGxhdGVyICh0aGUgIkxHUEwiKSwKKyAqIGluIHdoaWNo
IGNhc2UgdGhlIHByb3Zpc2lvbnMgb2YgdGhlIEdQTCBvciB0aGUgTEdQTCBhcmUgYXBwbGljYWJs
ZSBpbnN0ZWFkCisgKiBvZiB0aG9zZSBhYm92ZS4gSWYgeW91IHdpc2ggdG8gYWxsb3cgdXNlIG9m
IHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgb25seQorICogdW5kZXIgdGhlIHRlcm1zIG9mIGVp
dGhlciB0aGUgR1BMIG9yIHRoZSBMR1BMLCBhbmQgbm90IHRvIGFsbG93IG90aGVycyB0bworICog
dXNlIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNUEws
IGluZGljYXRlIHlvdXIKKyAqIGRlY2lzaW9uIGJ5IGRlbGV0aW5nIHRoZSBwcm92aXNpb25zIGFi
b3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbm90aWNlCisgKiBhbmQgb3RoZXIgcHJvdmlz
aW9ucyByZXF1aXJlZCBieSB0aGUgR1BMIG9yIHRoZSBMR1BMLiBJZiB5b3UgZG8gbm90IGRlbGV0
ZQorICogdGhlIHByb3Zpc2lvbnMgYWJvdmUsIGEgcmVjaXBpZW50IG1heSB1c2UgeW91ciB2ZXJz
aW9uIG9mIHRoaXMgZmlsZSB1bmRlcgorICogdGhlIHRlcm1zIG9mIGFueSBvbmUgb2YgdGhlIE1Q
TCwgdGhlIEdQTCBvciB0aGUgTEdQTC4KKyAqCisgKiAqKioqKiBFTkQgTElDRU5TRSBCTE9DSyAq
KioqKiAqLworCisjaW5jbHVkZSAibnNLREVTaGVsbFNlcnZpY2UuaCIKKyNpbmNsdWRlICJuc1No
ZWxsU2VydmljZS5oIgorI2luY2x1ZGUgIm5zS0RFVXRpbHMuaCIKKyNpbmNsdWRlICJuc0NPTVB0
ci5oIgorI2luY2x1ZGUgIm5zSVByZWZTZXJ2aWNlLmgiCisjaW5jbHVkZSAibnNJUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIm5zSUxvY2FsRmlsZS5oIgorI2luY2x1ZGUgIm5zU2VydmljZU1hbmFnZXJV
dGlscy5oIgorI2luY2x1ZGUgIm5zQ29tcG9uZW50TWFuYWdlclV0aWxzLmgiCisKK25zcmVzdWx0
Cituc0tERVNoZWxsU2VydmljZTo6SW5pdCgpCisgICAgeworICAgIGlmKCAhbnNLREVVdGlsczo6
a2RlU3VwcG9ydCgpKQorICAgICAgICByZXR1cm4gTlNfRVJST1JfTk9UX0FWQUlMQUJMRTsKKyAg
ICByZXR1cm4gTlNfT0s7CisgICAgfQorCitOU19JTVBMX0lTVVBQT1JUUzEobnNLREVTaGVsbFNl
cnZpY2UsIG5zSVNoZWxsU2VydmljZSkKKworTlNfSU1FVEhPRElNUAorbnNLREVTaGVsbFNlcnZp
Y2U6OklzRGVmYXVsdEJyb3dzZXIoUFJCb29sIGFTdGFydHVwQ2hlY2ssCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBSQm9vbCogYUlzRGVmYXVsdEJyb3dzZXIpCisgICAg
eworICAgICphSXNEZWZhdWx0QnJvd3NlciA9IFBSX0ZBTFNFOworICAgIGlmIChhU3RhcnR1cENo
ZWNrKQorICAgICAgICBtQ2hlY2tlZFRoaXNTZXNzaW9uID0gUFJfVFJVRTsKKyAgICBuc0NTdHJp
bmdBcnJheSBjb21tYW5kOworICAgIGNvbW1hbmQuQXBwZW5kQ1N0cmluZyggTlNfTElURVJBTF9D
U1RSSU5HKCAiSVNERUZBVUxUQlJPV1NFUiIgKSk7CisgICAgaWYoIG5zS0RFVXRpbHM6OmNvbW1h
bmQoIGNvbW1hbmQgKSkKKyAgICAgICAgKmFJc0RlZmF1bHRCcm93c2VyID0gUFJfVFJVRTsKKyAg
ICByZXR1cm4gTlNfT0s7CisgICAgfQorCitOU19JTUVUSE9ESU1QCituc0tERVNoZWxsU2Vydmlj
ZTo6U2V0RGVmYXVsdEJyb3dzZXIoUFJCb29sIGFDbGFpbUFsbFR5cGVzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJCb29sIGFGb3JBbGxVc2VycykKKyAgICB7Cisg
ICAgbnNDU3RyaW5nQXJyYXkgY29tbWFuZDsKKyAgICBjb21tYW5kLkFwcGVuZENTdHJpbmcoIE5T
X0xJVEVSQUxfQ1NUUklORyggIlNFVERFRkFVTFRCUk9XU0VSIiApKTsKKyAgICBjb21tYW5kLkFw
cGVuZENTdHJpbmcoIGFDbGFpbUFsbFR5cGVzID8gTlNfTElURVJBTF9DU1RSSU5HKCAiQUxMVFlQ
RVMiICkgOiBOU19MSVRFUkFMX0NTVFJJTkcoICJOT1JNQUwiICkpOworICAgIHJldHVybiBuc0tE
RVV0aWxzOjpjb21tYW5kKCBjb21tYW5kICkgPyBOU19PSyA6IE5TX0VSUk9SX0ZBSUxVUkU7Cisg
ICAgfQorCitOU19JTUVUSE9ESU1QCituc0tERVNoZWxsU2VydmljZTo6R2V0U2hvdWxkQ2hlY2tE
ZWZhdWx0QnJvd3NlcihQUkJvb2wqIGFSZXN1bHQpCit7CisgIC8vIElmIHdlJ3ZlIGFscmVhZHkg
Y2hlY2tlZCwgdGhlIGJyb3dzZXIgaGFzIGJlZW4gc3RhcnRlZCBhbmQgdGhpcyBpcyBhIAorICAv
LyBuZXcgd2luZG93IG9wZW4sIGFuZCB3ZSBkb24ndCB3YW50IHRvIGNoZWNrIGFnYWluLgorICBp
ZiAobUNoZWNrZWRUaGlzU2Vzc2lvbikgeworICAgICphUmVzdWx0ID0gUFJfRkFMU0U7CisgICAg
cmV0dXJuIE5TX09LOworICB9CisKKyAgbnNDT01QdHI8bnNJUHJlZkJyYW5jaD4gcHJlZnM7Cisg
IG5zQ09NUHRyPG5zSVByZWZTZXJ2aWNlPiBwc2VydmUoZG9fR2V0U2VydmljZShOU19QUkVGU0VS
VklDRV9DT05UUkFDVElEKSk7CisgIGlmIChwc2VydmUpCisgICAgcHNlcnZlLT5HZXRCcmFuY2go
IiIsIGdldHRlcl9BZGRSZWZzKHByZWZzKSk7CisKKyAgaWYgKHByZWZzKQorICAgIHByZWZzLT5H
ZXRCb29sUHJlZihQUkVGX0NIRUNLREVGQVVMVEJST1dTRVIsIGFSZXN1bHQpOworCisgIHJldHVy
biBOU19PSzsKK30KKworTlNfSU1FVEhPRElNUAorbnNLREVTaGVsbFNlcnZpY2U6OlNldFNob3Vs
ZENoZWNrRGVmYXVsdEJyb3dzZXIoUFJCb29sIGFTaG91bGRDaGVjaykKK3sKKyAgbnNDT01QdHI8
bnNJUHJlZkJyYW5jaD4gcHJlZnM7CisgIG5zQ09NUHRyPG5zSVByZWZTZXJ2aWNlPiBwc2VydmUo
ZG9fR2V0U2VydmljZShOU19QUkVGU0VSVklDRV9DT05UUkFDVElEKSk7CisgIGlmIChwc2VydmUp
CisgICAgcHNlcnZlLT5HZXRCcmFuY2goIiIsIGdldHRlcl9BZGRSZWZzKHByZWZzKSk7CisKKyAg
aWYgKHByZWZzKQorICAgIHByZWZzLT5TZXRCb29sUHJlZihQUkVGX0NIRUNLREVGQVVMVEJST1dT
RVIsIGFTaG91bGRDaGVjayk7CisKKyAgcmV0dXJuIE5TX09LOworfQorCitOU19JTUVUSE9ESU1Q
Cituc0tERVNoZWxsU2VydmljZTo6U2V0RGVza3RvcEJhY2tncm91bmQobnNJRE9NRWxlbWVudCog
YUVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJ
bnQzMiBhUG9zaXRpb24pCisgICAgeworICAgIHJldHVybiBOU19FUlJPUl9OT1RfSU1QTEVNRU5U
RUQ7CisgICAgfQorCitOU19JTUVUSE9ESU1QCituc0tERVNoZWxsU2VydmljZTo6R2V0RGVza3Rv
cEJhY2tncm91bmRDb2xvcihQUlVpbnQzMiAqYUNvbG9yKQorICAgIHsKKyAgICByZXR1cm4gTlNf
RVJST1JfTk9UX0lNUExFTUVOVEVEOworICAgIH0KKworTlNfSU1FVEhPRElNUAorbnNLREVTaGVs
bFNlcnZpY2U6OlNldERlc2t0b3BCYWNrZ3JvdW5kQ29sb3IoUFJVaW50MzIgYUNvbG9yKQorICAg
IHsKKyAgICByZXR1cm4gTlNfRVJST1JfTk9UX0lNUExFTUVOVEVEOworICAgIH0KKworTlNfSU1F
VEhPRElNUAorbnNLREVTaGVsbFNlcnZpY2U6Ok9wZW5BcHBsaWNhdGlvbihQUkludDMyIGFBcHBs
aWNhdGlvbikKKyAgICB7CisgICAgbnNDU3RyaW5nQXJyYXkgY29tbWFuZDsKKyAgICBpZiggYUFw
cGxpY2F0aW9uID09IEFQUExJQ0FUSU9OX01BSUwgKQorICAgICAgICBjb21tYW5kLkFwcGVuZENT
dHJpbmcoIE5TX0xJVEVSQUxfQ1NUUklORyggIk9QRU5NQUlMIiApKTsKKyAgICBlbHNlIGlmKCBh
QXBwbGljYXRpb24gPT0gQVBQTElDQVRJT05fTkVXUyApCisgICAgICAgIGNvbW1hbmQuQXBwZW5k
Q1N0cmluZyggTlNfTElURVJBTF9DU1RSSU5HKCAiT1BFTk5FV1MiICkpOworICAgIGVsc2UKKyAg
ICAgICAgcmV0dXJuIE5TX0VSUk9SX05PVF9JTVBMRU1FTlRFRDsKKyAgICByZXR1cm4gbnNLREVV
dGlsczo6Y29tbWFuZCggY29tbWFuZCApID8gTlNfT0sgOiBOU19FUlJPUl9GQUlMVVJFOworICAg
IH0KKworTlNfSU1FVEhPRElNUAorbnNLREVTaGVsbFNlcnZpY2U6Ok9wZW5BcHBsaWNhdGlvbldp
dGhVUkkobnNJTG9jYWxGaWxlKiBhQXBwbGljYXRpb24sIGNvbnN0IG5zQUNTdHJpbmcmIGFVUkkp
CisgICAgeworICAgIG5zQ1N0cmluZ0FycmF5IGNvbW1hbmQ7CisgICAgY29tbWFuZC5BcHBlbmRD
U3RyaW5nKCBOU19MSVRFUkFMX0NTVFJJTkcoICJSVU4iICkpOworICAgIG5zQ1N0cmluZyBhcHA7
CisgICAgbnNyZXN1bHQgcnYgPSBhQXBwbGljYXRpb24tPkdldE5hdGl2ZVBhdGgoIGFwcCApOwor
ICAgIE5TX0VOU1VSRV9TVUNDRVNTKCBydiwgcnYgKTsKKyAgICBjb21tYW5kLkFwcGVuZENTdHJp
bmcoIGFwcCApOworICAgIGNvbW1hbmQuQXBwZW5kQ1N0cmluZyggYVVSSSApOworICAgIHJldHVy
biBuc0tERVV0aWxzOjpjb21tYW5kKCBjb21tYW5kICkgPyBOU19PSyA6IE5TX0VSUk9SX0ZBSUxV
UkU7CisgICAgfQorCitOU19JTUVUSE9ESU1QCituc0tERVNoZWxsU2VydmljZTo6R2V0RGVmYXVs
dEZlZWRSZWFkZXIobnNJTG9jYWxGaWxlKiogX3JldHZhbCkKKyAgICB7CisgICAgKl9yZXR2YWwg
PSBuc251bGw7CisKKyAgICBuc0NTdHJpbmdBcnJheSBjb21tYW5kOworICAgIGNvbW1hbmQuQXBw
ZW5kQ1N0cmluZyggTlNfTElURVJBTF9DU1RSSU5HKCAiR0VUREVGQVVMVEZFRURSRUFERVIiICkp
OworICAgIG5zQ1N0cmluZ0FycmF5IG91dHB1dDsKKyAgICBpZiggIW5zS0RFVXRpbHM6OmNvbW1h
bmQoIGNvbW1hbmQsICZvdXRwdXQgKSB8fCBvdXRwdXQuQ291bnQoKSAhPSAxICkKKyAgICAgICAg
cmV0dXJuIE5TX0VSUk9SX0ZBSUxVUkU7CisKKyAgICBuc0NTdHJpbmcgcGF0aDsKKyAgICBwYXRo
ID0gKm91dHB1dFsgMCBdOworICAgIGlmIChwYXRoLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IE5TX0VSUk9SX0ZBSUxVUkU7CisKKyAgICBuc3Jlc3VsdCBydjsKKyAgICBuc0NPTVB0cjxuc0lM
b2NhbEZpbGU+IGRlZmF1bHRSZWFkZXIgPQorICAgICAgICBkb19DcmVhdGVJbnN0YW5jZSgiQG1v
emlsbGEub3JnL2ZpbGUvbG9jYWw7MSIsICZydik7CisgICAgTlNfRU5TVVJFX1NVQ0NFU1MocnYs
IHJ2KTsKKworICAgIHJ2ID0gZGVmYXVsdFJlYWRlci0+SW5pdFdpdGhOYXRpdmVQYXRoKHBhdGgp
OworICAgIE5TX0VOU1VSRV9TVUNDRVNTKHJ2LCBydik7CisKKyAgICBQUkJvb2wgZXhpc3RzOwor
ICAgIHJ2ID0gZGVmYXVsdFJlYWRlci0+RXhpc3RzKCZleGlzdHMpOworICAgIE5TX0VOU1VSRV9T
VUNDRVNTKHJ2LCBydik7CisgICAgaWYgKCFleGlzdHMpCisgICAgICAgIHJldHVybiBOU19FUlJP
Ul9GQUlMVVJFOworCisgICAgTlNfQUREUkVGKCpfcmV0dmFsID0gZGVmYXVsdFJlYWRlcik7Cisg
ICAgcmV0dXJuIE5TX09LOworICAgIH0KLS0tIG1vemlsbGEvYnJvd3Nlci9jb21wb25lbnRzL3No
ZWxsL3NyYy9uc0tERVNoZWxsU2VydmljZS5oLnNhdgkyMDA5LTA5LTE0IDEwOjAwOjIxLjAwMDAw
MDAwMCArMDIwMAorKysgbW96aWxsYS9icm93c2VyL2NvbXBvbmVudHMvc2hlbGwvc3JjL25zS0RF
U2hlbGxTZXJ2aWNlLmgJMjAwOS0wOS0xNCAxMDowNDoxNC4wMDAwMDAwMDAgKzAyMDAKQEAgLTAs
MCArMSw1OSBAQAorLyogLSotIE1vZGU6IEMrKzsgdGFiLXdpZHRoOiAyOyBpbmRlbnQtdGFicy1t
b2RlOiBuaWw7IGMtYmFzaWMtb2Zmc2V0OiAyIC0qLSAqLworLyogKioqKiogQkVHSU4gTElDRU5T
RSBCTE9DSyAqKioqKgorICogVmVyc2lvbjogTVBMIDEuMS9HUEwgMi4wL0xHUEwgMi4xCisgKgor
ICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgTW96aWxsYSBQ
dWJsaWMgTGljZW5zZSBWZXJzaW9uCisgKiAxLjEgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5v
dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKKyAqIHRoZSBMaWNlbnNl
LiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIGh0dHA6Ly93d3cu
bW96aWxsYS5vcmcvTVBMLworICoKKyAqIFNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM
aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsCisgKiBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExp
Y2Vuc2UKKyAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHJpZ2h0cyBhbmQg
bGltaXRhdGlvbnMgdW5kZXIgdGhlCisgKiBMaWNlbnNlLgorICoKKyAqIFRoZSBPcmlnaW5hbCBD
b2RlIGlzIFNoZWxsIFNlcnZpY2UuCisgKgorICogVGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9mIHRo
ZSBPcmlnaW5hbCBDb2RlIGlzIG1vemlsbGEub3JnLgorICogUG9ydGlvbnMgY3JlYXRlZCBieSB0
aGUgSW5pdGlhbCBEZXZlbG9wZXIgYXJlIENvcHlyaWdodCAoQykgMjAwNAorICogdGhlIEluaXRp
YWwgRGV2ZWxvcGVyLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIENvbnRyaWJ1dG9yKHMp
OgorICoKKyAqIEFsdGVybmF0aXZlbHksIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5IGJl
IHVzZWQgdW5kZXIgdGhlIHRlcm1zIG9mCisgKiBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIFZlcnNpb24gMiBvciBsYXRlciAodGhlICJHUEwiKSwgb3IKKyAqIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjEgb3IgbGF0ZXIgKHRoZSAi
TEdQTCIpLAorICogaW4gd2hpY2ggY2FzZSB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgR1BMIG9yIHRo
ZSBMR1BMIGFyZSBhcHBsaWNhYmxlIGluc3RlYWQKKyAqIG9mIHRob3NlIGFib3ZlLiBJZiB5b3Ug
d2lzaCB0byBhbGxvdyB1c2Ugb2YgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBvbmx5CisgKiB1
bmRlciB0aGUgdGVybXMgb2YgZWl0aGVyIHRoZSBHUEwgb3IgdGhlIExHUEwsIGFuZCBub3QgdG8g
YWxsb3cgb3RoZXJzIHRvCisgKiB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIE1QTCwgaW5kaWNhdGUgeW91cgorICogZGVjaXNpb24gYnkgZGVsZXRp
bmcgdGhlIHByb3Zpc2lvbnMgYWJvdmUgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3RpY2UK
KyAqIGFuZCBvdGhlciBwcm92aXNpb25zIHJlcXVpcmVkIGJ5IHRoZSBHUEwgb3IgdGhlIExHUEwu
IElmIHlvdSBkbyBub3QgZGVsZXRlCisgKiB0aGUgcHJvdmlzaW9ucyBhYm92ZSwgYSByZWNpcGll
bnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyCisgKiB0aGUgdGVybXMg
b2YgYW55IG9uZSBvZiB0aGUgTVBMLCB0aGUgR1BMIG9yIHRoZSBMR1BMLgorICoKKyAqICoqKioq
IEVORCBMSUNFTlNFIEJMT0NLICoqKioqICovCisKKyNpZm5kZWYgbnNrZGVzaGVsbHNlcnZpY2Vf
aF9fX18KKyNkZWZpbmUgbnNrZGVzaGVsbHNlcnZpY2VfaF9fX18KKworI2luY2x1ZGUgIm5zSVNo
ZWxsU2VydmljZS5oIgorI2luY2x1ZGUgIm5zU3RyaW5nQVBJLmgiCisKK2NsYXNzIG5zS0RFU2hl
bGxTZXJ2aWNlIDogcHVibGljIG5zSVNoZWxsU2VydmljZQoreworcHVibGljOgorICBuc0tERVNo
ZWxsU2VydmljZSgpIDogbUNoZWNrZWRUaGlzU2Vzc2lvbihQUl9GQUxTRSkgeyB9CisKKyAgTlNf
REVDTF9JU1VQUE9SVFMKKyAgTlNfREVDTF9OU0lTSEVMTFNFUlZJQ0UKKworICBuc3Jlc3VsdCBJ
bml0KCkgTlNfSElEREVOOworCitwcml2YXRlOgorICB+bnNLREVTaGVsbFNlcnZpY2UoKSB7fQor
CisgIFBSUGFja2VkQm9vbCBtQ2hlY2tlZFRoaXNTZXNzaW9uOworfTsKKworI2VuZGlmIC8vIG5z
a2Rlc2hlbGxzZXJ2aWNlX2hfX19fCi0tLSBtb3ppbGxhL2Jyb3dzZXIvY29tcG9uZW50cy9zaGVs
bC9zcmMvbnNVbml4U2hlbGxTZXJ2aWNlLmNwcC5zYXYJMjAwOS0wOS0xNCAxMDowMDoyMS4wMDAw
MDAwMDAgKzAyMDAKKysrIG1vemlsbGEvYnJvd3Nlci9jb21wb25lbnRzL3NoZWxsL3NyYy9uc1Vu
aXhTaGVsbFNlcnZpY2UuY3BwCTIwMDktMDktMTQgMTA6MDQ6MTQuMDAwMDAwMDAwICswMjAwCkBA
IC0wLDAgKzEsNTIgQEAKKy8qIC0qLSBNb2RlOiBDKys7IHRhYi13aWR0aDogMjsgaW5kZW50LXRh
YnMtbW9kZTogbmlsOyBjLWJhc2ljLW9mZnNldDogMiAtKi0gKi8KKy8qICoqKioqIEJFR0lOIExJ
Q0VOU0UgQkxPQ0sgKioqKioKKyAqIFZlcnNpb246IE1QTCAxLjEvR1BMIDIuMC9MR1BMIDIuMQor
ICoKKyAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIE1vemls
bGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbgorICogMS4xICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1h
eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoCisgKiB0aGUgTGlj
ZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiBodHRwOi8v
d3d3Lm1vemlsbGEub3JnL01QTC8KKyAqCisgKiBTb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLAorICogV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRo
ZSBMaWNlbnNlCisgKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyByaWdodHMg
YW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZQorICogTGljZW5zZS4KKyAqCisgKiBUaGUgT3JpZ2lu
YWwgQ29kZSBpcyBTaGVsbCBTZXJ2aWNlLgorICoKKyAqIFRoZSBJbml0aWFsIERldmVsb3BlciBv
ZiB0aGUgT3JpZ2luYWwgQ29kZSBpcyBtb3ppbGxhLm9yZy4KKyAqIFBvcnRpb25zIGNyZWF0ZWQg
YnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDIwMDQKKyAqIHRoZSBJ
bml0aWFsIERldmVsb3Blci4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBDb250cmlidXRv
cihzKToKKyAqCisgKiBBbHRlcm5hdGl2ZWx5LCB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIG1h
eSBiZSB1c2VkIHVuZGVyIHRoZSB0ZXJtcyBvZgorICogZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBWZXJzaW9uIDIgb3IgbGF0ZXIgKHRoZSAiR1BMIiksIG9yCisgKiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4xIG9yIGxhdGVyICh0
aGUgIkxHUEwiKSwKKyAqIGluIHdoaWNoIGNhc2UgdGhlIHByb3Zpc2lvbnMgb2YgdGhlIEdQTCBv
ciB0aGUgTEdQTCBhcmUgYXBwbGljYWJsZSBpbnN0ZWFkCisgKiBvZiB0aG9zZSBhYm92ZS4gSWYg
eW91IHdpc2ggdG8gYWxsb3cgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgb25seQor
ICogdW5kZXIgdGhlIHRlcm1zIG9mIGVpdGhlciB0aGUgR1BMIG9yIHRoZSBMR1BMLCBhbmQgbm90
IHRvIGFsbG93IG90aGVycyB0bworICogdXNlIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBNUEwsIGluZGljYXRlIHlvdXIKKyAqIGRlY2lzaW9uIGJ5IGRl
bGV0aW5nIHRoZSBwcm92aXNpb25zIGFib3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbm90
aWNlCisgKiBhbmQgb3RoZXIgcHJvdmlzaW9ucyByZXF1aXJlZCBieSB0aGUgR1BMIG9yIHRoZSBM
R1BMLiBJZiB5b3UgZG8gbm90IGRlbGV0ZQorICogdGhlIHByb3Zpc2lvbnMgYWJvdmUsIGEgcmVj
aXBpZW50IG1heSB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlcgorICogdGhlIHRl
cm1zIG9mIGFueSBvbmUgb2YgdGhlIE1QTCwgdGhlIEdQTCBvciB0aGUgTEdQTC4KKyAqCisgKiAq
KioqKiBFTkQgTElDRU5TRSBCTE9DSyAqKioqKiAqLworCisjaW5jbHVkZSAibnNVbml4U2hlbGxT
ZXJ2aWNlLmgiCisjaW5jbHVkZSAibnNHTk9NRVNoZWxsU2VydmljZS5oIgorI2luY2x1ZGUgIm5z
S0RFU2hlbGxTZXJ2aWNlLmgiCisjaW5jbHVkZSAibnNLREVVdGlscy5oIgorI2luY2x1ZGUgIm5z
SUdlbmVyaWNGYWN0b3J5LmgiCisKK05TX0dFTkVSSUNfRkFDVE9SWV9DT05TVFJVQ1RPUl9JTklU
KG5zR05PTUVTaGVsbFNlcnZpY2UsIEluaXQpCitOU19HRU5FUklDX0ZBQ1RPUllfQ09OU1RSVUNU
T1JfSU5JVChuc0tERVNoZWxsU2VydmljZSwgSW5pdCkKKworTlNfTUVUSE9ECituc1VuaXhTaGVs
bFNlcnZpY2VDb25zdHJ1Y3Rvcihuc0lTdXBwb3J0cyAqYU91dGVyLCBSRUZOU0lJRCBhSUlELCB2
b2lkICoqYVJlc3VsdCkKK3sKKyAgICBpZiggbnNLREVVdGlsczo6a2RlU3VwcG9ydCgpKQorICAg
ICAgICByZXR1cm4gbnNLREVTaGVsbFNlcnZpY2VDb25zdHJ1Y3RvciggYU91dGVyLCBhSUlELCBh
UmVzdWx0ICk7CisgICAgcmV0dXJuIG5zR05PTUVTaGVsbFNlcnZpY2VDb25zdHJ1Y3RvciggYU91
dGVyLCBhSUlELCBhUmVzdWx0ICk7Cit9Ci0tLSBtb3ppbGxhL2Jyb3dzZXIvY29tcG9uZW50cy9z
aGVsbC9zcmMvbnNVbml4U2hlbGxTZXJ2aWNlLmguc2F2CTIwMDktMDktMTQgMTA6MDA6MjEuMDAw
MDAwMDAwICswMjAwCisrKyBtb3ppbGxhL2Jyb3dzZXIvY29tcG9uZW50cy9zaGVsbC9zcmMvbnNV
bml4U2hlbGxTZXJ2aWNlLmgJMjAwOS0wOS0xNCAxMDowNDoxNC4wMDAwMDAwMDAgKzAyMDAKQEAg
LTAsMCArMSw0NSBAQAorLyogLSotIE1vZGU6IEMrKzsgdGFiLXdpZHRoOiAyOyBpbmRlbnQtdGFi
cy1tb2RlOiBuaWw7IGMtYmFzaWMtb2Zmc2V0OiAyIC0qLSAqLworLyogKioqKiogQkVHSU4gTElD
RU5TRSBCTE9DSyAqKioqKgorICogVmVyc2lvbjogTVBMIDEuMS9HUEwgMi4wL0xHUEwgMi4xCisg
KgorICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgTW96aWxs
YSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uCisgKiAxLjEgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKKyAqIHRoZSBMaWNl
bnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIGh0dHA6Ly93
d3cubW96aWxsYS5vcmcvTVBMLworICoKKyAqIFNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsCisgKiBXSVRIT1VU
IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhl
IExpY2Vuc2UKKyAqIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHJpZ2h0cyBh
bmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlCisgKiBMaWNlbnNlLgorICoKKyAqIFRoZSBPcmlnaW5h
bCBDb2RlIGlzIFNoZWxsIFNlcnZpY2UuCisgKgorICogVGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9m
IHRoZSBPcmlnaW5hbCBDb2RlIGlzIG1vemlsbGEub3JnLgorICogUG9ydGlvbnMgY3JlYXRlZCBi
eSB0aGUgSW5pdGlhbCBEZXZlbG9wZXIgYXJlIENvcHlyaWdodCAoQykgMjAwNAorICogdGhlIElu
aXRpYWwgRGV2ZWxvcGVyLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIENvbnRyaWJ1dG9y
KHMpOgorICoKKyAqIEFsdGVybmF0aXZlbHksIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5
IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1zIG9mCisgKiBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIFZlcnNpb24gMiBvciBsYXRlciAodGhlICJHUEwiKSwgb3IKKyAqIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjEgb3IgbGF0ZXIgKHRo
ZSAiTEdQTCIpLAorICogaW4gd2hpY2ggY2FzZSB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgR1BMIG9y
IHRoZSBMR1BMIGFyZSBhcHBsaWNhYmxlIGluc3RlYWQKKyAqIG9mIHRob3NlIGFib3ZlLiBJZiB5
b3Ugd2lzaCB0byBhbGxvdyB1c2Ugb2YgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBvbmx5Cisg
KiB1bmRlciB0aGUgdGVybXMgb2YgZWl0aGVyIHRoZSBHUEwgb3IgdGhlIExHUEwsIGFuZCBub3Qg
dG8gYWxsb3cgb3RoZXJzIHRvCisgKiB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIE1QTCwgaW5kaWNhdGUgeW91cgorICogZGVjaXNpb24gYnkgZGVs
ZXRpbmcgdGhlIHByb3Zpc2lvbnMgYWJvdmUgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3Rp
Y2UKKyAqIGFuZCBvdGhlciBwcm92aXNpb25zIHJlcXVpcmVkIGJ5IHRoZSBHUEwgb3IgdGhlIExH
UEwuIElmIHlvdSBkbyBub3QgZGVsZXRlCisgKiB0aGUgcHJvdmlzaW9ucyBhYm92ZSwgYSByZWNp
cGllbnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyCisgKiB0aGUgdGVy
bXMgb2YgYW55IG9uZSBvZiB0aGUgTVBMLCB0aGUgR1BMIG9yIHRoZSBMR1BMLgorICoKKyAqICoq
KioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqICovCisKKyNpZm5kZWYgbnN1bml4c2hlbGxzZXJ2
aWNlX2hfX19fCisjZGVmaW5lIG5zdW5peHNoZWxsc2VydmljZV9oX19fXworCisjaW5jbHVkZSAi
bnNJU2hlbGxTZXJ2aWNlLmgiCisKK05TX01FVEhPRAorbnNVbml4U2hlbGxTZXJ2aWNlQ29uc3Ry
dWN0b3IobnNJU3VwcG9ydHMgKmFPdXRlciwgUkVGTlNJSUQgYUlJRCwgdm9pZCAqKmFSZXN1bHQp
OworCisjZW5kaWYgLy8gbnN1bml4c2hlbGxzZXJ2aWNlX2hfX19fCi0tLSBtb3ppbGxhL2Jyb3dz
ZXIvaW5zdGFsbGVyL3VuaXgvcGFja2FnZXMtc3RhdGljLnNhdgkyMDA5LTA5LTE0IDEwOjAwOjIx
LjAwMDAwMDAwMCArMDIwMAorKysgbW96aWxsYS9icm93c2VyL2luc3RhbGxlci91bml4L3BhY2th
Z2VzLXN0YXRpYwkyMDA5LTA5LTE0IDEwOjA0OjE0LjAwMDAwMDAwMCArMDIwMApAQCAtMjkxLDYg
KzI5MSw3IEBAIGJpbi9pY29ucy8qLnBuZwogYmluL0BQUkVGX0RJUkAvZmlyZWZveC5qcwogYmlu
L0BQUkVGX0RJUkAvZmlyZWZveC1icmFuZGluZy5qcwogYmluL0BQUkVGX0RJUkAvY2hhbm5lbC1w
cmVmcy5qcworYmluL0BQUkVGX0RJUkAva2RlLmpzCiBiaW4vZ3JlcHJlZnMvYWxsLmpzCiBiaW4v
Z3JlcHJlZnMvc2VjdXJpdHktcHJlZnMuanMKIGJpbi9ncmVwcmVmcy94cGluc3RhbGwuanMK
</data>

          </attachment>
      

    </bug>

</bugzilla>