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

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

    <bug>
          <bug_id>52611</bug_id>
          
          <creation_ts>2025-01-02 13:59:20 +0300</creation_ts>
          <short_desc>Конфликт действий на комбинации клавиш Dolphin</short_desc>
          <delta_ts>2025-01-15 11:55:50 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>dolphin</component>
          <version>unstable</version>
          <rep_platform>x86_64</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>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Жора Змейкин">katze_942</reporter>
          <assigned_to name="Sergey V Turchin">zerg</assigned_to>
          <cc>corwin</cc>
    
    <cc>maxpozdeev</cc>
    
    <cc>sergey.sukiyazov</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256867</commentid>
    <comment_count>0</comment_count>
    <who name="Жора Змейкин">katze_942</who>
    <bug_when>2025-01-02 13:59:20 +0300</bug_when>
    <thetext>Некоторые сочетания клавиш не срабатывают в Dolphin, вызывая диалоговое окно &quot;Конфликт действий&quot;. Например, в панели Терминал (F4) не срабатывает сочетание клавиш Ctrl+Shift+V. Не помогает и сброс сочетаний клавиш на по умолчанию.

У некоторых людей возникала проблема и с сочетанием клавиш Ctrl+Shift+N (создание папки, но диалоговое окно говорило про конфликт Ctrl+N, что странно).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257006</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2025-01-09 16:13:23 +0300</bug_when>
    <thetext>Попробуйте удалить ~/.config/kglobalshortcutsrc и  ~/.config/khotkeysrc , сделав резервную копию и перезайти в систему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257088</commentid>
    <comment_count>2</comment_count>
    <who name="Жора Змейкин">katze_942</who>
    <bug_when>2025-01-10 20:03:44 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #1)
&gt; Попробуйте удалить ~/.config/kglobalshortcutsrc и  ~/.config/khotkeysrc ,
&gt; сделав резервную копию и перезайти в систему.

Удалил два файла и перезагрузился. К сожалению, не помогло.
Заметил, что подобная проблема ещё и в Kate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257124</commentid>
    <comment_count>3</comment_count>
      <attachid>17520</attachid>
    <who name="Max Pozdeev">maxpozdeev</who>
    <bug_when>2025-01-12 15:59:04 +0300</bug_when>
    <thetext>Created attachment 17520
patch for 9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch in qt6-base

Тоже столкнулся с такими ошибками. Причина оказалась в патче 9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch в пакете qt6-base, если пересобрать пакет без него, то все ок.

В итоге удалось этот патч немного поправить и ошибки исчезли. Предлагаю к рассмотрению.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257225</commentid>
    <comment_count>4</comment_count>
      <attachid>17524</attachid>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-13 20:57:44 +0300</bug_when>
    <thetext>Created attachment 17524
Исправленные патчи для Qt6

Сформировал исправленные патчи с правкой от Max Pozdeev</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257226</commentid>
    <comment_count>5</comment_count>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-13 21:03:44 +0300</bug_when>
    <thetext>(Ответ для Max Pozdeev на комментарий #3)
&gt; Создано вложение 17520 [подробности]
&gt; patch for 9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch in qt6-base
&gt; 
&gt; Тоже столкнулся с такими ошибками. Причина оказалась в патче
&gt; 9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch в пакете qt6-base, если
&gt; пересобрать пакет без него, то все ок.
&gt; 
&gt; В итоге удалось этот патч немного поправить и ошибки исчезли. Предлагаю к
&gt; рассмотрению.

Да, это корректное исправление. В Qt &gt;= 6.7.0 добавили новый класс с методом QKeyCombination::keyboardModifiers(), я понадеялся что там &quot;все лишнее&quot; убирается. Но судя по всему нет. Так что правка абсолютно корректная.

&gt; ++                if (!result.contains(qtKey + int(mods))) //NOTE: We should disallow duplicates in the result list (TODO: Is this check really needed?)
Эта проверка нужна, т.к. result формируется при проверке всех раскладок, соответственно есть вероятность что на разных раскладках комбинации могут задублироваться.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257227</commentid>
    <comment_count>6</comment_count>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-13 21:07:03 +0300</bug_when>
    <thetext>Sergey V Turchin, я прикрепил архив с исправленными патчами для qt-6.7.2 и qt-6.8.0, их можно заменить в rpm-ках и пересобрать.

Спасибо Max Pozdeev за найденную ошибку.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257230</commentid>
    <comment_count>7</comment_count>
    <who name="Max Pozdeev">maxpozdeev</who>
    <bug_when>2025-01-13 22:14:28 +0300</bug_when>
    <thetext>(Ответ для Сукиязов С.А. на комментарий #4)
&gt; Создано вложение 17524 [подробности]
&gt; Исправленные патчи для Qt6
&gt; 
&gt; Сформировал исправленные патчи с правкой от Max Pozdeev

В новом патче для 6.7.2 эта строка отличается от 6.8.0:
if (shortcut.key() == qtKey &amp;&amp; (shortcut.keyboardModifiers() &amp; mods)) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257231</commentid>
    <comment_count>8</comment_count>
      <attachid>17525</attachid>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-13 22:18:09 +0300</bug_when>
    <thetext>Created attachment 17525
Исправленные патчи для Qt6 (исправлено)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257232</commentid>
    <comment_count>9</comment_count>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-13 22:19:53 +0300</bug_when>
    <thetext>(Ответ для Max Pozdeev на комментарий #7)

&gt; В новом патче для 6.7.2 эта строка отличается от 6.8.0:
&gt; if (shortcut.key() == qtKey &amp;&amp; (shortcut.keyboardModifiers() &amp; mods)) {

Блин, пропустил. Перезалил.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257234</commentid>
    <comment_count>10</comment_count>
    <who name="Max Pozdeev">maxpozdeev</who>
    <bug_when>2025-01-13 23:36:18 +0300</bug_when>
    <thetext>(Ответ для Сукиязов С.А. на комментарий #5)
&gt; &gt; ++                if (!result.contains(qtKey + int(mods))) //NOTE: We should disallow duplicates in the result list (TODO: Is this check really needed?)
&gt; Эта проверка нужна, т.к. result формируется при проверке всех раскладок,
&gt; соответственно есть вероятность что на разных раскладках комбинации могут
&gt; задублироваться.

Если не трудно, поясните, пожалуйста. Разве не должны дубли отфильтроваться чуть ранее? Здесь:
```
for (QKeyCombination shortcut : std::as_const(result)) {
    if (shortcut.key() == qtKey &amp;&amp; (shortcut.keyboardModifiers() &amp; mods) == mods) {
        ambiguous = true;
        break;
    }
}
if (ambiguous)
    continue;
```

QKeyCombination есть суть пара key и keyboardModifiers, а в условие
(shortcut.keyboardModifiers() &amp; mods) == mods
в том числе попадает выражение
(shortcut.keyboardModifiers == mods)
И если оба члена сравниваемых пар (комбинаций) равны, то и комбинации тоже.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257334</commentid>
    <comment_count>11</comment_count>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-14 20:44:01 +0300</bug_when>
    <thetext>(Ответ для Max Pozdeev на комментарий #10)
&gt; Если не трудно, поясните, пожалуйста. Разве не должны дубли отфильтроваться
&gt; чуть ранее? Здесь:
Просмотрел код еще раз. Согласен, вторая проверка не нужна.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257335</commentid>
    <comment_count>12</comment_count>
      <attachid>17531</attachid>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-14 20:50:38 +0300</bug_when>
    <thetext>Created attachment 17531
Исправленные патчи для Qt6 (исправлено 2)

Убрал ненужное условие из патчей</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257336</commentid>
    <comment_count>13</comment_count>
    <who name="Сукиязов С.А.">sergey.sukiyazov</who>
    <bug_when>2025-01-14 20:53:05 +0300</bug_when>
    <thetext>Sergey V Turchin, последняя редакция патчей &quot;Исправленные патчи для Qt6 (исправлено 2)&quot;, их можно заменить в rpm-ках и пересобрать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257337</commentid>
    <comment_count>14</comment_count>
    <who name="Max Pozdeev">maxpozdeev</who>
    <bug_when>2025-01-14 21:58:32 +0300</bug_when>
    <thetext>(Ответ для Сукиязов С.А. на комментарий #11)
&gt; (Ответ для Max Pozdeev на комментарий #10)
&gt; &gt; Если не трудно, поясните, пожалуйста. Разве не должны дубли отфильтроваться
&gt; &gt; чуть ранее? Здесь:
&gt; Просмотрел код еще раз. Согласен, вторая проверка не нужна.

Спасибо за комментарий.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257363</commentid>
    <comment_count>15</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2025-01-15 11:55:50 +0300</bug_when>
    <thetext>qt6-base-6.7.2-alt8 -&gt; sisyphus:

 Wed Jan 15 2025 Sergey V Turchin &lt;zerg@altlinux&gt; 6.7.2-alt8
 - fix qmenu_fix_shortcuts.patch (thanks Corwin) (closes: 52611)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17520</attachid>
            <date>2025-01-12 15:59:04 +0300</date>
            <delta_ts>2025-01-12 15:59:04 +0300</delta_ts>
            <desc>patch for 9003-qt6-base-6.7.2-qmenu_fix_shortcuts.patch in qt6-base</desc>
            <filename>patch-for-shortcuts.patch</filename>
            <type>text/plain</type>
            <size>1385</size>
            <attacher name="Max Pozdeev">maxpozdeev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhLzkwMDMtcXQ2LWJhc2UtNi43LjItcW1lbnVfZml4X3Nob3J0Y3V0cy5wYXRj
aCBiLzkwMDMtcXQ2LWJhc2UtNi43LjItcW1lbnVfZml4X3Nob3J0Y3V0cy5wYXRjaAppbmRleCA3
ZTYzNTRjOS4uZDkxZjMzNGEgMTAwNjQ0Ci0tLSBhLzkwMDMtcXQ2LWJhc2UtNi43LjItcW1lbnVf
Zml4X3Nob3J0Y3V0cy5wYXRjaAorKysgYi85MDAzLXF0Ni1iYXNlLTYuNy4yLXFtZW51X2ZpeF9z
aG9ydGN1dHMucGF0Y2gKQEAgLTg0LDcgKzg0LDcgQEAgZGlmZiAtTmF1ciBxdGJhc2UtZXZlcnl3
aGVyZS1zcmMtNi43LjIub3JpZy9zcmMvZ3VpL3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAK
ICsgICAgICAgICAgICAgICAgLy8gYnV0IEN0cmwrKyBpcyBtb3JlIHNwZWNpZmljIHRoYW4gKywg
c28gd2Ugc2hvdWxkIHNraXAgdGhlIGxhc3Qgb25lCiArICAgICAgICAgICAgICAgIGJvb2wgYW1i
aWd1b3VzID0gZmFsc2U7CiArICAgICAgICAgICAgICAgIGZvciAoUUtleUNvbWJpbmF0aW9uIHNo
b3J0Y3V0IDogc3RkOjphc19jb25zdChyZXN1bHQpKSB7Ci0rICAgICAgICAgICAgICAgICAgICBp
ZiAoc2hvcnRjdXQua2V5KCkgPT0gcXRLZXkgJiYgc2hvcnRjdXQua2V5Ym9hcmRNb2RpZmllcnMo
KSA9PSBtb2RzKSB7CisrICAgICAgICAgICAgICAgICAgICBpZiAoc2hvcnRjdXQua2V5KCkgPT0g
cXRLZXkgJiYgKHNob3J0Y3V0LmtleWJvYXJkTW9kaWZpZXJzKCkgJiBtb2RzKSA9PSBtb2RzKSB7
CiArICAgICAgICAgICAgICAgICAgICAgICAgYW1iaWd1b3VzID0gdHJ1ZTsKICsgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICsgICAgICAgICAgICAgICAgICAgIH0KQEAgLTkyLDcgKzky
LDcgQEAgZGlmZiAtTmF1ciBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIub3JpZy9zcmMvZ3Vp
L3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAKICsgICAgICAgICAgICAgICAgaWYgKGFtYmln
dW91cykKICsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogKwotKyAgICAgICAgICAgICAg
ICBpZiAoIXJlc3VsdC5jb250YWlucyhxdEtleSArIGludChtb2RzKSkpIC8vTk9URTogV2Ugc2hv
dWxkIGRpc2FsbG93IGR1cGxpY2F0ZXMgaW4gdGhlIHJlc3VsdCBsaXN0CisrICAgICAgICAgICAg
ICAgIGlmICghcmVzdWx0LmNvbnRhaW5zKHF0S2V5ICsgaW50KG1vZHMpKSkgLy9OT1RFOiBXZSBz
aG91bGQgZGlzYWxsb3cgZHVwbGljYXRlcyBpbiB0aGUgcmVzdWx0IGxpc3QgKFRPRE86IElzIHRo
aXMgY2hlY2sgcmVhbGx5IG5lZWRlZD8pCiArICAgICAgICAgICAgICAgIHJlc3VsdCArPSBRS2V5
Q29tYmluYXRpb246OmZyb21Db21iaW5lZChxdEtleSArIGludChtb2RzKSk7CiArICAgICAgICAg
ICAgfQogKyAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17524</attachid>
            <date>2025-01-13 20:57:44 +0300</date>
            <delta_ts>2025-01-13 22:18:09 +0300</delta_ts>
            <desc>Исправленные патчи для Qt6</desc>
            <filename>qt6-base-qmenu_fix_shortcuts-patches.tar</filename>
            <type>application/x-tar</type>
            <size>30720</size>
            <attacher name="Сукиязов С.А.">sergey.sukiyazov</attacher>
            
              <data encoding="base64">OTAwMy1xdDYtYmFzZS02LjcuMi1xbWVudV9maXhfc2hvcnRjdXRzLnBhdGNoAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDc2
NAAwMDAwNzY0ADAwMDAwMDI0NTU2ADE0NzQxMjUxMTU2ADAyMDMwMQAgMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNlcmdleQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAc2VyZ2V5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG
cm9tOiBTZXJnZXkgQS4gU3VraXlhem92IDxzZXJnZXkuc3VraXlhem92QHlhbmRleC5ydT4KRGF0
ZTogVGh1LCBBdWcgMjkgMjAyNCAgMjE6MTk6MTIgKzAzMDAKU3ViamVjdDogSW1wcm92ZW1lbnRz
IGZvciBoYW5kbGluZyBvZiBrZXlib2FyZCBzaG9ydGN1dHMKClRoZSBvcmlnaW5hbCBpbXBsZW1l
bnRhdGlvbiBvZiBrZXlib2FyZCBzaG9ydGN1dHMgaW4gUXQgaXMga2V5Ym9hcmQgbGF5b3V0IGRl
cGVuZGVkLiBJLmUuCnRoZSBBbHQrRiBjb21iaW5hdGlvbiBpcyB1c2VkIHRvIGFjY2VzcyBtZW51
IGJhcidzIEZpbGUgaXRlbSwgYnV0IGl0IHdpbGwgbm90IHdvcmsgaWYgdGhlClJ1c3NpYW4ga2V5
Ym9hcmQgbGF5b3V0IGlzIGFjdGl2ZSwgZXZlbiBpZiBBbHQrW0N5cmlsbGljX0FdIGlzIHByZXNz
ZWQuCgpUaGlzIHBhdGNoIGltcHJvdmVzIHRoaXMgYmVoYXZpb3Igb2Yga2V5Ym9hciBzaG9ydGN1
dHMgdG8gYmUgaW5kZXBlbmRlZCBvZiBhY3RpdmUga2V5Ym9hcmQKbGF5b3V0IE9OTFkgZm9yIGtl
eXMgd2hpY2ggcHJvZHVjZXMgbGV0dGVycy4gVGggbG9naWMgb2YgaW1wbGVtZW50YXRpb24gaXM6
CgogMS4gVGhlIFFLZXlNYXBwZXI6OnBvc3NpYmxlS2V5cyguLi4pIGlzIG1vZGlmaWVkIHRvIHNj
YW4gYWRkaXRpb25hbHkgYWxsIGNvbmZpZ3VyZWQga2V5Ym9hcmQKICAgIGxheW91dHMgaW4gdGhl
IHN5c3RlbSBhbmQgYWRkIGFsbCBrZXljb2RlcyB3aGljaCBjYW4gcHJvZHVjZSBsZXR0ZXJzLiBT
bywgdGhlIGZpbmFsIGxpc3QKICAgIG9mIHBvc3NpYmxlIGtleWNvZGVzIGNvbnRhaW5zIHR3byBw
YXJ0cyAtIGZpc3QgaXMgc2FtZSBhcyBmb3IgdW5wYXRjaGVkIGltcGxlbWVudGF0aW9uLAogICAg
c2Vjb25kIGNvbnRhaW5zIGFsbCBwb3NzaWJsZSBrZXljb2RlcyBib3VkIHRvIHRoZSBwaHlzaWNh
bCBrZXlib2FyZCBrZXkgYW5kIGNhbiBwcm9kdWNlCiAgICBsZXR0ZXJzIGluIG90aGVyIHRoYW4g
YWN0aXZlIGtleWJvYXJkIGxheW91dC4KIDIuIENobmFnZSBiZWhhdmlvdXIgb2YgaW1wbGVtZW50
YXRpb24gb2YgUU1lbnU6OmtleVByZXNzRXZ2ZW50KC4uLikgYW5kIFFNZW51QmFyOjprZXlQcmVz
c0V2dmVudCguLi4pCiAgICB0byBjaGVjayBhbGwgcG9zc2libGUga2V5Y29kZXMgd2hpY2ggYm91
bmQgdG8gcHJlc3NlZCBwaHlzaWNhbCBrZXlib2FyIGtleSBpbnN0ZWFkIG9mIHNpbmdsZQogICAg
a2V5Y29kZSBib3VuZCB0byByZWNpdmVkIFFLZXlQcmVzc0V2ZW50LgoKU28sIGFmdGVyIHRob3Nl
IGNoYW5nZXMgdGhlIGNvbWJpbmF0aW9ucyBBbHQrRiBhbmQgQWx0K1tDeXJpbGxpY19BXSB3aWxs
IGFjdGl2YXRlIG1lbnUgYmFyJ3MgRmlsZSBpdGVtLgpBbGwgb3RoZXIgY29tYmluYXRpb25zLCB3
aGljaCBhcmUgYm91bmQgdG8gcGh5c2ljYWwga2V5Ym9hcmQga2V5cyB3aGljaCBub3QgcHJvZHVj
ZSBsZXR0ZXJzLCB3aWxsCndvcmsgc2FtZSB3YXkgYXMgaW4gdW5wYXRjaGVkIHZlcnNpb24uCi0t
LQpkaWZmIC1OYXVyIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02LjcuMi5vcmlnL3NyYy9ndWkvcGxh
dGZvcm0vdW5peC9xeGtiY29tbW9uLmNwcCBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIvc3Jj
L2d1aS9wbGF0Zm9ybS91bml4L3F4a2Jjb21tb24uY3BwCi0tLSBxdGJhc2UtZXZlcnl3aGVyZS1z
cmMtNi43LjIub3JpZy9zcmMvZ3VpL3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAJMjAyNC0w
OC0yOSAyMToxNTo1MS4xNTY2OTY5NTIgKzAzMDAKKysrIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02
LjcuMi9zcmMvZ3VpL3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAJMjAyNC0wOC0yOSAyMTox
NzozOC44NTkxMTEwMjEgKzAzMDAKQEAgLTYzNCw2ICs2MzQsNyBAQAogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICAvLyBnZXQga2Igc3RhdGUgZnJvbSB0aGUgbWFzdGVyIHN0YXRl
IGFuZCB1cGRhdGUgdGhlIHRlbXBvcmFyeSBzdGF0ZQorICAgIHhrYl9sYXlvdXRfaW5kZXhfdCBu
dW1MYXlvdXRzID0geGtiX2tleW1hcF9udW1fbGF5b3V0cyhrZXltYXApOwogICAgIHhrYl9sYXlv
dXRfaW5kZXhfdCBsb2NrZWRMYXlvdXQgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX2xheW91dChzdGF0
ZSwgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOwogICAgIHhrYl9tb2RfbWFza190IGxhdGNoZWRN
b2RzID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzKHN0YXRlLCBYS0JfU1RBVEVfTU9EU19MQVRD
SEVEKTsKICAgICB4a2JfbW9kX21hc2tfdCBsb2NrZWRNb2RzID0geGtiX3N0YXRlX3NlcmlhbGl6
ZV9tb2RzKHN0YXRlLCBYS0JfU1RBVEVfTU9EU19MT0NLRUQpOwpAQCAtNzE2LDYgKzcxNyw2NyBA
QAogICAgICAgICB9CiAgICAgfQogCisgICAgZm9yICh4a2JfbGF5b3V0X2luZGV4X3QgbGF5b3V0
ID0gMDsgbGF5b3V0IDwgbnVtTGF5b3V0czsgbGF5b3V0KyspIHsKKyAgICAgICAgeGtiX3N0YXRl
X3VwZGF0ZV9tYXNrKHF1ZXJ5U3RhdGUsIDAsIGxhdGNoZWRNb2RzLCBsb2NrZWRNb2RzLCBsYXlv
dXQsIDAsIGxvY2tlZExheW91dCk7CisKKyAgICAgICAgc3ltID0geGtiX3N0YXRlX2tleV9nZXRf
b25lX3N5bShxdWVyeVN0YXRlLCBldmVudC0+bmF0aXZlU2NhbkNvZGUoKSk7CisgICAgICAgIGlm
IChzeW0gPT0gWEtCX0tFWV9Ob1N5bWJvbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIGludCBiYXNlUXRLZXkgPSBrZXlzeW1Ub1F0S2V5X2ludGVybmFsKHN5bSwgbW9kaWZpZXJz
LCBxdWVyeVN0YXRlLCBrZXljb2RlLCBzdXBlckFzTWV0YSwgaHlwZXJBc01ldGEpOworICAgICAg
ICBpZiAoYmFzZVF0S2V5ICYmICFyZXN1bHQuY29udGFpbnMoYmFzZVF0S2V5ICsgaW50KG1vZGlm
aWVycykpICYmIFFDaGFyKGJhc2VRdEtleSkuaXNMZXR0ZXIoKSkgLy9OT1RFOiBXZSBzaG91bGQg
ZGlzYWxsb3cgZHVwbGljYXRlcyBpbiB0aGUgcmVzdWx0IGxpc3QKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBRS2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChiYXNlUXRLZXkgKyBpbnQobW9kaWZp
ZXJzKSk7CisKKyAgICAgICAgeGtiX21vZF9tYXNrX3QgZGVwcmVzc2VkOworICAgICAgICBpbnQg
cXRLZXkgPSAwOworICAgICAgICAvLyBvYnRhaW4gYSBsaXN0IG9mIHBvc3NpYmxlIHNob3J0Y3V0
cyBmb3IgdGhlIGdpdmVuIGtleSBldmVudAorICAgICAgICBmb3IgKHVpbnQgaSA9IDE7IGkgPCBz
aXplb2YoTW9kc1RibCkgLyBzaXplb2YoKk1vZHNUYmwpIDsgKytpKSB7CisgICAgICAgICAgICBR
dDo6S2V5Ym9hcmRNb2RpZmllcnMgbmVlZGVkTW9kcyA9IE1vZHNUYmxbaV07CisgICAgICAgICAg
ICBpZiAoKG1vZGlmaWVycyAmIG5lZWRlZE1vZHMpID09IG5lZWRlZE1vZHMpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoaSA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0xhdGluMShi
YXNlUXRLZXkpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgICAgIC8vIGFkZCBhIGxhdGluIGtleSBhcyBhIGZhbGwgYmFjayBrZXkKKyAgICAgICAg
ICAgICAgICAgICAgc3ltID0gbG9va3VwTGF0aW5LZXlzeW0oc3RhdGUsIGtleWNvZGUpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCA9IDA7
CisgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OkFsdE1vZGlmaWVyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVzc2VkIHw9ICgxIDw8IGFsdE1vZCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OlNoaWZ0TW9kaWZpZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgc2hpZnRNb2QpOworICAgICAg
ICAgICAgICAgICAgICBpZiAobmVlZGVkTW9kcyAmIFF0OjpDb250cm9sTW9kaWZpZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgY29udHJvbE1vZCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtZXRhTW9kIDwgMzIgJiYgbmVlZGVkTW9kcyAmIFF0OjpNZXRh
TW9kaWZpZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgbWV0
YU1vZCk7CisgICAgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFzayhxdWVyeVN0
YXRlLCBkZXByZXNzZWQsIGxhdGNoZWRNb2RzLCBsb2NrZWRNb2RzLCAwLCAwLCBsb2NrZWRMYXlv
dXQpOworICAgICAgICAgICAgICAgICAgICBzeW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3lt
KHF1ZXJ5U3RhdGUsIGtleWNvZGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBpZiAoc3ltID09IFhLQl9LRVlfTm9TeW1ib2wpCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICAgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1vZHMgPSBtb2Rp
ZmllcnMgJiB+bmVlZGVkTW9kczsKKyAgICAgICAgICAgICAgICBxdEtleSA9IGtleXN5bVRvUXRL
ZXlfaW50ZXJuYWwoc3ltLCBtb2RzLCBxdWVyeVN0YXRlLCBrZXljb2RlLCBzdXBlckFzTWV0YSwg
aHlwZXJBc01ldGEpOworICAgICAgICAgICAgICAgIGlmICghcXRLZXkgfHwgcXRLZXkgPT0gYmFz
ZVF0S2V5IHx8ICFRQ2hhcihxdEtleSkuaXNMZXR0ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBjYXRjaCBvbmx5IG1vcmUgc3BlY2lmaWMg
c2hvcnRjdXRzLCBpLmUuIEN0cmwrU2hpZnQrPSBhbHNvIGdlbmVyYXRlcyBDdHJsKysgYW5kICss
CisgICAgICAgICAgICAgICAgLy8gYnV0IEN0cmwrKyBpcyBtb3JlIHNwZWNpZmljIHRoYW4gKywg
c28gd2Ugc2hvdWxkIHNraXAgdGhlIGxhc3Qgb25lCisgICAgICAgICAgICAgICAgYm9vbCBhbWJp
Z3VvdXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKFFLZXlDb21iaW5hdGlvbiBzaG9y
dGN1dCA6IHN0ZDo6YXNfY29uc3QocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
c2hvcnRjdXQua2V5KCkgPT0gcXRLZXkgJiYgKHNob3J0Y3V0LmtleWJvYXJkTW9kaWZpZXJzKCkg
JiBtb2RzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYW1iaWd1b3VzID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChhbWJpZ3VvdXMpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuY29udGFp
bnMocXRLZXkgKyBpbnQobW9kcykpKSAvL05PVEU6IFdlIHNob3VsZCBkaXNhbGxvdyBkdXBsaWNh
dGVzIGluIHRoZSByZXN1bHQgbGlzdAorICAgICAgICAgICAgICAgIHJlc3VsdCArPSBRS2V5Q29t
YmluYXRpb246OmZyb21Db21iaW5lZChxdEtleSArIGludChtb2RzKSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLU5hdXIg
cXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLTYuNy4yLm9yaWcvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVu
dWJhci5jcHAgcXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLTYuNy4yL3NyYy93aWRnZXRzL3dpZGdldHMv
cW1lbnViYXIuY3BwCi0tLSBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIub3JpZy9zcmMvd2lk
Z2V0cy93aWRnZXRzL3FtZW51YmFyLmNwcAkyMDI0LTA4LTI5IDIxOjE1OjUxLjQ5MTY4MjY4OCAr
MDMwMAorKysgcXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLTYuNy4yL3NyYy93aWRnZXRzL3dpZGdldHMv
cW1lbnViYXIuY3BwCTIwMjQtMDgtMjkgMjE6MTc6MzguODYwMTEwOTc5ICswMzAwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAicW1lbnViYXJfcC5oIgogI2luY2x1ZGUgPHByaXZhdGUvcXNj
cmVlbl9wLmg+CiAjaW5jbHVkZSAicWRlYnVnLmgiCisjaW5jbHVkZSA8cHJpdmF0ZS9xa2V5bWFw
cGVyX3AuaD4KIAogUVRfQkVHSU5fTkFNRVNQQUNFCiAKQEAgLTEwNzEsNiArMTA3Miw5IEBACiAg
ICAgICAgIFFBY3Rpb24gKmZpcnN0ID0gbnVsbHB0ciwgKmN1cnJlbnRTZWxlY3RlZCA9IG51bGxw
dHIsICpmaXJzdEFmdGVyQ3VycmVudCA9IG51bGxwdHI7CiAgICAgICAgIHsKICAgICAgICAgICAg
IGNvbnN0IFFDaGFyIGMgPSBlLT50ZXh0KCkuYXQoMCkudG9VcHBlcigpOworICAgICAgICAgICAg
UUxpc3Q8UUtleUNvbWJpbmF0aW9uPiBwb3NzaWJsZUtleXMgPSBRS2V5TWFwcGVyOjpwb3NzaWJs
ZUtleXMoZSk7CisgICAgICAgICAgICBpZighcG9zc2libGVLZXlzLmNvbnRhaW5zKFFLZXlDb21i
aW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGMudW5pY29kZSgpKSkpCisgICAgICAgICAgICAgICAgcG9z
c2libGVLZXlzICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGMudW5pY29kZSgpKTsK
ICAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBkLT5hY3Rpb25zLnNpemUoKTsgKytpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKGQtPmFjdGlvblJlY3RzLmF0KGkpLmlzTnVsbCgpKQogICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTEwNzksMTQgKzEwODMsMTkgQEAKICAgICAg
ICAgICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHFzaXpl
dHlwZSBhbXBlcnNhbmQgPSBzLmluZGV4T2YodScmJyk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChhbXBlcnNhbmQgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNbYW1wZXJz
YW5kKzFdLnRvVXBwZXIoKSA9PSBjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh
c2hDb3VudCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlyc3QpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gYWN0OwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChhY3QgPT0gZC0+Y3VycmVudEFjdGlvbikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3VycmVudFNlbGVjdGVkID0gYWN0OwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKCFmaXJzdEFmdGVyQ3VycmVudCAmJiBjdXJyZW50U2VsZWN0
ZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0QWZ0ZXJDdXJyZW50ID0g
YWN0OworICAgICAgICAgICAgICAgICAgICAgICAgUUxpc3Q8UUtleUNvbWJpbmF0aW9uPjo6Q29u
c3RJdGVyYXRvciBrOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGsgPSBwb3NzaWJsZUtl
eXMuY29uc3RCZWdpbigpOyBrICE9IHBvc3NpYmxlS2V5cy5jb25zdEVuZCgpOyArK2spIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBRS2V5Q29tYmluYXRpb24ga2V5X2UgPSAqazsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzW2FtcGVyc2FuZCsxXS50b1VwcGVyKCkudW5p
Y29kZSgpID09IChrZXlfZS50b0NvbWJpbmVkKCkgJiAweGZmZmYpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNoQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYoIWZpcnN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zmlyc3QgPSBhY3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFjdCA9PSBk
LT5jdXJyZW50QWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vy
cmVudFNlbGVjdGVkID0gYWN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNl
IGlmICghZmlyc3RBZnRlckN1cnJlbnQgJiYgY3VycmVudFNlbGVjdGVkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RBZnRlckN1cnJlbnQgPSBhY3Q7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIH0KZGlmZiAtTmF1ciBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIu
b3JpZy9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51LmNwcCBxdGJhc2UtZXZlcnl3aGVyZS1zcmMt
Ni43LjIvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudS5jcHAKLS0tIHF0YmFzZS1ldmVyeXdoZXJl
LXNyYy02LjcuMi5vcmlnL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnUuY3BwCTIwMjQtMDgtMjkg
MjE6MTU6NTEuNDkwNjgyNzMxICswMzAwCisrKyBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIv
c3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudS5jcHAJMjAyNC0wOC0yOSAyMToxNzozOC44NjExMTA5
MzYgKzAzMDAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxwcml2YXRlL3FndWlhcHBsaWNh
dGlvbl9wLmg+CiAjaW5jbHVkZSA8cXBhL3FwbGF0Zm9ybXRoZW1lLmg+CiAjaW5jbHVkZSA8cHJp
dmF0ZS9xc3R5bGVfcC5oPgorI2luY2x1ZGUgInByaXZhdGUvcWtleW1hcHBlcl9wLmgiCiAKIFFU
X0JFR0lOX05BTUVTUEFDRQogCkBAIC0zMzc0LDIwICszMzc1LDI4IEBACiAgICAgICAgICAgICAg
ICAgaW50IGNsYXNoQ291bnQgPSAwOwogICAgICAgICAgICAgICAgIFFBY3Rpb24gKmZpcnN0ID0g
bnVsbHB0ciwgKmN1cnJlbnRTZWxlY3RlZCA9IG51bGxwdHIsICpmaXJzdEFmdGVyQ3VycmVudCA9
IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgUUNoYXIgYyA9IGUtPnRleHQoKS5hdCgwKS50b1Vw
cGVyKCk7CisgICAgICAgICAgICAgICAgUUxpc3Q8UUtleUNvbWJpbmF0aW9uPiBwb3NzaWJsZUtl
eXMgPSBRS2V5TWFwcGVyOjpwb3NzaWJsZUtleXMoZSk7CisgICAgICAgICAgICAgICAgaWYoIXBv
c3NpYmxlS2V5cy5jb250YWlucyhRS2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChjLnVuaWNv
ZGUoKSkpKQorICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZUtleXMgKz0gUUtleUNvbWJpbmF0
aW9uOjpmcm9tQ29tYmluZWQoYy51bmljb2RlKCkpOwogICAgICAgICAgICAgICAgIGZvcihpbnQg
aSA9IDA7IGkgPCBkLT5hY3Rpb25zLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChkLT5hY3Rpb25SZWN0cy5hdChpKS5pc051bGwoKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICBRQWN0aW9uICphY3QgPSBkLT5hY3Rp
b25zLmF0KGkpOwogICAgICAgICAgICAgICAgICAgICBRS2V5U2VxdWVuY2Ugc2VxdWVuY2UgPSBR
S2V5U2VxdWVuY2U6Om1uZW1vbmljKGFjdC0+dGV4dCgpKTsKICAgICAgICAgICAgICAgICAgICAg
aW50IGtleSA9IHNlcXVlbmNlWzBdLnRvQ29tYmluZWQoKSAmIDB4ZmZmZjsgLy8gc3VzcGljaW91
cwotICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09IGMudW5pY29kZSgpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBjbGFzaENvdW50Kys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIWZpcnN0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gYWN0OwotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdCA9PSBkLT5jdXJyZW50QWN0aW9uKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWxlY3RlZCA9IGFjdDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKCFmaXJzdEFmdGVyQ3VycmVudCAmJiBjdXJyZW50U2VsZWN0
ZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RBZnRlckN1cnJlbnQgPSBhY3Q7
CisgICAgICAgICAgICAgICAgICAgIFFMaXN0PFFLZXlDb21iaW5hdGlvbj46OkNvbnN0SXRlcmF0
b3IgazsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gcG9zc2libGVLZXlzLmNvbnN0QmVn
aW4oKTsgayAhPSBwb3NzaWJsZUtleXMuY29uc3RFbmQoKTsgKytrKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBRS2V5Q29tYmluYXRpb24ga2V5X2UgPSAqazsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChrZXkgPT0gKGtleV9lLnRvQ29tYmluZWQoKSAmIDB4ZmZmZikpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzaENvdW50Kys7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFmaXJzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmly
c3QgPSBhY3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdCA9PSBkLT5jdXJy
ZW50QWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0
ZWQgPSBhY3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWZpcnN0QWZ0
ZXJDdXJyZW50ICYmIGN1cnJlbnRTZWxlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmlyc3RBZnRlckN1cnJlbnQgPSBhY3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKGNsYXNoQ291bnQgPT0g
MSkKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MDAzLXF0Ni1iYXNlLTYuOC4wLXFt
ZW51X2ZpeF9zaG9ydGN1dHMucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwNzY0ADAwMDA3NjQAMDAwMDAwMjEyNTUA
MTQ3NDEyNTEzMzQAMDIwMjY3ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHVzdGFyICAAc2VyZ2V5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzZXJnZXkAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRpZmYgLU5hdXIgcXRiYXNlLW9yaWcv
c3JjL2d1aS9wbGF0Zm9ybS91bml4L3F4a2Jjb21tb24uY3BwIHF0YmFzZS9zcmMvZ3VpL3BsYXRm
b3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAKLS0tIHF0YmFzZS1vcmlnL3NyYy9ndWkvcGxhdGZvcm0v
dW5peC9xeGtiY29tbW9uLmNwcAkyMDI0LTEwLTE4IDIzOjA2OjUxLjIyNDY0ODEyMiArMDMwMAor
KysgcXRiYXNlL3NyYy9ndWkvcGxhdGZvcm0vdW5peC9xeGtiY29tbW9uLmNwcAkyMDI0LTEwLTE4
IDIzOjEzOjAwLjc3NTQ0MzczNSArMDMwMApAQCAtNjM0LDYgKzYzNCw3IEBACiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogICAgIC8vIGdldCBrYiBzdGF0ZSBmcm9tIHRoZSBtYXN0ZXIg
c3RhdGUgYW5kIHVwZGF0ZSB0aGUgdGVtcG9yYXJ5IHN0YXRlCisgICAgeGtiX2xheW91dF9pbmRl
eF90IG51bUxheW91dHMgPSB4a2Jfa2V5bWFwX251bV9sYXlvdXRzKGtleW1hcCk7CiAgICAgeGti
X2xheW91dF9pbmRleF90IGxvY2tlZExheW91dCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0
KHN0YXRlLCBYS0JfU1RBVEVfTEFZT1VUX0xPQ0tFRCk7CiAgICAgeGtiX21vZF9tYXNrX3QgbGF0
Y2hlZE1vZHMgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMoc3RhdGUsIFhLQl9TVEFURV9NT0RT
X0xBVENIRUQpOwogICAgIHhrYl9tb2RfbWFza190IGxvY2tlZE1vZHMgPSB4a2Jfc3RhdGVfc2Vy
aWFsaXplX21vZHMoc3RhdGUsIFhLQl9TVEFURV9NT0RTX0xPQ0tFRCk7CkBAIC03MTYsNiArNzE3
LDY3IEBACiAgICAgICAgIH0KICAgICB9CiAKKyAgICBmb3IgKHhrYl9sYXlvdXRfaW5kZXhfdCBs
YXlvdXQgPSAwOyBsYXlvdXQgPCBudW1MYXlvdXRzOyBsYXlvdXQrKykgeworICAgICAgICB4a2Jf
c3RhdGVfdXBkYXRlX21hc2socXVlcnlTdGF0ZSwgMCwgbGF0Y2hlZE1vZHMsIGxvY2tlZE1vZHMs
IGxheW91dCwgMCwgbG9ja2VkTGF5b3V0KTsKKworICAgICAgICBzeW0gPSB4a2Jfc3RhdGVfa2V5
X2dldF9vbmVfc3ltKHF1ZXJ5U3RhdGUsIGV2ZW50LT5uYXRpdmVTY2FuQ29kZSgpKTsKKyAgICAg
ICAgaWYgKHN5bSA9PSBYS0JfS0VZX05vU3ltYm9sKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaW50IGJhc2VRdEtleSA9IGtleXN5bVRvUXRLZXlfaW50ZXJuYWwoc3ltLCBtb2Rp
ZmllcnMsIHF1ZXJ5U3RhdGUsIGtleWNvZGUsIHN1cGVyQXNNZXRhLCBoeXBlckFzTWV0YSk7Cisg
ICAgICAgIGlmIChiYXNlUXRLZXkgJiYgIXJlc3VsdC5jb250YWlucyhiYXNlUXRLZXkgKyBpbnQo
bW9kaWZpZXJzKSkgJiYgUUNoYXIoYmFzZVF0S2V5KS5pc0xldHRlcigpKSAvL05PVEU6IFdlIHNo
b3VsZCBkaXNhbGxvdyBkdXBsaWNhdGVzIGluIHRoZSByZXN1bHQgbGlzdAorICAgICAgICAgICAg
cmVzdWx0ICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGJhc2VRdEtleSArIGludCht
b2RpZmllcnMpKTsKKworICAgICAgICB4a2JfbW9kX21hc2tfdCBkZXByZXNzZWQ7CisgICAgICAg
IGludCBxdEtleSA9IDA7CisgICAgICAgIC8vIG9idGFpbiBhIGxpc3Qgb2YgcG9zc2libGUgc2hv
cnRjdXRzIGZvciB0aGUgZ2l2ZW4ga2V5IGV2ZW50CisgICAgICAgIGZvciAodWludCBpID0gMTsg
aSA8IHNpemVvZihNb2RzVGJsKSAvIHNpemVvZigqTW9kc1RibCkgOyArK2kpIHsKKyAgICAgICAg
ICAgIFF0OjpLZXlib2FyZE1vZGlmaWVycyBuZWVkZWRNb2RzID0gTW9kc1RibFtpXTsKKyAgICAg
ICAgICAgIGlmICgobW9kaWZpZXJzICYgbmVlZGVkTW9kcykgPT0gbmVlZGVkTW9kcykgeworICAg
ICAgICAgICAgICAgIGlmIChpID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTGF0
aW4xKGJhc2VRdEtleSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gYWRkIGEgbGF0aW4ga2V5IGFzIGEgZmFsbCBiYWNrIGtleQorICAg
ICAgICAgICAgICAgICAgICBzeW0gPSBsb29rdXBMYXRpbktleXN5bShzdGF0ZSwga2V5Y29kZSk7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVwcmVzc2Vk
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRlZE1vZHMgJiBRdDo6QWx0TW9kaWZp
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgYWx0TW9kKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRlZE1vZHMgJiBRdDo6U2hpZnRNb2RpZmllcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8PCBzaGlmdE1vZCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OkNvbnRyb2xNb2RpZmllcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8PCBjb250cm9sTW9kKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGFNb2QgPCAzMiAmJiBuZWVkZWRNb2RzICYgUXQ6
Ok1ldGFNb2RpZmllcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8
PCBtZXRhTW9kKTsKKyAgICAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrKHF1
ZXJ5U3RhdGUsIGRlcHJlc3NlZCwgbGF0Y2hlZE1vZHMsIGxvY2tlZE1vZHMsIDAsIDAsIGxvY2tl
ZExheW91dCk7CisgICAgICAgICAgICAgICAgICAgIHN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29u
ZV9zeW0ocXVlcnlTdGF0ZSwga2V5Y29kZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmIChzeW0gPT0gWEtCX0tFWV9Ob1N5bWJvbCkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgICAgICBRdDo6S2V5Ym9hcmRNb2RpZmllcnMgbW9kcyA9
IG1vZGlmaWVycyAmIH5uZWVkZWRNb2RzOworICAgICAgICAgICAgICAgIHF0S2V5ID0ga2V5c3lt
VG9RdEtleV9pbnRlcm5hbChzeW0sIG1vZHMsIHF1ZXJ5U3RhdGUsIGtleWNvZGUsIHN1cGVyQXNN
ZXRhLCBoeXBlckFzTWV0YSk7CisgICAgICAgICAgICAgICAgaWYgKCFxdEtleSB8fCBxdEtleSA9
PSBiYXNlUXRLZXkgfHwgIVFDaGFyKHF0S2V5KS5pc0xldHRlcigpKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIGNhdGNoIG9ubHkgbW9yZSBzcGVj
aWZpYyBzaG9ydGN1dHMsIGkuZS4gQ3RybCtTaGlmdCs9IGFsc28gZ2VuZXJhdGVzIEN0cmwrKyBh
bmQgKywKKyAgICAgICAgICAgICAgICAvLyBidXQgQ3RybCsrIGlzIG1vcmUgc3BlY2lmaWMgdGhh
biArLCBzbyB3ZSBzaG91bGQgc2tpcCB0aGUgbGFzdCBvbmUKKyAgICAgICAgICAgICAgICBib29s
IGFtYmlndW91cyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoUUtleUNvbWJpbmF0aW9u
IHNob3J0Y3V0IDogc3RkOjphc19jb25zdChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChzaG9ydGN1dC5rZXkoKSA9PSBxdEtleSAmJiAoc2hvcnRjdXQua2V5Ym9hcmRNb2RpZmll
cnMoKSAmIG1vZHMpID09IG1vZHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFtYmlndW91
cyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYW1iaWd1b3Vz
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGlmICgh
cmVzdWx0LmNvbnRhaW5zKHF0S2V5ICsgaW50KG1vZHMpKSkgLy9OT1RFOiBXZSBzaG91bGQgZGlz
YWxsb3cgZHVwbGljYXRlcyBpbiB0aGUgcmVzdWx0IGxpc3QKKyAgICAgICAgICAgICAgICByZXN1
bHQgKz0gUUtleUNvbWJpbmF0aW9uOjpmcm9tQ29tYmluZWQocXRLZXkgKyBpbnQobW9kcykpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApkaWZmIC1OYXVyIHF0YmFzZS1vcmlnL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnViYXIuY3Bw
IHF0YmFzZS9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51YmFyLmNwcAotLS0gcXRiYXNlLW9yaWcv
c3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudWJhci5jcHAJMjAyNC0xMC0xOCAyMzowNjo1MS41NzI2
MzI4NjcgKzAzMDAKKysrIHF0YmFzZS9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51YmFyLmNwcAky
MDI0LTEwLTE4IDIzOjEzOjAwLjc3NjQ0MzY5MSArMDMwMApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgInFtZW51YmFyX3AuaCIKICNpbmNsdWRlIDxwcml2YXRlL3FzY3JlZW5fcC5oPgogI2lu
Y2x1ZGUgInFkZWJ1Zy5oIgorI2luY2x1ZGUgPHByaXZhdGUvcWtleW1hcHBlcl9wLmg+CiAKIFFU
X0JFR0lOX05BTUVTUEFDRQogCkBAIC0xMDc4LDYgKzEwNzksOSBAQAogICAgICAgICBRQWN0aW9u
ICpmaXJzdCA9IG51bGxwdHIsICpjdXJyZW50U2VsZWN0ZWQgPSBudWxscHRyLCAqZmlyc3RBZnRl
ckN1cnJlbnQgPSBudWxscHRyOwogICAgICAgICB7CiAgICAgICAgICAgICBjb25zdCBRQ2hhciBj
ID0gZS0+dGV4dCgpLmF0KDApLnRvVXBwZXIoKTsKKyAgICAgICAgICAgIFFMaXN0PFFLZXlDb21i
aW5hdGlvbj4gcG9zc2libGVLZXlzID0gUUtleU1hcHBlcjo6cG9zc2libGVLZXlzKGUpOworICAg
ICAgICAgICAgaWYoIXBvc3NpYmxlS2V5cy5jb250YWlucyhRS2V5Q29tYmluYXRpb246OmZyb21D
b21iaW5lZChjLnVuaWNvZGUoKSkpKQorICAgICAgICAgICAgICAgIHBvc3NpYmxlS2V5cyArPSBR
S2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChjLnVuaWNvZGUoKSk7CiAgICAgICAgICAgICBm
b3IoaW50IGkgPSAwOyBpIDwgZC0+YWN0aW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAg
ICAgIGlmIChkLT5hY3Rpb25SZWN0cy5hdChpKS5pc051bGwoKSkKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CkBAIC0xMDg2LDE0ICsxMDkwLDE5IEBACiAgICAgICAgICAgICAgICAgaWYg
KCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICBxc2l6ZXR5cGUgYW1wZXJzYW5k
ID0gcy5pbmRleE9mKHUnJicpOwogICAgICAgICAgICAgICAgICAgICBpZiAoYW1wZXJzYW5kID49
IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzW2FtcGVyc2FuZCsxXS50b1VwcGVy
KCkgPT0gYykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNoQ291bnQrKzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaXJzdCA9IGFjdDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoYWN0ID09IGQtPmN1cnJlbnRBY3Rpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRTZWxlY3RlZCA9IGFjdDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlIGlmICghZmlyc3RBZnRlckN1cnJlbnQgJiYgY3VycmVudFNlbGVjdGVkKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEFmdGVyQ3VycmVudCA9IGFjdDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFFMaXN0PFFLZXlDb21iaW5hdGlvbj46OkNvbnN0SXRlcmF0b3IgazsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZvcihrID0gcG9zc2libGVLZXlzLmNvbnN0QmVnaW4o
KTsgayAhPSBwb3NzaWJsZUtleXMuY29uc3RFbmQoKTsgKytrKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUUtleUNvbWJpbmF0aW9uIGtleV9lID0gKms7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYoc1thbXBlcnNhbmQrMV0udG9VcHBlcigpLnVuaWNvZGUoKSA9PSAoa2V5
X2UudG9Db21iaW5lZCgpICYgMHhmZmZmKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzaENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFm
aXJzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gYWN0Owor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhY3QgPT0gZC0+Y3VycmVudEFjdGlv
bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWxlY3RlZCA9
IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWZpcnN0QWZ0
ZXJDdXJyZW50ICYmIGN1cnJlbnRTZWxlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpcnN0QWZ0ZXJDdXJyZW50ID0gYWN0OworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CmRpZmYgLU5hdXIgcXRiYXNlLW9yaWcvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudS5jcHAg
cXRiYXNlL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnUuY3BwCi0tLSBxdGJhc2Utb3JpZy9zcmMv
d2lkZ2V0cy93aWRnZXRzL3FtZW51LmNwcAkyMDI0LTEwLTE4IDIzOjA4OjM4LjIzMDk1NzEzOSAr
MDMwMAorKysgcXRiYXNlL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnUuY3BwCTIwMjQtMTAtMTgg
MjM6MTM6MDAuNzc3NDQzNjQ3ICswMzAwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8cHJp
dmF0ZS9xZ3VpYXBwbGljYXRpb25fcC5oPgogI2luY2x1ZGUgPHFwYS9xcGxhdGZvcm10aGVtZS5o
PgogI2luY2x1ZGUgPHByaXZhdGUvcXN0eWxlX3AuaD4KKyNpbmNsdWRlICJwcml2YXRlL3FrZXlt
YXBwZXJfcC5oIgogCiBRVF9CRUdJTl9OQU1FU1BBQ0UKIApAQCAtMzM3NCwyMCArMzM3NSwyOCBA
QAogICAgICAgICAgICAgICAgIGludCBjbGFzaENvdW50ID0gMDsKICAgICAgICAgICAgICAgICBR
QWN0aW9uICpmaXJzdCA9IG51bGxwdHIsICpjdXJyZW50U2VsZWN0ZWQgPSBudWxscHRyLCAqZmly
c3RBZnRlckN1cnJlbnQgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIFFDaGFyIGMgPSBlLT50
ZXh0KCkuYXQoMCkudG9VcHBlcigpOworICAgICAgICAgICAgICAgIFFMaXN0PFFLZXlDb21iaW5h
dGlvbj4gcG9zc2libGVLZXlzID0gUUtleU1hcHBlcjo6cG9zc2libGVLZXlzKGUpOworICAgICAg
ICAgICAgICAgIGlmKCFwb3NzaWJsZUtleXMuY29udGFpbnMoUUtleUNvbWJpbmF0aW9uOjpmcm9t
Q29tYmluZWQoYy51bmljb2RlKCkpKSkKKyAgICAgICAgICAgICAgICAgICAgcG9zc2libGVLZXlz
ICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGMudW5pY29kZSgpKTsKICAgICAgICAg
ICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZC0+YWN0aW9ucy5zaXplKCk7ICsraSkgewogICAg
ICAgICAgICAgICAgICAgICBpZiAoZC0+YWN0aW9uUmVjdHMuYXQoaSkuaXNOdWxsKCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgUUFjdGlv
biAqYWN0ID0gZC0+YWN0aW9ucy5hdChpKTsKICAgICAgICAgICAgICAgICAgICAgUUtleVNlcXVl
bmNlIHNlcXVlbmNlID0gUUtleVNlcXVlbmNlOjptbmVtb25pYyhhY3QtPnRleHQoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIGludCBrZXkgPSBzZXF1ZW5jZVswXS50b0NvbWJpbmVkKCkgJiAweGZm
ZmY7IC8vIHN1c3BpY2lvdXMKLSAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBjLnVuaWNv
ZGUoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY2xhc2hDb3VudCsrOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aXJzdCA9IGFjdDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3QgPT0gZC0+Y3VycmVu
dEFjdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0ZWQgPSBh
Y3Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghZmlyc3RBZnRlckN1cnJlbnQg
JiYgY3VycmVudFNlbGVjdGVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0QWZ0
ZXJDdXJyZW50ID0gYWN0OworICAgICAgICAgICAgICAgICAgICBRTGlzdDxRS2V5Q29tYmluYXRp
b24+OjpDb25zdEl0ZXJhdG9yIGs7CisgICAgICAgICAgICAgICAgICAgIGZvciAoayA9IHBvc3Np
YmxlS2V5cy5jb25zdEJlZ2luKCk7IGsgIT0gcG9zc2libGVLZXlzLmNvbnN0RW5kKCk7ICsraykg
eworICAgICAgICAgICAgICAgICAgICAgICAgUUtleUNvbWJpbmF0aW9uIGtleV9lID0gKms7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09IChrZXlfZS50b0NvbWJpbmVkKCkgJiAw
eGZmZmYpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc2hDb3VudCsrOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlyc3QpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpcnN0ID0gYWN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChhY3QgPT0gZC0+Y3VycmVudEFjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3VycmVudFNlbGVjdGVkID0gYWN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKCFmaXJzdEFmdGVyQ3VycmVudCAmJiBjdXJyZW50U2VsZWN0ZWQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpcnN0QWZ0ZXJDdXJyZW50ID0gYWN0OworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlm
IChjbGFzaENvdW50ID09IDEpCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17525</attachid>
            <date>2025-01-13 22:18:09 +0300</date>
            <delta_ts>2025-01-13 22:18:09 +0300</delta_ts>
            <desc>Исправленные патчи для Qt6 (исправлено)</desc>
            <filename>qt6-base-qmenu_fix_shortcuts-patches.tar</filename>
            <type>application/x-tar</type>
            <size>30720</size>
            <attacher name="Сукиязов С.А.">sergey.sukiyazov</attacher>
            
              <data encoding="base64">OTAwMy1xdDYtYmFzZS02LjcuMi1xbWVudV9maXhfc2hvcnRjdXRzLnBhdGNoAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDc2
NAAwMDAwNzY0ADAwMDAwMDI0NTY2ADE0NzQxMjYzMjYwADAyMDMwMQAgMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNlcmdleQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAc2VyZ2V5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG
cm9tOiBTZXJnZXkgQS4gU3VraXlhem92IDxzZXJnZXkuc3VraXlhem92QHlhbmRleC5ydT4KRGF0
ZTogVGh1LCBBdWcgMjkgMjAyNCAgMjE6MTk6MTIgKzAzMDAKU3ViamVjdDogSW1wcm92ZW1lbnRz
IGZvciBoYW5kbGluZyBvZiBrZXlib2FyZCBzaG9ydGN1dHMKClRoZSBvcmlnaW5hbCBpbXBsZW1l
bnRhdGlvbiBvZiBrZXlib2FyZCBzaG9ydGN1dHMgaW4gUXQgaXMga2V5Ym9hcmQgbGF5b3V0IGRl
cGVuZGVkLiBJLmUuCnRoZSBBbHQrRiBjb21iaW5hdGlvbiBpcyB1c2VkIHRvIGFjY2VzcyBtZW51
IGJhcidzIEZpbGUgaXRlbSwgYnV0IGl0IHdpbGwgbm90IHdvcmsgaWYgdGhlClJ1c3NpYW4ga2V5
Ym9hcmQgbGF5b3V0IGlzIGFjdGl2ZSwgZXZlbiBpZiBBbHQrW0N5cmlsbGljX0FdIGlzIHByZXNz
ZWQuCgpUaGlzIHBhdGNoIGltcHJvdmVzIHRoaXMgYmVoYXZpb3Igb2Yga2V5Ym9hciBzaG9ydGN1
dHMgdG8gYmUgaW5kZXBlbmRlZCBvZiBhY3RpdmUga2V5Ym9hcmQKbGF5b3V0IE9OTFkgZm9yIGtl
eXMgd2hpY2ggcHJvZHVjZXMgbGV0dGVycy4gVGggbG9naWMgb2YgaW1wbGVtZW50YXRpb24gaXM6
CgogMS4gVGhlIFFLZXlNYXBwZXI6OnBvc3NpYmxlS2V5cyguLi4pIGlzIG1vZGlmaWVkIHRvIHNj
YW4gYWRkaXRpb25hbHkgYWxsIGNvbmZpZ3VyZWQga2V5Ym9hcmQKICAgIGxheW91dHMgaW4gdGhl
IHN5c3RlbSBhbmQgYWRkIGFsbCBrZXljb2RlcyB3aGljaCBjYW4gcHJvZHVjZSBsZXR0ZXJzLiBT
bywgdGhlIGZpbmFsIGxpc3QKICAgIG9mIHBvc3NpYmxlIGtleWNvZGVzIGNvbnRhaW5zIHR3byBw
YXJ0cyAtIGZpc3QgaXMgc2FtZSBhcyBmb3IgdW5wYXRjaGVkIGltcGxlbWVudGF0aW9uLAogICAg
c2Vjb25kIGNvbnRhaW5zIGFsbCBwb3NzaWJsZSBrZXljb2RlcyBib3VkIHRvIHRoZSBwaHlzaWNh
bCBrZXlib2FyZCBrZXkgYW5kIGNhbiBwcm9kdWNlCiAgICBsZXR0ZXJzIGluIG90aGVyIHRoYW4g
YWN0aXZlIGtleWJvYXJkIGxheW91dC4KIDIuIENobmFnZSBiZWhhdmlvdXIgb2YgaW1wbGVtZW50
YXRpb24gb2YgUU1lbnU6OmtleVByZXNzRXZ2ZW50KC4uLikgYW5kIFFNZW51QmFyOjprZXlQcmVz
c0V2dmVudCguLi4pCiAgICB0byBjaGVjayBhbGwgcG9zc2libGUga2V5Y29kZXMgd2hpY2ggYm91
bmQgdG8gcHJlc3NlZCBwaHlzaWNhbCBrZXlib2FyIGtleSBpbnN0ZWFkIG9mIHNpbmdsZQogICAg
a2V5Y29kZSBib3VuZCB0byByZWNpdmVkIFFLZXlQcmVzc0V2ZW50LgoKU28sIGFmdGVyIHRob3Nl
IGNoYW5nZXMgdGhlIGNvbWJpbmF0aW9ucyBBbHQrRiBhbmQgQWx0K1tDeXJpbGxpY19BXSB3aWxs
IGFjdGl2YXRlIG1lbnUgYmFyJ3MgRmlsZSBpdGVtLgpBbGwgb3RoZXIgY29tYmluYXRpb25zLCB3
aGljaCBhcmUgYm91bmQgdG8gcGh5c2ljYWwga2V5Ym9hcmQga2V5cyB3aGljaCBub3QgcHJvZHVj
ZSBsZXR0ZXJzLCB3aWxsCndvcmsgc2FtZSB3YXkgYXMgaW4gdW5wYXRjaGVkIHZlcnNpb24uCi0t
LQpkaWZmIC1OYXVyIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02LjcuMi5vcmlnL3NyYy9ndWkvcGxh
dGZvcm0vdW5peC9xeGtiY29tbW9uLmNwcCBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIvc3Jj
L2d1aS9wbGF0Zm9ybS91bml4L3F4a2Jjb21tb24uY3BwCi0tLSBxdGJhc2UtZXZlcnl3aGVyZS1z
cmMtNi43LjIub3JpZy9zcmMvZ3VpL3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAJMjAyNC0w
OC0yOSAyMToxNTo1MS4xNTY2OTY5NTIgKzAzMDAKKysrIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02
LjcuMi9zcmMvZ3VpL3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAJMjAyNC0wOC0yOSAyMTox
NzozOC44NTkxMTEwMjEgKzAzMDAKQEAgLTYzNCw2ICs2MzQsNyBAQAogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICAvLyBnZXQga2Igc3RhdGUgZnJvbSB0aGUgbWFzdGVyIHN0YXRl
IGFuZCB1cGRhdGUgdGhlIHRlbXBvcmFyeSBzdGF0ZQorICAgIHhrYl9sYXlvdXRfaW5kZXhfdCBu
dW1MYXlvdXRzID0geGtiX2tleW1hcF9udW1fbGF5b3V0cyhrZXltYXApOwogICAgIHhrYl9sYXlv
dXRfaW5kZXhfdCBsb2NrZWRMYXlvdXQgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX2xheW91dChzdGF0
ZSwgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOwogICAgIHhrYl9tb2RfbWFza190IGxhdGNoZWRN
b2RzID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzKHN0YXRlLCBYS0JfU1RBVEVfTU9EU19MQVRD
SEVEKTsKICAgICB4a2JfbW9kX21hc2tfdCBsb2NrZWRNb2RzID0geGtiX3N0YXRlX3NlcmlhbGl6
ZV9tb2RzKHN0YXRlLCBYS0JfU1RBVEVfTU9EU19MT0NLRUQpOwpAQCAtNzE2LDYgKzcxNyw2NyBA
QAogICAgICAgICB9CiAgICAgfQogCisgICAgZm9yICh4a2JfbGF5b3V0X2luZGV4X3QgbGF5b3V0
ID0gMDsgbGF5b3V0IDwgbnVtTGF5b3V0czsgbGF5b3V0KyspIHsKKyAgICAgICAgeGtiX3N0YXRl
X3VwZGF0ZV9tYXNrKHF1ZXJ5U3RhdGUsIDAsIGxhdGNoZWRNb2RzLCBsb2NrZWRNb2RzLCBsYXlv
dXQsIDAsIGxvY2tlZExheW91dCk7CisKKyAgICAgICAgc3ltID0geGtiX3N0YXRlX2tleV9nZXRf
b25lX3N5bShxdWVyeVN0YXRlLCBldmVudC0+bmF0aXZlU2NhbkNvZGUoKSk7CisgICAgICAgIGlm
IChzeW0gPT0gWEtCX0tFWV9Ob1N5bWJvbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIGludCBiYXNlUXRLZXkgPSBrZXlzeW1Ub1F0S2V5X2ludGVybmFsKHN5bSwgbW9kaWZpZXJz
LCBxdWVyeVN0YXRlLCBrZXljb2RlLCBzdXBlckFzTWV0YSwgaHlwZXJBc01ldGEpOworICAgICAg
ICBpZiAoYmFzZVF0S2V5ICYmICFyZXN1bHQuY29udGFpbnMoYmFzZVF0S2V5ICsgaW50KG1vZGlm
aWVycykpICYmIFFDaGFyKGJhc2VRdEtleSkuaXNMZXR0ZXIoKSkgLy9OT1RFOiBXZSBzaG91bGQg
ZGlzYWxsb3cgZHVwbGljYXRlcyBpbiB0aGUgcmVzdWx0IGxpc3QKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBRS2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChiYXNlUXRLZXkgKyBpbnQobW9kaWZp
ZXJzKSk7CisKKyAgICAgICAgeGtiX21vZF9tYXNrX3QgZGVwcmVzc2VkOworICAgICAgICBpbnQg
cXRLZXkgPSAwOworICAgICAgICAvLyBvYnRhaW4gYSBsaXN0IG9mIHBvc3NpYmxlIHNob3J0Y3V0
cyBmb3IgdGhlIGdpdmVuIGtleSBldmVudAorICAgICAgICBmb3IgKHVpbnQgaSA9IDE7IGkgPCBz
aXplb2YoTW9kc1RibCkgLyBzaXplb2YoKk1vZHNUYmwpIDsgKytpKSB7CisgICAgICAgICAgICBR
dDo6S2V5Ym9hcmRNb2RpZmllcnMgbmVlZGVkTW9kcyA9IE1vZHNUYmxbaV07CisgICAgICAgICAg
ICBpZiAoKG1vZGlmaWVycyAmIG5lZWRlZE1vZHMpID09IG5lZWRlZE1vZHMpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoaSA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0xhdGluMShi
YXNlUXRLZXkpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgICAgIC8vIGFkZCBhIGxhdGluIGtleSBhcyBhIGZhbGwgYmFjayBrZXkKKyAgICAgICAg
ICAgICAgICAgICAgc3ltID0gbG9va3VwTGF0aW5LZXlzeW0oc3RhdGUsIGtleWNvZGUpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCA9IDA7
CisgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OkFsdE1vZGlmaWVyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVzc2VkIHw9ICgxIDw8IGFsdE1vZCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OlNoaWZ0TW9kaWZpZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgc2hpZnRNb2QpOworICAgICAg
ICAgICAgICAgICAgICBpZiAobmVlZGVkTW9kcyAmIFF0OjpDb250cm9sTW9kaWZpZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgY29udHJvbE1vZCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtZXRhTW9kIDwgMzIgJiYgbmVlZGVkTW9kcyAmIFF0OjpNZXRh
TW9kaWZpZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgbWV0
YU1vZCk7CisgICAgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFzayhxdWVyeVN0
YXRlLCBkZXByZXNzZWQsIGxhdGNoZWRNb2RzLCBsb2NrZWRNb2RzLCAwLCAwLCBsb2NrZWRMYXlv
dXQpOworICAgICAgICAgICAgICAgICAgICBzeW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3lt
KHF1ZXJ5U3RhdGUsIGtleWNvZGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBpZiAoc3ltID09IFhLQl9LRVlfTm9TeW1ib2wpCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICAgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1vZHMgPSBtb2Rp
ZmllcnMgJiB+bmVlZGVkTW9kczsKKyAgICAgICAgICAgICAgICBxdEtleSA9IGtleXN5bVRvUXRL
ZXlfaW50ZXJuYWwoc3ltLCBtb2RzLCBxdWVyeVN0YXRlLCBrZXljb2RlLCBzdXBlckFzTWV0YSwg
aHlwZXJBc01ldGEpOworICAgICAgICAgICAgICAgIGlmICghcXRLZXkgfHwgcXRLZXkgPT0gYmFz
ZVF0S2V5IHx8ICFRQ2hhcihxdEtleSkuaXNMZXR0ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBjYXRjaCBvbmx5IG1vcmUgc3BlY2lmaWMg
c2hvcnRjdXRzLCBpLmUuIEN0cmwrU2hpZnQrPSBhbHNvIGdlbmVyYXRlcyBDdHJsKysgYW5kICss
CisgICAgICAgICAgICAgICAgLy8gYnV0IEN0cmwrKyBpcyBtb3JlIHNwZWNpZmljIHRoYW4gKywg
c28gd2Ugc2hvdWxkIHNraXAgdGhlIGxhc3Qgb25lCisgICAgICAgICAgICAgICAgYm9vbCBhbWJp
Z3VvdXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKFFLZXlDb21iaW5hdGlvbiBzaG9y
dGN1dCA6IHN0ZDo6YXNfY29uc3QocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
c2hvcnRjdXQua2V5KCkgPT0gcXRLZXkgJiYgKHNob3J0Y3V0LmtleWJvYXJkTW9kaWZpZXJzKCkg
JiBtb2RzKSA9PSBtb2RzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhbWJpZ3VvdXMgPSB0
cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGFtYmlndW91cykKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBpZiAoIXJlc3Vs
dC5jb250YWlucyhxdEtleSArIGludChtb2RzKSkpIC8vTk9URTogV2Ugc2hvdWxkIGRpc2FsbG93
IGR1cGxpY2F0ZXMgaW4gdGhlIHJlc3VsdCBsaXN0CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9
IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKHF0S2V5ICsgaW50KG1vZHMpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlm
ZiAtTmF1ciBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIub3JpZy9zcmMvd2lkZ2V0cy93aWRn
ZXRzL3FtZW51YmFyLmNwcCBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIvc3JjL3dpZGdldHMv
d2lkZ2V0cy9xbWVudWJhci5jcHAKLS0tIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02LjcuMi5vcmln
L3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnViYXIuY3BwCTIwMjQtMDgtMjkgMjE6MTU6NTEuNDkx
NjgyNjg4ICswMzAwCisrKyBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIvc3JjL3dpZGdldHMv
d2lkZ2V0cy9xbWVudWJhci5jcHAJMjAyNC0wOC0yOSAyMToxNzozOC44NjAxMTA5NzkgKzAzMDAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJxbWVudWJhcl9wLmgiCiAjaW5jbHVkZSA8cHJp
dmF0ZS9xc2NyZWVuX3AuaD4KICNpbmNsdWRlICJxZGVidWcuaCIKKyNpbmNsdWRlIDxwcml2YXRl
L3FrZXltYXBwZXJfcC5oPgogCiBRVF9CRUdJTl9OQU1FU1BBQ0UKIApAQCAtMTA3MSw2ICsxMDcy
LDkgQEAKICAgICAgICAgUUFjdGlvbiAqZmlyc3QgPSBudWxscHRyLCAqY3VycmVudFNlbGVjdGVk
ID0gbnVsbHB0ciwgKmZpcnN0QWZ0ZXJDdXJyZW50ID0gbnVsbHB0cjsKICAgICAgICAgewogICAg
ICAgICAgICAgY29uc3QgUUNoYXIgYyA9IGUtPnRleHQoKS5hdCgwKS50b1VwcGVyKCk7CisgICAg
ICAgICAgICBRTGlzdDxRS2V5Q29tYmluYXRpb24+IHBvc3NpYmxlS2V5cyA9IFFLZXlNYXBwZXI6
OnBvc3NpYmxlS2V5cyhlKTsKKyAgICAgICAgICAgIGlmKCFwb3NzaWJsZUtleXMuY29udGFpbnMo
UUtleUNvbWJpbmF0aW9uOjpmcm9tQ29tYmluZWQoYy51bmljb2RlKCkpKSkKKyAgICAgICAgICAg
ICAgICBwb3NzaWJsZUtleXMgKz0gUUtleUNvbWJpbmF0aW9uOjpmcm9tQ29tYmluZWQoYy51bmlj
b2RlKCkpOwogICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGQtPmFjdGlvbnMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgICAgICAgICBpZiAoZC0+YWN0aW9uUmVjdHMuYXQoaSkuaXNOdWxs
KCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTA3OSwxNCArMTA4MywxOSBA
QAogICAgICAgICAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgcXNpemV0eXBlIGFtcGVyc2FuZCA9IHMuaW5kZXhPZih1JyYnKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGFtcGVyc2FuZCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
c1thbXBlcnNhbmQrMV0udG9VcHBlcigpID09IGMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzaENvdW50Kys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmaXJz
dCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBhY3Q7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdCA9PSBkLT5jdXJyZW50QWN0aW9uKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0ZWQgPSBhY3Q7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWZpcnN0QWZ0ZXJDdXJyZW50ICYmIGN1cnJl
bnRTZWxlY3RlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RBZnRlckN1
cnJlbnQgPSBhY3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBRTGlzdDxRS2V5Q29tYmluYXRp
b24+OjpDb25zdEl0ZXJhdG9yIGs7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IoayA9IHBv
c3NpYmxlS2V5cy5jb25zdEJlZ2luKCk7IGsgIT0gcG9zc2libGVLZXlzLmNvbnN0RW5kKCk7ICsr
aykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFLZXlDb21iaW5hdGlvbiBrZXlfZSA9
ICprOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNbYW1wZXJzYW5kKzFdLnRvVXBw
ZXIoKS51bmljb2RlKCkgPT0gKGtleV9lLnRvQ29tYmluZWQoKSAmIDB4ZmZmZikpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc2hDb3VudCsrOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZighZmlyc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaXJzdCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYo
YWN0ID09IGQtPmN1cnJlbnRBY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50U2VsZWN0ZWQgPSBhY3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKCFmaXJzdEFmdGVyQ3VycmVudCAmJiBjdXJyZW50U2VsZWN0ZWQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEFmdGVyQ3VycmVudCA9IGFjdDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQpkaWZmIC1OYXVyIHF0YmFzZS1ldmVyeXdoZXJlLXNy
Yy02LjcuMi5vcmlnL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnUuY3BwIHF0YmFzZS1ldmVyeXdo
ZXJlLXNyYy02LjcuMi9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51LmNwcAotLS0gcXRiYXNlLWV2
ZXJ5d2hlcmUtc3JjLTYuNy4yLm9yaWcvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudS5jcHAJMjAy
NC0wOC0yOSAyMToxNTo1MS40OTA2ODI3MzEgKzAzMDAKKysrIHF0YmFzZS1ldmVyeXdoZXJlLXNy
Yy02LjcuMi9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51LmNwcAkyMDI0LTA4LTI5IDIxOjE3OjM4
Ljg2MTExMDkzNiArMDMwMApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPHByaXZhdGUvcWd1
aWFwcGxpY2F0aW9uX3AuaD4KICNpbmNsdWRlIDxxcGEvcXBsYXRmb3JtdGhlbWUuaD4KICNpbmNs
dWRlIDxwcml2YXRlL3FzdHlsZV9wLmg+CisjaW5jbHVkZSAicHJpdmF0ZS9xa2V5bWFwcGVyX3Au
aCIKIAogUVRfQkVHSU5fTkFNRVNQQUNFCiAKQEAgLTMzNzQsMjAgKzMzNzUsMjggQEAKICAgICAg
ICAgICAgICAgICBpbnQgY2xhc2hDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgUUFjdGlvbiAq
Zmlyc3QgPSBudWxscHRyLCAqY3VycmVudFNlbGVjdGVkID0gbnVsbHB0ciwgKmZpcnN0QWZ0ZXJD
dXJyZW50ID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICBRQ2hhciBjID0gZS0+dGV4dCgpLmF0
KDApLnRvVXBwZXIoKTsKKyAgICAgICAgICAgICAgICBRTGlzdDxRS2V5Q29tYmluYXRpb24+IHBv
c3NpYmxlS2V5cyA9IFFLZXlNYXBwZXI6OnBvc3NpYmxlS2V5cyhlKTsKKyAgICAgICAgICAgICAg
ICBpZighcG9zc2libGVLZXlzLmNvbnRhaW5zKFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVk
KGMudW5pY29kZSgpKSkpCisgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlS2V5cyArPSBRS2V5
Q29tYmluYXRpb246OmZyb21Db21iaW5lZChjLnVuaWNvZGUoKSk7CiAgICAgICAgICAgICAgICAg
Zm9yKGludCBpID0gMDsgaSA8IGQtPmFjdGlvbnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGQtPmFjdGlvblJlY3RzLmF0KGkpLmlzTnVsbCgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIFFBY3Rpb24gKmFjdCA9
IGQtPmFjdGlvbnMuYXQoaSk7CiAgICAgICAgICAgICAgICAgICAgIFFLZXlTZXF1ZW5jZSBzZXF1
ZW5jZSA9IFFLZXlTZXF1ZW5jZTo6bW5lbW9uaWMoYWN0LT50ZXh0KCkpOwogICAgICAgICAgICAg
ICAgICAgICBpbnQga2V5ID0gc2VxdWVuY2VbMF0udG9Db21iaW5lZCgpICYgMHhmZmZmOyAvLyBz
dXNwaWNpb3VzCi0gICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gYy51bmljb2RlKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNoQ291bnQrKzsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghZmlyc3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBh
Y3Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0ID09IGQtPmN1cnJlbnRBY3Rpb24p
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlbGVjdGVkID0gYWN0OwotICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWZpcnN0QWZ0ZXJDdXJyZW50ICYmIGN1cnJl
bnRTZWxlY3RlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEFmdGVyQ3VycmVu
dCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgUUxpc3Q8UUtleUNvbWJpbmF0aW9uPjo6Q29u
c3RJdGVyYXRvciBrOworICAgICAgICAgICAgICAgICAgICBmb3IgKGsgPSBwb3NzaWJsZUtleXMu
Y29uc3RCZWdpbigpOyBrICE9IHBvc3NpYmxlS2V5cy5jb25zdEVuZCgpOyArK2spIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFFLZXlDb21iaW5hdGlvbiBrZXlfZSA9ICprOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGtleSA9PSAoa2V5X2UudG9Db21iaW5lZCgpICYgMHhmZmZmKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNoQ291bnQrKzsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaXJzdCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0ID09
IGQtPmN1cnJlbnRBY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJl
bnRTZWxlY3RlZCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgh
Zmlyc3RBZnRlckN1cnJlbnQgJiYgY3VycmVudFNlbGVjdGVkKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaXJzdEFmdGVyQ3VycmVudCA9IGFjdDsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoY2xhc2hD
b3VudCA9PSAxKQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MDAzLXF0Ni1iYXNlLTYuOC4wLXFt
ZW51X2ZpeF9zaG9ydGN1dHMucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwNzY0ADAwMDA3NjQAMDAwMDAwMjEyNTUA
MTQ3NDEyNTEzMzQAMDIwMjY3ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHVzdGFyICAAc2VyZ2V5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzZXJnZXkAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRpZmYgLU5hdXIgcXRiYXNlLW9yaWcv
c3JjL2d1aS9wbGF0Zm9ybS91bml4L3F4a2Jjb21tb24uY3BwIHF0YmFzZS9zcmMvZ3VpL3BsYXRm
b3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAKLS0tIHF0YmFzZS1vcmlnL3NyYy9ndWkvcGxhdGZvcm0v
dW5peC9xeGtiY29tbW9uLmNwcAkyMDI0LTEwLTE4IDIzOjA2OjUxLjIyNDY0ODEyMiArMDMwMAor
KysgcXRiYXNlL3NyYy9ndWkvcGxhdGZvcm0vdW5peC9xeGtiY29tbW9uLmNwcAkyMDI0LTEwLTE4
IDIzOjEzOjAwLjc3NTQ0MzczNSArMDMwMApAQCAtNjM0LDYgKzYzNCw3IEBACiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogICAgIC8vIGdldCBrYiBzdGF0ZSBmcm9tIHRoZSBtYXN0ZXIg
c3RhdGUgYW5kIHVwZGF0ZSB0aGUgdGVtcG9yYXJ5IHN0YXRlCisgICAgeGtiX2xheW91dF9pbmRl
eF90IG51bUxheW91dHMgPSB4a2Jfa2V5bWFwX251bV9sYXlvdXRzKGtleW1hcCk7CiAgICAgeGti
X2xheW91dF9pbmRleF90IGxvY2tlZExheW91dCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0
KHN0YXRlLCBYS0JfU1RBVEVfTEFZT1VUX0xPQ0tFRCk7CiAgICAgeGtiX21vZF9tYXNrX3QgbGF0
Y2hlZE1vZHMgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMoc3RhdGUsIFhLQl9TVEFURV9NT0RT
X0xBVENIRUQpOwogICAgIHhrYl9tb2RfbWFza190IGxvY2tlZE1vZHMgPSB4a2Jfc3RhdGVfc2Vy
aWFsaXplX21vZHMoc3RhdGUsIFhLQl9TVEFURV9NT0RTX0xPQ0tFRCk7CkBAIC03MTYsNiArNzE3
LDY3IEBACiAgICAgICAgIH0KICAgICB9CiAKKyAgICBmb3IgKHhrYl9sYXlvdXRfaW5kZXhfdCBs
YXlvdXQgPSAwOyBsYXlvdXQgPCBudW1MYXlvdXRzOyBsYXlvdXQrKykgeworICAgICAgICB4a2Jf
c3RhdGVfdXBkYXRlX21hc2socXVlcnlTdGF0ZSwgMCwgbGF0Y2hlZE1vZHMsIGxvY2tlZE1vZHMs
IGxheW91dCwgMCwgbG9ja2VkTGF5b3V0KTsKKworICAgICAgICBzeW0gPSB4a2Jfc3RhdGVfa2V5
X2dldF9vbmVfc3ltKHF1ZXJ5U3RhdGUsIGV2ZW50LT5uYXRpdmVTY2FuQ29kZSgpKTsKKyAgICAg
ICAgaWYgKHN5bSA9PSBYS0JfS0VZX05vU3ltYm9sKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaW50IGJhc2VRdEtleSA9IGtleXN5bVRvUXRLZXlfaW50ZXJuYWwoc3ltLCBtb2Rp
ZmllcnMsIHF1ZXJ5U3RhdGUsIGtleWNvZGUsIHN1cGVyQXNNZXRhLCBoeXBlckFzTWV0YSk7Cisg
ICAgICAgIGlmIChiYXNlUXRLZXkgJiYgIXJlc3VsdC5jb250YWlucyhiYXNlUXRLZXkgKyBpbnQo
bW9kaWZpZXJzKSkgJiYgUUNoYXIoYmFzZVF0S2V5KS5pc0xldHRlcigpKSAvL05PVEU6IFdlIHNo
b3VsZCBkaXNhbGxvdyBkdXBsaWNhdGVzIGluIHRoZSByZXN1bHQgbGlzdAorICAgICAgICAgICAg
cmVzdWx0ICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGJhc2VRdEtleSArIGludCht
b2RpZmllcnMpKTsKKworICAgICAgICB4a2JfbW9kX21hc2tfdCBkZXByZXNzZWQ7CisgICAgICAg
IGludCBxdEtleSA9IDA7CisgICAgICAgIC8vIG9idGFpbiBhIGxpc3Qgb2YgcG9zc2libGUgc2hv
cnRjdXRzIGZvciB0aGUgZ2l2ZW4ga2V5IGV2ZW50CisgICAgICAgIGZvciAodWludCBpID0gMTsg
aSA8IHNpemVvZihNb2RzVGJsKSAvIHNpemVvZigqTW9kc1RibCkgOyArK2kpIHsKKyAgICAgICAg
ICAgIFF0OjpLZXlib2FyZE1vZGlmaWVycyBuZWVkZWRNb2RzID0gTW9kc1RibFtpXTsKKyAgICAg
ICAgICAgIGlmICgobW9kaWZpZXJzICYgbmVlZGVkTW9kcykgPT0gbmVlZGVkTW9kcykgeworICAg
ICAgICAgICAgICAgIGlmIChpID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTGF0
aW4xKGJhc2VRdEtleSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gYWRkIGEgbGF0aW4ga2V5IGFzIGEgZmFsbCBiYWNrIGtleQorICAg
ICAgICAgICAgICAgICAgICBzeW0gPSBsb29rdXBMYXRpbktleXN5bShzdGF0ZSwga2V5Y29kZSk7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVwcmVzc2Vk
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRlZE1vZHMgJiBRdDo6QWx0TW9kaWZp
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgYWx0TW9kKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRlZE1vZHMgJiBRdDo6U2hpZnRNb2RpZmllcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8PCBzaGlmdE1vZCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OkNvbnRyb2xNb2RpZmllcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8PCBjb250cm9sTW9kKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGFNb2QgPCAzMiAmJiBuZWVkZWRNb2RzICYgUXQ6
Ok1ldGFNb2RpZmllcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8
PCBtZXRhTW9kKTsKKyAgICAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrKHF1
ZXJ5U3RhdGUsIGRlcHJlc3NlZCwgbGF0Y2hlZE1vZHMsIGxvY2tlZE1vZHMsIDAsIDAsIGxvY2tl
ZExheW91dCk7CisgICAgICAgICAgICAgICAgICAgIHN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29u
ZV9zeW0ocXVlcnlTdGF0ZSwga2V5Y29kZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmIChzeW0gPT0gWEtCX0tFWV9Ob1N5bWJvbCkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgICAgICBRdDo6S2V5Ym9hcmRNb2RpZmllcnMgbW9kcyA9
IG1vZGlmaWVycyAmIH5uZWVkZWRNb2RzOworICAgICAgICAgICAgICAgIHF0S2V5ID0ga2V5c3lt
VG9RdEtleV9pbnRlcm5hbChzeW0sIG1vZHMsIHF1ZXJ5U3RhdGUsIGtleWNvZGUsIHN1cGVyQXNN
ZXRhLCBoeXBlckFzTWV0YSk7CisgICAgICAgICAgICAgICAgaWYgKCFxdEtleSB8fCBxdEtleSA9
PSBiYXNlUXRLZXkgfHwgIVFDaGFyKHF0S2V5KS5pc0xldHRlcigpKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIGNhdGNoIG9ubHkgbW9yZSBzcGVj
aWZpYyBzaG9ydGN1dHMsIGkuZS4gQ3RybCtTaGlmdCs9IGFsc28gZ2VuZXJhdGVzIEN0cmwrKyBh
bmQgKywKKyAgICAgICAgICAgICAgICAvLyBidXQgQ3RybCsrIGlzIG1vcmUgc3BlY2lmaWMgdGhh
biArLCBzbyB3ZSBzaG91bGQgc2tpcCB0aGUgbGFzdCBvbmUKKyAgICAgICAgICAgICAgICBib29s
IGFtYmlndW91cyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoUUtleUNvbWJpbmF0aW9u
IHNob3J0Y3V0IDogc3RkOjphc19jb25zdChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChzaG9ydGN1dC5rZXkoKSA9PSBxdEtleSAmJiAoc2hvcnRjdXQua2V5Ym9hcmRNb2RpZmll
cnMoKSAmIG1vZHMpID09IG1vZHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFtYmlndW91
cyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYW1iaWd1b3Vz
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGlmICgh
cmVzdWx0LmNvbnRhaW5zKHF0S2V5ICsgaW50KG1vZHMpKSkgLy9OT1RFOiBXZSBzaG91bGQgZGlz
YWxsb3cgZHVwbGljYXRlcyBpbiB0aGUgcmVzdWx0IGxpc3QKKyAgICAgICAgICAgICAgICByZXN1
bHQgKz0gUUtleUNvbWJpbmF0aW9uOjpmcm9tQ29tYmluZWQocXRLZXkgKyBpbnQobW9kcykpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApkaWZmIC1OYXVyIHF0YmFzZS1vcmlnL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnViYXIuY3Bw
IHF0YmFzZS9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51YmFyLmNwcAotLS0gcXRiYXNlLW9yaWcv
c3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudWJhci5jcHAJMjAyNC0xMC0xOCAyMzowNjo1MS41NzI2
MzI4NjcgKzAzMDAKKysrIHF0YmFzZS9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51YmFyLmNwcAky
MDI0LTEwLTE4IDIzOjEzOjAwLjc3NjQ0MzY5MSArMDMwMApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgInFtZW51YmFyX3AuaCIKICNpbmNsdWRlIDxwcml2YXRlL3FzY3JlZW5fcC5oPgogI2lu
Y2x1ZGUgInFkZWJ1Zy5oIgorI2luY2x1ZGUgPHByaXZhdGUvcWtleW1hcHBlcl9wLmg+CiAKIFFU
X0JFR0lOX05BTUVTUEFDRQogCkBAIC0xMDc4LDYgKzEwNzksOSBAQAogICAgICAgICBRQWN0aW9u
ICpmaXJzdCA9IG51bGxwdHIsICpjdXJyZW50U2VsZWN0ZWQgPSBudWxscHRyLCAqZmlyc3RBZnRl
ckN1cnJlbnQgPSBudWxscHRyOwogICAgICAgICB7CiAgICAgICAgICAgICBjb25zdCBRQ2hhciBj
ID0gZS0+dGV4dCgpLmF0KDApLnRvVXBwZXIoKTsKKyAgICAgICAgICAgIFFMaXN0PFFLZXlDb21i
aW5hdGlvbj4gcG9zc2libGVLZXlzID0gUUtleU1hcHBlcjo6cG9zc2libGVLZXlzKGUpOworICAg
ICAgICAgICAgaWYoIXBvc3NpYmxlS2V5cy5jb250YWlucyhRS2V5Q29tYmluYXRpb246OmZyb21D
b21iaW5lZChjLnVuaWNvZGUoKSkpKQorICAgICAgICAgICAgICAgIHBvc3NpYmxlS2V5cyArPSBR
S2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChjLnVuaWNvZGUoKSk7CiAgICAgICAgICAgICBm
b3IoaW50IGkgPSAwOyBpIDwgZC0+YWN0aW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAg
ICAgIGlmIChkLT5hY3Rpb25SZWN0cy5hdChpKS5pc051bGwoKSkKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CkBAIC0xMDg2LDE0ICsxMDkwLDE5IEBACiAgICAgICAgICAgICAgICAgaWYg
KCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICBxc2l6ZXR5cGUgYW1wZXJzYW5k
ID0gcy5pbmRleE9mKHUnJicpOwogICAgICAgICAgICAgICAgICAgICBpZiAoYW1wZXJzYW5kID49
IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzW2FtcGVyc2FuZCsxXS50b1VwcGVy
KCkgPT0gYykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNoQ291bnQrKzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaXJzdCA9IGFjdDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoYWN0ID09IGQtPmN1cnJlbnRBY3Rpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRTZWxlY3RlZCA9IGFjdDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlIGlmICghZmlyc3RBZnRlckN1cnJlbnQgJiYgY3VycmVudFNlbGVjdGVkKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEFmdGVyQ3VycmVudCA9IGFjdDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFFMaXN0PFFLZXlDb21iaW5hdGlvbj46OkNvbnN0SXRlcmF0b3IgazsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZvcihrID0gcG9zc2libGVLZXlzLmNvbnN0QmVnaW4o
KTsgayAhPSBwb3NzaWJsZUtleXMuY29uc3RFbmQoKTsgKytrKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUUtleUNvbWJpbmF0aW9uIGtleV9lID0gKms7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYoc1thbXBlcnNhbmQrMV0udG9VcHBlcigpLnVuaWNvZGUoKSA9PSAoa2V5
X2UudG9Db21iaW5lZCgpICYgMHhmZmZmKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzaENvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFm
aXJzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gYWN0Owor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhY3QgPT0gZC0+Y3VycmVudEFjdGlv
bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWxlY3RlZCA9
IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWZpcnN0QWZ0
ZXJDdXJyZW50ICYmIGN1cnJlbnRTZWxlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpcnN0QWZ0ZXJDdXJyZW50ID0gYWN0OworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CmRpZmYgLU5hdXIgcXRiYXNlLW9yaWcvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudS5jcHAg
cXRiYXNlL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnUuY3BwCi0tLSBxdGJhc2Utb3JpZy9zcmMv
d2lkZ2V0cy93aWRnZXRzL3FtZW51LmNwcAkyMDI0LTEwLTE4IDIzOjA4OjM4LjIzMDk1NzEzOSAr
MDMwMAorKysgcXRiYXNlL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnUuY3BwCTIwMjQtMTAtMTgg
MjM6MTM6MDAuNzc3NDQzNjQ3ICswMzAwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8cHJp
dmF0ZS9xZ3VpYXBwbGljYXRpb25fcC5oPgogI2luY2x1ZGUgPHFwYS9xcGxhdGZvcm10aGVtZS5o
PgogI2luY2x1ZGUgPHByaXZhdGUvcXN0eWxlX3AuaD4KKyNpbmNsdWRlICJwcml2YXRlL3FrZXlt
YXBwZXJfcC5oIgogCiBRVF9CRUdJTl9OQU1FU1BBQ0UKIApAQCAtMzM3NCwyMCArMzM3NSwyOCBA
QAogICAgICAgICAgICAgICAgIGludCBjbGFzaENvdW50ID0gMDsKICAgICAgICAgICAgICAgICBR
QWN0aW9uICpmaXJzdCA9IG51bGxwdHIsICpjdXJyZW50U2VsZWN0ZWQgPSBudWxscHRyLCAqZmly
c3RBZnRlckN1cnJlbnQgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIFFDaGFyIGMgPSBlLT50
ZXh0KCkuYXQoMCkudG9VcHBlcigpOworICAgICAgICAgICAgICAgIFFMaXN0PFFLZXlDb21iaW5h
dGlvbj4gcG9zc2libGVLZXlzID0gUUtleU1hcHBlcjo6cG9zc2libGVLZXlzKGUpOworICAgICAg
ICAgICAgICAgIGlmKCFwb3NzaWJsZUtleXMuY29udGFpbnMoUUtleUNvbWJpbmF0aW9uOjpmcm9t
Q29tYmluZWQoYy51bmljb2RlKCkpKSkKKyAgICAgICAgICAgICAgICAgICAgcG9zc2libGVLZXlz
ICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGMudW5pY29kZSgpKTsKICAgICAgICAg
ICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZC0+YWN0aW9ucy5zaXplKCk7ICsraSkgewogICAg
ICAgICAgICAgICAgICAgICBpZiAoZC0+YWN0aW9uUmVjdHMuYXQoaSkuaXNOdWxsKCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgUUFjdGlv
biAqYWN0ID0gZC0+YWN0aW9ucy5hdChpKTsKICAgICAgICAgICAgICAgICAgICAgUUtleVNlcXVl
bmNlIHNlcXVlbmNlID0gUUtleVNlcXVlbmNlOjptbmVtb25pYyhhY3QtPnRleHQoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIGludCBrZXkgPSBzZXF1ZW5jZVswXS50b0NvbWJpbmVkKCkgJiAweGZm
ZmY7IC8vIHN1c3BpY2lvdXMKLSAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBjLnVuaWNv
ZGUoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY2xhc2hDb3VudCsrOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aXJzdCA9IGFjdDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3QgPT0gZC0+Y3VycmVu
dEFjdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0ZWQgPSBh
Y3Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghZmlyc3RBZnRlckN1cnJlbnQg
JiYgY3VycmVudFNlbGVjdGVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0QWZ0
ZXJDdXJyZW50ID0gYWN0OworICAgICAgICAgICAgICAgICAgICBRTGlzdDxRS2V5Q29tYmluYXRp
b24+OjpDb25zdEl0ZXJhdG9yIGs7CisgICAgICAgICAgICAgICAgICAgIGZvciAoayA9IHBvc3Np
YmxlS2V5cy5jb25zdEJlZ2luKCk7IGsgIT0gcG9zc2libGVLZXlzLmNvbnN0RW5kKCk7ICsraykg
eworICAgICAgICAgICAgICAgICAgICAgICAgUUtleUNvbWJpbmF0aW9uIGtleV9lID0gKms7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09IChrZXlfZS50b0NvbWJpbmVkKCkgJiAw
eGZmZmYpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc2hDb3VudCsrOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlyc3QpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpcnN0ID0gYWN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChhY3QgPT0gZC0+Y3VycmVudEFjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3VycmVudFNlbGVjdGVkID0gYWN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKCFmaXJzdEFmdGVyQ3VycmVudCAmJiBjdXJyZW50U2VsZWN0ZWQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpcnN0QWZ0ZXJDdXJyZW50ID0gYWN0OworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlm
IChjbGFzaENvdW50ID09IDEpCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17531</attachid>
            <date>2025-01-14 20:50:38 +0300</date>
            <delta_ts>2025-01-14 20:50:38 +0300</delta_ts>
            <desc>Исправленные патчи для Qt6 (исправлено 2)</desc>
            <filename>qt6-base-qmenu_fix_shortcuts-patches.tar</filename>
            <type>application/x-tar</type>
            <size>30720</size>
            <attacher name="Сукиязов С.А.">sergey.sukiyazov</attacher>
            
              <data encoding="base64">OTAwMy1xdDYtYmFzZS02LjcuMi1xbWVudV9maXhfc2hvcnRjdXRzLnBhdGNoAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDc2
NAAwMDAwNzY0ADAwMDAwMDI0NTI1ADE0NzQxNTIxMjc0ADAyMDI3NgAgMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHNlcmdleQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAc2VyZ2V5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG
cm9tOiBTZXJnZXkgQS4gU3VraXlhem92IDxzZXJnZXkuc3VraXlhem92QHlhbmRleC5ydT4KRGF0
ZTogVGh1LCBBdWcgMjkgMjAyNCAgMjE6MTk6MTIgKzAzMDAKU3ViamVjdDogSW1wcm92ZW1lbnRz
IGZvciBoYW5kbGluZyBvZiBrZXlib2FyZCBzaG9ydGN1dHMKClRoZSBvcmlnaW5hbCBpbXBsZW1l
bnRhdGlvbiBvZiBrZXlib2FyZCBzaG9ydGN1dHMgaW4gUXQgaXMga2V5Ym9hcmQgbGF5b3V0IGRl
cGVuZGVkLiBJLmUuCnRoZSBBbHQrRiBjb21iaW5hdGlvbiBpcyB1c2VkIHRvIGFjY2VzcyBtZW51
IGJhcidzIEZpbGUgaXRlbSwgYnV0IGl0IHdpbGwgbm90IHdvcmsgaWYgdGhlClJ1c3NpYW4ga2V5
Ym9hcmQgbGF5b3V0IGlzIGFjdGl2ZSwgZXZlbiBpZiBBbHQrW0N5cmlsbGljX0FdIGlzIHByZXNz
ZWQuCgpUaGlzIHBhdGNoIGltcHJvdmVzIHRoaXMgYmVoYXZpb3Igb2Yga2V5Ym9hciBzaG9ydGN1
dHMgdG8gYmUgaW5kZXBlbmRlZCBvZiBhY3RpdmUga2V5Ym9hcmQKbGF5b3V0IE9OTFkgZm9yIGtl
eXMgd2hpY2ggcHJvZHVjZXMgbGV0dGVycy4gVGggbG9naWMgb2YgaW1wbGVtZW50YXRpb24gaXM6
CgogMS4gVGhlIFFLZXlNYXBwZXI6OnBvc3NpYmxlS2V5cyguLi4pIGlzIG1vZGlmaWVkIHRvIHNj
YW4gYWRkaXRpb25hbHkgYWxsIGNvbmZpZ3VyZWQga2V5Ym9hcmQKICAgIGxheW91dHMgaW4gdGhl
IHN5c3RlbSBhbmQgYWRkIGFsbCBrZXljb2RlcyB3aGljaCBjYW4gcHJvZHVjZSBsZXR0ZXJzLiBT
bywgdGhlIGZpbmFsIGxpc3QKICAgIG9mIHBvc3NpYmxlIGtleWNvZGVzIGNvbnRhaW5zIHR3byBw
YXJ0cyAtIGZpc3QgaXMgc2FtZSBhcyBmb3IgdW5wYXRjaGVkIGltcGxlbWVudGF0aW9uLAogICAg
c2Vjb25kIGNvbnRhaW5zIGFsbCBwb3NzaWJsZSBrZXljb2RlcyBib3VkIHRvIHRoZSBwaHlzaWNh
bCBrZXlib2FyZCBrZXkgYW5kIGNhbiBwcm9kdWNlCiAgICBsZXR0ZXJzIGluIG90aGVyIHRoYW4g
YWN0aXZlIGtleWJvYXJkIGxheW91dC4KIDIuIENobmFnZSBiZWhhdmlvdXIgb2YgaW1wbGVtZW50
YXRpb24gb2YgUU1lbnU6OmtleVByZXNzRXZ2ZW50KC4uLikgYW5kIFFNZW51QmFyOjprZXlQcmVz
c0V2dmVudCguLi4pCiAgICB0byBjaGVjayBhbGwgcG9zc2libGUga2V5Y29kZXMgd2hpY2ggYm91
bmQgdG8gcHJlc3NlZCBwaHlzaWNhbCBrZXlib2FyIGtleSBpbnN0ZWFkIG9mIHNpbmdsZQogICAg
a2V5Y29kZSBib3VuZCB0byByZWNpdmVkIFFLZXlQcmVzc0V2ZW50LgoKU28sIGFmdGVyIHRob3Nl
IGNoYW5nZXMgdGhlIGNvbWJpbmF0aW9ucyBBbHQrRiBhbmQgQWx0K1tDeXJpbGxpY19BXSB3aWxs
IGFjdGl2YXRlIG1lbnUgYmFyJ3MgRmlsZSBpdGVtLgpBbGwgb3RoZXIgY29tYmluYXRpb25zLCB3
aGljaCBhcmUgYm91bmQgdG8gcGh5c2ljYWwga2V5Ym9hcmQga2V5cyB3aGljaCBub3QgcHJvZHVj
ZSBsZXR0ZXJzLCB3aWxsCndvcmsgc2FtZSB3YXkgYXMgaW4gdW5wYXRjaGVkIHZlcnNpb24uCi0t
LQpkaWZmIC1OYXVyIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02LjcuMi5vcmlnL3NyYy9ndWkvcGxh
dGZvcm0vdW5peC9xeGtiY29tbW9uLmNwcCBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43LjIvc3Jj
L2d1aS9wbGF0Zm9ybS91bml4L3F4a2Jjb21tb24uY3BwCi0tLSBxdGJhc2UtZXZlcnl3aGVyZS1z
cmMtNi43LjIub3JpZy9zcmMvZ3VpL3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAJMjAyNC0w
OC0yOSAyMToxNTo1MS4xNTY2OTY5NTIgKzAzMDAKKysrIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02
LjcuMi9zcmMvZ3VpL3BsYXRmb3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAJMjAyNC0wOC0yOSAyMTox
NzozOC44NTkxMTEwMjEgKzAzMDAKQEAgLTYzNCw2ICs2MzQsNyBAQAogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICAvLyBnZXQga2Igc3RhdGUgZnJvbSB0aGUgbWFzdGVyIHN0YXRl
IGFuZCB1cGRhdGUgdGhlIHRlbXBvcmFyeSBzdGF0ZQorICAgIHhrYl9sYXlvdXRfaW5kZXhfdCBu
dW1MYXlvdXRzID0geGtiX2tleW1hcF9udW1fbGF5b3V0cyhrZXltYXApOwogICAgIHhrYl9sYXlv
dXRfaW5kZXhfdCBsb2NrZWRMYXlvdXQgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX2xheW91dChzdGF0
ZSwgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOwogICAgIHhrYl9tb2RfbWFza190IGxhdGNoZWRN
b2RzID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzKHN0YXRlLCBYS0JfU1RBVEVfTU9EU19MQVRD
SEVEKTsKICAgICB4a2JfbW9kX21hc2tfdCBsb2NrZWRNb2RzID0geGtiX3N0YXRlX3NlcmlhbGl6
ZV9tb2RzKHN0YXRlLCBYS0JfU1RBVEVfTU9EU19MT0NLRUQpOwpAQCAtNzE2LDYgKzcxNyw2NyBA
QAogICAgICAgICB9CiAgICAgfQogCisgICAgZm9yICh4a2JfbGF5b3V0X2luZGV4X3QgbGF5b3V0
ID0gMDsgbGF5b3V0IDwgbnVtTGF5b3V0czsgbGF5b3V0KyspIHsKKyAgICAgICAgeGtiX3N0YXRl
X3VwZGF0ZV9tYXNrKHF1ZXJ5U3RhdGUsIDAsIGxhdGNoZWRNb2RzLCBsb2NrZWRNb2RzLCBsYXlv
dXQsIDAsIGxvY2tlZExheW91dCk7CisKKyAgICAgICAgc3ltID0geGtiX3N0YXRlX2tleV9nZXRf
b25lX3N5bShxdWVyeVN0YXRlLCBldmVudC0+bmF0aXZlU2NhbkNvZGUoKSk7CisgICAgICAgIGlm
IChzeW0gPT0gWEtCX0tFWV9Ob1N5bWJvbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIGludCBiYXNlUXRLZXkgPSBrZXlzeW1Ub1F0S2V5X2ludGVybmFsKHN5bSwgbW9kaWZpZXJz
LCBxdWVyeVN0YXRlLCBrZXljb2RlLCBzdXBlckFzTWV0YSwgaHlwZXJBc01ldGEpOworICAgICAg
ICBpZiAoYmFzZVF0S2V5ICYmICFyZXN1bHQuY29udGFpbnMoYmFzZVF0S2V5ICsgaW50KG1vZGlm
aWVycykpICYmIFFDaGFyKGJhc2VRdEtleSkuaXNMZXR0ZXIoKSkgLy9OT1RFOiBXZSBzaG91bGQg
ZGlzYWxsb3cgZHVwbGljYXRlcyBpbiB0aGUgcmVzdWx0IGxpc3QKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBRS2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChiYXNlUXRLZXkgKyBpbnQobW9kaWZp
ZXJzKSk7CisKKyAgICAgICAgeGtiX21vZF9tYXNrX3QgZGVwcmVzc2VkOworICAgICAgICBpbnQg
cXRLZXkgPSAwOworICAgICAgICAvLyBvYnRhaW4gYSBsaXN0IG9mIHBvc3NpYmxlIHNob3J0Y3V0
cyBmb3IgdGhlIGdpdmVuIGtleSBldmVudAorICAgICAgICBmb3IgKHVpbnQgaSA9IDE7IGkgPCBz
aXplb2YoTW9kc1RibCkgLyBzaXplb2YoKk1vZHNUYmwpIDsgKytpKSB7CisgICAgICAgICAgICBR
dDo6S2V5Ym9hcmRNb2RpZmllcnMgbmVlZGVkTW9kcyA9IE1vZHNUYmxbaV07CisgICAgICAgICAg
ICBpZiAoKG1vZGlmaWVycyAmIG5lZWRlZE1vZHMpID09IG5lZWRlZE1vZHMpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoaSA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0xhdGluMShi
YXNlUXRLZXkpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgICAgIC8vIGFkZCBhIGxhdGluIGtleSBhcyBhIGZhbGwgYmFjayBrZXkKKyAgICAgICAg
ICAgICAgICAgICAgc3ltID0gbG9va3VwTGF0aW5LZXlzeW0oc3RhdGUsIGtleWNvZGUpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCA9IDA7
CisgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OkFsdE1vZGlmaWVyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVzc2VkIHw9ICgxIDw8IGFsdE1vZCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OlNoaWZ0TW9kaWZpZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgc2hpZnRNb2QpOworICAgICAg
ICAgICAgICAgICAgICBpZiAobmVlZGVkTW9kcyAmIFF0OjpDb250cm9sTW9kaWZpZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgY29udHJvbE1vZCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtZXRhTW9kIDwgMzIgJiYgbmVlZGVkTW9kcyAmIFF0OjpNZXRh
TW9kaWZpZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgbWV0
YU1vZCk7CisgICAgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFzayhxdWVyeVN0
YXRlLCBkZXByZXNzZWQsIGxhdGNoZWRNb2RzLCBsb2NrZWRNb2RzLCAwLCAwLCBsb2NrZWRMYXlv
dXQpOworICAgICAgICAgICAgICAgICAgICBzeW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3lt
KHF1ZXJ5U3RhdGUsIGtleWNvZGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBpZiAoc3ltID09IFhLQl9LRVlfTm9TeW1ib2wpCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICAgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1vZHMgPSBtb2Rp
ZmllcnMgJiB+bmVlZGVkTW9kczsKKyAgICAgICAgICAgICAgICBxdEtleSA9IGtleXN5bVRvUXRL
ZXlfaW50ZXJuYWwoc3ltLCBtb2RzLCBxdWVyeVN0YXRlLCBrZXljb2RlLCBzdXBlckFzTWV0YSwg
aHlwZXJBc01ldGEpOworICAgICAgICAgICAgICAgIGlmICghcXRLZXkgfHwgcXRLZXkgPT0gYmFz
ZVF0S2V5IHx8ICFRQ2hhcihxdEtleSkuaXNMZXR0ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBjYXRjaCBvbmx5IG1vcmUgc3BlY2lmaWMg
c2hvcnRjdXRzLCBpLmUuIEN0cmwrU2hpZnQrPSBhbHNvIGdlbmVyYXRlcyBDdHJsKysgYW5kICss
CisgICAgICAgICAgICAgICAgLy8gYnV0IEN0cmwrKyBpcyBtb3JlIHNwZWNpZmljIHRoYW4gKywg
c28gd2Ugc2hvdWxkIHNraXAgdGhlIGxhc3Qgb25lCisgICAgICAgICAgICAgICAgYm9vbCBhbWJp
Z3VvdXMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKFFLZXlDb21iaW5hdGlvbiBzaG9y
dGN1dCA6IHN0ZDo6YXNfY29uc3QocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
c2hvcnRjdXQua2V5KCkgPT0gcXRLZXkgJiYgKHNob3J0Y3V0LmtleWJvYXJkTW9kaWZpZXJzKCkg
JiBtb2RzKSA9PSBtb2RzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhbWJpZ3VvdXMgPSB0
cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGFtYmlndW91cykKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIGtl
eSBjb21iaW5hdGlvbiBpbiB0aGUgcmVzdWx0IGxpcyBmb3IgZnVydGhlciBwcm9jZXNzaW5nCisg
ICAgICAgICAgICAgICAgcmVzdWx0ICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKHF0
S2V5ICsgaW50KG1vZHMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtTmF1ciBxdGJhc2UtZXZlcnl3aGVyZS1zcmMtNi43
LjIub3JpZy9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51YmFyLmNwcCBxdGJhc2UtZXZlcnl3aGVy
ZS1zcmMtNi43LjIvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudWJhci5jcHAKLS0tIHF0YmFzZS1l
dmVyeXdoZXJlLXNyYy02LjcuMi5vcmlnL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnViYXIuY3Bw
CTIwMjQtMDgtMjkgMjE6MTU6NTEuNDkxNjgyNjg4ICswMzAwCisrKyBxdGJhc2UtZXZlcnl3aGVy
ZS1zcmMtNi43LjIvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudWJhci5jcHAJMjAyNC0wOC0yOSAy
MToxNzozOC44NjAxMTA5NzkgKzAzMDAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJxbWVu
dWJhcl9wLmgiCiAjaW5jbHVkZSA8cHJpdmF0ZS9xc2NyZWVuX3AuaD4KICNpbmNsdWRlICJxZGVi
dWcuaCIKKyNpbmNsdWRlIDxwcml2YXRlL3FrZXltYXBwZXJfcC5oPgogCiBRVF9CRUdJTl9OQU1F
U1BBQ0UKIApAQCAtMTA3MSw2ICsxMDcyLDkgQEAKICAgICAgICAgUUFjdGlvbiAqZmlyc3QgPSBu
dWxscHRyLCAqY3VycmVudFNlbGVjdGVkID0gbnVsbHB0ciwgKmZpcnN0QWZ0ZXJDdXJyZW50ID0g
bnVsbHB0cjsKICAgICAgICAgewogICAgICAgICAgICAgY29uc3QgUUNoYXIgYyA9IGUtPnRleHQo
KS5hdCgwKS50b1VwcGVyKCk7CisgICAgICAgICAgICBRTGlzdDxRS2V5Q29tYmluYXRpb24+IHBv
c3NpYmxlS2V5cyA9IFFLZXlNYXBwZXI6OnBvc3NpYmxlS2V5cyhlKTsKKyAgICAgICAgICAgIGlm
KCFwb3NzaWJsZUtleXMuY29udGFpbnMoUUtleUNvbWJpbmF0aW9uOjpmcm9tQ29tYmluZWQoYy51
bmljb2RlKCkpKSkKKyAgICAgICAgICAgICAgICBwb3NzaWJsZUtleXMgKz0gUUtleUNvbWJpbmF0
aW9uOjpmcm9tQ29tYmluZWQoYy51bmljb2RlKCkpOwogICAgICAgICAgICAgZm9yKGludCBpID0g
MDsgaSA8IGQtPmFjdGlvbnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgICAgICBpZiAoZC0+
YWN0aW9uUmVjdHMuYXQoaSkuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwpAQCAtMTA3OSwxNCArMTA4MywxOSBAQAogICAgICAgICAgICAgICAgIGlmICghcy5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgcXNpemV0eXBlIGFtcGVyc2FuZCA9IHMuaW5kZXhP
Zih1JyYnKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGFtcGVyc2FuZCA+PSAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoc1thbXBlcnNhbmQrMV0udG9VcHBlcigpID09IGMpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzaENvdW50Kys7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmlyc3QgPSBhY3Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdCA9PSBk
LT5jdXJyZW50QWN0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50
U2VsZWN0ZWQgPSBhY3Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWZp
cnN0QWZ0ZXJDdXJyZW50ICYmIGN1cnJlbnRTZWxlY3RlZCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmlyc3RBZnRlckN1cnJlbnQgPSBhY3Q7CisgICAgICAgICAgICAgICAgICAg
ICAgICBRTGlzdDxRS2V5Q29tYmluYXRpb24+OjpDb25zdEl0ZXJhdG9yIGs7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmb3IoayA9IHBvc3NpYmxlS2V5cy5jb25zdEJlZ2luKCk7IGsgIT0gcG9z
c2libGVLZXlzLmNvbnN0RW5kKCk7ICsraykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFFLZXlDb21iaW5hdGlvbiBrZXlfZSA9ICprOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmKHNbYW1wZXJzYW5kKzFdLnRvVXBwZXIoKS51bmljb2RlKCkgPT0gKGtleV9lLnRvQ29tYmlu
ZWQoKSAmIDB4ZmZmZikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc2hD
b3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighZmlyc3QpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGFjdDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYoYWN0ID09IGQtPmN1cnJlbnRBY3Rpb24pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VsZWN0ZWQgPSBhY3Q7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFmaXJzdEFmdGVyQ3VycmVudCAm
JiBjdXJyZW50U2VsZWN0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aXJzdEFmdGVyQ3VycmVudCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpkaWZmIC1O
YXVyIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02LjcuMi5vcmlnL3NyYy93aWRnZXRzL3dpZGdldHMv
cW1lbnUuY3BwIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02LjcuMi9zcmMvd2lkZ2V0cy93aWRnZXRz
L3FtZW51LmNwcAotLS0gcXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLTYuNy4yLm9yaWcvc3JjL3dpZGdl
dHMvd2lkZ2V0cy9xbWVudS5jcHAJMjAyNC0wOC0yOSAyMToxNTo1MS40OTA2ODI3MzEgKzAzMDAK
KysrIHF0YmFzZS1ldmVyeXdoZXJlLXNyYy02LjcuMi9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51
LmNwcAkyMDI0LTA4LTI5IDIxOjE3OjM4Ljg2MTExMDkzNiArMDMwMApAQCAtNDMsNiArNDMsNyBA
QAogI2luY2x1ZGUgPHByaXZhdGUvcWd1aWFwcGxpY2F0aW9uX3AuaD4KICNpbmNsdWRlIDxxcGEv
cXBsYXRmb3JtdGhlbWUuaD4KICNpbmNsdWRlIDxwcml2YXRlL3FzdHlsZV9wLmg+CisjaW5jbHVk
ZSAicHJpdmF0ZS9xa2V5bWFwcGVyX3AuaCIKIAogUVRfQkVHSU5fTkFNRVNQQUNFCiAKQEAgLTMz
NzQsMjAgKzMzNzUsMjggQEAKICAgICAgICAgICAgICAgICBpbnQgY2xhc2hDb3VudCA9IDA7CiAg
ICAgICAgICAgICAgICAgUUFjdGlvbiAqZmlyc3QgPSBudWxscHRyLCAqY3VycmVudFNlbGVjdGVk
ID0gbnVsbHB0ciwgKmZpcnN0QWZ0ZXJDdXJyZW50ID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICBRQ2hhciBjID0gZS0+dGV4dCgpLmF0KDApLnRvVXBwZXIoKTsKKyAgICAgICAgICAgICAgICBR
TGlzdDxRS2V5Q29tYmluYXRpb24+IHBvc3NpYmxlS2V5cyA9IFFLZXlNYXBwZXI6OnBvc3NpYmxl
S2V5cyhlKTsKKyAgICAgICAgICAgICAgICBpZighcG9zc2libGVLZXlzLmNvbnRhaW5zKFFLZXlD
b21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGMudW5pY29kZSgpKSkpCisgICAgICAgICAgICAgICAg
ICAgIHBvc3NpYmxlS2V5cyArPSBRS2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChjLnVuaWNv
ZGUoKSk7CiAgICAgICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGQtPmFjdGlvbnMuc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGQtPmFjdGlvblJlY3RzLmF0KGkp
LmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAgICAgICAgIFFBY3Rpb24gKmFjdCA9IGQtPmFjdGlvbnMuYXQoaSk7CiAgICAgICAgICAgICAg
ICAgICAgIFFLZXlTZXF1ZW5jZSBzZXF1ZW5jZSA9IFFLZXlTZXF1ZW5jZTo6bW5lbW9uaWMoYWN0
LT50ZXh0KCkpOwogICAgICAgICAgICAgICAgICAgICBpbnQga2V5ID0gc2VxdWVuY2VbMF0udG9D
b21iaW5lZCgpICYgMHhmZmZmOyAvLyBzdXNwaWNpb3VzCi0gICAgICAgICAgICAgICAgICAgIGlm
IChrZXkgPT0gYy51bmljb2RlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNoQ291
bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlyc3QpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmlyc3QgPSBhY3Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
YWN0ID09IGQtPmN1cnJlbnRBY3Rpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vy
cmVudFNlbGVjdGVkID0gYWN0OwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWZp
cnN0QWZ0ZXJDdXJyZW50ICYmIGN1cnJlbnRTZWxlY3RlZCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaXJzdEFmdGVyQ3VycmVudCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgUUxp
c3Q8UUtleUNvbWJpbmF0aW9uPjo6Q29uc3RJdGVyYXRvciBrOworICAgICAgICAgICAgICAgICAg
ICBmb3IgKGsgPSBwb3NzaWJsZUtleXMuY29uc3RCZWdpbigpOyBrICE9IHBvc3NpYmxlS2V5cy5j
b25zdEVuZCgpOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFFLZXlDb21iaW5hdGlv
biBrZXlfZSA9ICprOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PSAoa2V5X2Uu
dG9Db21iaW5lZCgpICYgMHhmZmZmKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
YXNoQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGFjdDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoYWN0ID09IGQtPmN1cnJlbnRBY3Rpb24pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWxlY3RlZCA9IGFjdDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlIGlmICghZmlyc3RBZnRlckN1cnJlbnQgJiYgY3VycmVudFNlbGVj
dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEFmdGVyQ3VycmVudCA9
IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICBpZiAoY2xhc2hDb3VudCA9PSAxKQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MDAzLXF0Ni1iYXNlLTYuOC4wLXFt
ZW51X2ZpeF9zaG9ydGN1dHMucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwNzY0ADAwMDA3NjQAMDAwMDAwMjEyMTQA
MTQ3NDE1MjEyNDAAMDIwMjU2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHVzdGFyICAAc2VyZ2V5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzZXJnZXkAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRpZmYgLU5hdXIgcXRiYXNlLW9yaWcv
c3JjL2d1aS9wbGF0Zm9ybS91bml4L3F4a2Jjb21tb24uY3BwIHF0YmFzZS9zcmMvZ3VpL3BsYXRm
b3JtL3VuaXgvcXhrYmNvbW1vbi5jcHAKLS0tIHF0YmFzZS1vcmlnL3NyYy9ndWkvcGxhdGZvcm0v
dW5peC9xeGtiY29tbW9uLmNwcAkyMDI0LTEwLTE4IDIzOjA2OjUxLjIyNDY0ODEyMiArMDMwMAor
KysgcXRiYXNlL3NyYy9ndWkvcGxhdGZvcm0vdW5peC9xeGtiY29tbW9uLmNwcAkyMDI0LTEwLTE4
IDIzOjEzOjAwLjc3NTQ0MzczNSArMDMwMApAQCAtNjM0LDYgKzYzNCw3IEBACiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogICAgIC8vIGdldCBrYiBzdGF0ZSBmcm9tIHRoZSBtYXN0ZXIg
c3RhdGUgYW5kIHVwZGF0ZSB0aGUgdGVtcG9yYXJ5IHN0YXRlCisgICAgeGtiX2xheW91dF9pbmRl
eF90IG51bUxheW91dHMgPSB4a2Jfa2V5bWFwX251bV9sYXlvdXRzKGtleW1hcCk7CiAgICAgeGti
X2xheW91dF9pbmRleF90IGxvY2tlZExheW91dCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0
KHN0YXRlLCBYS0JfU1RBVEVfTEFZT1VUX0xPQ0tFRCk7CiAgICAgeGtiX21vZF9tYXNrX3QgbGF0
Y2hlZE1vZHMgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMoc3RhdGUsIFhLQl9TVEFURV9NT0RT
X0xBVENIRUQpOwogICAgIHhrYl9tb2RfbWFza190IGxvY2tlZE1vZHMgPSB4a2Jfc3RhdGVfc2Vy
aWFsaXplX21vZHMoc3RhdGUsIFhLQl9TVEFURV9NT0RTX0xPQ0tFRCk7CkBAIC03MTYsNiArNzE3
LDY3IEBACiAgICAgICAgIH0KICAgICB9CiAKKyAgICBmb3IgKHhrYl9sYXlvdXRfaW5kZXhfdCBs
YXlvdXQgPSAwOyBsYXlvdXQgPCBudW1MYXlvdXRzOyBsYXlvdXQrKykgeworICAgICAgICB4a2Jf
c3RhdGVfdXBkYXRlX21hc2socXVlcnlTdGF0ZSwgMCwgbGF0Y2hlZE1vZHMsIGxvY2tlZE1vZHMs
IGxheW91dCwgMCwgbG9ja2VkTGF5b3V0KTsKKworICAgICAgICBzeW0gPSB4a2Jfc3RhdGVfa2V5
X2dldF9vbmVfc3ltKHF1ZXJ5U3RhdGUsIGV2ZW50LT5uYXRpdmVTY2FuQ29kZSgpKTsKKyAgICAg
ICAgaWYgKHN5bSA9PSBYS0JfS0VZX05vU3ltYm9sKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaW50IGJhc2VRdEtleSA9IGtleXN5bVRvUXRLZXlfaW50ZXJuYWwoc3ltLCBtb2Rp
ZmllcnMsIHF1ZXJ5U3RhdGUsIGtleWNvZGUsIHN1cGVyQXNNZXRhLCBoeXBlckFzTWV0YSk7Cisg
ICAgICAgIGlmIChiYXNlUXRLZXkgJiYgIXJlc3VsdC5jb250YWlucyhiYXNlUXRLZXkgKyBpbnQo
bW9kaWZpZXJzKSkgJiYgUUNoYXIoYmFzZVF0S2V5KS5pc0xldHRlcigpKSAvL05PVEU6IFdlIHNo
b3VsZCBkaXNhbGxvdyBkdXBsaWNhdGVzIGluIHRoZSByZXN1bHQgbGlzdAorICAgICAgICAgICAg
cmVzdWx0ICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVkKGJhc2VRdEtleSArIGludCht
b2RpZmllcnMpKTsKKworICAgICAgICB4a2JfbW9kX21hc2tfdCBkZXByZXNzZWQ7CisgICAgICAg
IGludCBxdEtleSA9IDA7CisgICAgICAgIC8vIG9idGFpbiBhIGxpc3Qgb2YgcG9zc2libGUgc2hv
cnRjdXRzIGZvciB0aGUgZ2l2ZW4ga2V5IGV2ZW50CisgICAgICAgIGZvciAodWludCBpID0gMTsg
aSA8IHNpemVvZihNb2RzVGJsKSAvIHNpemVvZigqTW9kc1RibCkgOyArK2kpIHsKKyAgICAgICAg
ICAgIFF0OjpLZXlib2FyZE1vZGlmaWVycyBuZWVkZWRNb2RzID0gTW9kc1RibFtpXTsKKyAgICAg
ICAgICAgIGlmICgobW9kaWZpZXJzICYgbmVlZGVkTW9kcykgPT0gbmVlZGVkTW9kcykgeworICAg
ICAgICAgICAgICAgIGlmIChpID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTGF0
aW4xKGJhc2VRdEtleSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gYWRkIGEgbGF0aW4ga2V5IGFzIGEgZmFsbCBiYWNrIGtleQorICAg
ICAgICAgICAgICAgICAgICBzeW0gPSBsb29rdXBMYXRpbktleXN5bShzdGF0ZSwga2V5Y29kZSk7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVwcmVzc2Vk
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRlZE1vZHMgJiBRdDo6QWx0TW9kaWZp
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBkZXByZXNzZWQgfD0gKDEgPDwgYWx0TW9kKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRlZE1vZHMgJiBRdDo6U2hpZnRNb2RpZmllcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8PCBzaGlmdE1vZCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChuZWVkZWRNb2RzICYgUXQ6OkNvbnRyb2xNb2RpZmllcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8PCBjb250cm9sTW9kKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGFNb2QgPCAzMiAmJiBuZWVkZWRNb2RzICYgUXQ6
Ok1ldGFNb2RpZmllcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlc3NlZCB8PSAoMSA8
PCBtZXRhTW9kKTsKKyAgICAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrKHF1
ZXJ5U3RhdGUsIGRlcHJlc3NlZCwgbGF0Y2hlZE1vZHMsIGxvY2tlZE1vZHMsIDAsIDAsIGxvY2tl
ZExheW91dCk7CisgICAgICAgICAgICAgICAgICAgIHN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29u
ZV9zeW0ocXVlcnlTdGF0ZSwga2V5Y29kZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmIChzeW0gPT0gWEtCX0tFWV9Ob1N5bWJvbCkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgICAgICBRdDo6S2V5Ym9hcmRNb2RpZmllcnMgbW9kcyA9
IG1vZGlmaWVycyAmIH5uZWVkZWRNb2RzOworICAgICAgICAgICAgICAgIHF0S2V5ID0ga2V5c3lt
VG9RdEtleV9pbnRlcm5hbChzeW0sIG1vZHMsIHF1ZXJ5U3RhdGUsIGtleWNvZGUsIHN1cGVyQXNN
ZXRhLCBoeXBlckFzTWV0YSk7CisgICAgICAgICAgICAgICAgaWYgKCFxdEtleSB8fCBxdEtleSA9
PSBiYXNlUXRLZXkgfHwgIVFDaGFyKHF0S2V5KS5pc0xldHRlcigpKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIGNhdGNoIG9ubHkgbW9yZSBzcGVj
aWZpYyBzaG9ydGN1dHMsIGkuZS4gQ3RybCtTaGlmdCs9IGFsc28gZ2VuZXJhdGVzIEN0cmwrKyBh
bmQgKywKKyAgICAgICAgICAgICAgICAvLyBidXQgQ3RybCsrIGlzIG1vcmUgc3BlY2lmaWMgdGhh
biArLCBzbyB3ZSBzaG91bGQgc2tpcCB0aGUgbGFzdCBvbmUKKyAgICAgICAgICAgICAgICBib29s
IGFtYmlndW91cyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoUUtleUNvbWJpbmF0aW9u
IHNob3J0Y3V0IDogc3RkOjphc19jb25zdChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChzaG9ydGN1dC5rZXkoKSA9PSBxdEtleSAmJiAoc2hvcnRjdXQua2V5Ym9hcmRNb2RpZmll
cnMoKSAmIG1vZHMpID09IG1vZHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFtYmlndW91
cyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYW1iaWd1b3Vz
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIGtl
ZXAga2V5IGNvbWJpbmF0aW9uIGluIHRoZSByZXN1bHQgbGlzIGZvciBmdXJ0aGVyIHByb2Nlc3Np
bmcKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gUUtleUNvbWJpbmF0aW9uOjpmcm9tQ29tYmlu
ZWQocXRLZXkgKyBpbnQobW9kcykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC1OYXVyIHF0YmFzZS1vcmlnL3NyYy93aWRn
ZXRzL3dpZGdldHMvcW1lbnViYXIuY3BwIHF0YmFzZS9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51
YmFyLmNwcAotLS0gcXRiYXNlLW9yaWcvc3JjL3dpZGdldHMvd2lkZ2V0cy9xbWVudWJhci5jcHAJ
MjAyNC0xMC0xOCAyMzowNjo1MS41NzI2MzI4NjcgKzAzMDAKKysrIHF0YmFzZS9zcmMvd2lkZ2V0
cy93aWRnZXRzL3FtZW51YmFyLmNwcAkyMDI0LTEwLTE4IDIzOjEzOjAwLjc3NjQ0MzY5MSArMDMw
MApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgInFtZW51YmFyX3AuaCIKICNpbmNsdWRlIDxw
cml2YXRlL3FzY3JlZW5fcC5oPgogI2luY2x1ZGUgInFkZWJ1Zy5oIgorI2luY2x1ZGUgPHByaXZh
dGUvcWtleW1hcHBlcl9wLmg+CiAKIFFUX0JFR0lOX05BTUVTUEFDRQogCkBAIC0xMDc4LDYgKzEw
NzksOSBAQAogICAgICAgICBRQWN0aW9uICpmaXJzdCA9IG51bGxwdHIsICpjdXJyZW50U2VsZWN0
ZWQgPSBudWxscHRyLCAqZmlyc3RBZnRlckN1cnJlbnQgPSBudWxscHRyOwogICAgICAgICB7CiAg
ICAgICAgICAgICBjb25zdCBRQ2hhciBjID0gZS0+dGV4dCgpLmF0KDApLnRvVXBwZXIoKTsKKyAg
ICAgICAgICAgIFFMaXN0PFFLZXlDb21iaW5hdGlvbj4gcG9zc2libGVLZXlzID0gUUtleU1hcHBl
cjo6cG9zc2libGVLZXlzKGUpOworICAgICAgICAgICAgaWYoIXBvc3NpYmxlS2V5cy5jb250YWlu
cyhRS2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChjLnVuaWNvZGUoKSkpKQorICAgICAgICAg
ICAgICAgIHBvc3NpYmxlS2V5cyArPSBRS2V5Q29tYmluYXRpb246OmZyb21Db21iaW5lZChjLnVu
aWNvZGUoKSk7CiAgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZC0+YWN0aW9ucy5zaXpl
KCk7ICsraSkgewogICAgICAgICAgICAgICAgIGlmIChkLT5hY3Rpb25SZWN0cy5hdChpKS5pc051
bGwoKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0xMDg2LDE0ICsxMDkwLDE5
IEBACiAgICAgICAgICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAg
ICAgICBxc2l6ZXR5cGUgYW1wZXJzYW5kID0gcy5pbmRleE9mKHUnJicpOwogICAgICAgICAgICAg
ICAgICAgICBpZiAoYW1wZXJzYW5kID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChzW2FtcGVyc2FuZCsxXS50b1VwcGVyKCkgPT0gYykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsYXNoQ291bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZp
cnN0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGFjdDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0ID09IGQtPmN1cnJlbnRBY3Rpb24pCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWxlY3RlZCA9IGFjdDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghZmlyc3RBZnRlckN1cnJlbnQgJiYgY3Vy
cmVudFNlbGVjdGVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEFmdGVy
Q3VycmVudCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIFFMaXN0PFFLZXlDb21iaW5h
dGlvbj46OkNvbnN0SXRlcmF0b3IgazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcihrID0g
cG9zc2libGVLZXlzLmNvbnN0QmVnaW4oKTsgayAhPSBwb3NzaWJsZUtleXMuY29uc3RFbmQoKTsg
KytrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUtleUNvbWJpbmF0aW9uIGtleV9l
ID0gKms7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc1thbXBlcnNhbmQrMV0udG9V
cHBlcigpLnVuaWNvZGUoKSA9PSAoa2V5X2UudG9Db21iaW5lZCgpICYgMHhmZmZmKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzaENvdW50Kys7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmKCFmaXJzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpcnN0ID0gYWN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZihhY3QgPT0gZC0+Y3VycmVudEFjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cnJlbnRTZWxlY3RlZCA9IGFjdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZSBpZiAoIWZpcnN0QWZ0ZXJDdXJyZW50ICYmIGN1cnJlbnRTZWxlY3RlZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0QWZ0ZXJDdXJyZW50ID0gYWN0
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CmRpZmYgLU5hdXIgcXRiYXNlLW9yaWcvc3JjL3dp
ZGdldHMvd2lkZ2V0cy9xbWVudS5jcHAgcXRiYXNlL3NyYy93aWRnZXRzL3dpZGdldHMvcW1lbnUu
Y3BwCi0tLSBxdGJhc2Utb3JpZy9zcmMvd2lkZ2V0cy93aWRnZXRzL3FtZW51LmNwcAkyMDI0LTEw
LTE4IDIzOjA4OjM4LjIzMDk1NzEzOSArMDMwMAorKysgcXRiYXNlL3NyYy93aWRnZXRzL3dpZGdl
dHMvcW1lbnUuY3BwCTIwMjQtMTAtMTggMjM6MTM6MDAuNzc3NDQzNjQ3ICswMzAwCkBAIC00Myw2
ICs0Myw3IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9xZ3VpYXBwbGljYXRpb25fcC5oPgogI2luY2x1
ZGUgPHFwYS9xcGxhdGZvcm10aGVtZS5oPgogI2luY2x1ZGUgPHByaXZhdGUvcXN0eWxlX3AuaD4K
KyNpbmNsdWRlICJwcml2YXRlL3FrZXltYXBwZXJfcC5oIgogCiBRVF9CRUdJTl9OQU1FU1BBQ0UK
IApAQCAtMzM3NCwyMCArMzM3NSwyOCBAQAogICAgICAgICAgICAgICAgIGludCBjbGFzaENvdW50
ID0gMDsKICAgICAgICAgICAgICAgICBRQWN0aW9uICpmaXJzdCA9IG51bGxwdHIsICpjdXJyZW50
U2VsZWN0ZWQgPSBudWxscHRyLCAqZmlyc3RBZnRlckN1cnJlbnQgPSBudWxscHRyOwogICAgICAg
ICAgICAgICAgIFFDaGFyIGMgPSBlLT50ZXh0KCkuYXQoMCkudG9VcHBlcigpOworICAgICAgICAg
ICAgICAgIFFMaXN0PFFLZXlDb21iaW5hdGlvbj4gcG9zc2libGVLZXlzID0gUUtleU1hcHBlcjo6
cG9zc2libGVLZXlzKGUpOworICAgICAgICAgICAgICAgIGlmKCFwb3NzaWJsZUtleXMuY29udGFp
bnMoUUtleUNvbWJpbmF0aW9uOjpmcm9tQ29tYmluZWQoYy51bmljb2RlKCkpKSkKKyAgICAgICAg
ICAgICAgICAgICAgcG9zc2libGVLZXlzICs9IFFLZXlDb21iaW5hdGlvbjo6ZnJvbUNvbWJpbmVk
KGMudW5pY29kZSgpKTsKICAgICAgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZC0+YWN0
aW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoZC0+YWN0aW9uUmVj
dHMuYXQoaSkuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICAgICAgUUFjdGlvbiAqYWN0ID0gZC0+YWN0aW9ucy5hdChpKTsKICAgICAg
ICAgICAgICAgICAgICAgUUtleVNlcXVlbmNlIHNlcXVlbmNlID0gUUtleVNlcXVlbmNlOjptbmVt
b25pYyhhY3QtPnRleHQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGludCBrZXkgPSBzZXF1ZW5j
ZVswXS50b0NvbWJpbmVkKCkgJiAweGZmZmY7IC8vIHN1c3BpY2lvdXMKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKGtleSA9PSBjLnVuaWNvZGUoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc2hDb3VudCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGFjdDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChhY3QgPT0gZC0+Y3VycmVudEFjdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50U2VsZWN0ZWQgPSBhY3Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNl
IGlmICghZmlyc3RBZnRlckN1cnJlbnQgJiYgY3VycmVudFNlbGVjdGVkKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZpcnN0QWZ0ZXJDdXJyZW50ID0gYWN0OworICAgICAgICAgICAgICAg
ICAgICBRTGlzdDxRS2V5Q29tYmluYXRpb24+OjpDb25zdEl0ZXJhdG9yIGs7CisgICAgICAgICAg
ICAgICAgICAgIGZvciAoayA9IHBvc3NpYmxlS2V5cy5jb25zdEJlZ2luKCk7IGsgIT0gcG9zc2li
bGVLZXlzLmNvbnN0RW5kKCk7ICsraykgeworICAgICAgICAgICAgICAgICAgICAgICAgUUtleUNv
bWJpbmF0aW9uIGtleV9lID0gKms7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09
IChrZXlfZS50b0NvbWJpbmVkKCkgJiAweGZmZmYpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xhc2hDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmly
c3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gYWN0OworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3QgPT0gZC0+Y3VycmVudEFjdGlvbikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlbGVjdGVkID0gYWN0OworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFmaXJzdEFmdGVyQ3VycmVudCAmJiBjdXJy
ZW50U2VsZWN0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0QWZ0ZXJD
dXJyZW50ID0gYWN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIGlmIChjbGFzaENvdW50ID09IDEpCgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
</data>

          </attachment>
      

    </bug>

</bugzilla>