<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>47507</bug_id>
          
          <creation_ts>2004-04-11 06:49 0000</creation_ts>
          <short_desc>net-ftp/ftp IPv6 Support</short_desc>
          <delta_ts>2005-02-11 16:18:27 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>gentoo-bugs@pacifica.ch</reporter>
          <assigned_to>ipv6@gentoo.org</assigned_to>
          <cc>rockoo@gmail.com</cc>

      

      
          <long_desc isprivate="0">
            <who>gentoo-bugs@pacifica.ch</who>
            <bug_when>2004-04-11 06:49:31 0000</bug_when>
            <thetext>I updated the ftp-0.17-r3.ebuild to support IPv6. It also works with SSL here.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo-bugs@pacifica.ch</who>
            <bug_when>2004-04-11 06:54:35 0000</bug_when>
            <thetext>Created an attachment (id=29075)
the ipv6 patch
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo-bugs@pacifica.ch</who>
            <bug_when>2004-04-11 06:55:23 0000</bug_when>
            <thetext>Created an attachment (id=29076)
ftp-0.17-r4.ebuild
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gmsoft@gentoo.org</who>
            <bug_when>2004-08-15 16:38:16 0000</bug_when>
            <thetext>Can you give the location of the patch rather than the patch itself plz ?
Or at least, a website which points to it.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2005-02-11 16:18:27 0000</bug_when>
            <thetext>looks like it&apos;s a merge of http://linux-ipv6.org/ with our SSL patch

added 0.17-r4 with this patch to cvs, thanks ! :)</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29075</attachid>
            <date>2004-04-11 06:54 0000</date>
            <desc>the ipv6 patch</desc>
            <filename>netkit-ftp-usagi-ipv6-ssl.diff</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtcnUgbmV0a2l0LWZ0cC1vbGQvQ2hhbmdlTG9nIG5ldGtpdC1mdHAtbmV3L0NoYW5nZUxv
ZwotLS0gbmV0a2l0LWZ0cC1vbGQvQ2hhbmdlTG9nCTIwMDAtMDctMjMgMDM6Mzg6MDguMDAwMDAw
MDAwICswMjAwCisrKyBuZXRraXQtZnRwLW5ldy9DaGFuZ2VMb2cJMjAwNC0wNC0xMSAwMjoxOTo1
Mi44MjE5MjU2ODIgKzAyMDAKQEAgLTEsMyArMSw2IEBACisyOC1Ob3YtMjAwMDoKKwlJUHY2IHN1
cHBvcnQuIChIaXJveXVraSBZQU1BTU9SSSA8aC15YW1hbW9AZGIzLnNvLW5ldC5uZS5qcD4pCisK
IDgtSnVsLTIwMDA6CiAJRml4IG1pc3VzZWQgcHJpbnRmLWZ1bmN0aW9uIGNhbGwgKG5vdCAlbi1l
eHBsb2l0YWJsZSB0aG91Z2gpLgogCmRpZmYgLXJ1IG5ldGtpdC1mdHAtb2xkL2NvbmZpZ3VyZSBu
ZXRraXQtZnRwLW5ldy9jb25maWd1cmUKLS0tIG5ldGtpdC1mdHAtb2xkL2NvbmZpZ3VyZQkyMDAw
LTA3LTI5IDIwOjAwOjI4LjAwMDAwMDAwMCArMDIwMAorKysgbmV0a2l0LWZ0cC1uZXcvY29uZmln
dXJlCTIwMDQtMDQtMTEgMDI6MTk6NTIuODIzOTI1MzQ2ICswMjAwCkBAIC0yNCw2ICsyNCw3IEBA
CiAgICAgLS1iaW5tb2RlPW1vZGUgICAgICAgIE1vZGUgZm9yIGJpbmFyaWVzIFs3NTVdCiAgICAg
LS1tYW5tb2RlPW1vZGUgICAgICAgIE1vZGUgZm9yIG1hbnVhbCBwYWdlcyBbNjQ0XQogICAgIC0t
d2l0aC1jLWNvbXBpbGVyPWNjICBQcm9ncmFtIGZvciBjb21waWxpbmcgQyBzb3VyY2UgW2d1ZXNz
ZWRdCisgICAgLS1lbmFibGUtaXB2NiAgICAgICAgIEVuYWJsZSBJUHY2IHN1cHBvcnQKIEVPRgog
CWV4aXQgMDs7CiAJLS12ZXJib3NlKSA7OwpAQCAtMzksNiArNDAsMTEgQEAKIAktLW1hbm1vZGU9
KikgTUFOTU9ERT1gZWNobyAkMSB8IHNlZCAncy9eW149XSo9Ly8nYCA7OwogCS0td2l0aC1jLWNv
bXBpbGVyPSopIENDPWBlY2hvICQxIHwgc2VkICdzL15bXj1dKj0vLydgIDs7CiAJLS13aXRob3V0
LXJlYWRsaW5lfC0tZGlzYWJsZS1yZWFkbGluZSkgV0lUSE9VVF9SRUFETElORT0xOzsKKworCS0t
ZGlzYWJsZS1pcHY2KSBFTkFCTEVfSVBWNj1ubzs7CisJLS1lbmFibGUtaXB2Nj0qKSBFTkFCTEVf
SVBWNj1gZWNobyAkMSB8IHNlZCAncy9eW149XSo9Ly8nYDs7CisJLS1lbmFibGUtaXB2NikgRU5B
QkxFX0lQVjY9eWVzOzsKKwogCSopIGVjaG8gIlVucmVjb2duaXplZCBvcHRpb246ICQxIjsgZXhp
dCAxOzsKIGVzYWMgCiBzaGlmdApAQCAtMTQ2LDYgKzE1Miw0MiBAQAogcm0gLWYgX19jb25mdGVz
dCoKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
KyMjIEVuYWJsZSBJUHY2CitlY2hvIC1uICJXaGV0aGVyIHRvIGVuYWJsZSBJUHY2IHN1cHBvcnQu
Li4gIgoraWYgWyB4IiRFTkFCTEVfSVBWNiIgPSB4InllcyIgXTsgdGhlbgorICAgIGVjaG8geWVz
CisgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1ESU5FVDYiCitlbHNlCisgICAgZWNobyBubworZmkKKwor
cm0gLWYgX19jb25mdGVzdCoKKworIyMgU2VhcmNoIElQdjYgTGlicmFyeSAvIEhlYWRlcnMKK2lm
IFsgeCIkRU5BQkxFX0lQVjYiID0geCJ5ZXMiIF07IHRoZW4KKyAgICBlY2hvIC1uICJTZWFyY2gg
Zm9yIElQdjYgbGlicmFyeS4uLiAiCisgICAgaW5ldDZsaWJkaXJzPSIvdXNyL2xvY2FsL3Y2L2xp
YiAvdXNyL2xvY2FsL2xpYiAvdXNyIC91c3IvaW5ldDYvbGliIgorICAgIGluZXQ2bGlicz0iaW5l
dDYiCisgICAgaW5ldDZmb3VuZD1ubworICAgIGZvciBpbmV0NmxpYmRpciBpbiAkaW5ldDZsaWJk
aXJzOyBkbworICAgICAgICBmb3IgaW5ldDZsaWIgaW4gJGluZXQ2bGliczsgZG8KKyAgICAgICAg
ICAgIGlmIFsgLWQgJGluZXQ2bGliZGlyIF0gJiYgWyAtZiAkaW5ldDZsaWJkaXIvbGliJGluZXQ2
bGliLmEgXTsgdGhlbgorICAgICAgICAgICAgICAgIGluZXQ2Zm91bmQ9eWVzCisgICAgICAgICAg
ICAgICAgYnJlYWsgMgorICAgICAgICAgICAgZmkKKyAgICAgICAgZG9uZQorICAgIGRvbmUKKyAg
ICBpZiBbIHgiJGluZXQ2Zm91bmQiID0geCJ5ZXMiIF07IHRoZW4KKyAgICAgICAgZWNobyAiJGlu
ZXQ2bGliZGlyL2xpYiRpbmV0NmxpYi5hIgorICAgICAgICBMSUJTPSIkTElCUyAtTCRpbmV0Nmxp
YmRpciAtbCRpbmV0NmxpYiIKKyAgICBlbHNlCisgICAgICAgIGVjaG8gIm5vdCBmb3VuZCIKKyAg
ICBmaQorZmkKKworcm0gLWYgX19jb25mdGVzdCoKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogZWNobyAtbiAnQ2hlY2tpbmcgZm9yIEJTRCBz
aWduYWwgc2VtYW50aWNzLi4uICcKIGNhdCA8PEVPRiA+X19jb25mdGVzdC5jCmRpZmYgLXJ1IG5l
dGtpdC1mdHAtb2xkL2Z0cC9NYWtlZmlsZSBuZXRraXQtZnRwLW5ldy9mdHAvTWFrZWZpbGUKLS0t
IG5ldGtpdC1mdHAtb2xkL2Z0cC9NYWtlZmlsZQkyMDA0LTA0LTExIDAyOjA3OjMyLjAwMDAwMDAw
MCArMDIwMAorKysgbmV0a2l0LWZ0cC1uZXcvZnRwL01ha2VmaWxlCTIwMDQtMDQtMTEgMDI6MTk6
NTIuODI2OTI0ODQyICswMjAwCkBAIC0xOSwxMCArMTksMTMgQEAKIGNtZHMubyBnbG9iLm86IGds
b2IuaAogCiBpbnN0YWxsOiBmdHAKKwlpbnN0YWxsIC1kICQoSU5TVEFMTFJPT1QpJChCSU5ESVIp
CiAJaW5zdGFsbCAtcyAtbSQoQklOTU9ERSkgZnRwICQoSU5TVEFMTFJPT1QpJChCSU5ESVIpCiAJ
bG4gLXNmIGZ0cCAkKElOU1RBTExST09UKSQoQklORElSKS9wZnRwCisJaW5zdGFsbCAtZCAkKElO
U1RBTExST09UKSQoTUFORElSKS9tYW4xCiAJaW5zdGFsbCAtbSQoTUFOTU9ERSkgZnRwLjEgJChJ
TlNUQUxMUk9PVCkkKE1BTkRJUikvbWFuMQogCWxuIC1zZiBmdHAuMSAkKElOU1RBTExST09UKSQo
TUFORElSKS9tYW4xL3BmdHAuMQorCWluc3RhbGwgLWQgJChJTlNUQUxMUk9PVCkkKE1BTkRJUikv
bWFuNQogCWluc3RhbGwgLW0kKE1BTk1PREUpIG5ldHJjLjUgJChJTlNUQUxMUk9PVCkkKE1BTkRJ
UikvbWFuNQogCiBjbGVhbjoKZGlmZiAtcnUgbmV0a2l0LWZ0cC1vbGQvZnRwL2NtZHMuYyBuZXRr
aXQtZnRwLW5ldy9mdHAvY21kcy5jCi0tLSBuZXRraXQtZnRwLW9sZC9mdHAvY21kcy5jCTIwMDQt
MDQtMTEgMDI6MDc6MzIuMDAwMDAwMDAwICswMjAwCisrKyBuZXRraXQtZnRwLW5ldy9mdHAvY21k
cy5jCTIwMDQtMDQtMTEgMDI6MzQ6MTIuOTk1Mjc5NzUyICswMjAwCkBAIC0xLDMgKzEsNSBAQAor
LyogJFVTQUdJJCAqLworCiAvKgogICogQ29weXJpZ2h0IChjKSAxOTg1LCAxOTg5IFJlZ2VudHMg
b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CkBAIC0xOTAsNyArMTkyLDcgQEAKIHNldHBlZXIoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsK
IAljaGFyICpob3N0OwotCXVuc2lnbmVkIHNob3J0IHBvcnQ7CisJY2hhciAqcG9ydDsKIAogCWlm
IChjb25uZWN0ZWQpIHsKIAkJcHJpbnRmKCJBbHJlYWR5IGNvbm5lY3RlZCB0byAlcywgdXNlIGNs
b3NlIGZpcnN0LlxuIiwKQEAgLTIwNSw3ICsyMDcsNyBAQAogCQljb2RlID0gLTE7CiAJCXJldHVy
bjsKIAl9Ci0JcG9ydCA9IGZ0cF9wb3J0OworCXBvcnQgPSBOVUxMOwogCWlmIChhcmdjID4gMikg
ewogI2lmZGVmIFVTRV9TU0wKICAgICAgICAgICAgICAgICAvKiBub3QgcmVhbGx5IGFuIFNTTCBl
bmhhbmNlbWVudCBidXQgc29tZXRoaW5nIHRoYXQKQEAgLTIzMywyMCArMjM1LDE1IEBACiAJCSAg
ICB9CiAJCX0gZWxzZSAKICNlbmRpZiAvKiBVU0VfU1NMICovCi0JCXBvcnQgPSBhdG9pKGFyZ3Zb
Ml0pOwotCQlpZiAocG9ydCA8IDEpIHsKLQkJCXByaW50ZigiJXM6IGJhZCBwb3J0IG51bWJlci0t
ICVzXG4iLCBhcmd2WzFdLCBhcmd2WzJdKTsKLQkJCXByaW50ZiAoInVzYWdlOiAlcyBob3N0LW5h
bWUgW3BvcnRdXG4iLCBhcmd2WzBdKTsKLQkJCWNvZGUgPSAtMTsKLQkJCXJldHVybjsKLQkJfQot
CQlwb3J0ID0gaHRvbnMocG9ydCk7CisJCXBvcnQgPSBhcmd2WzJdOwogCX0KIAlob3N0ID0gaG9v
a3VwKGFyZ3ZbMV0sIHBvcnQpOwogCWlmIChob3N0KSB7CiAJCWludCBvdmVyYm9zZTsKIAogCQlj
b25uZWN0ZWQgPSAxOworCQl0cnlfZXBzdiA9IDE7CisJCXRyeV9lcHJ0ID0gMTsKIAkJLyoKIAkJ
ICogU2V0IHVwIGRlZmF1bHRzIGZvciBGVFAuCiAJCSAqLwpkaWZmIC1ydSBuZXRraXQtZnRwLW9s
ZC9mdHAvZnRwLmMgbmV0a2l0LWZ0cC1uZXcvZnRwL2Z0cC5jCi0tLSBuZXRraXQtZnRwLW9sZC9m
dHAvZnRwLmMJMjAwNC0wNC0xMSAwMjowNzozOC4wMDAwMDAwMDAgKzAyMDAKKysrIG5ldGtpdC1m
dHAtbmV3L2Z0cC9mdHAuYwkyMDA0LTA0LTExIDAyOjQwOjE1LjI3NjI1Nzk3MyArMDIwMApAQCAt
MTAsNiArMTAsMzcgQEAKICAqCiAgKi8KIAorLyogJFVTQUdJJCAqLworIAorLyoKKyAqIENvcHly
aWdodCAoQykgMTk5NyBhbmQgMTk5OCBXSURFIFByb2plY3QuCisgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIHByb2plY3Qgbm9y
IHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAg
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBQUk9KRUNUIEFORCBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUFJPSkVDVCBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAq
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkK
KyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorKi8KKwogLyoKICAqIENvcHlyaWdo
dCAoYykgMTk4NSwgMTk4OSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEu
CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNzUsMTQgKzEwNiwzOCBAQAogI2luY2x1ZGUg
ImZ0cF92YXIuaCIKICNpbmNsdWRlICJjbWRzLmgiCiAKKyNpZmRlZiBfVVNBR0kKKyNpbmNsdWRl
ICJ2ZXJzaW9uLmgiCisjZWxzZQogI2luY2x1ZGUgIi4uL3ZlcnNpb24uaCIKKyNlbmRpZgorCit1
bmlvbiBzb2NrdW5pb24geworCXN0cnVjdCBzb2NraW5ldCB7CisJCXVfc2hvcnQJc2lfZmFtaWx5
OworCQl1X3Nob3J0CXNpX3BvcnQ7CisJfSBzdV9zaTsKKwlzdHJ1Y3QJc29ja2FkZHIJCXN1X3Nh
OworCXN0cnVjdAlzb2NrYWRkcl9pbiAgCQlzdV9zaW47CisjaWZkZWYgSU5FVDYKKwlzdHJ1Y3QJ
c29ja2FkZHJfaW42IAkJc3Vfc2luNjsKKyNlbmRpZgorfTsKKyNkZWZpbmUJc3VfZmFtaWx5CXN1
X3NhLnNhX2ZhbWlseQorI2RlZmluZQlzdV9wb3J0CQlzdV9zaS5zaV9wb3J0CisKKyNpZmRlZiBJ
TkVUNgorI2RlZmluZSBleF9hZjJwcm90KGEpIChhID09IEFGX0lORVQgPyAxIDogKGEgPT0gQUZf
SU5FVDYgPyAyIDogMCkpCisjZWxzZQorI2RlZmluZSBleF9hZjJwcm90KGEpIChhID09IEFGX0lO
RVQgPyAxIDogMCkKKyNlbmRpZgogCiBpbnQgZGF0YSA9IC0xOwogb2ZmX3QgcmVzdGFydF9wb2lu
dCA9IDA7CiAKLXN0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJfaW4gaGlzY3RsYWRkcjsKLXN0YXRpYyBz
dHJ1Y3Qgc29ja2FkZHJfaW4gZGF0YV9hZGRyOwotc3RhdGljIHN0cnVjdCBzb2NrYWRkcl9pbiBt
eWN0bGFkZHI7CitzdGF0aWMgdW5pb24gc29ja3VuaW9uIGhpc2N0bGFkZHI7CitzdGF0aWMgdW5p
b24gc29ja3VuaW9uIGRhdGFfYWRkcjsKK3N0YXRpYyB1bmlvbiBzb2NrdW5pb24gbXljdGxhZGRy
Owogc3RhdGljIGludCBwdGZsYWcgPSAwOwogc3RhdGljIHNpZ2ptcF9idWYgcmVjdmFib3J0Owog
c3RhdGljIHNpZ2ptcF9idWYgc2VuZGFib3J0OwpAQCAtMTE5LDc5ICsxNzQsMTE5IEBACiBzdGF0
aWMgRklMRSAqZGF0YWNvbm4oY29uc3QgY2hhciAqKTsKIAogY2hhciAqCi1ob29rdXAoY2hhciAq
aG9zdCwgaW50IHBvcnQpCitob29rdXAoY29uc3QgY2hhciAqaG9zdCwgY29uc3QgY2hhciAqcG9y
dCkKIHsKLQlyZWdpc3RlciBzdHJ1Y3QgaG9zdGVudCAqaHAgPSAwOwotCWludCBzLCB0b3M7CisJ
aW50IHMsIHRvcywgZXJyb3I7CiAJc29ja2xlbl90IGxlbjsKIAlzdGF0aWMgY2hhciBob3N0bmFt
ZWJ1ZlsyNTZdOwotCisJc3RydWN0IGFkZHJpbmZvIGhpbnRzLCAqcmVzLCAqcmVzMDsKKwljaGFy
IGhidWZbTUFYSE9TVE5BTUVMRU5dLCBwYnVmW05JX01BWFNFUlZdOworCWNoYXIgKmNhdXNlID0g
ImZ0cDogdW5rbm93biI7CisKKwlpZiAocG9ydCkgeworCQlzdHJuY3B5KHBidWYsIHBvcnQsIHNp
emVvZihwYnVmKSAtIDEpOworCQlwYnVmW3NpemVvZihwYnVmKSAtIDFdID0gJ1wwJzsKKwl9IGVs
c2UgeworCQlzcHJpbnRmKHBidWYsICIlZCIsIG50b2hzKGZ0cF9wb3J0KSk7CisJfQogCW1lbXNl
dCgmaGlzY3RsYWRkciwgMCwgc2l6ZW9mKGhpc2N0bGFkZHIpKTsKLQlpZiAoaW5ldF9hdG9uKGhv
c3QsICZoaXNjdGxhZGRyLnNpbl9hZGRyKSkgewotCQloaXNjdGxhZGRyLnNpbl9mYW1pbHkgPSBB
Rl9JTkVUOwotCQlzdHJuY3B5KGhvc3RuYW1lYnVmLCBob3N0LCBzaXplb2YoaG9zdG5hbWVidWYp
KTsKLQkJaG9zdG5hbWVidWZbc2l6ZW9mKGhvc3RuYW1lYnVmKS0xXT0wOwotCX0gCi0JZWxzZSB7
Ci0JCWhwID0gZ2V0aG9zdGJ5bmFtZShob3N0KTsKLQkJaWYgKGhwID09IE5VTEwpIHsKLQkJCWZw
cmludGYoc3RkZXJyLCAiZnRwOiAlczogIiwgaG9zdCk7Ci0JCQloZXJyb3IoKGNoYXIgKilOVUxM
KTsKLQkJCWNvZGUgPSAtMTsKLQkJCXJldHVybigoY2hhciAqKSAwKTsKKwltZW1zZXQoJmhpbnRz
LCAwLCBzaXplb2YoaGludHMpKTsKKwloaW50cy5haV9mbGFncyA9IEFJX0NBTk9OTkFNRTsKKwlo
aW50cy5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOworCWVycm9yID0gZ2V0YWRkcmluZm8oaG9z
dCwgcGJ1ZiwgJmhpbnRzLCAmcmVzMCk7CisJaWYgKGVycm9yKSB7CisJCWlmIChwb3J0KSB7CisJ
CQlzdHJjcHkoaGJ1ZiwgIiAiKTsKKwkJfSBlbHNlIHsKKwkJCWhidWZbMF0gPSAnXDAnOworCQkJ
cGJ1ZlswXSA9ICdcMCc7CiAJCX0KLQkJaGlzY3RsYWRkci5zaW5fZmFtaWx5ID0gaHAtPmhfYWRk
cnR5cGU7Ci0JCWlmIChocC0+aF9sZW5ndGggPiAoaW50KXNpemVvZihoaXNjdGxhZGRyLnNpbl9h
ZGRyKSkgewotCQkJaHAtPmhfbGVuZ3RoID0gc2l6ZW9mKGhpc2N0bGFkZHIuc2luX2FkZHIpOwot
CQl9Ci0JCW1lbWNweSgmaGlzY3RsYWRkci5zaW5fYWRkciwgaHAtPmhfYWRkcl9saXN0WzBdLCBo
cC0+aF9sZW5ndGgpOwotCQkodm9pZCkgc3RybmNweShob3N0bmFtZWJ1ZiwgaHAtPmhfbmFtZSwg
c2l6ZW9mKGhvc3RuYW1lYnVmKSk7Ci0JCWhvc3RuYW1lYnVmW3NpemVvZihob3N0bmFtZWJ1Zikt
MV0gPSAwOwotCX0KLQlob3N0bmFtZSA9IGhvc3RuYW1lYnVmOwotCXMgPSBzb2NrZXQoaGlzY3Rs
YWRkci5zaW5fZmFtaWx5LCBTT0NLX1NUUkVBTSwgMCk7Ci0JaWYgKHMgPCAwKSB7Ci0JCXBlcnJv
cigiZnRwOiBzb2NrZXQiKTsKKwkJZnByaW50ZihzdGRlcnIsICJmdHA6ICVzJXMlczogJXNcbiIs
IGhvc3QsIGhidWYsIHBidWYsCisJCQkJCQlnYWlfc3RyZXJyb3IoZXJyb3IpKTsKIAkJY29kZSA9
IC0xOwogCQlyZXR1cm4gKDApOwogCX0KLQloaXNjdGxhZGRyLnNpbl9wb3J0ID0gcG9ydDsKLQl3
aGlsZSAoY29ubmVjdChzLCAoc3RydWN0IHNvY2thZGRyICopJmhpc2N0bGFkZHIsIHNpemVvZiAo
aGlzY3RsYWRkcikpIDwgMCkgewotCQlpZiAoaHAgJiYgaHAtPmhfYWRkcl9saXN0WzFdKSB7Ci0J
CQlpbnQgb2Vycm5vID0gZXJybm87Ci0KLQkJCWZwcmludGYoc3RkZXJyLCAiZnRwOiBjb25uZWN0
IHRvIGFkZHJlc3MgJXM6ICIsCi0JCQkJaW5ldF9udG9hKGhpc2N0bGFkZHIuc2luX2FkZHIpKTsK
LQkJCWVycm5vID0gb2Vycm5vOwotCQkJcGVycm9yKChjaGFyICopIDApOwotCQkJaHAtPmhfYWRk
cl9saXN0Kys7Ci0JCQltZW1jcHkoJmhpc2N0bGFkZHIuc2luX2FkZHIsIGhwLT5oX2FkZHJfbGlz
dFswXSwgCi0JCQkgICAgICAgaHAtPmhfbGVuZ3RoKTsKLQkJCWZwcmludGYoc3Rkb3V0LCAiVHJ5
aW5nICVzLi4uXG4iLAotCQkJCWluZXRfbnRvYShoaXNjdGxhZGRyLnNpbl9hZGRyKSk7Ci0JCQko
dm9pZCkgY2xvc2Uocyk7Ci0JCQlzID0gc29ja2V0KGhpc2N0bGFkZHIuc2luX2ZhbWlseSwgU09D
S19TVFJFQU0sIDApOwotCQkJaWYgKHMgPCAwKSB7Ci0JCQkJcGVycm9yKCJmdHA6IHNvY2tldCIp
OwotCQkJCWNvZGUgPSAtMTsKLQkJCQlyZXR1cm4gKDApOwotCQkJfQorCisJaWYgKHJlczAtPmFp
X2Nhbm9ubmFtZSkgeworCQlzdHJ1Y3QgYWRkcmluZm8gaCwgKmE7CisJCW1lbXNldCgmaCwgMCwg
c2l6ZW9mKGgpKTsKKwkJaC5haV9mYW1pbHkgPSBQRl9VTlNQRUM7CisJCWguYWlfc29ja3R5cGUg
PSBTT0NLX1NUUkVBTTsKKwkJaC5haV9mbGFncyA9IEFJX05VTUVSSUNIT1NUOworCQlpZiAoIWdl
dGFkZHJpbmZvKHJlczAtPmFpX2Nhbm9ubmFtZSwgTlVMTCwgJmgsICZhKSkgeworCQkJc3RybmNw
eShob3N0bmFtZWJ1ZiwgcmVzMC0+YWlfY2Fub25uYW1lLCBzaXplb2YoaG9zdG5hbWVidWYpKTsK
KwkJCWZyZWVhZGRyaW5mbyhhKTsKKwkJfSBlbHNlCisJCQlzdHJuY3B5KGhvc3RuYW1lYnVmLCBo
b3N0LCBzaXplb2YoaG9zdG5hbWVidWYpKTsKKwl9CisJZWxzZQorCQlzdHJuY3B5KGhvc3RuYW1l
YnVmLCBob3N0LCBzaXplb2YoaG9zdG5hbWVidWYpKTsKKwlob3N0bmFtZWJ1ZltzaXplb2YoaG9z
dG5hbWVidWYpIC0gMV0gPSAnXDAnOworCWhvc3RuYW1lID0gaG9zdG5hbWVidWY7CisJCisJcyA9
IC0xOworCWZvciAocmVzID0gcmVzMDsgcmVzOyByZXMgPSByZXMtPmFpX25leHQpIHsKKwkJaWYg
KCFleF9hZjJwcm90KHJlcy0+YWlfZmFtaWx5KSkgeworCQkJY2F1c2UgPSAiZnRwOiBtaXNtYXRj
aCBhZGRyZXNzIGZhbWlseSI7CisJCQllcnJubyA9IEVQUk9UT05PU1VQUE9SVDsKKwkJCWNvbnRp
bnVlOworCQl9CisJCWlmICgoc2l6ZV90KXJlcy0+YWlfYWRkcmxlbiA+IHNpemVvZihoaXNjdGxh
ZGRyKSkgeworCQkJY2F1c2UgPSAiZnRwOiBtaXNtYXRjaCBzdHJ1Y3Qgc29ja2FkZHIgc2l6ZSI7
CisJCQllcnJubyA9IEVQUk9UTzsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmIChnZXRuYW1laW5m
byhyZXMtPmFpX2FkZHIsIHJlcy0+YWlfYWRkcmxlbiwKKwkJCQloYnVmLCBzaXplb2YoaGJ1Ziks
IE5VTEwsIDAsCisJCQkJTklfTlVNRVJJQ0hPU1QpKQorCQkJc3RyY3B5KGhidWYsICI/Pz8iKTsK
KwkJaWYgKHJlczAtPmFpX25leHQpCS8qIGlmIHdlIGhhdmUgbXVsdGlwbGUgcG9zc2liaWxpdGll
cyAqLworCQkJZnByaW50ZihzdGRvdXQsICJUcnlpbmcgJXMuLi5cbiIsIGhidWYpOworCQlzID0g
c29ja2V0KHJlcy0+YWlfZmFtaWx5LCByZXMtPmFpX3NvY2t0eXBlLCByZXMtPmFpX3Byb3RvY29s
KTsKKwkJaWYgKHMgPCAwKSB7CisJCQljYXVzZSA9ICJmdHA6IHNvY2tldCI7CisJCQljb250aW51
ZTsKKwkJfQorCQl3aGlsZSAoKGVycm9yID0gY29ubmVjdChzLCByZXMtPmFpX2FkZHIsIHJlcy0+
YWlfYWRkcmxlbikpIDwgMAorCQkJCSYmIGVycm5vID09IEVJTlRSKSB7CisJCQk7CisJCX0KKwkJ
aWYgKGVycm9yKSB7CisJCQkvKiB0aGlzICJpZiIgY2xhdXNlIGlzIHRvIHByZXZlbnQgcHJpbnQg
d2FybmluZyB0d2ljZSAqLworCQkJaWYgKHJlcy0+YWlfbmV4dCkgeworCQkJCWZwcmludGYoc3Rk
ZXJyLAorCQkJCQkiZnRwOiBjb25uZWN0IHRvIGFkZHJlc3MgJXNcbiIsIGhidWYpOworCQkJCXBl
cnJvcigiIik7CisJCQl9CisJCQljYXVzZSA9ICJmdHA6IGNvbm5lY3QiOworCQkJY2xvc2Uocyk7
CisJCQlzID0gLTE7CiAJCQljb250aW51ZTsKIAkJfQotCQlwZXJyb3IoImZ0cDogY29ubmVjdCIp
OworCQkvKiBmaW5hbGx5IHdlIGdvdCBvbmUgKi8KKwkJYnJlYWs7CisJfQorCWlmIChzIDwgMCkg
eworCQlwZXJyb3IoY2F1c2UpOwogCQljb2RlID0gLTE7Ci0JCWdvdG8gYmFkOworCQlmcmVlYWRk
cmluZm8ocmVzMCk7CisJCXJldHVybiBOVUxMOwogCX0KLQlsZW4gPSBzaXplb2YgKG15Y3RsYWRk
cik7CisJbGVuID0gcmVzLT5haV9hZGRybGVuOworCW1lbWNweSgmaGlzY3RsYWRkciwgcmVzLT5h
aV9hZGRyLCBsZW4pOworCWZyZWVhZGRyaW5mbyhyZXMwKTsKIAlpZiAoZ2V0c29ja25hbWUocywg
KHN0cnVjdCBzb2NrYWRkciAqKSZteWN0bGFkZHIsICZsZW4pIDwgMCkgewogCQlwZXJyb3IoImZ0
cDogZ2V0c29ja25hbWUiKTsKIAkJY29kZSA9IC0xOwogCQlnb3RvIGJhZDsKIAl9CiAjaWZkZWYg
SVBfVE9TCisJaWYgKGhpc2N0bGFkZHIuc3VfZmFtaWx5ID09IEFGX0lORVQpCisJewogCXRvcyA9
IElQVE9TX0xPV0RFTEFZOwogCWlmIChzZXRzb2Nrb3B0KHMsIElQUFJPVE9fSVAsIElQX1RPUywg
KGNoYXIgKikmdG9zLCBzaXplb2YoaW50KSkgPCAwKQogCQlwZXJyb3IoImZ0cDogc2V0c29ja29w
dCBUT1MgKGlnbm9yZWQpIik7CisJfQogI2VuZGlmCiAJY2luID0gZmRvcGVuKHMsICJyIik7CiAJ
Y291dCA9IGZkb3BlbihzLCAidyIpOwpAQCAtMjA1LDcgKzMwMCw3IEBACiAJCWdvdG8gYmFkOwog
CX0KIAlpZiAodmVyYm9zZSkKLQkJcHJpbnRmKCJDb25uZWN0ZWQgdG8gJXMuXG4iLCBob3N0bmFt
ZSk7CisJCXByaW50ZigiQ29ubmVjdGVkIHRvICVzICglcykuXG4iLCBob3N0bmFtZSwgaGJ1Zik7
CiAJaWYgKGdldHJlcGx5KDApID4gMikgeyAJLyogcmVhZCBzdGFydHVwIG1lc3NhZ2UgZnJvbSBz
ZXJ2ZXIgKi8KIAkJaWYgKGNpbikKIAkJCSh2b2lkKSBmY2xvc2UoY2luKTsKQEAgLTQ0Miw4ICs1
MzcsMTAgQEAKIAkJCX0KIAkJCWlmIChkaWcgPCA0ICYmIGlzZGlnaXQoYykpCiAJCQkJY29kZSA9
IGNvZGUgKiAxMCArIChjIC0gJzAnKTsKLQkJCWlmICghcGZsYWcgJiYgY29kZSA9PSAyMjcpCisJ
CQlpZiAoIXBmbGFnICYmIChjb2RlID09IDIyNyB8fCBjb2RlID09IDIyOCkpCiAJCQkJcGZsYWcg
PSAxOworCQkJZWxzZSBpZiAoIXBmbGFnICYmIGNvZGUgPT0gMjI5KQorCQkJCXBmbGFnID0gMTAw
OwogCQkJaWYgKGRpZyA+IDQgJiYgcGZsYWcgPT0gMSAmJiBpc2RpZ2l0KGMpKQogCQkJCXBmbGFn
ID0gMjsKIAkJCWlmIChwZmxhZyA9PSAyKSB7CkBAIC00NTUsNiArNTUyLDggQEAKIAkJCQkJcGZs
YWcgPSAzOwogCQkJCX0KIAkJCX0KKwkJCWlmIChwZmxhZyA9PSAxMDAgJiYgYyA9PSAnKCcpCisJ
CQkJcGZsYWcgPSAyOwogCQkJaWYgKGRpZyA9PSA0ICYmIGMgPT0gJy0nKSB7CiAJCQkJaWYgKGNv
bnRpbnVhdGlvbikKIAkJCQkJY29kZSA9IDA7CkBAIC0xMjA3LDE1ICsxMzA2LDI1IEBACiBzdGF0
aWMgaW50CiBpbml0Y29ubih2b2lkKQogewotCXJlZ2lzdGVyIGNoYXIgKnAsICphOworCXVfY2hh
ciAqcCwgKmE7CiAJaW50IHJlc3VsdCwgdG1wbm8gPSAwOwogCXNvY2tsZW5fdCBsZW47CiAJaW50
IG9uID0gMTsKLQlpbnQgdG9zOwotCXVfbG9uZyBhMSxhMixhMyxhNCxwMSxwMjsKLQorCWludCB0
b3MsIGVycm9yID0gMDsKKwl1X2ludCBhZFsxNl0sIHBvWzJdLCBhZiwgYWxlbiwgcGxlbjsKKwlj
aGFyICpwYXN2Y21kID0gTlVMTDsKKwljaGFyIGhidWZbTUFYSE9TVE5BTUVMRU5dLCBwYnVmW05J
X01BWFNFUlZdOworCisjaWZkZWYgSU5FVDYKKwlpZiAobXljdGxhZGRyLnN1X2ZhbWlseSA9PSBB
Rl9JTkVUNgorCSAmJiAoSU42X0lTX0FERFJfTElOS0xPQ0FMKCZteWN0bGFkZHIuc3Vfc2luNi5z
aW42X2FkZHIpCisJICB8fCBJTjZfSVNfQUREUl9TSVRFTE9DQUwoJm15Y3RsYWRkci5zdV9zaW42
LnNpbjZfYWRkcikpKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNlIG9mIHNjb3BlZCBhZGRyZXNz
IGNhbiBiZSB0cm91Ymxlc29tZVxuIik7CisJfQorI2VuZGlmCiAJaWYgKHBhc3NpdmVtb2RlKSB7
Ci0JCWRhdGEgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApOworCQlkYXRhX2FkZHIg
PSBoaXNjdGxhZGRyOworCQlkYXRhID0gc29ja2V0KGRhdGFfYWRkci5zdV9mYW1pbHksIFNPQ0tf
U1RSRUFNLCAwKTsKIAkJaWYgKGRhdGEgPCAwKSB7CiAJCQlwZXJyb3IoImZ0cDogc29ja2V0Iik7
CiAJCQlyZXR1cm4oMSk7CkBAIC0xMjI0LDMxICsxMzMzLDE3NyBAQAogCQkgICAgc2V0c29ja29w
dChkYXRhLCBTT0xfU09DS0VULCBTT19ERUJVRywgKGNoYXIgKikmb24sCiAJCQkgICAgICAgc2l6
ZW9mIChvbikpIDwgMCkKIAkJCXBlcnJvcigiZnRwOiBzZXRzb2Nrb3B0IChpZ25vcmVkKSIpOwot
CQlpZiAoY29tbWFuZCgiUEFTViIpICE9IENPTVBMRVRFKSB7CisJCXN3aXRjaCAoZGF0YV9hZGRy
LnN1X2ZhbWlseSkgeworCQljYXNlIEFGX0lORVQ6CisjaWYgMAorCQkJaWYgKHRyeV9lcHN2KSB7
CisJCQkJcmVzdWx0ID0gY29tbWFuZChwYXN2Y21kID0gIkVQU1YgMSIpOworCQkJCWlmIChjb2Rl
IC8gMTAgPT0gMjIgJiYgY29kZSAhPSAyMjkpIHsKKwkJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJ
ICAid3Jvbmcgc2VydmVyOiByZXR1cm4gY29kZSBtdXN0IGJlIDIyOVxuIik7CisJCQkJCXJlc3Vs
dCA9IENPTVBMRVRFICsgMTsKKwkJCQl9CisJCQl9IGVsc2UgeworI2VuZGlmCisJCQlyZXN1bHQg
PSBDT01QTEVURSArIDE7CisKKwkJCWlmIChyZXN1bHQgIT0gQ09NUExFVEUpIHsKKwkJCQl0cnlf
ZXBzdiA9IDA7CisJCQkJcmVzdWx0ID0gY29tbWFuZChwYXN2Y21kID0gIlBBU1YiKTsKKwkJCX0K
KwkJCWJyZWFrOworI2lmZGVmIElORVQ2CisJCWNhc2UgQUZfSU5FVDY6CisJCQlpZiAodHJ5X2Vw
c3YpIHsKKwkJCQlyZXN1bHQgPSBjb21tYW5kKHBhc3ZjbWQgPSAiRVBTViAyIik7CisJCQkJaWYg
KGNvZGUgLyAxMCA9PSAyMiAmJiBjb2RlICE9IDIyOSkgeworCQkJCQlmcHJpbnRmKHN0ZGVyciwK
KwkJCQkgICJ3cm9uZyBzZXJ2ZXI6IHJldHVybiBjb2RlIG11c3QgYmUgMjI5XG4iKTsKKwkJCQkJ
cmVzdWx0ID0gQ09NUExFVEUgKyAxOworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0ID0g
Q09NUExFVEUgKyAxOworCQkJfQorCQkJaWYgKHJlc3VsdCAhPSBDT01QTEVURSkgeworCQkJCXRy
eV9lcHN2ID0gMDsKKwkJCQlyZXN1bHQgPSBjb21tYW5kKHBhc3ZjbWQgPSAiTFBTViIpOworCQkJ
fQorCQkJYnJlYWs7CisjZW5kaWYKKwkJZGVmYXVsdDoKKwkJCXJlc3VsdCA9IENPTVBMRVRFICsg
MTsKKwkJCWJyZWFrOworCQl9CisJCWlmIChyZXN1bHQgIT0gQ09NUExFVEUpIHsKIAkJCXByaW50
ZigiUGFzc2l2ZSBtb2RlIHJlZnVzZWQuXG4iKTsKLQkJCXJldHVybigxKTsKKwkJCWdvdG8gYmFk
OwogCQl9CiAKKyNkZWZpbmUgcGFjazIodmFyKSBcCisJKCgodmFyWzBdICYgMHhmZikgPDwgOCkg
fCAoKHZhclsxXSAmIDB4ZmYpIDw8IDApKQorI2RlZmluZSBwYWNrNCh2YXIpIFwKKwkoKCgodmFy
KVswXSAmIDB4ZmYpIDw8IDI0KSB8ICgoKHZhcilbMV0gJiAweGZmKSA8PCAxNikgfCBcCisJICgo
KHZhcilbMl0gJiAweGZmKSA8PCA4KSB8ICgoKHZhcilbM10gJiAweGZmKSA8PCAwKSkKKwogCQkv
KgogCQkgKiBXaGF0IHdlJ3ZlIGdvdCBhdCB0aGlzIHBvaW50IGlzIGEgc3RyaW5nIG9mIGNvbW1h
IHNlcGFyYXRlZAogCQkgKiBvbmUtYnl0ZSB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcywgc2VwYXJh
dGVkIGJ5IGNvbW1hcy4KLQkJICogVGhlIGZpcnN0IGZvdXIgYXJlIHRoZSBhbiBJUCBhZGRyZXNz
LiBUaGUgZmlmdGggaXMgdGhlIE1TQgotCQkgKiBvZiB0aGUgcG9ydCBudW1iZXIsIHRoZSBzaXh0
aCBpcyB0aGUgTFNCLiBGcm9tIHRoYXQgd2UnbGwKLQkJICogcHJlcGFyZSBhIHNvY2thZGRyX2lu
LgogCQkgKi8KLQotCQlpZiAoc3NjYW5mKHBhc3YsIiVsZCwlbGQsJWxkLCVsZCwlbGQsJWxkIiwK
LQkJCSAgICZhMSwmYTIsJmEzLCZhNCwmcDEsJnAyKQotCQkgICAgIT0gNikgCi0JCXsKLQkJCXBy
aW50ZigiUGFzc2l2ZSBtb2RlIGFkZHJlc3Mgc2NhbiBmYWlsdXJlLiBTaG91bGRuJ3QgaGFwcGVu
IVxuIik7Ci0JCQlyZXR1cm4oMSk7CisJCWVycm9yID0gMDsKKwkJaWYgKHN0cmNtcChwYXN2Y21k
LCAiUEFTViIpID09IDApIHsKKwkJCWlmIChkYXRhX2FkZHIuc3VfZmFtaWx5ICE9IEFGX0lORVQp
IHsKKwkJCQllcnJvciA9IDI7CisJCQkJZ290byBwc3ZfZG9uZTsKKwkJCX0KKwkJCWlmIChjb2Rl
IC8gMTAgPT0gMjIgJiYgY29kZSAhPSAyMjcpIHsKKwkJCQllcnJvciA9IDIyNzsKKwkJCQlnb3Rv
IHBzdl9kb25lOworCQkJfQorCQkJaWYgKHNzY2FuZihwYXN2LCAiJXUsJXUsJXUsJXUsJXUsJXUi
LAorCQkJCQkmYWRbMF0sICZhZFsxXSwgJmFkWzJdLCAmYWRbM10sCisJCQkJCSZwb1swXSwgJnBv
WzFdKSAhPSA2KSB7CisJCQkJZXJyb3IgPSAxOworCQkJCWdvdG8gcHN2X2RvbmU7CisJCQl9CisJ
CQlkYXRhX2FkZHIuc3Vfc2luLnNpbl9hZGRyLnNfYWRkciA9IGh0b25sKHBhY2s0KGFkKSk7CisJ
CQlkYXRhX2FkZHIuc3VfcG9ydCA9IGh0b25zKHBhY2syKHBvKSk7CisJCX0gZWxzZQorCQkgICAg
aWYgKHN0cmNtcChwYXN2Y21kLCAiTFBTViIpID09IDApIHsKKwkJCWlmIChjb2RlIC8gMTAgPT0g
MjIgJiYgY29kZSAhPSAyMjgpIHsKKwkJCQllcnJvciA9IDIyODsKKwkJCQlnb3RvIHBzdl9kb25l
OworCQkJfQorCQkJc3dpdGNoIChkYXRhX2FkZHIuc3VfZmFtaWx5KSB7CisJCQljYXNlIEFGX0lO
RVQ6CisJCQkJaWYgKHNzY2FuZihwYXN2LCAiJXUsJXUsJXUsJXUsJXUsJXUsJXUsJXUsJXUiLAor
CQkJCQkJJmFmLCAmYWxlbiwKKwkJCQkJCSZhZFswXSwgJmFkWzFdLCAmYWRbMl0sICZhZFszXSwK
KwkJCQkJCSZwbGVuLCAmcG9bMF0sICZwb1sxXSkgIT0gOSkgeworCQkJCQllcnJvciA9IDE7CisJ
CQkJCWdvdG8gcHN2X2RvbmU7CisJCQkJfQorCQkJCWlmIChhZiAhPSA0IHx8IGFsZW4gIT0gNCB8
fCBwbGVuICE9IDIpIHsKKwkJCQkJZXJyb3IgPSAyOworCQkJCQlnb3RvIHBzdl9kb25lOworCQkJ
CX0KKwkJCQlkYXRhX2FkZHIuc3Vfc2luLnNpbl9hZGRyLnNfYWRkciA9CisJCQkJCQkJaHRvbmwo
cGFjazQoYWQpKTsKKwkJCQlkYXRhX2FkZHIuc3VfcG9ydCA9IGh0b25zKHBhY2syKHBvKSk7CisJ
CQkJYnJlYWs7CisjaWZkZWYgSU5FVDYKKwkJCWNhc2UgQUZfSU5FVDY6CisJCQkJaWYgKHNzY2Fu
ZihwYXN2LAorCSIldSwldSwldSwldSwldSwldSwldSwldSwldSwldSwldSwldSwldSwldSwldSwl
dSwldSwldSwldSwldSwldSIsCisJCQkJICAmYWYsICZhbGVuLAorCQkJCSAgJmFkWzBdLCAmYWRb
MV0sICZhZFsyXSwgJmFkWzNdLAorCQkJCSAgJmFkWzRdLCAmYWRbNV0sICZhZFs2XSwgJmFkWzdd
LAorCQkJCSAgJmFkWzhdLCAmYWRbOV0sICZhZFsxMF0sICZhZFsxMV0sCisJCQkJICAmYWRbMTJd
LCAmYWRbMTNdLCAmYWRbMTRdLCAmYWRbMTVdLAorCQkJCSAgJnBsZW4sICZwb1swXSwgJnBvWzFd
KSAhPSAyMSkgeworCQkJCQllcnJvciA9IDE7CisJCQkJCWdvdG8gcHN2X2RvbmU7CisJCQkJfQor
CQkJCWlmIChhZiAhPSA2IHx8IGFsZW4gIT0gMTYgfHwgcGxlbiAhPSAyKSB7CisJCQkJCWVycm9y
ID0gMjsKKwkJCQkJZ290byBwc3ZfZG9uZTsKKwkJCQl9CisJCQkJZGF0YV9hZGRyLnN1X3NpbjYu
c2luNl9hZGRyLnM2X2FkZHIzMlswXSA9CisJCQkJCQkJaHRvbmwocGFjazQoYWQpKTsKKwkJCQlk
YXRhX2FkZHIuc3Vfc2luNi5zaW42X2FkZHIuczZfYWRkcjMyWzFdID0KKwkJCQkJCQlodG9ubChw
YWNrNChhZCs0KSk7CisJCQkJZGF0YV9hZGRyLnN1X3NpbjYuc2luNl9hZGRyLnM2X2FkZHIzMlsy
XSA9CisJCQkJCQkJaHRvbmwocGFjazQoYWQrOCkpOworCQkJCWRhdGFfYWRkci5zdV9zaW42LnNp
bjZfYWRkci5zNl9hZGRyMzJbM10gPQorCQkJCQkJCWh0b25sKHBhY2s0KGFkKzEyKSk7CisJCQkJ
ZGF0YV9hZGRyLnN1X3BvcnQgPSBodG9ucyhwYWNrMihwbykpOworCQkJCWJyZWFrOworI2VuZGlm
CisJCQlkZWZhdWx0OgorCQkJCWVycm9yID0gMTsKKwkJCX0KKwkJfSBlbHNlIGlmIChzdHJuY21w
KHBhc3ZjbWQsICJFUFNWIiwgNCkgPT0gMCkgeworCQkJY2hhciBkZWxpbVs0XTsKKwkJCXVfaW50
IGVwc3ZwbzsKKworCQkJaWYgKGNvZGUgLyAxMCA9PSAyMiAmJiBjb2RlICE9IDIyOSkgeworCQkJ
CWVycm9yID0gMjI5OworCQkJCWdvdG8gcHN2X2RvbmU7CisJCQl9CisJCQlpZiAoc3NjYW5mKHBh
c3YsICIlYyVjJWMldSVjIiwgJmRlbGltWzBdLCAmZGVsaW1bMV0sCisJCQkJCSZkZWxpbVsyXSwg
JmVwc3ZwbywgJmRlbGltWzNdKSAhPSA1KSB7CisJCQkJZXJyb3IgPSAxOworCQkJCWdvdG8gcHN2
X2RvbmU7CisJCQl9CisJCQlpZiAoZGVsaW1bMF0gIT0gZGVsaW1bMV0gfHwgZGVsaW1bMF0gIT0g
ZGVsaW1bMl0KKwkJCSB8fCBkZWxpbVswXSAhPSBkZWxpbVszXSkgeworCQkJCWVycm9yID0gMTsK
KwkJCQlnb3RvIHBzdl9kb25lOworCQkJfQorCQkJZGF0YV9hZGRyLnN1X3BvcnQgPSBodG9ucyhl
cHN2cG8pOworCQl9IGVsc2UgeworCQkJZXJyb3IgPSAxOworCQl9Citwc3ZfZG9uZToKKwkJc3dp
dGNoIChlcnJvcikgeworCQljYXNlIDA6CisJCQlicmVhazsKKwkJY2FzZSAxOgorCQkJZnByaW50
ZihzdGRlcnIsCisJCSAgIlBhc3NpdmUgbW9kZSBhZGRyZXNzIHNjYW4gZmFpbHVyZS4gU2hvdWxk
bid0IGhhcHBlbiFcbiIpOworCQkJZ290byBiYWQ7CisJCWNhc2UgMjoKKwkJCWZwcmludGYoc3Rk
ZXJyLAorCQkJICAiUGFzc2l2ZSBtb2RlIEFGIG1pc21hdGNoLiBTaG91bGRuJ3QgaGFwcGVuIVxu
Iik7CisJCQlnb3RvIGJhZDsKKwkJY2FzZSAyMjc6CisJCWNhc2UgMjI4OgorCQljYXNlIDIyOToK
KwkJCWZwcmludGYoc3RkZXJyLAorCQkJICAid3Jvbmcgc2VydmVyOiByZXR1cm4gY29kZSBtdXN0
IGJlICVkXG4iLCBlcnJvcik7CisJCQlnb3RvIGJhZDsKKwkJZGVmYXVsdDoKKwkJCWZwcmludGYo
c3RkZXJyLCAiQnVnXG4iKTsKIAkJfQotCi0JCWRhdGFfYWRkci5zaW5fZmFtaWx5ID0gQUZfSU5F
VDsKLQkJZGF0YV9hZGRyLnNpbl9hZGRyLnNfYWRkciA9IGh0b25sKChhMSA8PCAyNCkgfCAoYTIg
PDwgMTYpIHwKLQkJCQkJCSAgKGEzIDw8IDgpIHwgYTQpOwotCQlkYXRhX2FkZHIuc2luX3BvcnQg
PSBodG9ucygocDEgPDwgOCkgfCBwMik7CiAKIAkJaWYgKGNvbm5lY3QoZGF0YSwgKHN0cnVjdCBz
b2NrYWRkciAqKSAmZGF0YV9hZGRyLAogCQkgICAgc2l6ZW9mKGRhdGFfYWRkcikpPDApIHsKQEAg
LTEyNTYsMjAgKzE1MTEsMjMgQEAKIAkJCXJldHVybigxKTsKIAkJfQogI2lmZGVmIElQX1RPUwor
CQlpZiAoZGF0YV9hZGRyLnN1X2ZhbWlseSA9PSBBRl9JTkVUKQorCQl7CiAJCXRvcyA9IElQVE9T
X1RIUk9VR0hQVVQ7CiAJCWlmIChzZXRzb2Nrb3B0KGRhdGEsIElQUFJPVE9fSVAsIElQX1RPUywg
KGNoYXIgKikmdG9zLAogCQkgICAgc2l6ZW9mKHRvcykpIDwgMCkKIAkJCXBlcnJvcigiZnRwOiBz
ZXRzb2Nrb3B0IFRPUyAoaWdub3JlZCkiKTsKKwkJfQogI2VuZGlmCiAJCXJldHVybigwKTsKIAl9
CiBub3BvcnQ6CiAJZGF0YV9hZGRyID0gbXljdGxhZGRyOwogCWlmIChzZW5kcG9ydCkKLQkJZGF0
YV9hZGRyLnNpbl9wb3J0ID0gMDsJLyogbGV0IHN5c3RlbSBwaWNrIG9uZSAqLyAKKwkJZGF0YV9h
ZGRyLnN1X3BvcnQgPSAwOwkvKiBsZXQgc3lzdGVtIHBpY2sgb25lICovIAogCWlmIChkYXRhICE9
IC0xKQogCQkodm9pZCkgY2xvc2UoZGF0YSk7Ci0JZGF0YSA9IHNvY2tldChBRl9JTkVULCBTT0NL
X1NUUkVBTSwgMCk7CisJZGF0YSA9IHNvY2tldChkYXRhX2FkZHIuc3VfZmFtaWx5LCBTT0NLX1NU
UkVBTSwgMCk7CiAJaWYgKGRhdGEgPCAwKSB7CiAJCXBlcnJvcigiZnRwOiBzb2NrZXQiKTsKIAkJ
aWYgKHRtcG5vKQpAQCAtMTI5NiwxMyArMTU1NCw0NyBAQAogCWlmIChsaXN0ZW4oZGF0YSwgMSkg
PCAwKQogCQlwZXJyb3IoImZ0cDogbGlzdGVuIik7CiAJaWYgKHNlbmRwb3J0KSB7Ci0JCWEgPSAo
Y2hhciAqKSZkYXRhX2FkZHIuc2luX2FkZHI7Ci0JCXAgPSAoY2hhciAqKSZkYXRhX2FkZHIuc2lu
X3BvcnQ7Ci0jZGVmaW5lCVVDKGIpCSgoKGludCliKSYweGZmKQotCQlyZXN1bHQgPQotCQkgICAg
Y29tbWFuZCgiUE9SVCAlZCwlZCwlZCwlZCwlZCwlZCIsCi0JCSAgICAgIFVDKGFbMF0pLCBVQyhh
WzFdKSwgVUMoYVsyXSksIFVDKGFbM10pLAotCQkgICAgICBVQyhwWzBdKSwgVUMocFsxXSkpOwor
CQlhZiA9IGV4X2FmMnByb3QoZGF0YV9hZGRyLnN1X2ZhbWlseSk7CisJCWlmICh0cnlfZXBydCAm
JiBhZiA+IDEpIHsgICAgICAvKiBvbmx5IElQdjYgKi8KKwkJCWlmIChnZXRuYW1laW5mbygoc3Ry
dWN0IHNvY2thZGRyICopJmRhdGFfYWRkciwgbGVuLAorCQkJCQloYnVmLCBzaXplb2YoaGJ1Ziks
IHBidWYsIHNpemVvZihwYnVmKSwKKwkJCQkJTklfTlVNRVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VS
VikgPT0gMCkgeworCQkJCXJlc3VsdCA9IGNvbW1hbmQoIkVQUlQgfCVkfCVzfCVzfCIsCisJCQkJ
CQkJYWYsIGhidWYsIHBidWYpOworCQkJCWlmIChyZXN1bHQgIT0gQ09NUExFVEUpIHsKKwkJCQkJ
dHJ5X2VwcnQgPSAwOworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0ID0gRVJST1I7CisJ
CQl9CisJCX0gZWxzZSB7CisJCQlyZXN1bHQgPSBDT01QTEVURSArIDE7CisJCX0KKwkJaWYgKHJl
c3VsdCA9PSBDT01QTEVURSkKKwkJCWdvdG8gcHJ0X2RvbmU7CisKKwkJcCA9ICh1X2NoYXIgKikm
ZGF0YV9hZGRyLnN1X3BvcnQ7CisJCXN3aXRjaCAoZGF0YV9hZGRyLnN1X2ZhbWlseSkgeworCQlj
YXNlIEFGX0lORVQ6CisJCQlhID0gKHVfY2hhciAqKSZkYXRhX2FkZHIuc3Vfc2luLnNpbl9hZGRy
OworCQkJcmVzdWx0ID0gY29tbWFuZCgiUE9SVCAldSwldSwldSwldSwldSwldSIsCisJCQkJYVsw
XSwgYVsxXSwgYVsyXSwgYVszXSwgcFswXSwgcFsxXSk7CisJCQlicmVhazsKKyNpZmRlZiBJTkVU
NgorCQljYXNlIEFGX0lORVQ2OgorCQkJYSA9ICh1X2NoYXIgKikmZGF0YV9hZGRyLnN1X3NpbjYu
c2luNl9hZGRyOworCQkJcmVzdWx0ID0gY29tbWFuZCgKKwkiTFBSVCA2LDE2LCVkLCVkLCVkLCVk
LCVkLCVkLCVkLCVkLCVkLCVkLCVkLCVkLCVkLCVkLCVkLCVkLDIsJWQsJWQiLAorCQkJCWFbMF0s
IGFbMV0sIGFbMl0sIGFbM10sIGFbNF0sIGFbNV0sIGFbNl0sIGFbN10sCisJCQkJYVs4XSwgYVs5
XSxhWzEwXSxhWzExXSxhWzEyXSxhWzEzXSxhWzE0XSxhWzE1XSwKKwkJCQlwWzBdLCBwWzFdKTsK
KwkJCWJyZWFrOworI2VuZGlmCisJCWRlZmF1bHQ6CisJCQlyZXN1bHQgPSBDT01QTEVURSArIDE7
IC8qIHh4eCAqLworCQl9CisKKwlwcnRfZG9uZToKIAkJaWYgKHJlc3VsdCA9PSBFUlJPUiAmJiBz
ZW5kcG9ydCA9PSAtMSkgewogCQkJc2VuZHBvcnQgPSAwOwogCQkJdG1wbm8gPSAxOwpAQCAtMTMx
Myw5ICsxNjA1LDEyIEBACiAJaWYgKHRtcG5vKQogCQlzZW5kcG9ydCA9IDE7CiAjaWZkZWYgSVBf
VE9TCisJaWYgKGRhdGFfYWRkci5zdV9mYW1pbHkgPT0gQUZfSU5FVCkKKwl7CiAJb24gPSBJUFRP
U19USFJPVUdIUFVUOwogCWlmIChzZXRzb2Nrb3B0KGRhdGEsIElQUFJPVE9fSVAsIElQX1RPUywg
KGNoYXIgKikmb24sIHNpemVvZihpbnQpKSA8IDApCiAJCXBlcnJvcigiZnRwOiBzZXRzb2Nrb3B0
IFRPUyAoaWdub3JlZCkiKTsKKwl9CiAjZW5kaWYKIAlyZXR1cm4gKDApOwogYmFkOgpAQCAtMTMy
OCw3ICsxNjIzLDcgQEAKIHN0YXRpYyBGSUxFICoKIGRhdGFjb25uKGNvbnN0IGNoYXIgKmxtb2Rl
KQogewotCXN0cnVjdCBzb2NrYWRkcl9pbiBmcm9tOworCXVuaW9uIHNvY2t1bmlvbiBmcm9tOwog
CWludCBzLCB0b3M7CiAJc29ja2xlbl90IGZyb21sZW4gPSBzaXplb2YoZnJvbSk7CiAJaW50IHJl
dDsKQEAgLTEzNDUsOSArMTY0MCwxMiBAQAogCSh2b2lkKSBjbG9zZShkYXRhKTsKIAlkYXRhID0g
czsKICNpZmRlZiBJUF9UT1MKKwlpZiAoZnJvbS5zdV9mYW1pbHkgPT0gQUZfSU5FVCkKKwl7CiAJ
dG9zID0gSVBUT1NfVEhST1VHSFBVVDsKIAlpZiAoc2V0c29ja29wdChzLCBJUFBST1RPX0lQLCBJ
UF9UT1MsIChjaGFyICopJnRvcywgc2l6ZW9mKGludCkpIDwgMCkKIAkJcGVycm9yKCJmdHA6IHNl
dHNvY2tvcHQgVE9TIChpZ25vcmVkKSIpOworCX0KICNlbmRpZgogCiAjaWZkZWYgVVNFX1NTTApA
QCAtMTQ3MCw4ICsxNzY4LDggQEAKIAlzdGF0aWMgc3RydWN0IGNvbXZhcnMgewogCQlpbnQgY29u
bmVjdDsKIAkJY2hhciBuYW1lW01BWEhPU1ROQU1FTEVOXTsKLQkJc3RydWN0IHNvY2thZGRyX2lu
IG1jdGw7Ci0JCXN0cnVjdCBzb2NrYWRkcl9pbiBoY3RsOworCQl1bmlvbiBzb2NrdW5pb24gbWN0
bDsKKwkJdW5pb24gc29ja3VuaW9uIGhjdGw7CiAJCUZJTEUgKmluOwogCQlGSUxFICpvdXQ7CiAJ
CWludCB0cGU7CkBAIC0xNTA5LDcgKzE4MDcsNyBAQAogCWNvbm5lY3RlZCA9IG9wLT5jb25uZWN0
OwogCWlmIChob3N0bmFtZSkgewogCQkodm9pZCkgc3RybmNweShpcC0+bmFtZSwgaG9zdG5hbWUs
IHNpemVvZihpcC0+bmFtZSkgLSAxKTsKLQkJaXAtPm5hbWVbc3RybGVuKGlwLT5uYW1lKV0gPSAn
XDAnOworCQlpcC0+bmFtZVtzaXplb2YoaXAtPm5hbWUpIC0gMV0gPSAnXDAnOwogCX0gCiAJZWxz
ZSB7CiAJCWlwLT5uYW1lWzBdID0gMDsKQEAgLTE1MzgsMTggKzE4MzYsMTggQEAKIAlpcC0+bnRm
bGcgPSBudGZsYWc7CiAJbnRmbGFnID0gb3AtPm50ZmxnOwogCSh2b2lkKSBzdHJuY3B5KGlwLT5u
dGksIG50aW4sIDE2KTsKLQkoaXAtPm50aSlbc3RybGVuKGlwLT5udGkpXSA9ICdcMCc7CisJKGlw
LT5udGkpWzE2XSA9ICdcMCc7CQkvKiBzaG91bGRuJ3QgdXNlIHN0cmxlbiAqLwogCSh2b2lkKSBz
dHJjcHkobnRpbiwgb3AtPm50aSk7CiAJKHZvaWQpIHN0cm5jcHkoaXAtPm50bywgbnRvdXQsIDE2
KTsKLQkoaXAtPm50bylbc3RybGVuKGlwLT5udG8pXSA9ICdcMCc7CisJKGlwLT5udG8pWzE2XSA9
ICdcMCc7CiAJKHZvaWQpIHN0cmNweShudG91dCwgb3AtPm50byk7CiAJaXAtPm1hcGZsZyA9IG1h
cGZsYWc7CiAJbWFwZmxhZyA9IG9wLT5tYXBmbGc7CiAJKHZvaWQpIHN0cm5jcHkoaXAtPm1pLCBt
YXBpbiwgTUFYUEFUSExFTiAtIDEpOwotCShpcC0+bWkpW3N0cmxlbihpcC0+bWkpXSA9ICdcMCc7
CisJKGlwLT5taSlbTUFYUEFUSExFTiAtIDFdID0gJ1wwJzsKIAkodm9pZCkgc3RyY3B5KG1hcGlu
LCBvcC0+bWkpOwogCSh2b2lkKSBzdHJuY3B5KGlwLT5tbywgbWFwb3V0LCBNQVhQQVRITEVOIC0g
MSk7Ci0JKGlwLT5tbylbc3RybGVuKGlwLT5tbyldID0gJ1wwJzsKKwkoaXAtPm1vKVtNQVhQQVRI
TEVOIC0gMV0gPSAnXDAnOwogCSh2b2lkKSBzdHJjcHkobWFwb3V0LCBvcC0+bW8pOwogCSh2b2lk
KSBzaWduYWwoU0lHSU5ULCBvbGRpbnRyKTsKIAlpZiAoYWJydGZsYWcpIHsKZGlmZiAtcnUgbmV0
a2l0LWZ0cC1vbGQvZnRwL2Z0cF92YXIuaCBuZXRraXQtZnRwLW5ldy9mdHAvZnRwX3Zhci5oCi0t
LSBuZXRraXQtZnRwLW9sZC9mdHAvZnRwX3Zhci5oCTIwMDQtMDQtMTEgMDI6MDc6MzIuMDAwMDAw
MDAwICswMjAwCisrKyBuZXRraXQtZnRwLW5ldy9mdHAvZnRwX3Zhci5oCTIwMDQtMDQtMTEgMDI6
MTk6NTIuODUyOTIwNDczICswMjAwCkBAIC0xLDMgKzEsNSBAQAorLyogJFVTQUdJJCAqLworCiAv
KgogICogQ29weXJpZ2h0IChjKSAxOTg1LCAxOTg5IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg
b2YgQ2FsaWZvcm5pYS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMTIsNiArMTE0LDgg
QEAKIEV4dGVybiBpbnQJbWZsYWc7CQkvKiBmbGFnOiBpZiAhPSAwLCB0aGVuIGFjdGl2ZSBtdWx0
aSBjb21tYW5kICovCiAKIEV4dGVybiBpbnQJb3B0aW9uczsJLyogdXNlZCBkdXJpbmcgc29ja2V0
IGNyZWF0aW9uICovCitFeHRlcm4gaW50CXRyeV9lcHN2OwkvKiB0cnkgRVBTViBmb3IgdGhpcyBz
ZXNzaW9uICovCitFeHRlcm4gaW50CXRyeV9lcHJ0OwkvKiB0cnkgRVBSVCBmb3IgdGhpcyBzZXNz
aW9uICovCiAKIC8qCiAgKiBGb3JtYXQgb2YgY29tbWFuZCB0YWJsZS4KQEAgLTE0MCw3ICsxNDQs
NyBAQAogRXh0ZXJuIGNoYXIgbWFjYnVmWzQwOTZdOwogI2RlZmluZSBNQUNCVUZfU0laRSA0MDk2
CiAKLWNoYXIgKmhvb2t1cChjaGFyICpob3N0LCBpbnQgcG9ydCk7CitjaGFyICpob29rdXAoY29u
c3QgY2hhciAqaG9zdCwgY29uc3QgY2hhciAqcG9ydCk7CiBzdHJ1Y3QgY21kICpnZXRjbWQoY29u
c3QgY2hhciAqKTsKIGNoYXIgKiptYWtlYXJndihpbnQgKnBhcmdjLCBjaGFyICoqcGFyZyk7CiBp
bnQgZG9sb2dpbihjb25zdCBjaGFyICpob3N0KTsK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29076</attachid>
            <date>2004-04-11 06:55 0000</date>
            <desc>ftp-0.17-r4.ebuild</desc>
            <filename>ftp-0.17-r4.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA0IEdlbnRvbyBUZWNobm9sb2dpZXMsIEluYy4KIyBEaXN0cmli
dXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYy
CiMgJEhlYWRlcjogL2hvbWUvY3ZzL215cG9ydGFnZS9uZXQtZnRwL2Z0cC9mdHAtMC4xNy1yNC5l
YnVpbGQsdiAxLjIgMjAwNC8wNC8xMSAxMzo1Mzo0MiBqYXNtaW4gRXhwICQKCklVU0U9InNzbCBp
cHY2IgoKaW5oZXJpdCBldXRpbHMKCk1ZX1A9bmV0a2l0LSR7UH0KUz0ke1dPUktESVJ9LyR7TVlf
UH0KREVTQ1JJUFRJT049IlN0YW5kYXJkIExpbnV4IEZUUCBjbGllbnQgd2l0aCBvcHRpb25hbCBT
U0wgJiBJUHY2IHN1cHBvcnQiClNSQ19VUkk9ImZ0cDovL2Z0cC51ay5saW51eC5vcmcvcHViL2xp
bnV4L05ldHdvcmtpbmcvbmV0a2l0LyR7TVlfUH0udGFyLmd6IgpIT01FUEFHRT0iaHR0cDovL3d3
dy5oY3MuaGFydmFyZC5lZHUvfmRob2xsYW5kL2NvbXB1dGVycy9uZXRraXQuaHRtbCIKClNMT1Q9
IjAiCkxJQ0VOU0U9ImFzLWlzIgpLRVlXT1JEUz0ieDg2IHBwYyBzcGFyYyBhbHBoYSBocHBhIG1p
cHMgYW1kNjQgaWE2NCBwcGM2NCIKClJERVBFTkQ9Ij49c3lzLWxpYnMvbmN1cnNlcy01LjIKCXNz
bD8gKCBkZXYtbGlicy9vcGVuc3NsICkiCgpERVBFTkQ9Ij49c3lzLWFwcHMvc2VkLTQKCSR7UkRF
UEVORH0iCgpzcmNfdW5wYWNrKCkgewoJdW5wYWNrICR7QX0KCWNkICR7U30KCglpZiBbICJgdXNl
IHNzbGAiIF07IHRoZW4KCQllcGF0Y2ggJHtGSUxFU0RJUn0vJHtNWV9QfStzc2wtMC4yLmRpZmYK
CQllcGF0Y2ggJHtGSUxFU0RJUn0vJHtNWV9QfStzc2wtMC4yK2F1dGguZGlmZgoJZmkKCQoJaWYg
WyAiYHVzZSBpcHY2YCIgXTsgdGhlbgoJCWVwYXRjaCAke0ZJTEVTRElSfS9uZXRraXQtZnRwLXVz
YWdpLWlwdjYtc3NsLmRpZmYKCWZpCn0KCnNyY19jb21waWxlKCkgewoJLi9jb25maWd1cmUgLS1w
cmVmaXg9L3VzciBgdXNlX2VuYWJsZSBpcHY2YCB8fCBkaWUKCXNlZCAtaSAiczotcGlwZSAtTzI6
JHtDRkxBR1N9OiIgTUNPTkZJRwoJZW1ha2UgfHwgZGllCn0KCnNyY19pbnN0YWxsKCkgewoJaW50
byAvdXNyCglkb2JpbiBmdHAvZnRwCglkb21hbiBmdHAvZnRwLjEgZnRwL25ldHJjLjUKCWRvZG9j
IENoYW5nZUxvZyBSRUFETUUgQlVHUwp9Cg==
</data>        

          </attachment>
    </bug>

</bugzilla>