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

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

    <bug>
          <bug_id>14361</bug_id>
          
          <creation_ts>2008-02-08 10:26:07 +0300</creation_ts>
          <short_desc>Патч для использования LCD фильтрации libfreetype-2.3.5</short_desc>
          <delta_ts>2008-09-15 19:41:31 +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>libcairo</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>14491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eugene Zagidullin">asphyx</reporter>
          <assigned_to name="at@altlinux.org">at</assigned_to>
          <cc>alexandre.prokoudine</cc>
    
    <cc>evg</cc>
    
    <cc>ktirf</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>shrek</cc>
    
    <cc>thresh</cc>
    
    <cc>vvk</cc>
    
    <cc>wrar</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>62855</commentid>
    <comment_count>0</comment_count>
    <who name="Eugene Zagidullin">asphyx</who>
    <bug_when>2008-02-08 10:26:07 +0300</bug_when>
    <thetext>Я обратил внимание, что libXft у вас патченый, умеющий использовать возможности 
freetype &gt;= 2.3.5 по субпиксельной фильтрации (взамен отвратительной, и 
совершенно некорректной с т.з. математики, фильтрации на уровне самого libXft). 
А вот Cairo -- почему-то нет.

Приводит это к тому, что в Gtk&apos;шных приложениях текст выглядит иначе и, на мой 
взгляд, значительно хуже, чем в Qt&apos;шных (и прочих, использующих libXft). 
Особенно, если отключить хинтинг (рендеринг &quot;под Mac&quot;). Ведь Gtk больше не 
использует libXft вовсе, Cairo выступает ему заменой (cairo содержит много кода 
из libXft). Только не надо говорить, что патч от David Turner не накладывается 
на свежие версии cairo. Приаттачен тёрнеровский патч, подправленный для 
совместимости с cairo 1.4.12. Найден был в репозитории Arch&apos;а, но ссылку сейчас 
уже не найду... Успешно использую его на домашней машине (Gentoo).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62856</commentid>
    <comment_count>1</comment_count>
      <attachid>2426</attachid>
    <who name="Eugene Zagidullin">asphyx</who>
    <bug_when>2008-02-08 10:28:52 +0300</bug_when>
    <thetext>Created attachment 2426
Патч, задействующий FT_Library_SetLcdFilter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62939</commentid>
    <comment_count>2</comment_count>
    <who name="Motsyo Gennadi">drool</who>
    <bug_when>2008-02-09 20:07:10 +0300</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=2426) [edit]
&gt; Патч, задействующий FT_Library_SetLcdFilter
&gt; 

Valery V. Inozemtsev пишет:
&gt; &gt; Hi
&gt; &gt;
&gt; &gt; еще раз возвращаясь к межточечному сглаживанию шрифтов
&gt; &gt; по адресу ftp://ftp.altlinux.ru/pub/people/shrek/Xorg-7.3 доступны
&gt; &gt; патченные сборки libXft и libcairo, смотрим, высказываем пожелания.

 	На ЭЛТ-мониторе полегчало заметно. Либы пересобрал под бранч. Спасибо.
 Я за то, чтоб их туда вкинуть.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62972</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-02-10 15:52:34 +0300</bug_when>
    <thetext>Евгений, спасибо; действительно, так симпатичней.  Лёш, примешь? (патч :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62974</commentid>
    <comment_count>4</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-02-10 16:42:56 +0300</bug_when>
    <thetext>если этот патчь будет в cairo, я верну патченый Xft</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63013</commentid>
    <comment_count>5</comment_count>
    <who name="algor">algor</who>
    <bug_when>2008-02-11 15:08:25 +0300</bug_when>
    <thetext>ну воткните уже эти патчи куда надо. к глазам патчи не приложишь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63018</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-02-11 15:56:22 +0300</bug_when>
    <thetext>2 ldv: просьба дать NMU/доступ на этот пакет shrek@, улучшение действительно
стоящее.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63029</commentid>
    <comment_count>7</comment_count>
    <who name="Motsyo Gennadi">drool</who>
    <bug_when>2008-02-11 18:25:17 +0300</bug_when>
    <thetext>(In reply to comment #4)
&gt; если этот патчь будет в cairo, я верну патченый Xft

2 shrek@ - зальешь сборку M40 в /i/u/4.0 ? Или я могу, но не знаю пройдет ли, 
если хозяин другой...

libXft-2.1.12-alt3.1
libcairo-1.4.14-alt1.1
пересобранные в бранче (_не_ бинарники с сизифа) - результатом доволен.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63045</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-02-12 03:57:25 +0300</bug_when>
    <thetext>(In reply to comment #6)
&gt; 2 ldv: просьба дать NMU/доступ на этот пакет shrek@, улучшение действительно
&gt; стоящее.

Я всё ещё надеюсь, что мантейнер пакета (Alexey Tourbin) что-нибудь ответит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64011</commentid>
    <comment_count>9</comment_count>
    <who name="at@altlinux.org">at</who>
    <bug_when>2008-02-18 18:20:42 +0300</bug_when>
    <thetext>Нужна точная информация откуда взялся патч и кто его автор.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64012</commentid>
    <comment_count>10</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-02-18 18:23:56 +0300</bug_when>
    <thetext>http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src/cairo-1.4.14-3.src.rpm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64014</commentid>
    <comment_count>11</comment_count>
    <who name="Eugene Zagidullin">asphyx</who>
    <bug_when>2008-02-18 18:41:11 +0300</bug_when>
    <thetext>(In reply to comment #9)
&gt; Нужна точная информация откуда взялся патч и кто его автор.

Я брал отсюда:

http://aur.archlinux.org/
packages.php?do_Details=1&amp;ID=14080&amp;O=0&amp;L=0&amp;C=0&amp;K=xeffects&amp;SB=n&amp;SO=a&amp;PP=25&amp;do_MyPackages=0&amp;do_Orphans=0&amp;SeB=nd

Там, в AUR, есть ещё один, абсолютно идентичный (отличия в отступах и кол-ве 
пустых строк, я проверял). И оба они представляют собой патч от David Turner, 
подправленный слегка для совместимости с 1.4.x. Автор исправления, видимо, тот 
же человек, что долгое время поддерживал xeffects overlay в gentoo. Отсюда и 
название.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64019</commentid>
    <comment_count>12</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-02-18 19:06:49 +0300</bug_when>
    <thetext>вот отсюда все и началось
http://david.freetype.org/lcd/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64414</commentid>
    <comment_count>13</comment_count>
    <who name="at@altlinux.org">at</who>
    <bug_when>2008-02-22 19:51:54 +0300</bug_when>
    <thetext>Я скачал
http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src/cairo-1.4.14-6.src.rpm
и обнаружил следующее:
1) патч  cairo-1.4.10-lcd-filter-1.patch  не прикладывается;
2) в cairo.spec написано:
# FIXME: This patch needs to be redone.
Patch7:         cairo-1.4.10-lcd-filter-1.patch
...
# %patch7 -p1

То есть в SuSE сейчас этого патча фактически нету.
Какие дальше будут предложения?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64415</commentid>
    <comment_count>14</comment_count>
    <who name="at@altlinux.org">at</who>
    <bug_when>2008-02-22 20:03:31 +0300</bug_when>
    <thetext>Короче, я боюсь взять на себя прикладывание какого-то относительно левого патча,
код которого я плохо понимаю.  Встречное предложение: договоритесь и сделайте
коммит с этим патчем поверх моего 1.4.14-alt1-4-ga443289.  Тогда атрибуция этой
контрибуции целиком ляжет на автора коммита, при условии что в коммите будет
содержаться информация о первоначальном происхождении и авторстве патча.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64527</commentid>
    <comment_count>15</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-02-24 11:18:19 +0300</bug_when>
    <thetext>Встречное предложение: ты возвращаешь пакет мне и спишь спокойно</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67882</commentid>
    <comment_count>16</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-04-09 21:54:21 +0400</bug_when>
    <thetext>*** Bug 15279 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67901</commentid>
    <comment_count>17</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2008-04-10 08:19:48 +0400</bug_when>
    <thetext>Ну и?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67981</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-04-10 19:43:52 +0400</bug_when>
    <thetext>Н-да, на 4.0 при мониторе попроще действительно глаза ломаются :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68294</commentid>
    <comment_count>19</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-04-14 17:46:20 +0400</bug_when>
    <thetext>(In reply to comment #17)
&gt; Ну и?

ждемс. как только at@ вернет мне cairo, все будет</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68303</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-04-14 18:38:02 +0400</bug_when>
    <thetext>2 at: не блокируй пакет, выпиши уже ноту на shrek :(
2 ldv: или ты?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68396</commentid>
    <comment_count>21</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-04-16 02:19:54 +0400</bug_when>
    <thetext>(In reply to comment #20)
&gt; 2 at: не блокируй пакет, выпиши уже ноту на shrek :(
&gt; 2 ldv: или ты?

2 mike: я постараюсь устроить так, чтобы они договорились, даже если у меня это
займёт больше времени, чем собрать всё самому.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68461</commentid>
    <comment_count>22</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-04-16 18:42:56 +0400</bug_when>
    <thetext>не так страшен чёрт...
libcairo-1.6.4-alt1, libXft-2.1.12-alt4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68724</commentid>
    <comment_count>23</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-04-21 15:02:27 +0400</bug_when>
    <thetext>Только не отрывайте его больше никуда ;-)  Второй день тащусь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68746</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-04-21 20:53:44 +0400</bug_when>
    <thetext>(In reply to comment #23)
&gt; Только не отрывайте его больше никуда ;-)  Второй день тащусь.
Да, буковки дома теперь знатные ;-)  Ещё бы на M40 сбэкпортить... деткам в
кривые кривые не смотреть... или там всё сложно?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77811</commentid>
    <comment_count>25</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2008-09-15 19:41:30 +0400</bug_when>
    <thetext>*** Bug 17132 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2426</attachid>
            <date>2008-02-08 10:28:52 +0300</date>
            <delta_ts>2008-02-08 10:28:52 +0300</delta_ts>
            <desc>Патч, задействующий FT_Library_SetLcdFilter</desc>
            <filename>cairo-1.4.12-newspr.patch</filename>
            <type>text/plain</type>
            <size>22442</size>
            <attacher name="Eugene Zagidullin">asphyx</attacher>
            
              <data encoding="base64">ZGlmZiAtdU5yIGNhaXJvLTEuNC4xMi5vcmlnL3NyYy9jYWlyby1mdC1mb250LmMgY2Fpcm8tMS40
LjEyL3NyYy9jYWlyby1mdC1mb250LmMKLS0tIGNhaXJvLTEuNC4xMi5vcmlnL3NyYy9jYWlyby1m
dC1mb250LmMJMjAwNy0xMS0yNyAwNjoyMDoxMi4wMDAwMDAwMDAgKzAwMDAKKysrIGNhaXJvLTEu
NC4xMi9zcmMvY2Fpcm8tZnQtZm9udC5jCTIwMDctMTEtMzAgMTM6MTU6NDEuMDAwMDAwMDAwICsw
MDAwCkBAIC01NSw2ICs1NSw4IEBACiAjaW5jbHVkZSBGVF9TWU5USEVTSVNfSAogI2VuZGlmCiAK
KyNpbmNsdWRlIEZUX0xDRF9GSUxURVJfSAorCiAjZGVmaW5lIERPVUJMRV9UT18yNl82KGQpICgo
RlRfRjI2RG90NikoKGQpICogNjQuMCkpCiAjZGVmaW5lIERPVUJMRV9GUk9NXzI2XzYodCkgKChk
b3VibGUpKHQpIC8gNjQuMCkKICNkZWZpbmUgRE9VQkxFX1RPXzE2XzE2KGQpICgoRlRfRml4ZWQp
KChkKSAqIDY1NTM2LjApKQpAQCAtNzAyLDIzICs3MDQsMzAwIEBACiAgICAgcmV0dXJuIENBSVJP
X1NUQVRVU19TVUNDRVNTOwogfQogCi0vKiBFbXBpcmljYWxseS1kZXJpdmVkIHN1YnBpeGVsIGZp
bHRlcmluZyB2YWx1ZXMgdGhhbmtzIHRvIEtlaXRoCi0gKiBQYWNrYXJkIGFuZCBsaWJYZnQuICov
Ci1zdGF0aWMgY29uc3QgaW50ICAgIGZpbHRlcnNbM11bM10gPSB7Ci0gICAgLyogcmVkICovCi0j
aWYgMAotICAgIHsgICAgNjU1MzgqNC83LDY1NTM4KjIvNyw2NTUzOCoxLzcgfSwKLSAgICAvKiBn
cmVlbiAqLwotICAgIHsgICAgNjU1MzYqMS80LCA2NTUzNioyLzQsIDY1NTM3KjEvNCB9LAotICAg
IC8qIGJsdWUgKi8KLSAgICB7ICAgIDY1NTM4KjEvNyw2NTUzOCoyLzcsNjU1MzgqNC83IH0sCisv
KiB3ZSBzb21ldGltZXMgbmVlZCB0byBjb252ZXJ0IHRoZSBnbHlwaCBiaXRtYXAgaW4gYSBGVF9H
bHlwaFNsb3QKKyAqIGludG8gYSBkaWZmZXJlbnQgZm9ybWF0LiBGb3IgZXhhbXBsZSwgd2Ugd2Fu
dCB0byBjb252ZXJ0IGEKKyAqIEZUX1BJWEVMX01PREVfTENEIG9yIEZUX1BJWEVMX01PREVfTENE
X1YgYml0bWFwIGludG8gYSAzMi1iaXQKKyAqIEFSR0Igb3IgQUJHUiBiaXRtYXAuCisgKgorICog
dGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHRhcmdldCBkZXNjcmlwdG9yIGZvciB0aGlzIG9wZXJh
dGlvbi4KKyAqCisgKiBpbnB1dCA6OiB0YXJnZXQgYml0bWFwIGRlc2NyaXB0b3IuIFRoZSBmdW5j
dGlvbiB3aWxsIHNldCBpdHMKKyAqICAgICAgICAgICd3aWR0aCcsICdyb3dzJyBhbmQgJ3BpdGNo
JyBmaWVsZHMsIGFuZCBvbmx5IHRoZXNlCisgKgorICogc2xvdCAgOjogdGhlIGdseXBoIHNsb3Qg
Y29udGFpbmluZyB0aGUgc291cmNlIGJpdG1hcC4gdGhpcworICogICAgICAgICAgZnVuY3Rpb24g
YXNzdW1lcyB0aGF0IHNsb3QtPmZvcm1hdCA9PSBGVF9HTFlQSF9GT1JNQVRfQklUTUFQCisgKgor
ICogbW9kZSAgOjogdGhlIHJlcXVlc3RlZCBmaW5hbCByZW5kZXJpbmcgbW9kZS4gc3VwcG9ydGVk
IHZhbHVlcyBhcmUKKyAqICAgICAgICAgIE1PTk8sIE5PUk1BTCAoaS5lLiBncmF5KSwgTENEIGFu
ZCBMQ0RfVgorICoKKyAqIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzaXplIGluIGJ5dGVzIG9m
IHRoZSBjb3JyZXNwb25kaW5nIGJ1ZmZlciwKKyAqIGl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBh
bGxvY2F0ZSB0aGUgY29ycmVzcG9uZGluZyBtZW1vcnkgYmxvY2sKKyAqIGJlZm9yZSBjYWxsaW5n
IF9maWxsX3hyZW5kZXJfYml0bWFwCisgKgorICogaXQgYWxzbyByZXR1cm5zIC0xIGluIGNhc2Ug
b2YgZXJyb3IgKGUuZy4gaW5jb21wYXRpYmxlIGFyZ3VtZW50cywKKyAqIGxpa2UgdHJ5aW5nIHRv
IGNvbnZlcnQgYSBncmF5IGJpdG1hcCBpbnRvIGEgbW9ub2Nocm9tZSBvbmUpCisgKi8KK3N0YXRp
YyBpbnQKK19jb21wdXRlX3hyZW5kZXJfYml0bWFwX3NpemUoIEZUX0JpdG1hcCogICAgICB0YXJn
ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVF9HbHlwaFNsb3QgICAgc2xvdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZUX1JlbmRlcl9Nb2RlICBtb2RlICkKK3sK
KyAgICBGVF9CaXRtYXAqICBmdGJpdDsKKyAgICBpbnQgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBw
aXRjaDsKKworICAgIGlmICggc2xvdC0+Zm9ybWF0ICE9IEZUX0dMWVBIX0ZPUk1BVF9CSVRNQVAg
KQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICAvLyBjb21wdXRlIHRoZSBzaXplIG9mIHRoZSBm
aW5hbCBiaXRtYXAKKyAgICBmdGJpdCAgPSAmc2xvdC0+Yml0bWFwOworCisgICAgd2lkdGggID0g
ZnRiaXQtPndpZHRoOworICAgIGhlaWdodCA9IGZ0Yml0LT5yb3dzOworICAgIHBpdGNoICA9ICh3
aWR0aCszKSAmIH4zOworCisgICAgc3dpdGNoICggZnRiaXQtPnBpeGVsX21vZGUgKQorICAgIHsK
KyAgICBjYXNlIEZUX1BJWEVMX01PREVfTU9OTzoKKyAgICAgICAgaWYgKCBtb2RlID09IEZUX1JF
TkRFUl9NT0RFX01PTk8gKQorICAgICAgICB7CisgICAgICAgICAgcGl0Y2ggPSAoKCh3aWR0aCsz
MSkgJiB+MzEpID4+IDMpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIC8q
IGZhbGwtdGhyb3VnaCAqLworCisgICAgY2FzZSBGVF9QSVhFTF9NT0RFX0dSQVk6CisgICAgICAg
IGlmICggbW9kZSA9PSBGVF9SRU5ERVJfTU9ERV9MQ0QgICB8fAorICAgICAgICAgICAgbW9kZSA9
PSBGVF9SRU5ERVJfTU9ERV9MQ0RfViApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIGVhY2gg
cGl4ZWwgaXMgcmVwbGljYXRlZCBpbnRvIGEgMzItYml0IEFSR0IgdmFsdWUgKi8KKyAgICAgICAg
ICAgIHBpdGNoID0gd2lkdGgqNDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNh
c2UgRlRfUElYRUxfTU9ERV9MQ0Q6CisgICAgICAgIGlmICggbW9kZSAhPSBGVF9SRU5ERVJfTU9E
RV9MQ0QgKQorICAgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAvKiBob3J6IHBpeGVsIHRy
aXBsZXRzIGFyZSBwYWNrZWQgaW50byAzMi1iaXQgQVJHQiB2YWx1ZXMgKi8KKyAgICAgIHdpZHRo
ICAgLz0gMzsKKyAgICAgIHBpdGNoICAgID0gd2lkdGgqNDsKKyAgICAgIGJyZWFrOworCisgICAg
Y2FzZSBGVF9QSVhFTF9NT0RFX0xDRF9WOgorICAgICAgICBpZiAoIG1vZGUgIT0gRlRfUkVOREVS
X01PREVfTENEX1YgKQorICAgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAgIC8qIHZlcnQg
cGl4ZWwgdHJpcGxldHMgYXJlIHBhY2tlZCBpbnRvIDMyLWJpdCBBUkdCIHZhbHVlcyAqLworICAg
ICAgICBoZWlnaHQgIC89IDM7CisgICAgICAgIHBpdGNoICAgID0gd2lkdGgqNDsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBkZWZhdWx0OiAgLyogdW5zdXBwb3J0ZWQgc291cmNlIGZvcm1hdCAqLwor
ICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgdGFyZ2V0LT53aWR0aCAgPSB3aWR0aDsK
KyAgICB0YXJnZXQtPnJvd3MgICA9IGhlaWdodDsKKyAgICB0YXJnZXQtPnBpdGNoICA9IHBpdGNo
OworICAgIHRhcmdldC0+YnVmZmVyID0gTlVMTDsKKworICAgIHJldHVybiBwaXRjaCAqIGhlaWdo
dDsKK30KKworLyogdGhpcyBmdW5jdGlvbnMgY29udmVydHMgdGhlIGdseXBoIGJpdG1hcCBmb3Vu
ZCBpbiBhIEZUX0dseXBoU2xvdAorICogaW50byBhIGRpZmZlcmVudCBmb3JtYXQgKHNlZSBfY29t
cHV0ZV94cmVuZGVyX2JpdG1hcF9zaXplKQorICoKKyAqIHlvdSBzaG91bGQgY2FsbCB0aGlzIGZ1
bmN0aW9uIGFmdGVyIF9jb21wdXRlX3hyZW5kZXJfYml0bWFwX3NpemUKKyAqCisgKiB0YXJnZXQg
OjogdGFyZ2V0IGJpdG1hcCBkZXNjcmlwdG9yLiBOb3RlIHRoYXQgaXRzICdidWZmZXInIHBvaW50
ZXIKKyAqICAgICAgICAgICBtdXN0IHBvaW50IHRvIG1lbW9yeSBhbGxvY2F0ZWQgYnkgdGhlIGNh
bGxlcgorICoKKyAqIHNsb3QgICA6OiB0aGUgZ2x5cGggc2xvdCBjb250YWluaW5nIHRoZSBzb3Vy
Y2UgYml0bWFwCisgKgorICogbW9kZSAgIDo6IHRoZSByZXF1ZXN0ZWQgZmluYWwgcmVuZGVyaW5n
IG1vZGUKKyAqCisgKiBiZ3IgICAgOjogYm9vbGVhbiwgc2V0IGlmIEJHUiBvciBWQkdSIHBpeGVs
IG9yZGVyaW5nIGlzIG5lZWRlZAorICovCitzdGF0aWMgdm9pZAorX2ZpbGxfeHJlbmRlcl9iaXRt
YXAoIEZUX0JpdG1hcCogICAgICB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgRlRfR2x5
cGhTbG90ICAgIHNsb3QsCisgICAgICAgICAgICAgICAgICAgICAgRlRfUmVuZGVyX01vZGUgIG1v
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgIGJnciApCit7CisgICAg
RlRfQml0bWFwKiAgIGZ0Yml0ID0gJnNsb3QtPmJpdG1hcDsKKyAgICB1bnNpZ25lZCBjaGFyKiAg
IHNyY0xpbmUgICA9IGZ0Yml0LT5idWZmZXI7CisgICAgdW5zaWduZWQgY2hhciogICBkc3RMaW5l
ICAgPSB0YXJnZXQtPmJ1ZmZlcjsKKyAgICBpbnQgICAgICAgICAgICAgIHNyY19waXRjaCA9IGZ0
Yml0LT5waXRjaDsKKyAgICBpbnQgICAgICAgICAgICAgIHdpZHRoICAgICA9IHRhcmdldC0+d2lk
dGg7CisgICAgaW50ICAgICAgICAgICAgICBoZWlnaHQgICAgPSB0YXJnZXQtPnJvd3M7CisgICAg
aW50ICAgICAgICAgICAgICBwaXRjaCAgICAgPSB0YXJnZXQtPnBpdGNoOworICAgIGludCAgICAg
ICAgICAgICAgc3VicGl4ZWw7CisgICAgaW50ICAgICAgICAgICAgICBoOworCisgICAgc3VicGl4
ZWwgPSAoIG1vZGUgPT0gRlRfUkVOREVSX01PREVfTENEIHx8CisgICAgICAgIG1vZGUgPT0gRlRf
UkVOREVSX01PREVfTENEX1YgKTsKKworICAgIGlmICggc3JjX3BpdGNoIDwgMCApCisgICAgICBz
cmNMaW5lIC09IHNyY19waXRjaCooZnRiaXQtPnJvd3MtMSk7CisKKyAgICB0YXJnZXQtPnBpeGVs
X21vZGUgPSBmdGJpdC0+cGl4ZWxfbW9kZTsKKworICAgIHN3aXRjaCAoIGZ0Yml0LT5waXhlbF9t
b2RlICkKKyAgICB7CisgICAgY2FzZSBGVF9QSVhFTF9NT0RFX01PTk86CisgICAgICAgIGlmICgg
c3VicGl4ZWwgKSAgLyogY29udmVydCBtb25vIHRvIEFSR0IzMiB2YWx1ZXMgKi8KKyAgICAgICAg
eworICAgICAgICAgICAgZm9yICggaCA9IGhlaWdodDsgaCA+IDA7IGgtLSwgc3JjTGluZSArPSBz
cmNfcGl0Y2gsIGRzdExpbmUgKz0gcGl0Y2ggKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGludCAgeDsKKworICAgICAgICAgICAgICAgIGZvciAoIHggPSAwOyB4IDwgd2lkdGg7IHgr
KyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoIHNyY0xpbmVb
KHggPj4gMyldICYgKDB4ODAgPj4gKHggJiA3KSkgKQorICAgICAgICAgICAgICAgICAgICAgICAg
KCh1bnNpZ25lZCBpbnQqKWRzdExpbmUpW3hdID0gMHhmZmZmZmZmZlU7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGFyZ2V0LT5waXhlbF9tb2RlID0gRlRf
UElYRUxfTU9ERV9MQ0Q7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIG1vZGUgPT0gRlRf
UkVOREVSX01PREVfTk9STUFMICkgIC8qIGNvbnZlcnQgbW9ubyB0byA4LWJpdCBncmF5ICovCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoIGggPSBoZWlnaHQ7IGggPiAwOyBoLS0sIHNyY0xp
bmUgKz0gc3JjX3BpdGNoLCBkc3RMaW5lICs9IHBpdGNoICkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBpbnQgIHg7CisKKyAgICAgICAgICAgICAgICBmb3IgKCB4ID0gMDsgeCA8IHdp
ZHRoOyB4KysgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBz
cmNMaW5lWyh4ID4+IDMpXSAmICgweDgwID4+ICh4ICYgNykpICkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRzdExpbmVbeF0gPSAweGZmOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHRhcmdldC0+cGl4ZWxfbW9kZSA9IEZUX1BJWEVMX01PREVfR1JBWTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlICAvKiBjb3B5IG1vbm8gdG8gbW9ubyAqLworICAgICAg
ICB7CisgICAgICAgICAgICBpbnQgIGJ5dGVzID0gKHdpZHRoKzcpID4+IDM7CisKKyAgICAgICAg
ICAgIGZvciAoIGggPSBoZWlnaHQ7IGggPiAwOyBoLS0sIHNyY0xpbmUgKz0gc3JjX3BpdGNoLCBk
c3RMaW5lICs9IHBpdGNoICkKKyAgICAgICAgICAgICAgICBtZW1jcHkoIGRzdExpbmUsIHNyY0xp
bmUsIGJ5dGVzICk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEZUX1BJ
WEVMX01PREVfR1JBWToKKyAgICAgICAgaWYgKCBzdWJwaXhlbCApICAvKiBjb252ZXJ0IGdyYXkg
dG8gQVJHQjMyIHZhbHVlcyAqLworICAgICAgICB7CisgICAgICAgICAgICBmb3IgKCBoID0gaGVp
Z2h0OyBoID4gMDsgaC0tLCBzcmNMaW5lICs9IHNyY19waXRjaCwgZHN0TGluZSArPSBwaXRjaCAp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgeDsKKyAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQqICBkc3QgPSAodW5zaWduZWQgaW50Kilkc3RMaW5lOwor
CisgICAgICAgICAgICAgICAgZm9yICggeCA9IDA7IHggPCB3aWR0aDsgeCsrICkKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAgcGl4ID0gc3JjTGlu
ZVt4XTsKKworICAgICAgICAgICAgICAgICAgICBwaXggfD0gKHBpeCA8PCA4KTsKKyAgICAgICAg
ICAgICAgICAgICAgcGl4IHw9IChwaXggPDwgMTYpOworCisgICAgICAgICAgICAgICAgICAgIGRz
dFt4XSA9IHBpeDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICB0YXJnZXQtPnBpeGVsX21vZGUgPSBGVF9QSVhFTF9NT0RFX0xDRDsKKyAgICAgICAgfQorICAg
ICAgICBlbHNlICAvKiBjb3B5IGdyYXkgaW50byBncmF5ICovCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGZvciAoIGggPSBoZWlnaHQ7IGggPiAwOyBoLS0sIHNyY0xpbmUgKz0gc3JjX3BpdGNoLCBk
c3RMaW5lICs9IHBpdGNoICkKKyAgICAgICAgICAgICAgICBtZW1jcHkoIGRzdExpbmUsIHNyY0xp
bmUsIHdpZHRoICk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEZUX1BJ
WEVMX01PREVfTENEOgorICAgICAgICBpZiAoICFiZ3IgKQorICAgICAgICB7CisgICAgICAgICAg
ICAvKiBjb252ZXJ0IGhvcml6b250YWwgUkdCIGludG8gQVJHQjMyICovCisgICAgICAgICAgICBm
b3IgKCBoID0gaGVpZ2h0OyBoID4gMDsgaC0tLCBzcmNMaW5lICs9IHNyY19waXRjaCwgZHN0TGlu
ZSArPSBwaXRjaCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50ICAgICAgICAg
ICAgeDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyKiBzcmMgPSBzcmNMaW5lOworICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGludCogIGRzdCA9ICh1bnNpZ25lZCBpbnQqKWRzdExpbmU7
CisKKyAgICAgICAgICAgICAgICBmb3IgKCB4ID0gMDsgeCA8IHdpZHRoOyB4KyssIHNyYyArPSAz
ICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAg
cGl4OworCisgICAgICAgICAgICAgICAgICAgIHBpeCA9ICgodW5zaWduZWQgaW50KXNyY1swXSA8
PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGludClzcmNbMV0g
PDwgIDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpc3JjWzJd
ICAgICAgKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgaW50KXNyY1sx
XSA8PCAyNCkgOworCisgICAgICAgICAgICAgICAgICAgIGRzdFt4XSA9IHBpeDsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg
ICB7CisgICAgICAgICAgLyogY29udmVydCBob3Jpem9udGFsIEJHUiBpbnRvIEFSR0IzMiAqLwor
ICAgICAgICAgIGZvciAoIGggPSBoZWlnaHQ7IGggPiAwOyBoLS0sIHNyY0xpbmUgKz0gc3JjX3Bp
dGNoLCBkc3RMaW5lICs9IHBpdGNoICkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIGludCAg
ICAgICAgICAgIHg7CisgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIHNyYyA9IHNyY0xpbmU7
CisgICAgICAgICAgICAgIHVuc2lnbmVkIGludCogIGRzdCA9ICh1bnNpZ25lZCBpbnQqKWRzdExp
bmU7CisKKyAgICAgICAgICAgICAgZm9yICggeCA9IDA7IHggPCB3aWR0aDsgeCsrLCBzcmMgKz0g
MyApCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAgcGl4
OworCisgICAgICAgICAgICAgICAgICBwaXggPSAoKHVuc2lnbmVkIGludClzcmNbMl0gPDwgMTYp
IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgaW50KXNyY1sxXSA8PCAgOCkg
fAorICAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpc3JjWzBdICAgICAgKSB8
CisgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGludClzcmNbMV0gPDwgMjQpIDsK
KworICAgICAgICAgICAgICAgICAgZHN0W3hdID0gcGl4OworICAgICAgICAgICAgICB9CisgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDogIC8qIEZU
X1BJWEVMX01PREVfTENEX1YgKi8KKyAgICAgICAgLyogY29udmVydCB2ZXJ0aWNhbCBSR0IgaW50
byBBUkdCMzIgKi8KKyAgICAgICAgaWYgKCAhYmdyICkKKyAgICAgICAgeworICAgICAgICAgICAg
Zm9yICggaCA9IGhlaWdodDsgaCA+IDA7IGgtLSwgc3JjTGluZSArPSAzKnNyY19waXRjaCwgZHN0
TGluZSArPSBwaXRjaCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50ICAgICAg
ICAgICAgeDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyKiBzcmMgPSBzcmNMaW5lOwor
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCogIGRzdCA9ICh1bnNpZ25lZCBpbnQqKWRzdExp
bmU7CisKKyAgICAgICAgICAgICAgICBmb3IgKCB4ID0gMDsgeCA8IHdpZHRoOyB4KyssIHNyYyAr
PSAxICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCAgcGl4OworI2lmIDEKKyAgICAgICAgICAgICAgICAgICAgcGl4ID0gKCh1bnNpZ25lZCBpbnQp
c3JjWzBdICAgICAgICAgICA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVu
c2lnbmVkIGludClzcmNbc3JjX3BpdGNoXSAgIDw8ICA4KSB8CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICgodW5zaWduZWQgaW50KXNyY1tzcmNfcGl0Y2gqMl0gICAgICApIHwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHhGRjAwMDAwMCA7CisjZWxzZQorICAgICAgICAgICAgICAgICAg
ICBwaXggPSAoKHVuc2lnbmVkIGludClzcmNbMF0gICAgICAgICAgIDw8IDE2KSB8CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgaW50KXNyY1tzcmNfcGl0Y2hdICAgPDwgIDgp
IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpc3JjW3NyY19waXRj
aCoyXSAgICAgICkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGludClz
cmNbc3JjX3BpdGNoXSAgIDw8IDI0KSA7CiAjZW5kaWYKLSAgICB7ICAgIDY1NTM4KjkvMTMsNjU1
MzgqMy8xMyw2NTUzOCoxLzEzIH0sCi0gICAgLyogZ3JlZW4gKi8KLSAgICB7ICAgIDY1NTM4KjEv
NiwgNjU1MzgqNC82LCA2NTUzOCoxLzYgfSwKLSAgICAvKiBibHVlICovCi0gICAgeyAgICA2NTUz
OCoxLzEzLDY1NTM4KjMvMTMsNjU1MzgqOS8xMyB9LAotfTsKKyAgICAgICAgICAgICAgICAgICAg
ZHN0W3hdID0gcGl4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoIGggPSBoZWlnaHQ7
IGggPiAwOyBoLS0sIHNyY0xpbmUgKz0gMypzcmNfcGl0Y2gsIGRzdExpbmUgKz0gcGl0Y2ggKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgIHg7CisgICAgICAg
ICAgICAgICAgdW5zaWduZWQgY2hhciogc3JjID0gc3JjTGluZTsKKyAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQqICBkc3QgPSAodW5zaWduZWQgaW50Kilkc3RMaW5lOworCisgICAgICAgICAg
ICAgICAgZm9yICggeCA9IDA7IHggPCB3aWR0aDsgeCsrLCBzcmMgKz0gMSApCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgIHBpeDsKKworICAgICAg
ICAgICAgICAgICAgICBwaXggPSAoKHVuc2lnbmVkIGludClzcmNbc3JjX3BpdGNoKjJdIDw8IDE2
KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGludClzcmNbc3JjX3BpdGNo
XSAgIDw8ICA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGludClzcmNb
MF0gICAgICAgICAgICAgICAgKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVk
IGludClzcmNbc3JjX3BpdGNoXSAgIDw8IDI0KSA7CisKKyAgICAgICAgICAgICAgICAgICAgZHN0
W3hdID0gcGl4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KK30KKwogCiAvKiBGaWxscyBpbiB2YWwtPmltYWdlIHdpdGggYW4gaW1hZ2Ugc3VyZmFj
ZSBjcmVhdGVkIGZyb20gQGJpdG1hcAogICovCkBAIC03MzEsMTggKzEwMTAsMjEgQEAKICAgICBp
bnQgd2lkdGgsIGhlaWdodCwgc3RyaWRlOwogICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7CiAgICAg
aW50IGZvcm1hdCA9IENBSVJPX0ZPUk1BVF9BODsKLSAgICBjYWlyb19ib29sX3Qgc3VicGl4ZWwg
PSBGQUxTRTsKKyAgICBjYWlyb19pbWFnZV9zdXJmYWNlX3QgICppbWFnZTsKIAogICAgIHdpZHRo
ID0gYml0bWFwLT53aWR0aDsKICAgICBoZWlnaHQgPSBiaXRtYXAtPnJvd3M7Ci0KLSAgICBpZiAo
d2lkdGggPT0gMCB8fCBoZWlnaHQgPT0gMCkgewotCSpzdXJmYWNlID0gKGNhaXJvX2ltYWdlX3N1
cmZhY2VfdCAqKQotCSAgICBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YSAoTlVM
TCwgZm9ybWF0LCAwLCAwLCAwKTsKLQlyZXR1cm4gKCpzdXJmYWNlKS0+YmFzZS5zdGF0dXM7Cisg
ICAgCisgICAgaWYgKHdpZHRoID09IDAgfHwgaGVpZ2h0ID09IDApCisgICAgeworIAkgICAgKnN1
cmZhY2UgPSAoY2Fpcm9faW1hZ2Vfc3VyZmFjZV90ICopCisgCSAgICAgICAgY2Fpcm9faW1hZ2Vf
c3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEgKE5VTEwsIGZvcm1hdCwgMCwgMCwgMCk7CisgCSAgICBy
ZXR1cm4gKCpzdXJmYWNlKS0+YmFzZS5zdGF0dXM7CiAgICAgfQogCi0gICAgc3dpdGNoIChiaXRt
YXAtPnBpeGVsX21vZGUpIHsKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYml0bWFwLT5waXhlbF9t
b2RlKQorICAgICAgICB7CiAgICAgY2FzZSBGVF9QSVhFTF9NT0RFX01PTk86CiAJc3RyaWRlID0g
KCgod2lkdGggKyAzMSkgJiB+MzEpID4+IDMpOwogCWlmIChvd25fYnVmZmVyKSB7CkBAIC03NzIs
NyArMTA1NCw2IEBACiAJCX0KIAkgICAgfQogCX0KLQogI2lmbmRlZiBXT1JEU19CSUdFTkRJQU4K
IAl7CiAJICAgIHVuc2lnbmVkIGNoYXIgICAqZCA9IGRhdGE7CkBAIC03ODQsMTcgKzEwNjUsMTUg
QEAKIAkgICAgfQogCX0KICNlbmRpZgorCiAJZm9ybWF0ID0gQ0FJUk9fRk9STUFUX0ExOwogCWJy
ZWFrOwogCiAgICAgY2FzZSBGVF9QSVhFTF9NT0RFX0xDRDoKICAgICBjYXNlIEZUX1BJWEVMX01P
REVfTENEX1Y6CiAgICAgY2FzZSBGVF9QSVhFTF9NT0RFX0dSQVk6Ci0Jc3dpdGNoIChmb250X29w
dGlvbnMtPmFudGlhbGlhcykgewotCWNhc2UgQ0FJUk9fQU5USUFMSUFTX0RFRkFVTFQ6Ci0JY2Fz
ZSBDQUlST19BTlRJQUxJQVNfR1JBWToKLQljYXNlIENBSVJPX0FOVElBTElBU19OT05FOgotCWRl
ZmF1bHQ6CisgICAgICAgICAgICBpZiAoZm9udF9vcHRpb25zLT5hbnRpYWxpYXMgIT0gQ0FJUk9f
QU5USUFMSUFTX1NVQlBJWEVMKQorICAgICAgICAgICAgewogCSAgICBzdHJpZGUgPSBiaXRtYXAt
PnBpdGNoOwogCSAgICBpZiAob3duX2J1ZmZlcikgewogCQlkYXRhID0gYml0bWFwLT5idWZmZXI7
CkBAIC04MDcsMTA3ICsxMDg2LDE5IEBACiAJCW1lbWNweSAoZGF0YSwgYml0bWFwLT5idWZmZXIs
IHN0cmlkZSAqIGhlaWdodCk7CiAJICAgIH0KIAkgICAgZm9ybWF0ID0gQ0FJUk9fRk9STUFUX0E4
OwotCSAgICBicmVhazsKLQljYXNlIENBSVJPX0FOVElBTElBU19TVUJQSVhFTDogewotCSAgICBp
bnQJCSAgICB4LCB5OwotCSAgICB1bnNpZ25lZCBjaGFyICAgKmluX2xpbmUsICpvdXRfbGluZSwg
KmluOwotCSAgICB1bnNpZ25lZCBpbnQgICAgKm91dDsKLQkgICAgdW5zaWduZWQgaW50ICAgIHJl
ZCwgZ3JlZW4sIGJsdWU7Ci0JICAgIGludAkJICAgIHJmLCBnZiwgYmY7Ci0JICAgIGludAkJICAg
IHM7Ci0JICAgIGludAkJICAgIG8sIG9zOwotCSAgICB1bnNpZ25lZCBjaGFyICAgKmRhdGFfcmdi
YTsKLQkgICAgdW5zaWduZWQgaW50ICAgIHdpZHRoX3JnYmEsIHN0cmlkZV9yZ2JhOwotCSAgICBp
bnQJCSAgICB2bXVsID0gMTsKLQkgICAgaW50CQkgICAgaG11bCA9IDE7Ci0KLQkgICAgc3dpdGNo
IChmb250X29wdGlvbnMtPnN1YnBpeGVsX29yZGVyKSB7Ci0JICAgIGNhc2UgQ0FJUk9fU1VCUElY
RUxfT1JERVJfREVGQVVMVDoKLQkgICAgY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9SR0I6Ci0J
ICAgIGNhc2UgQ0FJUk9fU1VCUElYRUxfT1JERVJfQkdSOgotCSAgICBkZWZhdWx0OgotCQl3aWR0
aCAvPSAzOwotCQlobXVsID0gMzsKLQkJYnJlYWs7Ci0JICAgIGNhc2UgQ0FJUk9fU1VCUElYRUxf
T1JERVJfVlJHQjoKLQkgICAgY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9WQkdSOgotCQl2bXVs
ID0gMzsKLQkJaGVpZ2h0IC89IDM7Ci0JCWJyZWFrOwotCSAgICB9Ci0JICAgIC8qCi0JICAgICAq
IEZpbHRlciB0aGUgZ2x5cGggdG8gc29mdGVuIHRoZSBjb2xvciBmcmluZ2VzCi0JICAgICAqLwot
CSAgICB3aWR0aF9yZ2JhID0gd2lkdGg7Ci0JICAgIHN0cmlkZSA9IGJpdG1hcC0+cGl0Y2g7Ci0J
ICAgIHN0cmlkZV9yZ2JhID0gKHdpZHRoX3JnYmEgKiA0ICsgMykgJiB+MzsKLQkgICAgZGF0YV9y
Z2JhID0gY2FsbG9jIChzdHJpZGVfcmdiYSwgaGVpZ2h0KTsKLQkgICAgaWYgKGRhdGFfcmdiYSA9
PSBOVUxMKSB7Ci0JCWlmIChvd25fYnVmZmVyKQotCQkgICAgZnJlZSAoYml0bWFwLT5idWZmZXIp
OwotCQlfY2Fpcm9fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOwotCQlyZXR1cm4gQ0FJ
Uk9fU1RBVFVTX05PX01FTU9SWTsKLQkgICAgfQotCi0JICAgIG9zID0gMTsKLQkgICAgc3dpdGNo
IChmb250X29wdGlvbnMtPnN1YnBpeGVsX29yZGVyKSB7Ci0JICAgIGNhc2UgQ0FJUk9fU1VCUElY
RUxfT1JERVJfVlJHQjoKLQkJb3MgPSBzdHJpZGU7Ci0JICAgIGNhc2UgQ0FJUk9fU1VCUElYRUxf
T1JERVJfREVGQVVMVDoKLQkgICAgY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9SR0I6Ci0JICAg
IGRlZmF1bHQ6Ci0JCXJmID0gMDsKLQkJZ2YgPSAxOwotCQliZiA9IDI7Ci0JCWJyZWFrOwotCSAg
ICBjYXNlIENBSVJPX1NVQlBJWEVMX09SREVSX1ZCR1I6Ci0JCW9zID0gc3RyaWRlOwotCSAgICBj
YXNlIENBSVJPX1NVQlBJWEVMX09SREVSX0JHUjoKLQkJYmYgPSAwOwotCQlnZiA9IDE7Ci0JCXJm
ID0gMjsKLQkJYnJlYWs7Ci0JICAgIH0KLQkgICAgaW5fbGluZSA9IGJpdG1hcC0+YnVmZmVyOwot
CSAgICBvdXRfbGluZSA9IGRhdGFfcmdiYTsKLQkgICAgZm9yICh5ID0gMDsgeSA8IGhlaWdodDsg
eSsrKQotCSAgICB7Ci0JCWluID0gaW5fbGluZTsKLQkJb3V0ID0gKHVuc2lnbmVkIGludCAqKSBv
dXRfbGluZTsKLQkJaW5fbGluZSArPSBzdHJpZGUgKiB2bXVsOwotCQlvdXRfbGluZSArPSBzdHJp
ZGVfcmdiYTsKLQkJZm9yICh4ID0gMDsgeCA8IHdpZHRoICogaG11bDsgeCArPSBobXVsKQotCQl7
Ci0JCSAgICByZWQgPSBncmVlbiA9IGJsdWUgPSAwOwotCQkgICAgbyA9IDA7Ci0JCSAgICBmb3Ig
KHMgPSAwOyBzIDwgMzsgcysrKQotCQkgICAgewotCQkJcmVkICs9IGZpbHRlcnNbcmZdW3NdKmlu
W3grb107Ci0JCQlncmVlbiArPSBmaWx0ZXJzW2dmXVtzXSppblt4K29dOwotCQkJYmx1ZSArPSBm
aWx0ZXJzW2JmXVtzXSppblt4K29dOwotCQkJbyArPSBvczsKLQkJICAgIH0KLQkJICAgIHJlZCA9
IHJlZCAvIDY1NTM2OwotCQkgICAgZ3JlZW4gPSBncmVlbiAvIDY1NTM2OwotCQkgICAgYmx1ZSA9
IGJsdWUgLyA2NTUzNjsKLQkJICAgICpvdXQrKyA9IChncmVlbiA8PCAyNCkgfCAocmVkIDw8IDE2
KSB8IChncmVlbiA8PCA4KSB8IGJsdWU7Ci0JCX0KLQkgICAgfQotCi0JICAgIC8qIEltYWdlcyBo
ZXJlIGFyZSBzdG9yZWQgaW4gbmF0aXZlIGZvcm1hdC4gVGhlCi0JICAgICAqIGJhY2tlbmQgbXVz
dCBjb252ZXJ0IHRvIGl0cyBvd24gZm9ybWF0IGFzIG5lZWRlZAotCSAgICAgKi8KKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gaWYgd2UgZ2V0IHRoZXJlLCB0aGUgIGRh
dGEgZnJvbSB0aGUgc291cmNlIGJpdG1hcAorICAgICAgICAgICAgICAgIC8vIHJlYWxseSBjb21l
cyBmcm9tIF9maWxsX3hyZW5kZXJfYml0bWFwLCBhbmQgaXMKKyAgICAgICAgICAgICAgICAvLyBt
YWRlIG9mIDMyLWJpdCBBUkdCIG9yIEFCR1IgdmFsdWVzCisgICAgICAgICAgICAgICAgYXNzZXJ0
KG93bl9idWZmZXIgIT0gMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGJpdG1hcC0+cGl4ZWxf
bW9kZSAhPSBGVF9QSVhFTF9NT0RFX0dSQVkpOwogCi0JICAgIGlmIChvd25fYnVmZmVyKQotCQlm
cmVlIChiaXRtYXAtPmJ1ZmZlcik7Ci0JICAgIGRhdGEgPSBkYXRhX3JnYmE7Ci0JICAgIHN0cmlk
ZSA9IHN0cmlkZV9yZ2JhOworICAgICAgICAgICAgICAgIGRhdGEgICA9IGJpdG1hcC0+YnVmZmVy
OworCSAgICBzdHJpZGUgPSBiaXRtYXAtPnBpdGNoOwogCSAgICBmb3JtYXQgPSBDQUlST19GT1JN
QVRfQVJHQjMyOwotCSAgICBzdWJwaXhlbCA9IFRSVUU7Ci0JICAgIGJyZWFrOwotCX0KIAl9CiAJ
YnJlYWs7CisKICAgICBjYXNlIEZUX1BJWEVMX01PREVfR1JBWTI6CiAgICAgY2FzZSBGVF9QSVhF
TF9NT0RFX0dSQVk0OgogCS8qIFRoZXNlIGNvdWxkIGJlIHRyaWdnZXJlZCBieSB2ZXJ5IHJhcmUg
dHlwZXMgb2YgVHJ1ZVR5cGUgZm9udHMgKi8KQEAgLTkxOCwyMCArMTEwOSwyMSBAQAogCXJldHVy
biBDQUlST19TVEFUVVNfTk9fTUVNT1JZOwogICAgIH0KIAotICAgICpzdXJmYWNlID0gKGNhaXJv
X2ltYWdlX3N1cmZhY2VfdCAqKQorICAgICAgICAvKiBYWFggKi8KKyAgICAgICAgKnN1cmZhY2Ug
PSBpbWFnZSA9IChjYWlyb19pbWFnZV9zdXJmYWNlX3QgKikKIAljYWlyb19pbWFnZV9zdXJmYWNl
X2NyZWF0ZV9mb3JfZGF0YSAoZGF0YSwKIAkJCQkJICAgICBmb3JtYXQsCiAJCQkJCSAgICAgd2lk
dGgsIGhlaWdodCwgc3RyaWRlKTsKLSAgICBpZiAoKCpzdXJmYWNlKS0+YmFzZS5zdGF0dXMpIHsK
KyAgICAgICAgaWYgKGltYWdlLT5iYXNlLnN0YXR1cykgewogCWZyZWUgKGRhdGEpOwogCXJldHVy
biBDQUlST19TVEFUVVNfTk9fTUVNT1JZOwogICAgIH0KIAotICAgIGlmIChzdWJwaXhlbCkKLQlw
aXhtYW5faW1hZ2Vfc2V0X2NvbXBvbmVudF9hbHBoYSAoKCpzdXJmYWNlKS0+cGl4bWFuX2ltYWdl
LCBUUlVFKTsKLQotICAgIF9jYWlyb19pbWFnZV9zdXJmYWNlX2Fzc3VtZV9vd25lcnNoaXBfb2Zf
ZGF0YSAoKCpzdXJmYWNlKSk7CisgICAgICAgIGlmIChmb250X29wdGlvbnMtPmFudGlhbGlhcyA9
PSBDQUlST19BTlRJQUxJQVNfU1VCUElYRUwpCisgICAgICAgICAgICBwaXhtYW5faW1hZ2Vfc2V0
X2NvbXBvbmVudF9hbHBoYSAoaW1hZ2UtPnBpeG1hbl9pbWFnZSwgVFJVRSk7CiAKKyAgICAgICAg
X2NhaXJvX2ltYWdlX3N1cmZhY2VfYXNzdW1lX293bmVyc2hpcF9vZl9kYXRhIChpbWFnZSk7Cisg
ICAgfQogICAgIHJldHVybiBDQUlST19TVEFUVVNfU1VDQ0VTUzsKIH0KIApAQCAtOTU1LDE2ICsx
MTQ3LDQ0IEBACiAJCSAgICAgICBjYWlyb19mb250X29wdGlvbnNfdAkgKmZvbnRfb3B0aW9ucywK
IAkJICAgICAgIGNhaXJvX2ltYWdlX3N1cmZhY2VfdAkqKnN1cmZhY2UpCiB7CisgICAgaW50IHJn
YmEgPSBGQ19SR0JBX1VOS05PV047CiAgICAgRlRfR2x5cGhTbG90IGdseXBoc2xvdCA9IGZhY2Ut
PmdseXBoOwogICAgIEZUX091dGxpbmUgKm91dGxpbmUgPSAmZ2x5cGhzbG90LT5vdXRsaW5lOwog
ICAgIEZUX0JpdG1hcCBiaXRtYXA7CiAgICAgRlRfQkJveCBjYm94OwotICAgIEZUX01hdHJpeCBt
YXRyaXg7Ci0gICAgaW50IGhtdWwgPSAxOwotICAgIGludCB2bXVsID0gMTsKICAgICB1bnNpZ25l
ZCBpbnQgd2lkdGgsIGhlaWdodCwgc3RyaWRlOwotICAgIGNhaXJvX2Jvb2xfdCBzdWJwaXhlbCA9
IEZBTFNFOworICAgIGNhaXJvX2Zvcm1hdF90IGZvcm1hdDsKICAgICBjYWlyb19zdGF0dXNfdCBz
dGF0dXM7CisgICAgRlRfRXJyb3IgIGZ0ZXJyb3I7CisgICAgRlRfTGlicmFyeSAgbGlicmFyeSA9
IGdseXBoc2xvdC0+bGlicmFyeTsKKyAgICBGVF9SZW5kZXJfTW9kZSAgcmVuZGVyX21vZGUgPSBG
VF9SRU5ERVJfTU9ERV9OT1JNQUw7CisKKyAgICBzd2l0Y2ggKGZvbnRfb3B0aW9ucy0+YW50aWFs
aWFzKQorICAgIHsKKyAgICBjYXNlIENBSVJPX0FOVElBTElBU19OT05FOgorICAgICAgICByZW5k
ZXJfbW9kZSA9IEZUX1JFTkRFUl9NT0RFX01PTk87CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBDQUlST19BTlRJQUxJQVNfU1VCUElYRUw6CisgICAgICAgIHN3aXRjaCAoZm9udF9vcHRpb25z
LT5zdWJwaXhlbF9vcmRlcikKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBDQUlST19TVUJQ
SVhFTF9PUkRFUl9ERUZBVUxUOgorICAgICAgICAgICAgY2FzZSBDQUlST19TVUJQSVhFTF9PUkRF
Ul9SR0I6CisgICAgICAgICAgICBjYXNlIENBSVJPX1NVQlBJWEVMX09SREVSX0JHUjoKKyAgICAg
ICAgICAgICAgICByZW5kZXJfbW9kZSA9IEZUX1JFTkRFUl9NT0RFX0xDRDsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9WUkdC
OgorICAgICAgICAgICAgY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9WQkdSOgorICAgICAgICAg
ICAgICAgIHJlbmRlcl9tb2RlID0gRlRfUkVOREVSX01PREVfTENEX1Y7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENBSVJPX0FO
VElBTElBU19ERUZBVUxUOgorICAgIGNhc2UgQ0FJUk9fQU5USUFMSUFTX0dSQVk6CisgICAgICAg
IHJlbmRlcl9tb2RlID0gRlRfUkVOREVSX01PREVfTk9STUFMOworICAgIH0KIAogICAgIEZUX091
dGxpbmVfR2V0X0NCb3ggKG91dGxpbmUsICZjYm94KTsKIApAQCAtOTc1LDEwMCArMTE5NSw5NSBA
QAogCiAgICAgd2lkdGggPSAodW5zaWduZWQgaW50KSAoKGNib3gueE1heCAtIGNib3gueE1pbikg
Pj4gNik7CiAgICAgaGVpZ2h0ID0gKHVuc2lnbmVkIGludCkgKChjYm94LnlNYXggLSBjYm94LnlN
aW4pID4+IDYpOwotICAgIHN0cmlkZSA9ICh3aWR0aCAqIGhtdWwgKyAzKSAmIH4zOworICAgIHN0
cmlkZSA9ICh3aWR0aCArIDMpICYgfjM7CiAKICAgICBpZiAod2lkdGggKiBoZWlnaHQgPT0gMCkg
ewotCWNhaXJvX2Zvcm1hdF90IGZvcm1hdDsKIAkvKiBMb29rcyBsaWtlIGZiIGhhbmRsZXMgemVy
by1zaXplZCBpbWFnZXMganVzdCBmaW5lICovCi0Jc3dpdGNoIChmb250X29wdGlvbnMtPmFudGlh
bGlhcykgewotCWNhc2UgQ0FJUk9fQU5USUFMSUFTX05PTkU6CisgICAgICAgIHN3aXRjaCAocmVu
ZGVyX21vZGUpCisgICAgICAgIHsKKyAgICAgICAgICBjYXNlIEZUX1JFTkRFUl9NT0RFX01PTk86
CiAJICAgIGZvcm1hdCA9IENBSVJPX0ZPUk1BVF9BMTsKIAkgICAgYnJlYWs7Ci0JY2FzZSBDQUlS
T19BTlRJQUxJQVNfU1VCUElYRUw6Ci0JICAgIGZvcm1hdD0gQ0FJUk9fRk9STUFUX0FSR0IzMjsK
KyAgICAgICAgICBjYXNlIEZUX1JFTkRFUl9NT0RFX0xDRDoKKyAgICAgICAgICBjYXNlIEZUX1JF
TkRFUl9NT0RFX0xDRF9WOgorICAgICAgICAgICAgZm9ybWF0ID0gQ0FJUk9fRk9STUFUX0FSR0Iz
MjsKIAkgICAgYnJlYWs7Ci0JY2FzZSBDQUlST19BTlRJQUxJQVNfREVGQVVMVDoKLQljYXNlIENB
SVJPX0FOVElBTElBU19HUkFZOgogCWRlZmF1bHQ6CiAJICAgIGZvcm1hdCA9IENBSVJPX0ZPUk1B
VF9BODsKLQkgICAgYnJlYWs7CiAJfQogCiAJKCpzdXJmYWNlKSA9IChjYWlyb19pbWFnZV9zdXJm
YWNlX3QgKikKIAkgICAgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEgKE5VTEws
IGZvcm1hdCwgMCwgMCwgMCk7CiAJaWYgKCgqc3VyZmFjZSktPmJhc2Uuc3RhdHVzKQogCSAgICBy
ZXR1cm4gQ0FJUk9fU1RBVFVTX05PX01FTU9SWTsKKwogICAgIH0gZWxzZSAgewogCi0JbWF0cml4
Lnh4ID0gbWF0cml4Lnl5ID0gMHgxMDAwMEw7Ci0JbWF0cml4Lnh5ID0gbWF0cml4Lnl4ID0gMDsK
KyAgICAgICAgaW50ICBiaXRtYXBfc2l6ZTsKIAotCXN3aXRjaCAoZm9udF9vcHRpb25zLT5hbnRp
YWxpYXMpIHsKLQljYXNlIENBSVJPX0FOVElBTElBU19OT05FOgotCSAgICBiaXRtYXAucGl4ZWxf
bW9kZSA9IEZUX1BJWEVMX01PREVfTU9OTzsKLQkgICAgYml0bWFwLm51bV9ncmF5cyAgPSAxOwot
CSAgICBzdHJpZGUgPSAoKHdpZHRoICsgMzEpICYgLTMyKSA+PiAzOworICAgICAgICBzd2l0Y2gg
KHJlbmRlcl9tb2RlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgRlRfUkVOREVSX01PREVfTENE
OgorICAgICAgICAgICAgaWYgKGZvbnRfb3B0aW9ucy0+c3VicGl4ZWxfb3JkZXIgPT0gQ0FJUk9f
U1VCUElYRUxfT1JERVJfQkdSICApIHsKKyAgICAgICAgICAgICAgICByZ2JhID0gRkNfUkdCQV9C
R1I7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJnYmEgPSBGQ19SR0JB
X1JHQjsKKyAgICAgICAgICAgIH0KIAkgICAgYnJlYWs7Ci0JY2FzZSBDQUlST19BTlRJQUxJQVNf
REVGQVVMVDoKLQljYXNlIENBSVJPX0FOVElBTElBU19HUkFZOgotCSAgICBiaXRtYXAucGl4ZWxf
bW9kZSA9IEZUX1BJWEVMX01PREVfR1JBWTsKLQkgICAgYml0bWFwLm51bV9ncmF5cyAgPSAyNTY7
Ci0JICAgIHN0cmlkZSA9ICh3aWR0aCArIDMpICYgLTQ7CisKKyAgICAgICAgY2FzZSBGVF9SRU5E
RVJfTU9ERV9MQ0RfVjoKKyAgICAgICAgICAgIGlmIChmb250X29wdGlvbnMtPnN1YnBpeGVsX29y
ZGVyID09IENBSVJPX1NVQlBJWEVMX09SREVSX1ZCR1IgKSB7CisgICAgICAgICAgICAgICAgcmdi
YSA9IEZDX1JHQkFfVkJHUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
cmdiYSA9IEZDX1JHQkFfVlJHQjsKKyAgICAgICAgICAgIH0KIAkgICAgYnJlYWs7Ci0JY2FzZSBD
QUlST19BTlRJQUxJQVNfU1VCUElYRUw6Ci0JICAgIHN3aXRjaCAoZm9udF9vcHRpb25zLT5zdWJw
aXhlbF9vcmRlcikgewotCSAgICBjYXNlIENBSVJPX1NVQlBJWEVMX09SREVSX1JHQjoKLQkgICAg
Y2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9CR1I6Ci0JICAgIGNhc2UgQ0FJUk9fU1VCUElYRUxf
T1JERVJfREVGQVVMVDoKKwogCSAgICBkZWZhdWx0OgotCQltYXRyaXgueHggKj0gMzsKLQkJaG11
bCA9IDM7Ci0JCXN1YnBpeGVsID0gVFJVRTsKLQkJYnJlYWs7Ci0JICAgIGNhc2UgQ0FJUk9fU1VC
UElYRUxfT1JERVJfVlJHQjoKLQkgICAgY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9WQkdSOgot
CQltYXRyaXgueXkgKj0gMzsKLQkJdm11bCA9IDM7Ci0JCXN1YnBpeGVsID0gVFJVRTsKLQkJYnJl
YWs7CisgICAgICAgICAgICA7CiAJICAgIH0KLQkgICAgRlRfT3V0bGluZV9UcmFuc2Zvcm0gKG91
dGxpbmUsICZtYXRyaXgpOwogCi0JICAgIGJpdG1hcC5waXhlbF9tb2RlID0gRlRfUElYRUxfTU9E
RV9HUkFZOwotCSAgICBiaXRtYXAubnVtX2dyYXlzICA9IDI1NjsKLQkgICAgc3RyaWRlID0gKHdp
ZHRoICogaG11bCArIDMpICYgLTQ7Ci0JfQorICAgICAgICBGVF9MaWJyYXJ5X1NldExjZEZpbHRl
ciggbGlicmFyeSwgRlRfTENEX0ZJTFRFUl9ERUZBVUxUICk7CiAKLQliaXRtYXAucGl0Y2ggPSBz
dHJpZGU7Ci0JYml0bWFwLndpZHRoID0gd2lkdGggKiBobXVsOwotCWJpdG1hcC5yb3dzID0gaGVp
Z2h0ICogdm11bDsKLQliaXRtYXAuYnVmZmVyID0gY2FsbG9jIChzdHJpZGUsIGJpdG1hcC5yb3dz
KTsKKyAgICAgICAgZnRlcnJvciA9IEZUX1JlbmRlcl9HbHlwaCggZmFjZS0+Z2x5cGgsIHJlbmRl
cl9tb2RlICk7CiAKLQlpZiAoYml0bWFwLmJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgIEZUX0xp
YnJhcnlfU2V0TGNkRmlsdGVyKCBsaWJyYXJ5LCBGVF9MQ0RfRklMVEVSX05PTkUgKTsKKworICAg
ICAgICBpZiAoZnRlcnJvciAhPSAwKSB7CiAJICAgIF9jYWlyb19lcnJvciAoQ0FJUk9fU1RBVFVT
X05PX01FTU9SWSk7CiAJICAgIHJldHVybiBDQUlST19TVEFUVVNfTk9fTUVNT1JZOwogCX0KIAot
CUZUX091dGxpbmVfVHJhbnNsYXRlIChvdXRsaW5lLCAtY2JveC54TWluKmhtdWwsIC1jYm94LnlN
aW4qdm11bCk7CisgICAgICAgIGJpdG1hcF9zaXplID0gX2NvbXB1dGVfeHJlbmRlcl9iaXRtYXBf
c2l6ZSggJmJpdG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWNlLT5nbHlwaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZW5kZXJfbW9kZSApOworICAgICAgICBpZiAoIGJpdG1hcF9z
aXplIDwgMCApIHsKKwkgICAgX2NhaXJvX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsK
KyAgICAgICAgICAgIHJldHVybiBDQUlST19TVEFUVVNfTk9fTUVNT1JZOworCX0KIAotCWlmIChG
VF9PdXRsaW5lX0dldF9CaXRtYXAgKGdseXBoc2xvdC0+bGlicmFyeSwgb3V0bGluZSwgJmJpdG1h
cCkgIT0gMCkgewotCSAgICBmcmVlIChiaXRtYXAuYnVmZmVyKTsKKyAgICAgICAgYml0bWFwLmJ1
ZmZlciA9IGNhbGxvYygxLCBiaXRtYXBfc2l6ZSk7CisgICAgICAgIGlmIChiaXRtYXAuYnVmZmVy
ID09IE5VTEwpIHsKIAkgICAgX2NhaXJvX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsK
IAkgICAgcmV0dXJuIENBSVJPX1NUQVRVU19OT19NRU1PUlk7CiAJfQogCisgICAgICAgIF9maWxs
X3hyZW5kZXJfYml0bWFwKCAmYml0bWFwLCBmYWNlLT5nbHlwaCwgcmVuZGVyX21vZGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocmdiYSA9PSBGQ19SR0JBX0JHUiB8fCByZ2JhID09
IEZDX1JHQkFfVkJHUikgKTsKKworICAgICAgICAvLyBOT1RFOiBfZ2V0X2JpdG1hcF9zdXJmYWNl
IHdpbGwgZnJlZSBiaXRtYXAuYnVmZmVyIGlmIHRoZXJlIGlzIGFuIGVycm9yCiAJc3RhdHVzID0g
X2dldF9iaXRtYXBfc3VyZmFjZSAoJmJpdG1hcCwgVFJVRSwgZm9udF9vcHRpb25zLCBzdXJmYWNl
KTsKIAlpZiAoc3RhdHVzKQogCSAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KIAogICAgIC8qCiAg
ICAgICogTm90ZTogdGhlIGZvbnQncyBjb29yZGluYXRlIHN5c3RlbSBpcyB1cHNpZGUgZG93biBm
cm9tIG91cnMsIHNvIHRoZQogICAgICAqIFkgY29vcmRpbmF0ZSBvZiB0aGUgY29udHJvbCBib3gg
bmVlZHMgdG8gYmUgbmVnYXRlZC4KICAgICAgKi8KICAgICBjYWlyb19zdXJmYWNlX3NldF9kZXZp
Y2Vfb2Zmc2V0ICgmKCpzdXJmYWNlKS0+YmFzZSwKLQkJCQkgICAgIGZsb29yICgoZG91YmxlKSBj
Ym94LnhNaW4gLyA2NC4wKSwKLQkJCQkgICAgIGZsb29yICgtKGRvdWJsZSkgY2JveC55TWF4IC8g
NjQuMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91Ymxl
KSBnbHlwaHNsb3QtPmJpdG1hcF9sZWZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZG91YmxlKS1nbHlwaHNsb3QtPmJpdG1hcF90b3ApOworICAgIH0KIAogICAg
IHJldHVybiBDQUlST19TVEFUVVNfU1VDQ0VTUzsKIH0KQEAgLTE0NDIsMTEgKzE2NTcsMTEgQEAK
IAkJY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9ERUZBVUxUOgogCQljYXNlIENBSVJPX1NVQlBJ
WEVMX09SREVSX1JHQjoKIAkJY2FzZSBDQUlST19TVUJQSVhFTF9PUkRFUl9CR1I6Ci0JCSAgICBs
b2FkX3RhcmdldCB8PSBGVF9MT0FEX1RBUkdFVF9MQ0Q7CisJCSAgICBsb2FkX3RhcmdldCA9IEZU
X0xPQURfVEFSR0VUX0xDRDsKIAkJICAgIGJyZWFrOwogCQljYXNlIENBSVJPX1NVQlBJWEVMX09S
REVSX1ZSR0I6CiAJCWNhc2UgQ0FJUk9fU1VCUElYRUxfT1JERVJfVkJHUjoKLQkJICAgIGxvYWRf
dGFyZ2V0IHw9IEZUX0xPQURfVEFSR0VUX0xDRF9WOworCQkgICAgbG9hZF90YXJnZXQgPSBGVF9M
T0FEX1RBUkdFVF9MQ0RfVjsKIAkJYnJlYWs7CiAJCX0KIAkgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>