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

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

    <bug>
          <bug_id>16326</bug_id>
          
          <creation_ts>2008-07-09 20:17:59 +0400</creation_ts>
          <short_desc>[FR] добавить поддержку ipset</short_desc>
          <delta_ts>2008-09-10 23:58:08 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>iptables</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>patch</keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Igor Zubkov">icesik</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>akhavr</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>73849</commentid>
    <comment_count>0</comment_count>
      <attachid>2698</attachid>
    <who name="Igor Zubkov">icesik</who>
    <bug_when>2008-07-09 20:17:59 +0400</bug_when>
    <thetext>Created attachment 2698
Патч включающий поддержку ipset

Прошу добавить патчи для поддержки ipset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73850</commentid>
    <comment_count>1</comment_count>
      <attachid>2699</attachid>
    <who name="Igor Zubkov">icesik</who>
    <bug_when>2008-07-09 20:18:58 +0400</bug_when>
    <thetext>Created attachment 2699
Патч исправляющий опечатку в мане</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74722</commentid>
    <comment_count>2</comment_count>
      <attachid>2749</attachid>
    <who name="Igor Zubkov">icesik</who>
    <bug_when>2008-08-02 18:05:22 +0400</bug_when>
    <thetext>Created attachment 2749
Бэкпорт ipset из 1.4.1.1 iptables

В принципе, патч почти такой же. Авторство там указано. Взято из 1.4.1.1 версии iptables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76624</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-08-30 03:12:01 +0400</bug_when>
    <thetext>давно уже, iptables-1.4.0-alt3</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2698</attachid>
            <date>2008-07-09 20:17:59 +0400</date>
            <delta_ts>2008-08-02 18:05:22 +0400</delta_ts>
            <desc>Патч включающий поддержку ipset</desc>
            <filename>iptables-1.4.0-alt-ipset.patch</filename>
            <type>text/plain</type>
            <size>17229</size>
            <attacher name="Igor Zubkov">icesik</attacher>
            
              <data encoding="base64">ZGlmZiAtdXJOIGlwdGFibGVzLTEuNC4wLm9yaWcvZXh0ZW5zaW9ucy9pcF9zZXQuaCBpcHRhYmxl
cy0xLjQuMC9leHRlbnNpb25zL2lwX3NldC5oCi0tLSBpcHRhYmxlcy0xLjQuMC5vcmlnL2V4dGVu
c2lvbnMvaXBfc2V0LmgJMTk3MC0wMS0wMSAwMzowMDowMCArMDMwMAorKysgaXB0YWJsZXMtMS40
LjAvZXh0ZW5zaW9ucy9pcF9zZXQuaAkyMDA4LTA3LTA4IDE3OjA4OjU1ICswMzAwCkBAIC0wLDAg
KzEsNDk4IEBACisjaWZuZGVmIF9JUF9TRVRfSAorI2RlZmluZSBfSVBfU0VUX0gKKworLyogQ29w
eXJpZ2h0IChDKSAyMDAwLTIwMDIgSm9ha2ltIEF4ZWxzc29uIDxnb3plbUBsaW51eC5udT4KKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgIFBhdHJpY2sgU2NoYWFmIDxib2ZAYm9mLmRlPgorICog
ICAgICAgICAgICAgICAgICAgICAgICAgTWFydGluIEpvc2Vmc3NvbiA8Z2FuZGFsZkB3bHVnLndl
c3Riby5zZT4KKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0IEpvenNlZiBLYWRsZWNzaWsgPGth
ZGxlY0BibGFja2hvbGUua2ZraS5odT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMK
KyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgCisgKi8KKwor
I2lmIDAKKyNkZWZpbmUgSVBfU0VUX0RFQlVHCisjZW5kaWYKKworLyoKKyAqIEEgc29ja29wdCBv
ZiBzdWNoIHF1YWxpdHkgaGFzIGhhcmRseSBldmVyIGJlZW4gc2VlbiBiZWZvcmUgb24gdGhlIG9w
ZW4KKyAqIG1hcmtldCEgIFRoaXMgbGl0dGxlIGJlYXV0eSwgaGFyZGx5IGV2ZXIgdXNlZDogYWJv
dmUgNjQsIHNvIGl0J3MKKyAqIHRyYWRpdGlvbmFsbHkgdXNlZCBmb3IgZmlyZXdhbGxpbmcsIG5v
dCB0b3VjaGVkIChldmVuIG9uY2UhKSBieSB0aGUKKyAqIDIuMCwgMi4yIGFuZCAyLjQga2VybmVs
cyEKKyAqCisgKiBDb21lcyB3aXRoIGl0cyBvd24gY2VydGlmaWNhdGUgb2YgYXV0aGVudGljaXR5
LCB2YWxpZCBhbnl3aGVyZSBpbiB0aGUKKyAqIEZyZWUgd29ybGQhCisgKgorICogUnVzdHksIDE5
LjQuMjAwMAorICovCisjZGVmaW5lIFNPX0lQX1NFVCAJCTgzCisKKy8qCisgKiBIZWF2aWx5IG1v
ZGlmeSBieSBKb2FraW0gQXhlbHNzb24gMDguMDMuMjAwMgorICogLSBNYWRlIGl0IG1vcmUgbW9k
dWxlYmFzZWQKKyAqCisgKiBBZGRpdGlvbmFsIGhlYXZ5IG1vZGlmaWNhdGlvbnMgYnkgSm96c2Vm
IEthZGxlY3NpayAyMi4wMi4yMDA0CisgKiAtIGJpbmRpbmdzIGFkZGVkCisgKiAtIGluIG9yZGVy
IHRvICJkZWFsIHdpdGgiIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHJlbmFtZWQgdG8gaXBzZXQK
KyAqLworCisvKiAKKyAqIFVzZWQgc28gdGhhdCB0aGUga2VybmVsIG1vZHVsZSBhbmQgaXBzZXQt
YmluYXJ5IGNhbiBtYXRjaCB0aGVpciB2ZXJzaW9ucyAKKyAqLworI2RlZmluZSBJUF9TRVRfUFJP
VE9DT0xfVkVSU0lPTiAyCisKKyNkZWZpbmUgSVBfU0VUX01BWE5BTUVMRU4gMzIJLyogc2V0IG5h
bWVzIGFuZCBzZXQgdHlwZW5hbWVzICovCisKKy8qIExldHMgd29yayB3aXRoIG91ciBvd24gdHlw
ZWRlZiBmb3IgcmVwcmVzZW50aW5nIGFuIElQIGFkZHJlc3MuCisgKiBXZSBob3BlIHRvIG1ha2Ug
dGhlIGNvZGUgbW9yZSBwb3J0YWJsZSwgcG9zc2libHkgdG8gSVB2Ni4uLgorICoKKyAqIFRoZSBy
ZXByZXNlbnRhdGlvbiB3b3JrcyBpbiBIT1NUIGJ5dGUgb3JkZXIsIGJlY2F1c2UgbW9zdCBzZXQg
dHlwZXMKKyAqIHdpbGwgcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgYW5kIGNvbXBhcmUg
b3BlcmF0aW9ucy4KKyAqIAorICogRm9yIG5vdyB0aGUgdHlwZSBpcyBhbiB1aW50MzJfdC4KKyAq
CisgKiBNYWtlIHN1cmUgdG8gT05MWSB1c2UgdGhlIGZ1bmN0aW9ucyB3aGVuIHRyYW5zbGF0aW5n
IGFuZCBwYXJzaW5nCisgKiBpbiBvcmRlciB0byBrZWVwIHRoZSBob3N0IGJ5dGUgb3JkZXIgYW5k
IG1ha2UgaXQgbW9yZSBwb3J0YWJsZToKKyAqICBwYXJzZV9pcCgpCisgKiAgcGFyc2VfbWFzaygp
CisgKiAgcGFyc2VfaXBhbmRtYXNrKCkKKyAqICBpcF90b3N0cmluZygpCisgKiAoSm9ha2ltOiB3
aGVyZSBhcmUgdGhleT8/PykKKyAqLworCit0eXBlZGVmIHVpbnQzMl90IGlwX3NldF9pcF90Owor
CisvKiBTZXRzIGFyZSBpZGVudGlmaWVkIGJ5IGFuIGlkIGluIGtlcm5lbCBzcGFjZS4gVHdlYWsg
d2l0aCBpcF9zZXRfaWRfdAorICogYW5kIElQX1NFVF9JTlZBTElEX0lEIGlmIHlvdSB3YW50IHRv
IGluY3JlYXNlIHRoZSBtYXggbnVtYmVyIG9mIHNldHMuCisgKi8KK3R5cGVkZWYgdWludDE2X3Qg
aXBfc2V0X2lkX3Q7CisKKyNkZWZpbmUgSVBfU0VUX0lOVkFMSURfSUQJNjU1MzUKKworLyogSG93
IGRlZXAgd2UgZm9sbG93IGJpbmRpbmdzICovCisjZGVmaW5lIElQX1NFVF9NQVhfQklORElOR1MJ
NgorCisvKgorICogT3B0aW9uIGZsYWdzIGZvciBrZXJuZWwgb3BlcmF0aW9ucyAoaXB0X3NldF9p
bmZvKQorICovCisjZGVmaW5lIElQU0VUX1NSQyAJCTB4MDEJLyogU291cmNlIG1hdGNoL2FkZCAq
LworI2RlZmluZSBJUFNFVF9EU1QJCTB4MDIJLyogRGVzdGluYXRpb24gbWF0Y2gvYWRkICovCisj
ZGVmaW5lIElQU0VUX01BVENIX0lOVgkJMHgwNAkvKiBJbnZlcnNlIG1hdGNoaW5nICovCisKKy8q
CisgKiBTZXQgZmVhdHVyZXMKKyAqLworI2RlZmluZSBJUFNFVF9UWVBFX0lQCQkweDAxCS8qIElQ
IGFkZHJlc3MgdHlwZSBvZiBzZXQgKi8KKyNkZWZpbmUgSVBTRVRfVFlQRV9QT1JUCQkweDAyCS8q
IFBvcnQgdHlwZSBvZiBzZXQgKi8KKyNkZWZpbmUgSVBTRVRfREFUQV9TSU5HTEUJMHgwNAkvKiBT
aW5nbGUgZGF0YSBzdG9yYWdlICovCisjZGVmaW5lIElQU0VUX0RBVEFfRE9VQkxFCTB4MDgJLyog
RG91YmxlIGRhdGEgc3RvcmFnZSAqLworCisvKiBSZXNlcnZlZCBrZXl3b3JkcyAqLworI2RlZmlu
ZSBJUFNFVF9UT0tFTl9ERUZBVUxUCSI6ZGVmYXVsdDoiCisjZGVmaW5lIElQU0VUX1RPS0VOX0FM
TAkJIjphbGw6IgorCisvKiBTT19JUF9TRVQgb3BlcmF0aW9uIGNvbnN0YW50cywgYW5kIHRoZWly
IHJlcXVlc3Qgc3RydWN0IHR5cGVzLgorICoKKyAqIE9wZXJhdGlvbiBpZHM6CisgKgkgIDAtOTk6
CSBjb21tYW5kcyB3aXRoIHZlcnNpb24gY2hlY2tpbmcKKyAqCTEwMC0xOTk6IGFkZC9kZWwvdGVz
dC9iaW5kL3VuYmluZAorICoJMjAwLTI5OTogbGlzdCwgc2F2ZSwgcmVzdG9yZQorICovCisKKy8q
IFNpbmdsZSBzaG90IG9wZXJhdGlvbnM6IAorICogdmVyc2lvbiwgY3JlYXRlLCBkZXN0cm95LCBm
bHVzaCwgcmVuYW1lIGFuZCBzd2FwIAorICoKKyAqIFNldHMgYXJlIGlkZW50aWZpZWQgYnkgbmFt
ZS4KKyAqLworCisjZGVmaW5lIElQX1NFVF9SRVFfU1RECQlcCisJdW5zaWduZWQgb3A7CQlcCisJ
dW5zaWduZWQgdmVyc2lvbjsJXAorCWNoYXIgbmFtZVtJUF9TRVRfTUFYTkFNRUxFTl0KKworI2Rl
ZmluZSBJUF9TRVRfT1BfQ1JFQVRFCTB4MDAwMDAwMDEJLyogQ3JlYXRlIGEgbmV3IChlbXB0eSkg
c2V0ICovCitzdHJ1Y3QgaXBfc2V0X3JlcV9jcmVhdGUgeworCUlQX1NFVF9SRVFfU1REOworCWNo
YXIgdHlwZW5hbWVbSVBfU0VUX01BWE5BTUVMRU5dOworfTsKKworI2RlZmluZSBJUF9TRVRfT1Bf
REVTVFJPWQkweDAwMDAwMDAyCS8qIFJlbW92ZSBhIChlbXB0eSkgc2V0ICovCitzdHJ1Y3QgaXBf
c2V0X3JlcV9zdGQgeworCUlQX1NFVF9SRVFfU1REOworfTsKKworI2RlZmluZSBJUF9TRVRfT1Bf
RkxVU0gJCTB4MDAwMDAwMDMJLyogUmVtb3ZlIGFsbCBJUHMgaW4gYSBzZXQgKi8KKy8qIFVzZXMg
aXBfc2V0X3JlcV9zdGQgKi8KKworI2RlZmluZSBJUF9TRVRfT1BfUkVOQU1FCTB4MDAwMDAwMDQJ
LyogUmVuYW1lIGEgc2V0ICovCisvKiBVc2VzIGlwX3NldF9yZXFfY3JlYXRlICovCisKKyNkZWZp
bmUgSVBfU0VUX09QX1NXQVAJCTB4MDAwMDAwMDUJLyogU3dhcCB0d28gc2V0cyAqLworLyogVXNl
cyBpcF9zZXRfcmVxX2NyZWF0ZSAqLworCit1bmlvbiBpcF9zZXRfbmFtZV9pbmRleCB7CisJY2hh
ciBuYW1lW0lQX1NFVF9NQVhOQU1FTEVOXTsKKwlpcF9zZXRfaWRfdCBpbmRleDsKK307CisKKyNk
ZWZpbmUgSVBfU0VUX09QX0dFVF9CWU5BTUUJMHgwMDAwMDAwNgkvKiBHZXQgc2V0IGluZGV4IGJ5
IG5hbWUgKi8KK3N0cnVjdCBpcF9zZXRfcmVxX2dldF9zZXQgeworCXVuc2lnbmVkIG9wOworCXVu
c2lnbmVkIHZlcnNpb247CisJdW5pb24gaXBfc2V0X25hbWVfaW5kZXggc2V0OworfTsKKworI2Rl
ZmluZSBJUF9TRVRfT1BfR0VUX0JZSU5ERVgJMHgwMDAwMDAwNwkvKiBHZXQgc2V0IG5hbWUgYnkg
aW5kZXggKi8KKy8qIFVzZXMgaXBfc2V0X3JlcV9nZXRfc2V0ICovCisKKyNkZWZpbmUgSVBfU0VU
X09QX1ZFUlNJT04JMHgwMDAwMDEwMAkvKiBBc2sga2VybmVsIHZlcnNpb24gKi8KK3N0cnVjdCBp
cF9zZXRfcmVxX3ZlcnNpb24geworCXVuc2lnbmVkIG9wOworCXVuc2lnbmVkIHZlcnNpb247Cit9
OworCisvKiBEb3VibGUgc2hvdHMgb3BlcmF0aW9uczogCisgKiBhZGQsIGRlbCwgdGVzdCwgYmlu
ZCBhbmQgdW5iaW5kLgorICoKKyAqIEZpcnN0IHdlIHF1ZXJ5IHRoZSBrZXJuZWwgdG8gZ2V0IHRo
ZSBpbmRleCBhbmQgdHlwZSBvZiB0aGUgdGFyZ2V0IHNldCwKKyAqIHRoZW4gaXNzdWUgdGhlIGNv
bW1hbmQuIFZhbGlkaXR5IG9mIElQIGlzIGNoZWNrZWQgaW4ga2VybmVsIGluIG9yZGVyCisgKiB0
byBtaW5pbWFsaXplIHNvY2tvcHQgb3BlcmF0aW9ucy4KKyAqLworCisvKiBHZXQgbWluaW1hbCBz
ZXQgZGF0YSBmb3IgYWRkL2RlbC90ZXN0L2JpbmQvdW5iaW5kIElQICovCisjZGVmaW5lIElQX1NF
VF9PUF9BRFRfR0VUCTB4MDAwMDAwMTAJLyogR2V0IHNldCBhbmQgdHlwZSAqLworc3RydWN0IGlw
X3NldF9yZXFfYWR0X2dldCB7CisJdW5zaWduZWQgb3A7CisJdW5zaWduZWQgdmVyc2lvbjsKKwl1
bmlvbiBpcF9zZXRfbmFtZV9pbmRleCBzZXQ7CisJY2hhciB0eXBlbmFtZVtJUF9TRVRfTUFYTkFN
RUxFTl07Cit9OworCisjZGVmaW5lIElQX1NFVF9SRVFfQllJTkRFWAlcCisJdW5zaWduZWQgb3A7
CQlcCisJaXBfc2V0X2lkX3QgaW5kZXg7CisKK3N0cnVjdCBpcF9zZXRfcmVxX2FkdCB7CisJSVBf
U0VUX1JFUV9CWUlOREVYOworfTsKKworI2RlZmluZSBJUF9TRVRfT1BfQUREX0lQCTB4MDAwMDAx
MDEJLyogQWRkIGFuIElQIHRvIGEgc2V0ICovCisvKiBVc2VzIGlwX3NldF9yZXFfYWR0LCB3aXRo
IHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKyNkZWZpbmUgSVBfU0VUX09QX0RFTF9JUAkweDAw
MDAwMTAyCS8qIFJlbW92ZSBhbiBJUCBmcm9tIGEgc2V0ICovCisvKiBVc2VzIGlwX3NldF9yZXFf
YWR0LCB3aXRoIHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKyNkZWZpbmUgSVBfU0VUX09QX1RF
U1RfSVAJMHgwMDAwMDEwMwkvKiBUZXN0IGFuIElQIGluIGEgc2V0ICovCisvKiBVc2VzIGlwX3Nl
dF9yZXFfYWR0LCB3aXRoIHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKyNkZWZpbmUgSVBfU0VU
X09QX0JJTkRfU0VUCTB4MDAwMDAxMDQJLyogQmluZCBhbiBJUCB0byBhIHNldCAqLworLyogVXNl
cyBpcF9zZXRfcmVxX2JpbmQsIHdpdGggdHlwZSBzcGVjaWZpYyBhZGRhZ2UgKi8KK3N0cnVjdCBp
cF9zZXRfcmVxX2JpbmQgeworCUlQX1NFVF9SRVFfQllJTkRFWDsKKwljaGFyIGJpbmRpbmdbSVBf
U0VUX01BWE5BTUVMRU5dOworfTsKKworI2RlZmluZSBJUF9TRVRfT1BfVU5CSU5EX1NFVAkweDAw
MDAwMTA1CS8qIFVuYmluZCBhbiBJUCBmcm9tIGEgc2V0ICovCisvKiBVc2VzIGlwX3NldF9yZXFf
YmluZCwgd2l0aCB0eXBlIHNwZWZpY2ljIGFkZGFnZSAKKyAqIGluZGV4ID0gMCBtZWFucyB1bmJp
bmRpbmcgZm9yIGFsbCBzZXRzICovCisKKyNkZWZpbmUgSVBfU0VUX09QX1RFU1RfQklORF9TRVQJ
MHgwMDAwMDEwNgkvKiBUZXN0IGJpbmRpbmcgYW4gSVAgdG8gYSBzZXQgKi8KKy8qIFVzZXMgaXBf
c2V0X3JlcV9iaW5kLCB3aXRoIHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKy8qIE11bHRpcGxl
IHNob3RzIG9wZXJhdGlvbnM6IGxpc3QsIHNhdmUsIHJlc3RvcmUuCisgKgorICogLSBjaGVjayBr
ZXJuZWwgdmVyc2lvbiBhbmQgcXVlcnkgdGhlIG1heCBudW1iZXIgb2Ygc2V0cworICogLSBnZXQg
dGhlIGJhc2ljIGluZm9ybWF0aW9uIG9uIGFsbCBzZXRzCisgKiAgIGFuZCBzaXplIHJlcXVpcmVk
IGZvciB0aGUgbmV4dCBzdGVwCisgKiAtIGdldCBhY3R1YWwgc2V0IGRhdGE6IGhlYWRlciwgZGF0
YSwgYmluZGluZ3MKKyAqLworCisvKiBHZXQgbWF4X3NldHMgYW5kIHRoZSBpbmRleCBvZiBhIHF1
ZXJpZWQgc2V0CisgKi8KKyNkZWZpbmUgSVBfU0VUX09QX01BWF9TRVRTCTB4MDAwMDAwMjAKK3N0
cnVjdCBpcF9zZXRfcmVxX21heF9zZXRzIHsKKwl1bnNpZ25lZCBvcDsKKwl1bnNpZ25lZCB2ZXJz
aW9uOworCWlwX3NldF9pZF90IG1heF9zZXRzOwkJLyogbWF4X3NldHMgKi8KKwlpcF9zZXRfaWRf
dCBzZXRzOwkJLyogcmVhbCBudW1iZXIgb2Ygc2V0cyAqLworCXVuaW9uIGlwX3NldF9uYW1lX2lu
ZGV4IHNldDsJLyogaW5kZXggb2Ygc2V0IGlmIG5hbWUgdXNlZCAqLworfTsKKworLyogR2V0IHRo
ZSBpZCBhbmQgbmFtZSBvZiB0aGUgc2V0cyBwbHVzIHNpemUgZm9yIG5leHQgc3RlcCAqLworI2Rl
ZmluZSBJUF9TRVRfT1BfTElTVF9TSVpFCTB4MDAwMDAyMDEKKyNkZWZpbmUgSVBfU0VUX09QX1NB
VkVfU0laRQkweDAwMDAwMjAyCitzdHJ1Y3QgaXBfc2V0X3JlcV9zZXRuYW1lcyB7CisJdW5zaWdu
ZWQgb3A7CisJaXBfc2V0X2lkX3QgaW5kZXg7CQkvKiBzZXQgdG8gbGlzdC9zYXZlICovCisJc2l6
ZV90IHNpemU7CQkJLyogc2l6ZSB0byBnZXQgc2V0ZGF0YS9iaW5kaW5ncyAqLworCS8qIGZvbGxv
d2VkIGJ5IHNldHMgbnVtYmVyIG9mIHN0cnVjdCBpcF9zZXRfbmFtZV9saXN0ICovCit9OworCitz
dHJ1Y3QgaXBfc2V0X25hbWVfbGlzdCB7CisJY2hhciBuYW1lW0lQX1NFVF9NQVhOQU1FTEVOXTsK
KwljaGFyIHR5cGVuYW1lW0lQX1NFVF9NQVhOQU1FTEVOXTsKKwlpcF9zZXRfaWRfdCBpbmRleDsK
KwlpcF9zZXRfaWRfdCBpZDsKK307CisKKy8qIFRoZSBhY3R1YWwgbGlzdCBvcGVyYXRpb24gKi8K
KyNkZWZpbmUgSVBfU0VUX09QX0xJU1QJCTB4MDAwMDAyMDMKK3N0cnVjdCBpcF9zZXRfcmVxX2xp
c3QgeworCUlQX1NFVF9SRVFfQllJTkRFWDsKKwkvKiBzZXRzIG51bWJlciBvZiBzdHJ1Y3QgaXBf
c2V0X2xpc3QgaW4gcmVwbHkgKi8gCit9OworCitzdHJ1Y3QgaXBfc2V0X2xpc3QgeworCWlwX3Nl
dF9pZF90IGluZGV4OworCWlwX3NldF9pZF90IGJpbmRpbmc7CisJdV9pbnQzMl90IHJlZjsKKwlz
aXplX3QgaGVhZGVyX3NpemU7CS8qIFNldCBoZWFkZXIgZGF0YSBvZiBoZWFkZXJfc2l6ZSAqLwor
CXNpemVfdCBtZW1iZXJzX3NpemU7CS8qIFNldCBtZW1iZXJzIGRhdGEgb2YgbWVtYmVyc19zaXpl
ICovCisJc2l6ZV90IGJpbmRpbmdzX3NpemU7CS8qIFNldCBiaW5kaW5ncyBkYXRhIG9mIGJpbmRp
bmdzX3NpemUgKi8KK307CisKK3N0cnVjdCBpcF9zZXRfaGFzaF9saXN0IHsKKwlpcF9zZXRfaXBf
dCBpcDsKKwlpcF9zZXRfaWRfdCBiaW5kaW5nOworfTsKKworLyogVGhlIHNhdmUgb3BlcmF0aW9u
ICovCisjZGVmaW5lIElQX1NFVF9PUF9TQVZFCQkweDAwMDAwMjA0CisvKiBVc2VzIGlwX3NldF9y
ZXFfbGlzdCwgaW4gdGhlIHJlcGx5IHJlcGxhY2VkIGJ5CisgKiBzZXRzIG51bWJlciBvZiBzdHJ1
Y3QgaXBfc2V0X3NhdmUgcGx1cyBhIG1hcmtlcgorICogaXBfc2V0X3NhdmUgZm9sbG93ZWQgYnkg
aXBfc2V0X2hhc2hfc2F2ZSBzdHJ1Y3R1cmVzLgorICovCitzdHJ1Y3QgaXBfc2V0X3NhdmUgewor
CWlwX3NldF9pZF90IGluZGV4OworCWlwX3NldF9pZF90IGJpbmRpbmc7CisJc2l6ZV90IGhlYWRl
cl9zaXplOwkvKiBTZXQgaGVhZGVyIGRhdGEgb2YgaGVhZGVyX3NpemUgKi8KKwlzaXplX3QgbWVt
YmVyc19zaXplOwkvKiBTZXQgbWVtYmVycyBkYXRhIG9mIG1lbWJlcnNfc2l6ZSAqLworfTsKKwor
LyogQXQgcmVzdG9yaW5nLCBpcCA9PSAwIG1lYW5zIGRlZmF1bHQgYmluZGluZyBmb3IgdGhlIGdp
dmVuIHNldDogKi8KK3N0cnVjdCBpcF9zZXRfaGFzaF9zYXZlIHsKKwlpcF9zZXRfaXBfdCBpcDsK
KwlpcF9zZXRfaWRfdCBpZDsKKwlpcF9zZXRfaWRfdCBiaW5kaW5nOworfTsKKworLyogVGhlIHJl
c3RvcmUgb3BlcmF0aW9uICovCisjZGVmaW5lIElQX1NFVF9PUF9SRVNUT1JFCTB4MDAwMDAyMDUK
Ky8qIFVzZXMgaXBfc2V0X3JlcV9zZXRuYW1lcyBmb2xsb3dlZCBieSBpcF9zZXRfcmVzdG9yZSBz
dHJ1Y3R1cmVzCisgKiBwbHVzIGEgbWFya2VyIGlwX3NldF9yZXN0b3JlLCBmb2xsb3dlZCBieSBp
cF9zZXRfaGFzaF9zYXZlIAorICogc3RydWN0dXJlcy4KKyAqLworc3RydWN0IGlwX3NldF9yZXN0
b3JlIHsKKwljaGFyIG5hbWVbSVBfU0VUX01BWE5BTUVMRU5dOworCWNoYXIgdHlwZW5hbWVbSVBf
U0VUX01BWE5BTUVMRU5dOworCWlwX3NldF9pZF90IGluZGV4OworCXNpemVfdCBoZWFkZXJfc2l6
ZTsJLyogQ3JlYXRlIGRhdGEgb2YgaGVhZGVyX3NpemUgKi8KKwlzaXplX3QgbWVtYmVyc19zaXpl
OwkvKiBTZXQgbWVtYmVycyBkYXRhIG9mIG1lbWJlcnNfc2l6ZSAqLworfTsKKworc3RhdGljIGlu
bGluZSBpbnQgYml0bWFwX2J5dGVzKGlwX3NldF9pcF90IGEsIGlwX3NldF9pcF90IGIpCit7CisJ
cmV0dXJuIDQgKiAoKCgoYiAtIGEgKyA4KSAvIDgpICsgMykgLyA0KTsKK30KKworI2lmZGVmIF9f
S0VSTkVMX18KKworI2RlZmluZSBpcF9zZXRfcHJpbnRrKGZvcm1hdCwgYXJncy4uLikgCQkJXAor
CWRvIHsJCQkJCQkJXAorCQlwcmludGsoIiVzOiAlczogIiwgX19GSUxFX18sIF9fRlVOQ1RJT05f
Xyk7CVwKKwkJcHJpbnRrKGZvcm1hdCAiXG4iICwgIyMgYXJncyk7CQkJXAorCX0gd2hpbGUgKDAp
CisKKyNpZiBkZWZpbmVkKElQX1NFVF9ERUJVRykKKyNkZWZpbmUgRFAoZm9ybWF0LCBhcmdzLi4u
KSAJCQkJCVwKKwlkbyB7CQkJCQkJCVwKKwkJcHJpbnRrKCIlczogJXMgKERCRyk6ICIsIF9fRklM
RV9fLCBfX0ZVTkNUSU9OX18pO1wKKwkJcHJpbnRrKGZvcm1hdCAiXG4iICwgIyMgYXJncyk7CQkJ
XAorCX0gd2hpbGUgKDApCisjZGVmaW5lIElQX1NFVF9BU1NFUlQoeCkJCQkJCVwKKwlkbyB7CQkJ
CQkJCVwKKwkJaWYgKCEoeCkpCQkJCQlcCisJCQlwcmludGsoIklQX1NFVF9BU1NFUlQ6ICVzOiVp
KCVzKVxuIiwJXAorCQkJCV9fRklMRV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsgXAorCX0g
d2hpbGUgKDApCisjZWxzZQorI2RlZmluZSBEUChmb3JtYXQsIGFyZ3MuLi4pCisjZGVmaW5lIElQ
X1NFVF9BU1NFUlQoeCkKKyNlbmRpZgorCitzdHJ1Y3QgaXBfc2V0OworCisvKgorICogVGhlIGlw
X3NldF90eXBlIGRlZmluaXRpb24gLSBvbmUgcGVyIHNldCB0eXBlLCBlLmcuICJpcG1hcCIuCisg
KgorICogRWFjaCBpbmRpdmlkdWFsIHNldCBoYXMgYSBwb2ludGVyLCBzZXQtPnR5cGUsIGdvaW5n
IHRvIG9uZQorICogb2YgdGhlc2Ugc3RydWN0dXJlcy4gRnVuY3Rpb24gcG9pbnRlcnMgaW5zaWRl
IHRoZSBzdHJ1Y3R1cmUgaW1wbGVtZW50CisgKiB0aGUgcmVhbCBiZWhhdmlvdXIgb2YgdGhlIHNl
dHMuCisgKgorICogSWYgbm90IG1lbnRpb25lZCBkaWZmZXJlbnRseSwgdGhlIGltcGxlbWVudGF0
aW9uIGJlaGluZCB0aGUgZnVuY3Rpb24KKyAqIHBvaW50ZXJzIG9mIGEgc2V0X3R5cGUsIGlzIGV4
cGVjdGVkIHRvIHJldHVybiAwIGlmIG9rLCBhbmQgYSBuZWdhdGl2ZQorICogZXJybm8gKGUuZy4g
LUVJTlZBTCkgb24gZXJyb3IuCisgKi8KK3N0cnVjdCBpcF9zZXRfdHlwZSB7CisJc3RydWN0IGxp
c3RfaGVhZCBsaXN0OwkvKiBuZXh0IGluIGxpc3Qgb2Ygc2V0IHR5cGVzICovCisKKwkvKiB0ZXN0
IGZvciBJUCBpbiBzZXQgKGtlcm5lbDogaXB0YWJsZXMgLW0gc2V0IHNyY3xkc3QpCisJICogcmV0
dXJuIDAgaWYgbm90IGluIHNldCwgMSBpZiBpbiBzZXQuCisJICovCisJaW50ICgqdGVzdGlwX2tl
cm5lbCkgKHN0cnVjdCBpcF9zZXQgKnNldCwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBza19idWZm
ICogc2tiLCAKKwkJCSAgICAgIGlwX3NldF9pcF90ICppcCwKKwkJCSAgICAgIGNvbnN0IHVfaW50
MzJfdCAqZmxhZ3MsCisJCQkgICAgICB1bnNpZ25lZCBjaGFyIGluZGV4KTsKKworCS8qIHRlc3Qg
Zm9yIElQIGluIHNldCAodXNlcnNwYWNlOiBpcHNldCAtVCBzZXQgSVApCisJICogcmV0dXJuIDAg
aWYgbm90IGluIHNldCwgMSBpZiBpbiBzZXQuCisJICovCisJaW50ICgqdGVzdGlwKSAoc3RydWN0
IGlwX3NldCAqc2V0LAorCQkgICAgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUsCisJ
CSAgICAgICBpcF9zZXRfaXBfdCAqaXApOworCisJLyoKKwkgKiBTaXplIG9mIHRoZSBkYXRhIHN0
cnVjdHVyZSBwYXNzZWQgYnkgd2hlbgorCSAqIGFkZGluZy9kZWxldGluL3Rlc3RpbmcgYW4gZW50
cnkuCisJICovCisJc2l6ZV90IHJlcXNpemU7CisKKwkvKiBBZGQgSVAgaW50byBzZXQgKHVzZXJz
cGFjZTogaXBzZXQgLUEgc2V0IElQKQorCSAqIFJldHVybiAtRUVYSVNUIGlmIHRoZSBhZGRyZXNz
IGlzIGFscmVhZHkgaW4gdGhlIHNldCwKKwkgKiBhbmQgLUVSQU5HRSBpZiB0aGUgYWRkcmVzcyBs
aWVzIG91dHNpZGUgdGhlIHNldCBib3VuZHMuCisJICogSWYgdGhlIGFkZHJlc3Mgd2FzIG5vdCBh
bHJlYWR5IGluIHRoZSBzZXQsIDAgaXMgcmV0dXJuZWQuCisJICovCisJaW50ICgqYWRkaXApIChz
dHJ1Y3QgaXBfc2V0ICpzZXQsIAorCQkgICAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6
ZSwKKwkJICAgICAgaXBfc2V0X2lwX3QgKmlwKTsKKworCS8qIEFkZCBJUCBpbnRvIHNldCAoa2Vy
bmVsOiBpcHRhYmxlcyAuLi4gLWogU0VUIHNldCBzcmN8ZHN0KQorCSAqIFJldHVybiAtRUVYSVNU
IGlmIHRoZSBhZGRyZXNzIGlzIGFscmVhZHkgaW4gdGhlIHNldCwKKwkgKiBhbmQgLUVSQU5HRSBp
ZiB0aGUgYWRkcmVzcyBsaWVzIG91dHNpZGUgdGhlIHNldCBib3VuZHMuCisJICogSWYgdGhlIGFk
ZHJlc3Mgd2FzIG5vdCBhbHJlYWR5IGluIHRoZSBzZXQsIDAgaXMgcmV0dXJuZWQuCisJICovCisJ
aW50ICgqYWRkaXBfa2VybmVsKSAoc3RydWN0IGlwX3NldCAqc2V0LAorCQkJICAgICBjb25zdCBz
dHJ1Y3Qgc2tfYnVmZiAqIHNrYiwgCisJCQkgICAgIGlwX3NldF9pcF90ICppcCwKKwkJCSAgICAg
Y29uc3QgdV9pbnQzMl90ICpmbGFncywKKwkJCSAgICAgdW5zaWduZWQgY2hhciBpbmRleCk7CisK
KwkvKiByZW1vdmUgSVAgZnJvbSBzZXQgKHVzZXJzcGFjZTogaXBzZXQgLUQgc2V0IC0tZW50cnkg
eCkKKwkgKiBSZXR1cm4gLUVFWElTVCBpZiB0aGUgYWRkcmVzcyBpcyBOT1QgaW4gdGhlIHNldCwK
KwkgKiBhbmQgLUVSQU5HRSBpZiB0aGUgYWRkcmVzcyBsaWVzIG91dHNpZGUgdGhlIHNldCBib3Vu
ZHMuCisJICogSWYgdGhlIGFkZHJlc3MgcmVhbGx5IHdhcyBpbiB0aGUgc2V0LCAwIGlzIHJldHVy
bmVkLgorCSAqLworCWludCAoKmRlbGlwKSAoc3RydWN0IGlwX3NldCAqc2V0LCAKKwkJICAgICAg
Y29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUsCisJCSAgICAgIGlwX3NldF9pcF90ICppcCk7
CisKKwkvKiByZW1vdmUgSVAgZnJvbSBzZXQgKGtlcm5lbDogaXB0YWJsZXMgLi4uIC1qIFNFVCAt
LWVudHJ5IHgpCisJICogUmV0dXJuIC1FRVhJU1QgaWYgdGhlIGFkZHJlc3MgaXMgTk9UIGluIHRo
ZSBzZXQsCisJICogYW5kIC1FUkFOR0UgaWYgdGhlIGFkZHJlc3MgbGllcyBvdXRzaWRlIHRoZSBz
ZXQgYm91bmRzLgorCSAqIElmIHRoZSBhZGRyZXNzIHJlYWxseSB3YXMgaW4gdGhlIHNldCwgMCBp
cyByZXR1cm5lZC4KKwkgKi8KKwlpbnQgKCpkZWxpcF9rZXJuZWwpIChzdHJ1Y3QgaXBfc2V0ICpz
ZXQsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBza19idWZmICogc2tiLCAKKwkJCSAgICAgaXBfc2V0
X2lwX3QgKmlwLAorCQkJICAgICBjb25zdCB1X2ludDMyX3QgKmZsYWdzLAorCQkJICAgICB1bnNp
Z25lZCBjaGFyIGluZGV4KTsKKworCS8qIG5ldyBzZXQgY3JlYXRpb24gLSBhbGxvY2F0ZWQgdHlw
ZSBzcGVjaWZpYyBpdGVtcworCSAqLworCWludCAoKmNyZWF0ZSkgKHN0cnVjdCBpcF9zZXQgKnNl
dCwKKwkJICAgICAgIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBzaXplKTsKKworCS8qIHJldHJ5
IHRoZSBvcGVyYXRpb24gYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHR3ZWFraW5nIHRoZSBzZXQKKwkgKi8K
KwlpbnQgKCpyZXRyeSkgKHN0cnVjdCBpcF9zZXQgKnNldCk7CisKKwkvKiBzZXQgZGVzdHJ1Y3Rp
b24gLSBmcmVlIHR5cGUgc3BlY2lmaWMgaXRlbXMKKwkgKiBUaGVyZSBpcyBubyByZXR1cm4gdmFs
dWUuCisJICogQ2FuIGJlIGNhbGxlZCBvbmx5IHdoZW4gY2hpbGQgc2V0cyBhcmUgZGVzdHJveWVk
LgorCSAqLworCXZvaWQgKCpkZXN0cm95KSAoc3RydWN0IGlwX3NldCAqc2V0KTsKKworCS8qIHNl
dCBmbHVzaGluZyAtIHJlc2V0IGFsbCBiaXRzIGluIHRoZSBzZXQsIG9yIHNvbWV0aGluZyBzaW1p
bGFyLgorCSAqIFRoZXJlIGlzIG5vIHJldHVybiB2YWx1ZS4KKwkgKi8KKwl2b2lkICgqZmx1c2gp
IChzdHJ1Y3QgaXBfc2V0ICpzZXQpOworCisJLyogTGlzdGluZzogc2l6ZSBuZWVkZWQgZm9yIGhl
YWRlcgorCSAqLworCXNpemVfdCBoZWFkZXJfc2l6ZTsKKworCS8qIExpc3Rpbmc6IEdldCB0aGUg
aGVhZGVyCisJICoKKwkgKiBGaWxsIGluIHRoZSBpbmZvcm1hdGlvbiBpbiAiZGF0YSIuCisJICog
VGhpcyBmdW5jdGlvbiBpcyBhbHdheXMgcnVuIGFmdGVyIGxpc3RfaGVhZGVyX3NpemUoKSB1bmRl
ciBhIAorCSAqIHdyaXRlbG9jayBvbiB0aGUgc2V0LiBUaGVyZWZvciBpcyB0aGUgbGVuZ3RoIG9m
ICJkYXRhIiBhbHdheXMgCisJICogY29ycmVjdC4gCisJICovCisJdm9pZCAoKmxpc3RfaGVhZGVy
KSAoY29uc3Qgc3RydWN0IGlwX3NldCAqc2V0LCAKKwkJCSAgICAgdm9pZCAqZGF0YSk7CisKKwkv
KiBMaXN0aW5nOiBHZXQgdGhlIHNpemUgZm9yIHRoZSBzZXQgbWVtYmVycworCSAqLworCWludCAo
Kmxpc3RfbWVtYmVyc19zaXplKSAoY29uc3Qgc3RydWN0IGlwX3NldCAqc2V0KTsKKworCS8qIExp
c3Rpbmc6IEdldCB0aGUgc2V0IG1lbWJlcnMKKwkgKgorCSAqIEZpbGwgaW4gdGhlIGluZm9ybWF0
aW9uIGluICJkYXRhIi4KKwkgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsd2F5cyBydW4gYWZ0ZXIgbGlz
dF9tZW1iZXJfc2l6ZSgpIHVuZGVyIGEgCisJICogd3JpdGVsb2NrIG9uIHRoZSBzZXQuIFRoZXJl
Zm9yIGlzIHRoZSBsZW5ndGggb2YgImRhdGEiIGFsd2F5cyAKKwkgKiBjb3JyZWN0LiAKKwkgKi8K
Kwl2b2lkICgqbGlzdF9tZW1iZXJzKSAoY29uc3Qgc3RydWN0IGlwX3NldCAqc2V0LAorCQkJICAg
ICAgdm9pZCAqZGF0YSk7CisKKwljaGFyIHR5cGVuYW1lW0lQX1NFVF9NQVhOQU1FTEVOXTsKKwl1
bnNpZ25lZCBjaGFyIGZlYXR1cmVzOworCWludCBwcm90b2NvbF92ZXJzaW9uOworCisJLyogU2V0
IHRoaXMgdG8gVEhJU19NT0RVTEUgaWYgeW91IGFyZSBhIG1vZHVsZSwgb3RoZXJ3aXNlIE5VTEwg
Ki8KKwlzdHJ1Y3QgbW9kdWxlICptZTsKK307CisKK2V4dGVybiBpbnQgaXBfc2V0X3JlZ2lzdGVy
X3NldF90eXBlKHN0cnVjdCBpcF9zZXRfdHlwZSAqc2V0X3R5cGUpOworZXh0ZXJuIHZvaWQgaXBf
c2V0X3VucmVnaXN0ZXJfc2V0X3R5cGUoc3RydWN0IGlwX3NldF90eXBlICpzZXRfdHlwZSk7CisK
Ky8qIEEgZ2VuZXJpYyBpcHNldCAqLworc3RydWN0IGlwX3NldCB7CisJY2hhciBuYW1lW0lQX1NF
VF9NQVhOQU1FTEVOXTsJLyogdGhlIG5hbWUgb2YgdGhlIHNldCAqLworCXJ3bG9ja190IGxvY2s7
CQkJLyogbG9jayBmb3IgY29uY3VycmVuY3kgY29udHJvbCAqLworCWlwX3NldF9pZF90IGlkOwkJ
CS8qIHNldCBpZCBmb3Igc3dhcHBpbmcgKi8KKwlpcF9zZXRfaWRfdCBiaW5kaW5nOwkJLyogZGVm
YXVsdCBiaW5kaW5nIGZvciB0aGUgc2V0ICovCisJYXRvbWljX3QgcmVmOwkJCS8qIGluIGtlcm5l
bCBhbmQgaW4gaGFzaCByZWZlcmVuY2VzICovCisJc3RydWN0IGlwX3NldF90eXBlICp0eXBlOyAJ
LyogdGhlIHNldCB0eXBlcyAqLworCXZvaWQgKmRhdGE7CQkJLyogcG9vbHR5cGUgc3BlY2lmaWMg
ZGF0YSAqLworfTsKKworLyogU3RydWN0dXJlIHRvIGJpbmQgc2V0IGVsZW1lbnRzIHRvIHNldHMg
Ki8KK3N0cnVjdCBpcF9zZXRfaGFzaCB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwkJLyogbGlz
dCBvZiBjbGFzaGluZyBlbnRyaWVzIGluIGhhc2ggKi8KKwlpcF9zZXRfaXBfdCBpcDsJCQkvKiBp
cCBmcm9tIHNldCAqLworCWlwX3NldF9pZF90IGlkOwkJCS8qIHNldCBpZCAqLworCWlwX3NldF9p
ZF90IGJpbmRpbmc7CQkvKiBzZXQgd2UgYmluZCB0aGUgZWxlbWVudCB0byAqLworfTsKKworLyog
cmVnaXN0ZXIgYW5kIHVucmVnaXN0ZXIgc2V0IHJlZmVyZW5jZXMgKi8KK2V4dGVybiBpcF9zZXRf
aWRfdCBpcF9zZXRfZ2V0X2J5bmFtZShjb25zdCBjaGFyIG5hbWVbSVBfU0VUX01BWE5BTUVMRU5d
KTsKK2V4dGVybiBpcF9zZXRfaWRfdCBpcF9zZXRfZ2V0X2J5aW5kZXgoaXBfc2V0X2lkX3QgaWQp
OworZXh0ZXJuIHZvaWQgaXBfc2V0X3B1dChpcF9zZXRfaWRfdCBpZCk7CisKKy8qIEFQSSBmb3Ig
aXB0YWJsZXMgc2V0IG1hdGNoLCBhbmQgU0VUIHRhcmdldCAqLworZXh0ZXJuIHZvaWQgaXBfc2V0
X2FkZGlwX2tlcm5lbChpcF9zZXRfaWRfdCBpZCwKKwkJCQljb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq
c2tiLAorCQkJCWNvbnN0IHVfaW50MzJfdCAqZmxhZ3MpOworZXh0ZXJuIHZvaWQgaXBfc2V0X2Rl
bGlwX2tlcm5lbChpcF9zZXRfaWRfdCBpZCwKKwkJCQljb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti
LAorCQkJCWNvbnN0IHVfaW50MzJfdCAqZmxhZ3MpOworZXh0ZXJuIGludCBpcF9zZXRfdGVzdGlw
X2tlcm5lbChpcF9zZXRfaWRfdCBpZCwKKwkJCQljb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAor
CQkJCWNvbnN0IHVfaW50MzJfdCAqZmxhZ3MpOworCisjZW5kaWYJCQkJLyogX19LRVJORUxfXyAq
LworCisjZW5kaWYgLypfSVBfU0VUX0gqLwpkaWZmIC11ck4gaXB0YWJsZXMtMS40LjAub3JpZy9l
eHRlbnNpb25zL2lwdF9zZXQuaCBpcHRhYmxlcy0xLjQuMC9leHRlbnNpb25zL2lwdF9zZXQuaAot
LS0gaXB0YWJsZXMtMS40LjAub3JpZy9leHRlbnNpb25zL2lwdF9zZXQuaAkxOTcwLTAxLTAxIDAz
OjAwOjAwICswMzAwCisrKyBpcHRhYmxlcy0xLjQuMC9leHRlbnNpb25zL2lwdF9zZXQuaAkyMDA4
LTA3LTA4IDE3OjA4OjU1ICswMzAwCkBAIC0wLDAgKzEsMjEgQEAKKyNpZm5kZWYgX0lQVF9TRVRf
SAorI2RlZmluZSBfSVBUX1NFVF9ICisKKyNpbmNsdWRlICJpcF9zZXQuaCIKKworc3RydWN0IGlw
dF9zZXRfaW5mbyB7CisJaXBfc2V0X2lkX3QgaW5kZXg7CisJdV9pbnQzMl90IGZsYWdzW0lQX1NF
VF9NQVhfQklORElOR1MgKyAxXTsKK307CisKKy8qIG1hdGNoIGluZm8gKi8KK3N0cnVjdCBpcHRf
c2V0X2luZm9fbWF0Y2ggeworCXN0cnVjdCBpcHRfc2V0X2luZm8gbWF0Y2hfc2V0OworfTsKKwor
c3RydWN0IGlwdF9zZXRfaW5mb190YXJnZXQgeworCXN0cnVjdCBpcHRfc2V0X2luZm8gYWRkX3Nl
dDsKKwlzdHJ1Y3QgaXB0X3NldF9pbmZvIGRlbF9zZXQ7Cit9OworCisjZW5kaWYgLypfSVBUX1NF
VF9IKi8KZGlmZiAtdXJOIGlwdGFibGVzLTEuNC4wLm9yaWcvZXh0ZW5zaW9ucy9saWJpcHRfc2V0
LmMgaXB0YWJsZXMtMS40LjAvZXh0ZW5zaW9ucy9saWJpcHRfc2V0LmMKLS0tIGlwdGFibGVzLTEu
NC4wLm9yaWcvZXh0ZW5zaW9ucy9saWJpcHRfc2V0LmMJMjAwOC0wNS0xMyAxODoxNjo0MiArMDMw
MAorKysgaXB0YWJsZXMtMS40LjAvZXh0ZW5zaW9ucy9saWJpcHRfc2V0LmMJMjAwOC0wNy0wOCAx
NzowODo1NSArMDMwMApAQCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgPGVycm5vLmg+CiAKICNp
bmNsdWRlIDxpcHRhYmxlcy5oPgotI2luY2x1ZGUgPGxpbnV4L25ldGZpbHRlcl9pcHY0L2lwdF9z
ZXQuaD4KKyNpbmNsdWRlICJpcHRfc2V0LmgiCiAjaW5jbHVkZSAibGliaXB0X3NldC5oIgogCiAv
KiBGdW5jdGlvbiB3aGljaCBwcmludHMgb3V0IHVzYWdlIG1lc3NhZ2UuICovCmRpZmYgLXVyTiBp
cHRhYmxlcy0xLjQuMC5vcmlnL2V4dGVuc2lvbnMvTWFrZWZpbGUgaXB0YWJsZXMtMS40LjAvZXh0
ZW5zaW9ucy9NYWtlZmlsZQotLS0gaXB0YWJsZXMtMS40LjAub3JpZy9leHRlbnNpb25zL01ha2Vm
aWxlCTIwMDgtMDctMDggMTc6MDY6MTIgKzAzMDAKKysrIGlwdGFibGVzLTEuNC4wL2V4dGVuc2lv
bnMvTWFrZWZpbGUJMjAwOC0wNy0wOCAxNzoxMTozOCArMDMwMApAQCAtNSw3ICs1LDcgQEAKICMg
aGVhZGVyIGZpbGVzIGFyZSBwcmVzZW50IGluIHRoZSBpbmNsdWRlL2xpbnV4IGRpcmVjdG9yeSBv
ZiB0aGlzIGlwdGFibGVzCiAjIHBhY2thZ2UgKEhXKQogIwotUEZfRVhUX1NMSUI6PWFoIGFkZHJ0
eXBlIGNvbm50cmFjayBlY24gaWNtcCBpcHJhbmdlIG93bmVyIHBvbGljeSByZWFsbSByZWNlbnQg
dG9zIHR0bCB1bmNsZWFuIENMVVNURVJJUCBETkFUIEVDTiBMT0cgTUFTUVVFUkFERSBNSVJST1Ig
TkVUTUFQIFJFRElSRUNUIFJFSkVDVCBTQU1FIFNOQVQgVE9TIFRUTCBVTE9HCitQRl9FWFRfU0xJ
Qjo9YWggYWRkcnR5cGUgY29ubnRyYWNrIGVjbiBpY21wIGlwcmFuZ2Ugb3duZXIgcG9saWN5IHJl
YWxtIHJlY2VudCBzZXQgdG9zIHR0bCB1bmNsZWFuIENMVVNURVJJUCBETkFUIEVDTiBMT0cgTUFT
UVVFUkFERSBNSVJST1IgTkVUTUFQIFJFRElSRUNUIFJFSkVDVCBTQU1FIFNOQVQgVE9TIFRUTCBV
TE9HCiBQRjZfRVhUX1NMSUI6PWFoIGRzdCBldWk2NCBmcmFnIGhiaCBobCBpY21wNiBpcHY2aGVh
ZGVyIG1oIG93bmVyIHBvbGljeSBydCBITCBMT0cgUkVKRUNUCiBQRlhfRVhUX1NMSUI6PWNvbm5i
eXRlcyBjb25ubWFyayBjb25ubGltaXQgY29tbWVudCBkY2NwIGRzY3AgZXNwIGhhc2hsaW1pdCBo
ZWxwZXIgbGVuZ3RoIGxpbWl0IG1hYyBtYXJrIG11bHRpcG9ydCBwaHlzZGV2IHBrdHR5cGUgcXVv
dGEgc2N0cCBzdGF0ZSBzdGF0aXN0aWMgc3RhbmRhcmQgc3RyaW5nIHRjcCB0Y3Btc3MgdGltZSB1
MzIgdWRwIENMQVNTSUZZIENPTk5NQVJLIERTQ1AgTUFSSyBORkxPRyBORlFVRVVFIE5PVFJBQ0sg
VENQTVNTIFRSQUNFCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2699</attachid>
            <date>2008-07-09 20:18:58 +0400</date>
            <delta_ts>2008-07-09 20:18:58 +0400</delta_ts>
            <desc>Патч исправляющий опечатку в мане</desc>
            <filename>iptables-1.4.0-alt-ipset-man-typo.patch</filename>
            <type>text/plain</type>
            <size>453</size>
            <attacher name="Igor Zubkov">icesik</attacher>
            
              <data encoding="base64">ZGlmZiAtdXJOIGlwdGFibGVzLTEuNC4wLmJlZm9yZS9leHRlbnNpb25zL2xpYmlwdF9zZXQubWFu
IGlwdGFibGVzLTEuNC4wL2V4dGVuc2lvbnMvbGliaXB0X3NldC5tYW4KLS0tIGlwdGFibGVzLTEu
NC4wLmJlZm9yZS9leHRlbnNpb25zL2xpYmlwdF9zZXQubWFuCTIwMDgtMDUtMTMgMTg6MTY6NDIg
KzAzMDAKKysrIGlwdGFibGVzLTEuNC4wL2V4dGVuc2lvbnMvbGliaXB0X3NldC5tYW4JMjAwOC0w
Ny0wOCAxNzoyNjowMCArMDMwMApAQCAtMSw0ICsxLDQgQEAKLVRoaXMgbW9kdWxlcyBtYWN0aGVz
IElQIHNldHMgd2hpY2ggY2FuIGJlIGRlZmluZWQgYnkgaXBzZXQoOCkuCitUaGlzIG1vZHVsZXMg
bWF0Y2hlcyBJUCBzZXRzIHdoaWNoIGNhbiBiZSBkZWZpbmVkIGJ5IGlwc2V0KDgpLgogLlRQCiAu
QlIgIi0tc2V0ICIgInNldG5hbWUgZmxhZ1ssZmxhZy4uLl0iCiB3aGVyZSBmbGFncyBhcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2749</attachid>
            <date>2008-08-02 18:05:22 +0400</date>
            <delta_ts>2008-08-02 18:05:22 +0400</delta_ts>
            <desc>Бэкпорт ipset из 1.4.1.1 iptables</desc>
            <filename>iptables-1.4.1.1-ipset-backport.patch</filename>
            <type>text/plain</type>
            <size>16211</size>
            <attacher name="Igor Zubkov">icesik</attacher>
            
              <data encoding="base64">ZGlmZiAtdXJOIGlwdGFibGVzLTEuNC4wL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBf
c2V0LmggaXB0YWJsZXMtMS40LjEuMS9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwX3Nl
dC5oCi0tLSBpcHRhYmxlcy0xLjQuMC9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwX3Nl
dC5oCTE5NzAtMDEtMDEgMDM6MDA6MDAgKzAzMDAKKysrIGlwdGFibGVzLTEuNC4xLjEvaW5jbHVk
ZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF9zZXQuaAkyMDA4LTA2LTE2IDE2OjEyOjQwICswMzAw
CkBAIC0wLDAgKzEsNDk4IEBACisjaWZuZGVmIF9JUF9TRVRfSAorI2RlZmluZSBfSVBfU0VUX0gK
KworLyogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgSm9ha2ltIEF4ZWxzc29uIDxnb3plbUBsaW51
eC5udT4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIFBhdHJpY2sgU2NoYWFmIDxib2ZAYm9m
LmRlPgorICogICAgICAgICAgICAgICAgICAgICAgICAgTWFydGluIEpvc2Vmc3NvbiA8Z2FuZGFs
ZkB3bHVnLndlc3Riby5zZT4KKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0IEpvenNlZiBLYWRs
ZWNzaWsgPGthZGxlY0BibGFja2hvbGUua2ZraS5odT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICog
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJz
aW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAg
CisgKi8KKworI2lmIDAKKyNkZWZpbmUgSVBfU0VUX0RFQlVHCisjZW5kaWYKKworLyoKKyAqIEEg
c29ja29wdCBvZiBzdWNoIHF1YWxpdHkgaGFzIGhhcmRseSBldmVyIGJlZW4gc2VlbiBiZWZvcmUg
b24gdGhlIG9wZW4KKyAqIG1hcmtldCEgIFRoaXMgbGl0dGxlIGJlYXV0eSwgaGFyZGx5IGV2ZXIg
dXNlZDogYWJvdmUgNjQsIHNvIGl0J3MKKyAqIHRyYWRpdGlvbmFsbHkgdXNlZCBmb3IgZmlyZXdh
bGxpbmcsIG5vdCB0b3VjaGVkIChldmVuIG9uY2UhKSBieSB0aGUKKyAqIDIuMCwgMi4yIGFuZCAy
LjQga2VybmVscyEKKyAqCisgKiBDb21lcyB3aXRoIGl0cyBvd24gY2VydGlmaWNhdGUgb2YgYXV0
aGVudGljaXR5LCB2YWxpZCBhbnl3aGVyZSBpbiB0aGUKKyAqIEZyZWUgd29ybGQhCisgKgorICog
UnVzdHksIDE5LjQuMjAwMAorICovCisjZGVmaW5lIFNPX0lQX1NFVCAJCTgzCisKKy8qCisgKiBI
ZWF2aWx5IG1vZGlmeSBieSBKb2FraW0gQXhlbHNzb24gMDguMDMuMjAwMgorICogLSBNYWRlIGl0
IG1vcmUgbW9kdWxlYmFzZWQKKyAqCisgKiBBZGRpdGlvbmFsIGhlYXZ5IG1vZGlmaWNhdGlvbnMg
YnkgSm96c2VmIEthZGxlY3NpayAyMi4wMi4yMDA0CisgKiAtIGJpbmRpbmdzIGFkZGVkCisgKiAt
IGluIG9yZGVyIHRvICJkZWFsIHdpdGgiIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHJlbmFtZWQg
dG8gaXBzZXQKKyAqLworCisvKiAKKyAqIFVzZWQgc28gdGhhdCB0aGUga2VybmVsIG1vZHVsZSBh
bmQgaXBzZXQtYmluYXJ5IGNhbiBtYXRjaCB0aGVpciB2ZXJzaW9ucyAKKyAqLworI2RlZmluZSBJ
UF9TRVRfUFJPVE9DT0xfVkVSU0lPTiAyCisKKyNkZWZpbmUgSVBfU0VUX01BWE5BTUVMRU4gMzIJ
Lyogc2V0IG5hbWVzIGFuZCBzZXQgdHlwZW5hbWVzICovCisKKy8qIExldHMgd29yayB3aXRoIG91
ciBvd24gdHlwZWRlZiBmb3IgcmVwcmVzZW50aW5nIGFuIElQIGFkZHJlc3MuCisgKiBXZSBob3Bl
IHRvIG1ha2UgdGhlIGNvZGUgbW9yZSBwb3J0YWJsZSwgcG9zc2libHkgdG8gSVB2Ni4uLgorICoK
KyAqIFRoZSByZXByZXNlbnRhdGlvbiB3b3JrcyBpbiBIT1NUIGJ5dGUgb3JkZXIsIGJlY2F1c2Ug
bW9zdCBzZXQgdHlwZXMKKyAqIHdpbGwgcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgYW5k
IGNvbXBhcmUgb3BlcmF0aW9ucy4KKyAqIAorICogRm9yIG5vdyB0aGUgdHlwZSBpcyBhbiB1aW50
MzJfdC4KKyAqCisgKiBNYWtlIHN1cmUgdG8gT05MWSB1c2UgdGhlIGZ1bmN0aW9ucyB3aGVuIHRy
YW5zbGF0aW5nIGFuZCBwYXJzaW5nCisgKiBpbiBvcmRlciB0byBrZWVwIHRoZSBob3N0IGJ5dGUg
b3JkZXIgYW5kIG1ha2UgaXQgbW9yZSBwb3J0YWJsZToKKyAqICBwYXJzZV9pcCgpCisgKiAgcGFy
c2VfbWFzaygpCisgKiAgcGFyc2VfaXBhbmRtYXNrKCkKKyAqICBpcF90b3N0cmluZygpCisgKiAo
Sm9ha2ltOiB3aGVyZSBhcmUgdGhleT8/PykKKyAqLworCit0eXBlZGVmIHVpbnQzMl90IGlwX3Nl
dF9pcF90OworCisvKiBTZXRzIGFyZSBpZGVudGlmaWVkIGJ5IGFuIGlkIGluIGtlcm5lbCBzcGFj
ZS4gVHdlYWsgd2l0aCBpcF9zZXRfaWRfdAorICogYW5kIElQX1NFVF9JTlZBTElEX0lEIGlmIHlv
dSB3YW50IHRvIGluY3JlYXNlIHRoZSBtYXggbnVtYmVyIG9mIHNldHMuCisgKi8KK3R5cGVkZWYg
dWludDE2X3QgaXBfc2V0X2lkX3Q7CisKKyNkZWZpbmUgSVBfU0VUX0lOVkFMSURfSUQJNjU1MzUK
KworLyogSG93IGRlZXAgd2UgZm9sbG93IGJpbmRpbmdzICovCisjZGVmaW5lIElQX1NFVF9NQVhf
QklORElOR1MJNgorCisvKgorICogT3B0aW9uIGZsYWdzIGZvciBrZXJuZWwgb3BlcmF0aW9ucyAo
aXB0X3NldF9pbmZvKQorICovCisjZGVmaW5lIElQU0VUX1NSQyAJCTB4MDEJLyogU291cmNlIG1h
dGNoL2FkZCAqLworI2RlZmluZSBJUFNFVF9EU1QJCTB4MDIJLyogRGVzdGluYXRpb24gbWF0Y2gv
YWRkICovCisjZGVmaW5lIElQU0VUX01BVENIX0lOVgkJMHgwNAkvKiBJbnZlcnNlIG1hdGNoaW5n
ICovCisKKy8qCisgKiBTZXQgZmVhdHVyZXMKKyAqLworI2RlZmluZSBJUFNFVF9UWVBFX0lQCQkw
eDAxCS8qIElQIGFkZHJlc3MgdHlwZSBvZiBzZXQgKi8KKyNkZWZpbmUgSVBTRVRfVFlQRV9QT1JU
CQkweDAyCS8qIFBvcnQgdHlwZSBvZiBzZXQgKi8KKyNkZWZpbmUgSVBTRVRfREFUQV9TSU5HTEUJ
MHgwNAkvKiBTaW5nbGUgZGF0YSBzdG9yYWdlICovCisjZGVmaW5lIElQU0VUX0RBVEFfRE9VQkxF
CTB4MDgJLyogRG91YmxlIGRhdGEgc3RvcmFnZSAqLworCisvKiBSZXNlcnZlZCBrZXl3b3JkcyAq
LworI2RlZmluZSBJUFNFVF9UT0tFTl9ERUZBVUxUCSI6ZGVmYXVsdDoiCisjZGVmaW5lIElQU0VU
X1RPS0VOX0FMTAkJIjphbGw6IgorCisvKiBTT19JUF9TRVQgb3BlcmF0aW9uIGNvbnN0YW50cywg
YW5kIHRoZWlyIHJlcXVlc3Qgc3RydWN0IHR5cGVzLgorICoKKyAqIE9wZXJhdGlvbiBpZHM6Cisg
KgkgIDAtOTk6CSBjb21tYW5kcyB3aXRoIHZlcnNpb24gY2hlY2tpbmcKKyAqCTEwMC0xOTk6IGFk
ZC9kZWwvdGVzdC9iaW5kL3VuYmluZAorICoJMjAwLTI5OTogbGlzdCwgc2F2ZSwgcmVzdG9yZQor
ICovCisKKy8qIFNpbmdsZSBzaG90IG9wZXJhdGlvbnM6IAorICogdmVyc2lvbiwgY3JlYXRlLCBk
ZXN0cm95LCBmbHVzaCwgcmVuYW1lIGFuZCBzd2FwIAorICoKKyAqIFNldHMgYXJlIGlkZW50aWZp
ZWQgYnkgbmFtZS4KKyAqLworCisjZGVmaW5lIElQX1NFVF9SRVFfU1RECQlcCisJdW5zaWduZWQg
b3A7CQlcCisJdW5zaWduZWQgdmVyc2lvbjsJXAorCWNoYXIgbmFtZVtJUF9TRVRfTUFYTkFNRUxF
Tl0KKworI2RlZmluZSBJUF9TRVRfT1BfQ1JFQVRFCTB4MDAwMDAwMDEJLyogQ3JlYXRlIGEgbmV3
IChlbXB0eSkgc2V0ICovCitzdHJ1Y3QgaXBfc2V0X3JlcV9jcmVhdGUgeworCUlQX1NFVF9SRVFf
U1REOworCWNoYXIgdHlwZW5hbWVbSVBfU0VUX01BWE5BTUVMRU5dOworfTsKKworI2RlZmluZSBJ
UF9TRVRfT1BfREVTVFJPWQkweDAwMDAwMDAyCS8qIFJlbW92ZSBhIChlbXB0eSkgc2V0ICovCitz
dHJ1Y3QgaXBfc2V0X3JlcV9zdGQgeworCUlQX1NFVF9SRVFfU1REOworfTsKKworI2RlZmluZSBJ
UF9TRVRfT1BfRkxVU0gJCTB4MDAwMDAwMDMJLyogUmVtb3ZlIGFsbCBJUHMgaW4gYSBzZXQgKi8K
Ky8qIFVzZXMgaXBfc2V0X3JlcV9zdGQgKi8KKworI2RlZmluZSBJUF9TRVRfT1BfUkVOQU1FCTB4
MDAwMDAwMDQJLyogUmVuYW1lIGEgc2V0ICovCisvKiBVc2VzIGlwX3NldF9yZXFfY3JlYXRlICov
CisKKyNkZWZpbmUgSVBfU0VUX09QX1NXQVAJCTB4MDAwMDAwMDUJLyogU3dhcCB0d28gc2V0cyAq
LworLyogVXNlcyBpcF9zZXRfcmVxX2NyZWF0ZSAqLworCit1bmlvbiBpcF9zZXRfbmFtZV9pbmRl
eCB7CisJY2hhciBuYW1lW0lQX1NFVF9NQVhOQU1FTEVOXTsKKwlpcF9zZXRfaWRfdCBpbmRleDsK
K307CisKKyNkZWZpbmUgSVBfU0VUX09QX0dFVF9CWU5BTUUJMHgwMDAwMDAwNgkvKiBHZXQgc2V0
IGluZGV4IGJ5IG5hbWUgKi8KK3N0cnVjdCBpcF9zZXRfcmVxX2dldF9zZXQgeworCXVuc2lnbmVk
IG9wOworCXVuc2lnbmVkIHZlcnNpb247CisJdW5pb24gaXBfc2V0X25hbWVfaW5kZXggc2V0Owor
fTsKKworI2RlZmluZSBJUF9TRVRfT1BfR0VUX0JZSU5ERVgJMHgwMDAwMDAwNwkvKiBHZXQgc2V0
IG5hbWUgYnkgaW5kZXggKi8KKy8qIFVzZXMgaXBfc2V0X3JlcV9nZXRfc2V0ICovCisKKyNkZWZp
bmUgSVBfU0VUX09QX1ZFUlNJT04JMHgwMDAwMDEwMAkvKiBBc2sga2VybmVsIHZlcnNpb24gKi8K
K3N0cnVjdCBpcF9zZXRfcmVxX3ZlcnNpb24geworCXVuc2lnbmVkIG9wOworCXVuc2lnbmVkIHZl
cnNpb247Cit9OworCisvKiBEb3VibGUgc2hvdHMgb3BlcmF0aW9uczogCisgKiBhZGQsIGRlbCwg
dGVzdCwgYmluZCBhbmQgdW5iaW5kLgorICoKKyAqIEZpcnN0IHdlIHF1ZXJ5IHRoZSBrZXJuZWwg
dG8gZ2V0IHRoZSBpbmRleCBhbmQgdHlwZSBvZiB0aGUgdGFyZ2V0IHNldCwKKyAqIHRoZW4gaXNz
dWUgdGhlIGNvbW1hbmQuIFZhbGlkaXR5IG9mIElQIGlzIGNoZWNrZWQgaW4ga2VybmVsIGluIG9y
ZGVyCisgKiB0byBtaW5pbWFsaXplIHNvY2tvcHQgb3BlcmF0aW9ucy4KKyAqLworCisvKiBHZXQg
bWluaW1hbCBzZXQgZGF0YSBmb3IgYWRkL2RlbC90ZXN0L2JpbmQvdW5iaW5kIElQICovCisjZGVm
aW5lIElQX1NFVF9PUF9BRFRfR0VUCTB4MDAwMDAwMTAJLyogR2V0IHNldCBhbmQgdHlwZSAqLwor
c3RydWN0IGlwX3NldF9yZXFfYWR0X2dldCB7CisJdW5zaWduZWQgb3A7CisJdW5zaWduZWQgdmVy
c2lvbjsKKwl1bmlvbiBpcF9zZXRfbmFtZV9pbmRleCBzZXQ7CisJY2hhciB0eXBlbmFtZVtJUF9T
RVRfTUFYTkFNRUxFTl07Cit9OworCisjZGVmaW5lIElQX1NFVF9SRVFfQllJTkRFWAlcCisJdW5z
aWduZWQgb3A7CQlcCisJaXBfc2V0X2lkX3QgaW5kZXg7CisKK3N0cnVjdCBpcF9zZXRfcmVxX2Fk
dCB7CisJSVBfU0VUX1JFUV9CWUlOREVYOworfTsKKworI2RlZmluZSBJUF9TRVRfT1BfQUREX0lQ
CTB4MDAwMDAxMDEJLyogQWRkIGFuIElQIHRvIGEgc2V0ICovCisvKiBVc2VzIGlwX3NldF9yZXFf
YWR0LCB3aXRoIHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKyNkZWZpbmUgSVBfU0VUX09QX0RF
TF9JUAkweDAwMDAwMTAyCS8qIFJlbW92ZSBhbiBJUCBmcm9tIGEgc2V0ICovCisvKiBVc2VzIGlw
X3NldF9yZXFfYWR0LCB3aXRoIHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKyNkZWZpbmUgSVBf
U0VUX09QX1RFU1RfSVAJMHgwMDAwMDEwMwkvKiBUZXN0IGFuIElQIGluIGEgc2V0ICovCisvKiBV
c2VzIGlwX3NldF9yZXFfYWR0LCB3aXRoIHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKyNkZWZp
bmUgSVBfU0VUX09QX0JJTkRfU0VUCTB4MDAwMDAxMDQJLyogQmluZCBhbiBJUCB0byBhIHNldCAq
LworLyogVXNlcyBpcF9zZXRfcmVxX2JpbmQsIHdpdGggdHlwZSBzcGVjaWZpYyBhZGRhZ2UgKi8K
K3N0cnVjdCBpcF9zZXRfcmVxX2JpbmQgeworCUlQX1NFVF9SRVFfQllJTkRFWDsKKwljaGFyIGJp
bmRpbmdbSVBfU0VUX01BWE5BTUVMRU5dOworfTsKKworI2RlZmluZSBJUF9TRVRfT1BfVU5CSU5E
X1NFVAkweDAwMDAwMTA1CS8qIFVuYmluZCBhbiBJUCBmcm9tIGEgc2V0ICovCisvKiBVc2VzIGlw
X3NldF9yZXFfYmluZCwgd2l0aCB0eXBlIHNwZWZpY2ljIGFkZGFnZSAKKyAqIGluZGV4ID0gMCBt
ZWFucyB1bmJpbmRpbmcgZm9yIGFsbCBzZXRzICovCisKKyNkZWZpbmUgSVBfU0VUX09QX1RFU1Rf
QklORF9TRVQJMHgwMDAwMDEwNgkvKiBUZXN0IGJpbmRpbmcgYW4gSVAgdG8gYSBzZXQgKi8KKy8q
IFVzZXMgaXBfc2V0X3JlcV9iaW5kLCB3aXRoIHR5cGUgc3BlY2lmaWMgYWRkYWdlICovCisKKy8q
IE11bHRpcGxlIHNob3RzIG9wZXJhdGlvbnM6IGxpc3QsIHNhdmUsIHJlc3RvcmUuCisgKgorICog
LSBjaGVjayBrZXJuZWwgdmVyc2lvbiBhbmQgcXVlcnkgdGhlIG1heCBudW1iZXIgb2Ygc2V0cwor
ICogLSBnZXQgdGhlIGJhc2ljIGluZm9ybWF0aW9uIG9uIGFsbCBzZXRzCisgKiAgIGFuZCBzaXpl
IHJlcXVpcmVkIGZvciB0aGUgbmV4dCBzdGVwCisgKiAtIGdldCBhY3R1YWwgc2V0IGRhdGE6IGhl
YWRlciwgZGF0YSwgYmluZGluZ3MKKyAqLworCisvKiBHZXQgbWF4X3NldHMgYW5kIHRoZSBpbmRl
eCBvZiBhIHF1ZXJpZWQgc2V0CisgKi8KKyNkZWZpbmUgSVBfU0VUX09QX01BWF9TRVRTCTB4MDAw
MDAwMjAKK3N0cnVjdCBpcF9zZXRfcmVxX21heF9zZXRzIHsKKwl1bnNpZ25lZCBvcDsKKwl1bnNp
Z25lZCB2ZXJzaW9uOworCWlwX3NldF9pZF90IG1heF9zZXRzOwkJLyogbWF4X3NldHMgKi8KKwlp
cF9zZXRfaWRfdCBzZXRzOwkJLyogcmVhbCBudW1iZXIgb2Ygc2V0cyAqLworCXVuaW9uIGlwX3Nl
dF9uYW1lX2luZGV4IHNldDsJLyogaW5kZXggb2Ygc2V0IGlmIG5hbWUgdXNlZCAqLworfTsKKwor
LyogR2V0IHRoZSBpZCBhbmQgbmFtZSBvZiB0aGUgc2V0cyBwbHVzIHNpemUgZm9yIG5leHQgc3Rl
cCAqLworI2RlZmluZSBJUF9TRVRfT1BfTElTVF9TSVpFCTB4MDAwMDAyMDEKKyNkZWZpbmUgSVBf
U0VUX09QX1NBVkVfU0laRQkweDAwMDAwMjAyCitzdHJ1Y3QgaXBfc2V0X3JlcV9zZXRuYW1lcyB7
CisJdW5zaWduZWQgb3A7CisJaXBfc2V0X2lkX3QgaW5kZXg7CQkvKiBzZXQgdG8gbGlzdC9zYXZl
ICovCisJc2l6ZV90IHNpemU7CQkJLyogc2l6ZSB0byBnZXQgc2V0ZGF0YS9iaW5kaW5ncyAqLwor
CS8qIGZvbGxvd2VkIGJ5IHNldHMgbnVtYmVyIG9mIHN0cnVjdCBpcF9zZXRfbmFtZV9saXN0ICov
Cit9OworCitzdHJ1Y3QgaXBfc2V0X25hbWVfbGlzdCB7CisJY2hhciBuYW1lW0lQX1NFVF9NQVhO
QU1FTEVOXTsKKwljaGFyIHR5cGVuYW1lW0lQX1NFVF9NQVhOQU1FTEVOXTsKKwlpcF9zZXRfaWRf
dCBpbmRleDsKKwlpcF9zZXRfaWRfdCBpZDsKK307CisKKy8qIFRoZSBhY3R1YWwgbGlzdCBvcGVy
YXRpb24gKi8KKyNkZWZpbmUgSVBfU0VUX09QX0xJU1QJCTB4MDAwMDAyMDMKK3N0cnVjdCBpcF9z
ZXRfcmVxX2xpc3QgeworCUlQX1NFVF9SRVFfQllJTkRFWDsKKwkvKiBzZXRzIG51bWJlciBvZiBz
dHJ1Y3QgaXBfc2V0X2xpc3QgaW4gcmVwbHkgKi8gCit9OworCitzdHJ1Y3QgaXBfc2V0X2xpc3Qg
eworCWlwX3NldF9pZF90IGluZGV4OworCWlwX3NldF9pZF90IGJpbmRpbmc7CisJdV9pbnQzMl90
IHJlZjsKKwlzaXplX3QgaGVhZGVyX3NpemU7CS8qIFNldCBoZWFkZXIgZGF0YSBvZiBoZWFkZXJf
c2l6ZSAqLworCXNpemVfdCBtZW1iZXJzX3NpemU7CS8qIFNldCBtZW1iZXJzIGRhdGEgb2YgbWVt
YmVyc19zaXplICovCisJc2l6ZV90IGJpbmRpbmdzX3NpemU7CS8qIFNldCBiaW5kaW5ncyBkYXRh
IG9mIGJpbmRpbmdzX3NpemUgKi8KK307CisKK3N0cnVjdCBpcF9zZXRfaGFzaF9saXN0IHsKKwlp
cF9zZXRfaXBfdCBpcDsKKwlpcF9zZXRfaWRfdCBiaW5kaW5nOworfTsKKworLyogVGhlIHNhdmUg
b3BlcmF0aW9uICovCisjZGVmaW5lIElQX1NFVF9PUF9TQVZFCQkweDAwMDAwMjA0CisvKiBVc2Vz
IGlwX3NldF9yZXFfbGlzdCwgaW4gdGhlIHJlcGx5IHJlcGxhY2VkIGJ5CisgKiBzZXRzIG51bWJl
ciBvZiBzdHJ1Y3QgaXBfc2V0X3NhdmUgcGx1cyBhIG1hcmtlcgorICogaXBfc2V0X3NhdmUgZm9s
bG93ZWQgYnkgaXBfc2V0X2hhc2hfc2F2ZSBzdHJ1Y3R1cmVzLgorICovCitzdHJ1Y3QgaXBfc2V0
X3NhdmUgeworCWlwX3NldF9pZF90IGluZGV4OworCWlwX3NldF9pZF90IGJpbmRpbmc7CisJc2l6
ZV90IGhlYWRlcl9zaXplOwkvKiBTZXQgaGVhZGVyIGRhdGEgb2YgaGVhZGVyX3NpemUgKi8KKwlz
aXplX3QgbWVtYmVyc19zaXplOwkvKiBTZXQgbWVtYmVycyBkYXRhIG9mIG1lbWJlcnNfc2l6ZSAq
LworfTsKKworLyogQXQgcmVzdG9yaW5nLCBpcCA9PSAwIG1lYW5zIGRlZmF1bHQgYmluZGluZyBm
b3IgdGhlIGdpdmVuIHNldDogKi8KK3N0cnVjdCBpcF9zZXRfaGFzaF9zYXZlIHsKKwlpcF9zZXRf
aXBfdCBpcDsKKwlpcF9zZXRfaWRfdCBpZDsKKwlpcF9zZXRfaWRfdCBiaW5kaW5nOworfTsKKwor
LyogVGhlIHJlc3RvcmUgb3BlcmF0aW9uICovCisjZGVmaW5lIElQX1NFVF9PUF9SRVNUT1JFCTB4
MDAwMDAyMDUKKy8qIFVzZXMgaXBfc2V0X3JlcV9zZXRuYW1lcyBmb2xsb3dlZCBieSBpcF9zZXRf
cmVzdG9yZSBzdHJ1Y3R1cmVzCisgKiBwbHVzIGEgbWFya2VyIGlwX3NldF9yZXN0b3JlLCBmb2xs
b3dlZCBieSBpcF9zZXRfaGFzaF9zYXZlIAorICogc3RydWN0dXJlcy4KKyAqLworc3RydWN0IGlw
X3NldF9yZXN0b3JlIHsKKwljaGFyIG5hbWVbSVBfU0VUX01BWE5BTUVMRU5dOworCWNoYXIgdHlw
ZW5hbWVbSVBfU0VUX01BWE5BTUVMRU5dOworCWlwX3NldF9pZF90IGluZGV4OworCXNpemVfdCBo
ZWFkZXJfc2l6ZTsJLyogQ3JlYXRlIGRhdGEgb2YgaGVhZGVyX3NpemUgKi8KKwlzaXplX3QgbWVt
YmVyc19zaXplOwkvKiBTZXQgbWVtYmVycyBkYXRhIG9mIG1lbWJlcnNfc2l6ZSAqLworfTsKKwor
c3RhdGljIGlubGluZSBpbnQgYml0bWFwX2J5dGVzKGlwX3NldF9pcF90IGEsIGlwX3NldF9pcF90
IGIpCit7CisJcmV0dXJuIDQgKiAoKCgoYiAtIGEgKyA4KSAvIDgpICsgMykgLyA0KTsKK30KKwor
I2lmZGVmIF9fS0VSTkVMX18KKworI2RlZmluZSBpcF9zZXRfcHJpbnRrKGZvcm1hdCwgYXJncy4u
LikgCQkJXAorCWRvIHsJCQkJCQkJXAorCQlwcmludGsoIiVzOiAlczogIiwgX19GSUxFX18sIF9f
RlVOQ1RJT05fXyk7CVwKKwkJcHJpbnRrKGZvcm1hdCAiXG4iICwgIyMgYXJncyk7CQkJXAorCX0g
d2hpbGUgKDApCisKKyNpZiBkZWZpbmVkKElQX1NFVF9ERUJVRykKKyNkZWZpbmUgRFAoZm9ybWF0
LCBhcmdzLi4uKSAJCQkJCVwKKwlkbyB7CQkJCQkJCVwKKwkJcHJpbnRrKCIlczogJXMgKERCRyk6
ICIsIF9fRklMRV9fLCBfX0ZVTkNUSU9OX18pO1wKKwkJcHJpbnRrKGZvcm1hdCAiXG4iICwgIyMg
YXJncyk7CQkJXAorCX0gd2hpbGUgKDApCisjZGVmaW5lIElQX1NFVF9BU1NFUlQoeCkJCQkJCVwK
KwlkbyB7CQkJCQkJCVwKKwkJaWYgKCEoeCkpCQkJCQlcCisJCQlwcmludGsoIklQX1NFVF9BU1NF
UlQ6ICVzOiVpKCVzKVxuIiwJXAorCQkJCV9fRklMRV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9f
KTsgXAorCX0gd2hpbGUgKDApCisjZWxzZQorI2RlZmluZSBEUChmb3JtYXQsIGFyZ3MuLi4pCisj
ZGVmaW5lIElQX1NFVF9BU1NFUlQoeCkKKyNlbmRpZgorCitzdHJ1Y3QgaXBfc2V0OworCisvKgor
ICogVGhlIGlwX3NldF90eXBlIGRlZmluaXRpb24gLSBvbmUgcGVyIHNldCB0eXBlLCBlLmcuICJp
cG1hcCIuCisgKgorICogRWFjaCBpbmRpdmlkdWFsIHNldCBoYXMgYSBwb2ludGVyLCBzZXQtPnR5
cGUsIGdvaW5nIHRvIG9uZQorICogb2YgdGhlc2Ugc3RydWN0dXJlcy4gRnVuY3Rpb24gcG9pbnRl
cnMgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUgaW1wbGVtZW50CisgKiB0aGUgcmVhbCBiZWhhdmlvdXIg
b2YgdGhlIHNldHMuCisgKgorICogSWYgbm90IG1lbnRpb25lZCBkaWZmZXJlbnRseSwgdGhlIGlt
cGxlbWVudGF0aW9uIGJlaGluZCB0aGUgZnVuY3Rpb24KKyAqIHBvaW50ZXJzIG9mIGEgc2V0X3R5
cGUsIGlzIGV4cGVjdGVkIHRvIHJldHVybiAwIGlmIG9rLCBhbmQgYSBuZWdhdGl2ZQorICogZXJy
bm8gKGUuZy4gLUVJTlZBTCkgb24gZXJyb3IuCisgKi8KK3N0cnVjdCBpcF9zZXRfdHlwZSB7CisJ
c3RydWN0IGxpc3RfaGVhZCBsaXN0OwkvKiBuZXh0IGluIGxpc3Qgb2Ygc2V0IHR5cGVzICovCisK
KwkvKiB0ZXN0IGZvciBJUCBpbiBzZXQgKGtlcm5lbDogaXB0YWJsZXMgLW0gc2V0IHNyY3xkc3Qp
CisJICogcmV0dXJuIDAgaWYgbm90IGluIHNldCwgMSBpZiBpbiBzZXQuCisJICovCisJaW50ICgq
dGVzdGlwX2tlcm5lbCkgKHN0cnVjdCBpcF9zZXQgKnNldCwKKwkJCSAgICAgIGNvbnN0IHN0cnVj
dCBza19idWZmICogc2tiLCAKKwkJCSAgICAgIGlwX3NldF9pcF90ICppcCwKKwkJCSAgICAgIGNv
bnN0IHVfaW50MzJfdCAqZmxhZ3MsCisJCQkgICAgICB1bnNpZ25lZCBjaGFyIGluZGV4KTsKKwor
CS8qIHRlc3QgZm9yIElQIGluIHNldCAodXNlcnNwYWNlOiBpcHNldCAtVCBzZXQgSVApCisJICog
cmV0dXJuIDAgaWYgbm90IGluIHNldCwgMSBpZiBpbiBzZXQuCisJICovCisJaW50ICgqdGVzdGlw
KSAoc3RydWN0IGlwX3NldCAqc2V0LAorCQkgICAgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90
IHNpemUsCisJCSAgICAgICBpcF9zZXRfaXBfdCAqaXApOworCisJLyoKKwkgKiBTaXplIG9mIHRo
ZSBkYXRhIHN0cnVjdHVyZSBwYXNzZWQgYnkgd2hlbgorCSAqIGFkZGluZy9kZWxldGluL3Rlc3Rp
bmcgYW4gZW50cnkuCisJICovCisJc2l6ZV90IHJlcXNpemU7CisKKwkvKiBBZGQgSVAgaW50byBz
ZXQgKHVzZXJzcGFjZTogaXBzZXQgLUEgc2V0IElQKQorCSAqIFJldHVybiAtRUVYSVNUIGlmIHRo
ZSBhZGRyZXNzIGlzIGFscmVhZHkgaW4gdGhlIHNldCwKKwkgKiBhbmQgLUVSQU5HRSBpZiB0aGUg
YWRkcmVzcyBsaWVzIG91dHNpZGUgdGhlIHNldCBib3VuZHMuCisJICogSWYgdGhlIGFkZHJlc3Mg
d2FzIG5vdCBhbHJlYWR5IGluIHRoZSBzZXQsIDAgaXMgcmV0dXJuZWQuCisJICovCisJaW50ICgq
YWRkaXApIChzdHJ1Y3QgaXBfc2V0ICpzZXQsIAorCQkgICAgICBjb25zdCB2b2lkICpkYXRhLCBz
aXplX3Qgc2l6ZSwKKwkJICAgICAgaXBfc2V0X2lwX3QgKmlwKTsKKworCS8qIEFkZCBJUCBpbnRv
IHNldCAoa2VybmVsOiBpcHRhYmxlcyAuLi4gLWogU0VUIHNldCBzcmN8ZHN0KQorCSAqIFJldHVy
biAtRUVYSVNUIGlmIHRoZSBhZGRyZXNzIGlzIGFscmVhZHkgaW4gdGhlIHNldCwKKwkgKiBhbmQg
LUVSQU5HRSBpZiB0aGUgYWRkcmVzcyBsaWVzIG91dHNpZGUgdGhlIHNldCBib3VuZHMuCisJICog
SWYgdGhlIGFkZHJlc3Mgd2FzIG5vdCBhbHJlYWR5IGluIHRoZSBzZXQsIDAgaXMgcmV0dXJuZWQu
CisJICovCisJaW50ICgqYWRkaXBfa2VybmVsKSAoc3RydWN0IGlwX3NldCAqc2V0LAorCQkJICAg
ICBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqIHNrYiwgCisJCQkgICAgIGlwX3NldF9pcF90ICppcCwK
KwkJCSAgICAgY29uc3QgdV9pbnQzMl90ICpmbGFncywKKwkJCSAgICAgdW5zaWduZWQgY2hhciBp
bmRleCk7CisKKwkvKiByZW1vdmUgSVAgZnJvbSBzZXQgKHVzZXJzcGFjZTogaXBzZXQgLUQgc2V0
IC0tZW50cnkgeCkKKwkgKiBSZXR1cm4gLUVFWElTVCBpZiB0aGUgYWRkcmVzcyBpcyBOT1QgaW4g
dGhlIHNldCwKKwkgKiBhbmQgLUVSQU5HRSBpZiB0aGUgYWRkcmVzcyBsaWVzIG91dHNpZGUgdGhl
IHNldCBib3VuZHMuCisJICogSWYgdGhlIGFkZHJlc3MgcmVhbGx5IHdhcyBpbiB0aGUgc2V0LCAw
IGlzIHJldHVybmVkLgorCSAqLworCWludCAoKmRlbGlwKSAoc3RydWN0IGlwX3NldCAqc2V0LCAK
KwkJICAgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUsCisJCSAgICAgIGlwX3NldF9p
cF90ICppcCk7CisKKwkvKiByZW1vdmUgSVAgZnJvbSBzZXQgKGtlcm5lbDogaXB0YWJsZXMgLi4u
IC1qIFNFVCAtLWVudHJ5IHgpCisJICogUmV0dXJuIC1FRVhJU1QgaWYgdGhlIGFkZHJlc3MgaXMg
Tk9UIGluIHRoZSBzZXQsCisJICogYW5kIC1FUkFOR0UgaWYgdGhlIGFkZHJlc3MgbGllcyBvdXRz
aWRlIHRoZSBzZXQgYm91bmRzLgorCSAqIElmIHRoZSBhZGRyZXNzIHJlYWxseSB3YXMgaW4gdGhl
IHNldCwgMCBpcyByZXR1cm5lZC4KKwkgKi8KKwlpbnQgKCpkZWxpcF9rZXJuZWwpIChzdHJ1Y3Qg
aXBfc2V0ICpzZXQsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBza19idWZmICogc2tiLCAKKwkJCSAg
ICAgaXBfc2V0X2lwX3QgKmlwLAorCQkJICAgICBjb25zdCB1X2ludDMyX3QgKmZsYWdzLAorCQkJ
ICAgICB1bnNpZ25lZCBjaGFyIGluZGV4KTsKKworCS8qIG5ldyBzZXQgY3JlYXRpb24gLSBhbGxv
Y2F0ZWQgdHlwZSBzcGVjaWZpYyBpdGVtcworCSAqLworCWludCAoKmNyZWF0ZSkgKHN0cnVjdCBp
cF9zZXQgKnNldCwKKwkJICAgICAgIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBzaXplKTsKKwor
CS8qIHJldHJ5IHRoZSBvcGVyYXRpb24gYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHR3ZWFraW5nIHRoZSBz
ZXQKKwkgKi8KKwlpbnQgKCpyZXRyeSkgKHN0cnVjdCBpcF9zZXQgKnNldCk7CisKKwkvKiBzZXQg
ZGVzdHJ1Y3Rpb24gLSBmcmVlIHR5cGUgc3BlY2lmaWMgaXRlbXMKKwkgKiBUaGVyZSBpcyBubyBy
ZXR1cm4gdmFsdWUuCisJICogQ2FuIGJlIGNhbGxlZCBvbmx5IHdoZW4gY2hpbGQgc2V0cyBhcmUg
ZGVzdHJveWVkLgorCSAqLworCXZvaWQgKCpkZXN0cm95KSAoc3RydWN0IGlwX3NldCAqc2V0KTsK
KworCS8qIHNldCBmbHVzaGluZyAtIHJlc2V0IGFsbCBiaXRzIGluIHRoZSBzZXQsIG9yIHNvbWV0
aGluZyBzaW1pbGFyLgorCSAqIFRoZXJlIGlzIG5vIHJldHVybiB2YWx1ZS4KKwkgKi8KKwl2b2lk
ICgqZmx1c2gpIChzdHJ1Y3QgaXBfc2V0ICpzZXQpOworCisJLyogTGlzdGluZzogc2l6ZSBuZWVk
ZWQgZm9yIGhlYWRlcgorCSAqLworCXNpemVfdCBoZWFkZXJfc2l6ZTsKKworCS8qIExpc3Rpbmc6
IEdldCB0aGUgaGVhZGVyCisJICoKKwkgKiBGaWxsIGluIHRoZSBpbmZvcm1hdGlvbiBpbiAiZGF0
YSIuCisJICogVGhpcyBmdW5jdGlvbiBpcyBhbHdheXMgcnVuIGFmdGVyIGxpc3RfaGVhZGVyX3Np
emUoKSB1bmRlciBhIAorCSAqIHdyaXRlbG9jayBvbiB0aGUgc2V0LiBUaGVyZWZvciBpcyB0aGUg
bGVuZ3RoIG9mICJkYXRhIiBhbHdheXMgCisJICogY29ycmVjdC4gCisJICovCisJdm9pZCAoKmxp
c3RfaGVhZGVyKSAoY29uc3Qgc3RydWN0IGlwX3NldCAqc2V0LCAKKwkJCSAgICAgdm9pZCAqZGF0
YSk7CisKKwkvKiBMaXN0aW5nOiBHZXQgdGhlIHNpemUgZm9yIHRoZSBzZXQgbWVtYmVycworCSAq
LworCWludCAoKmxpc3RfbWVtYmVyc19zaXplKSAoY29uc3Qgc3RydWN0IGlwX3NldCAqc2V0KTsK
KworCS8qIExpc3Rpbmc6IEdldCB0aGUgc2V0IG1lbWJlcnMKKwkgKgorCSAqIEZpbGwgaW4gdGhl
IGluZm9ybWF0aW9uIGluICJkYXRhIi4KKwkgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsd2F5cyBydW4g
YWZ0ZXIgbGlzdF9tZW1iZXJfc2l6ZSgpIHVuZGVyIGEgCisJICogd3JpdGVsb2NrIG9uIHRoZSBz
ZXQuIFRoZXJlZm9yIGlzIHRoZSBsZW5ndGggb2YgImRhdGEiIGFsd2F5cyAKKwkgKiBjb3JyZWN0
LiAKKwkgKi8KKwl2b2lkICgqbGlzdF9tZW1iZXJzKSAoY29uc3Qgc3RydWN0IGlwX3NldCAqc2V0
LAorCQkJICAgICAgdm9pZCAqZGF0YSk7CisKKwljaGFyIHR5cGVuYW1lW0lQX1NFVF9NQVhOQU1F
TEVOXTsKKwl1bnNpZ25lZCBjaGFyIGZlYXR1cmVzOworCWludCBwcm90b2NvbF92ZXJzaW9uOwor
CisJLyogU2V0IHRoaXMgdG8gVEhJU19NT0RVTEUgaWYgeW91IGFyZSBhIG1vZHVsZSwgb3RoZXJ3
aXNlIE5VTEwgKi8KKwlzdHJ1Y3QgbW9kdWxlICptZTsKK307CisKK2V4dGVybiBpbnQgaXBfc2V0
X3JlZ2lzdGVyX3NldF90eXBlKHN0cnVjdCBpcF9zZXRfdHlwZSAqc2V0X3R5cGUpOworZXh0ZXJu
IHZvaWQgaXBfc2V0X3VucmVnaXN0ZXJfc2V0X3R5cGUoc3RydWN0IGlwX3NldF90eXBlICpzZXRf
dHlwZSk7CisKKy8qIEEgZ2VuZXJpYyBpcHNldCAqLworc3RydWN0IGlwX3NldCB7CisJY2hhciBu
YW1lW0lQX1NFVF9NQVhOQU1FTEVOXTsJLyogdGhlIG5hbWUgb2YgdGhlIHNldCAqLworCXJ3bG9j
a190IGxvY2s7CQkJLyogbG9jayBmb3IgY29uY3VycmVuY3kgY29udHJvbCAqLworCWlwX3NldF9p
ZF90IGlkOwkJCS8qIHNldCBpZCBmb3Igc3dhcHBpbmcgKi8KKwlpcF9zZXRfaWRfdCBiaW5kaW5n
OwkJLyogZGVmYXVsdCBiaW5kaW5nIGZvciB0aGUgc2V0ICovCisJYXRvbWljX3QgcmVmOwkJCS8q
IGluIGtlcm5lbCBhbmQgaW4gaGFzaCByZWZlcmVuY2VzICovCisJc3RydWN0IGlwX3NldF90eXBl
ICp0eXBlOyAJLyogdGhlIHNldCB0eXBlcyAqLworCXZvaWQgKmRhdGE7CQkJLyogcG9vbHR5cGUg
c3BlY2lmaWMgZGF0YSAqLworfTsKKworLyogU3RydWN0dXJlIHRvIGJpbmQgc2V0IGVsZW1lbnRz
IHRvIHNldHMgKi8KK3N0cnVjdCBpcF9zZXRfaGFzaCB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0
OwkJLyogbGlzdCBvZiBjbGFzaGluZyBlbnRyaWVzIGluIGhhc2ggKi8KKwlpcF9zZXRfaXBfdCBp
cDsJCQkvKiBpcCBmcm9tIHNldCAqLworCWlwX3NldF9pZF90IGlkOwkJCS8qIHNldCBpZCAqLwor
CWlwX3NldF9pZF90IGJpbmRpbmc7CQkvKiBzZXQgd2UgYmluZCB0aGUgZWxlbWVudCB0byAqLwor
fTsKKworLyogcmVnaXN0ZXIgYW5kIHVucmVnaXN0ZXIgc2V0IHJlZmVyZW5jZXMgKi8KK2V4dGVy
biBpcF9zZXRfaWRfdCBpcF9zZXRfZ2V0X2J5bmFtZShjb25zdCBjaGFyIG5hbWVbSVBfU0VUX01B
WE5BTUVMRU5dKTsKK2V4dGVybiBpcF9zZXRfaWRfdCBpcF9zZXRfZ2V0X2J5aW5kZXgoaXBfc2V0
X2lkX3QgaWQpOworZXh0ZXJuIHZvaWQgaXBfc2V0X3B1dChpcF9zZXRfaWRfdCBpZCk7CisKKy8q
IEFQSSBmb3IgaXB0YWJsZXMgc2V0IG1hdGNoLCBhbmQgU0VUIHRhcmdldCAqLworZXh0ZXJuIHZv
aWQgaXBfc2V0X2FkZGlwX2tlcm5lbChpcF9zZXRfaWRfdCBpZCwKKwkJCQljb25zdCBzdHJ1Y3Qg
c2tfYnVmZiAqc2tiLAorCQkJCWNvbnN0IHVfaW50MzJfdCAqZmxhZ3MpOworZXh0ZXJuIHZvaWQg
aXBfc2V0X2RlbGlwX2tlcm5lbChpcF9zZXRfaWRfdCBpZCwKKwkJCQljb25zdCBzdHJ1Y3Qgc2tf
YnVmZiAqc2tiLAorCQkJCWNvbnN0IHVfaW50MzJfdCAqZmxhZ3MpOworZXh0ZXJuIGludCBpcF9z
ZXRfdGVzdGlwX2tlcm5lbChpcF9zZXRfaWRfdCBpZCwKKwkJCQljb25zdCBzdHJ1Y3Qgc2tfYnVm
ZiAqc2tiLAorCQkJCWNvbnN0IHVfaW50MzJfdCAqZmxhZ3MpOworCisjZW5kaWYJCQkJLyogX19L
RVJORUxfXyAqLworCisjZW5kaWYgLypfSVBfU0VUX0gqLwpkaWZmIC11ck4gaXB0YWJsZXMtMS40
LjAvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcHRfc2V0LmggaXB0YWJsZXMtMS40LjEu
MS9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwdF9zZXQuaAotLS0gaXB0YWJsZXMtMS40
LjAvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcHRfc2V0LmgJMTk3MC0wMS0wMSAwMzow
MDowMCArMDMwMAorKysgaXB0YWJsZXMtMS40LjEuMS9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9p
cHY0L2lwdF9zZXQuaAkyMDA4LTA2LTE2IDE2OjEyOjQwICswMzAwCkBAIC0wLDAgKzEsMjEgQEAK
KyNpZm5kZWYgX0lQVF9TRVRfSAorI2RlZmluZSBfSVBUX1NFVF9ICisKKyNpbmNsdWRlIDxsaW51
eC9uZXRmaWx0ZXJfaXB2NC9pcF9zZXQuaD4KKworc3RydWN0IGlwdF9zZXRfaW5mbyB7CisJaXBf
c2V0X2lkX3QgaW5kZXg7CisJdV9pbnQzMl90IGZsYWdzW0lQX1NFVF9NQVhfQklORElOR1MgKyAx
XTsKK307CisKKy8qIG1hdGNoIGluZm8gKi8KK3N0cnVjdCBpcHRfc2V0X2luZm9fbWF0Y2ggewor
CXN0cnVjdCBpcHRfc2V0X2luZm8gbWF0Y2hfc2V0OworfTsKKworc3RydWN0IGlwdF9zZXRfaW5m
b190YXJnZXQgeworCXN0cnVjdCBpcHRfc2V0X2luZm8gYWRkX3NldDsKKwlzdHJ1Y3QgaXB0X3Nl
dF9pbmZvIGRlbF9zZXQ7Cit9OworCisjZW5kaWYgLypfSVBUX1NFVF9IKi8KZGlmZiAtdXJOIGlw
dGFibGVzLTEuNC4wL2V4dGVuc2lvbnMvLnNldC10ZXN0IGlwdGFibGVzLTEuNC4xLjEvZXh0ZW5z
aW9ucy8uc2V0LXRlc3QKLS0tIGlwdGFibGVzLTEuNC4wL2V4dGVuc2lvbnMvLnNldC10ZXN0CTIw
MDgtMDUtMTMgMTg6MTY6NDIgKzAzMDAKKysrIGlwdGFibGVzLTEuNC4xLjEvZXh0ZW5zaW9ucy8u
c2V0LXRlc3QJMTk3MC0wMS0wMSAwMzowMDowMCArMDMwMApAQCAtMSwyICswLDAgQEAKLSMhIC9i
aW4vc2gKLVsgLWYgJEtFUk5FTF9ESVIvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF9z
ZXQuaCBdICYmIGVjaG8gc2V0IFNFVAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>