[Mailman-Developers] patch to fix the alias-wrapper.c

Roger Peņa Escobio roger@infomed.sld.cu
Mon, 22 Mar 1999 21:27:13 -0500


This is a multi-part message in MIME format.

------=_NextPart_000_008C_01BE74AA.C0C21600
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by infomed.sld.cu id VAA09237

Hi...
few days ago we discuses about aliases file, well... this my patch of
mailman-1.0b9  to fix alias-wrapper, also fix newlist.
this patch also changes the rmlist file, including an rmaliases programs
(rmalias-wrapper.c, this programs edit the aliases file when you eliminat=
e a
list ).
Of course, you are free to apply the patch or not, but if will do it look
inside first, see what it will do and if you agree, =A1=A1 great !!! lets=
 do it
:-)

this line are for the brave souls :-) who like apply the patch

1-move the patch to the source dir , for example , /usr/local/src if mail=
man
source is in /usr/local/src/mailman-1.0b9
2-rename the alias-wrapper.c source to addalias-wrapper.c , it is, mv
./mailman-1.0b9/src/alias-wrapper.c ./mailman-1.0b9/src/addalias-wrapper.=
c
3-exec the command : patch -p0 < mailman-1.0b9-patch-r.patch
4- if you dont get any estrange line or question every thing was fine, if
not ...... check if you really have the mailman-1.0b9 version or if you a=
re
in the correct dir.
5- everything is ok ? great, now put the rmalias-wrapper.c into the src d=
ir,
it is ./mailman-1.0b9/src/
6-now you have to check some "little" thing, first of all , my aliases fi=
le
for mailman is /etc/mailman/aliases, you can change that editing the
addalias-wrapper.c and rmalias-wrapper.c, is really simple, take a look, =
I
dont know if mailman user can edit the /etc/aliases file ( I think he can=
t)
but in the other way I prefer to have two aliases file one for system ali=
as
and another for mailman alias, if I convince you about two alias, you wil=
l
have to change your sendmail.cf and create the /etc/mailman/ dir :
    6.1-creating the /etc/mailman/ dir : #mkdir /etc/mailman ; chgrp mail=
man
/etc/mailman ; chmod 755 /etc/mailman
    6.2-changing the sendmail.cf: do this really depend on your OS , in
RedHat you have to do this:
            cd /usr/lib/sendmail-cf/cf/
            edit your *.mc , if you never do this before ( if you have th=
e
sendmail.cf from distribution) your *.mc is redhat.mc, put this line
                define(`ALIAS_FILE',`/etc/aliases,/etc/mailman/aliases')
            exec the command : #m4 ../m4/cf.m4 redhat.mc > myhost.cf
            make a copy of your old sendmail.cf : #cp /etc/sendmail.cf
/etc/sendmail.cf.old
            copy the new *.cf file to /etc/sendmail.cf: #cp myhost.cf
/etc/sendmail.cf
            restart sendmail: #/etc/rc.d/init.d/sendmail restart
            and thats all !!!! are you still with me ???? :-)
    6.3-check if you have /var/tmp dir , addalias-wrapper.c and
rmalias-wrapper.c need it temporally, redhat already have but other OS do=
nt
7-the only thing that rest is run autoconf INSIDE mailman source , it is =
:
#cd /usr/local/mailman-1.0b9 ; autoconf
    that is for make configure from configure.in
8-well, if you do all above you really have my mailman ready to install, =
so
install it :-))

a final words.... maybe you think something like this "should I do all th=
is
thing instead of edit  the aliases file manually?? are you crazy!!!" but =
you
only need to do this only once, and then when you create or eliminate a l=
ist
all will be do automatically.
well a hope that this patch help someone .

Roger

------=_NextPart_000_008C_01BE74AA.C0C21600
Content-Type: application/octet-stream;
	name="rmalias-wrapper.c"
Content-Disposition: attachment;
	filename="rmalias-wrapper.c"
Content-Transfer-Encoding: base64

LyogYWxpYXMtd3JhcHBlci5jIC0tLSB3cmFwcGVyIHRvIGFsbG93IHRoZSBtYWlsbWFuIHVzZXIg
dG8gbW9kaWZ5IHRoZSBhbGlhc2VzCiAqIGRhdGFiYXNlLgogKgogKiBDb3B5cmlnaHQgKEMpIDE5
OTggYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKgogKiBUaGlzIHByb2dy
YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CiAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
dmVyc2lvbiAyCiAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgogKiAKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICogCiAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25n
IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIAog
KiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3Rvbiwg
TUEgMDIxMTEtMTMwNywgVVNBLgogKi8KCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3Rk
bGliLmg+CgovKiBwYXNzZWQgaW4gZnJvbSBjb25maWd1cmUgc2NyaXB0ICovCmNvbnN0IGludCAg
TEVHQUxfUEFSRU5UX1VJRCA9IEFMSUFTX1VJRDsgICAvKiBtYWlsbWFuJ3MgVUlEICovCmNvbnN0
IGludCAgTEVHQUxfUEFSRU5UX0dJRCA9IEFMSUFTX0dJRDsgICAgLyogbWFpbCdzIEdJRCAqLwoK
CmNvbnN0IGNoYXIqIFNFTkRNQUlMX0NNRCA9ICIvdXNyL3NiaW4vc2VuZG1haWwiOwpjb25zdCBj
aGFyKiBBTElBU19GSUxFICAgPSAiL2V0Yy9tYWlsbWFuL2FsaWFzZXMiOwpjb25zdCBjaGFyKiBB
TElBU19GSUxFX1RNUCAgID0gIi92YXIvdG1wL21haWxtYW5BbGlhc2VzIjsKY29uc3QgY2hhciog
V1JBUFBFUiAgICAgID0gIi9ob21lL21haWxtYW4vbWFpbC93cmFwcGVyIjsKCmNoYXIgbGluZWEx
WzEwMjRdOyAKY2hhciBsaW5lYVsxMDI0XTsKaW50IGk9MDsKCi8qIAoqKiBpcyB0aGUgcGFyZW50
IHByb2Nlc3MgYWxsb3dlZCB0byBjYWxsIHVzPwoqLwppbnQKTGVnYWxDYWxsZXIoKSAKewoJLyog
Y29tcGFyZSB0byBvdXIgcGFyZW50J3MgdWlkICovCglpZiAoTEVHQUxfUEFSRU5UX1VJRCAhPSBn
ZXR1aWQoKSkgewoJCXByaW50ZigiR09UIFVJRCAlZC5cbiIsIGdldHVpZCgpKTsKCQlyZXR1cm4g
MDsKCX0KCWlmIChMRUdBTF9QQVJFTlRfR0lEICE9IGdldGdpZCgpKSB7CgkJcHJpbnRmKCJHT1Qg
R0lEICVkLlxuIiwgZ2V0Z2lkKCkpOwoJCXJldHVybiAwOwoJfQoJcmV0dXJuIDE7Cn0KCgp2b2lk
ClJtTGlzdEFsaWFzZXMoY2hhciAqbGlzdCkKewoJRklMRSAqZjsKCUZJTEUgKmFsaWFzdG1wOwoJ
aW50ICBlcnIgPSAwOwoJCglzcHJpbnRmKGxpbmVhMSwiIyMgJXMgbWFpbGluZyBsaXN0OiIsbGlz
dCk7CglmPWZvcGVuKEFMSUFTX0ZJTEUgLCJyIik7Cglmc2VlayhmLDAsU0VFS19TRVQpOwoJaWYg
KGYgPT0gTlVMTCkgewoJCWVyciA9IDE7CgkJZiA9IHN0ZGVycjsKCQlmcHJpbnRmKGYsICJcblxu
KioqKioqKioqKipFUlJPUiEhISEqKioqKioqKioqKlxuIik7CgkJZnByaW50ZihmLCAiQ291bGQg
bm90IHdyaXRlIHRvIHRoZSBhbGlhc2VzIGZpbGUuXG4iKTsKCQlmcHJpbnRmKGYsICJQbGVhc2Ug
YmVjb21lIHJvb3QsIGFkZCB0aGUgbGluZXMgYmVsb3cgdG9cbiIpOwoJCWZwcmludGYoZiwgInRo
YXQgZmlsZSwgYW5kIHRoZW4gcnVuIHRoZSBjb21tYW5kOlxuIik7CgkJZnByaW50ZihmLCAiJXMg
LWJpXG4iLCBTRU5ETUFJTF9DTUQpOwoJICAgIH1lbHNlewoJICAgIAlwcmludGYoIkVkaXRpbmcg
YWxpYXMgZGF0YWJhc2UuLi4uXG4iICk7CgkJYWxpYXN0bXA9Zm9wZW4oQUxJQVNfRklMRV9UTVAs
InciKTsKCQlpZiAoYWxpYXN0bXAgPT0gTlVMTCkgewoJCSAgICBwcmludGYoIlxuXG4qKioqKioq
KioqKkVSUk9SISEhISoqKioqKioqKioqXG4iKTsKCQkgICAgcHJpbnRmKCJDb3VsZCBub3Qgd3Jp
dGUgdG8gdGhlIHRtcCBhbGlhc2VzIGZpbGUuXG4iKTsKCQkgICAgZXJyID0gMTsKCQkgICAgYWxp
YXN0bXAgPSBzdGRlcnI7CgkJIH0gICAKCQl3aGlsZSggKCBmZ2V0cyhsaW5lYSwxMDI0LGYpKSAh
PSBOVUxMICl7CgkJICAgIGlmICggIXN0cm5jbXAobGluZWEsIGxpbmVhMSwgc3RybGVuKGxpbmVh
MSkpICl7CgkJCXByaW50ZigiZWxpbWluYW5kbyBsYSBsaXN0YS4uLlxuIiApOwoJCQlmb3IoaT0x
OyBpPD0xMDsgaSsrKXsKCQkJICAgIGZnZXRzKGxpbmVhLDEwMjQsZik7CgkJCSAgICB9OwoJCSAg
ICAgIH0KCQkgICAgZnByaW50ZihhbGlhc3RtcCxsaW5lYSk7CgkJIH07CgkJZmNsb3NlKGFsaWFz
dG1wKTsKCQlmY2xvc2UoZik7CgkJc3lzdGVtKCJjcCAvdmFyL3RtcC9tYWlsbWFuQWxpYXNlcyAv
ZXRjL21haWxtYW4vYWxpYXNlcyIpOyAKCQlwcmludGYoIlJlYnVpbGRpbmcgYWxpYXMgZGF0YWJh
c2UuLi5cbiIpOwoJCWV4ZWNscChTRU5ETUFJTF9DTUQsIFNFTkRNQUlMX0NNRCwgIi1iaSIsIE5V
TEwpOwoJICAgIH0gICAgCn0KCgppbnQKbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGNoYXIg
KiplbnYpIAp7CgljaGFyICAqY29tbWFuZDsKCWludCAgIGk7CgoJaWYgKGFyZ2MgIT0gMikgewoJ
CXByaW50ZigiVXNhZ2U6ICVzIFtsaXN0LW5hbWVdXG4iLCBhcmd2WzBdKTsKCQlleGl0KDApOwoJ
fQoJaWYgKExlZ2FsQ2FsbGVyKCkpIHsKCQlzZXR1aWQoZ2V0ZXVpZCgpKTsKCQlSbUxpc3RBbGlh
c2VzKGFyZ3ZbMV0pOwoJfQoJZWxzZSB7CgkJcHJpbnRmKCJJbGxlZ2FsIGNhbGxlciFcbiIpOwoJ
CXJldHVybiAxOwoJfQoJcmV0dXJuIDA7Cn0KCgoMCi8qCiAqIExvY2FsIFZhcmlhYmxlczoKICog
Yy1maWxlLXN0eWxlOiAicHl0aG9uIgogKiBFbmQ6CiAqLwo=

------=_NextPart_000_008C_01BE74AA.C0C21600
Content-Type: application/octet-stream;
	name="mailman-1.0b9-patch-r.patch"
Content-Disposition: attachment;
	filename="mailman-1.0b9-patch-r.patch"
Content-Transfer-Encoding: base64

ZGlmZiAtTmF1ciAuL21haWxtYW4tMS4wYjkvTWFrZWZpbGUuaW4gLi9tYWlsbWFuLTEuMGI5cC9N
YWtlZmlsZS5pbgotLS0gLi9tYWlsbWFuLTEuMGI5L01ha2VmaWxlLmluCVRodSBKYW4gMTQgMjM6
MjA6NTcgMTk5OQorKysgLi9tYWlsbWFuLTEuMGI5cC9NYWtlZmlsZS5pbglTdW4gTWFyIDIxIDIy
OjQxOjQ3IDE5OTkKQEAgLTM1LDYgKzM1LDcgQEAKIERFRlM9CQlAREVGU0AKIAogTUFJTE1BTl9V
SUQ9CUBNQUlMTUFOX1VJREAKK01BSUxNQU5fR0lEPQlATUFJTE1BTl9HSURACiAKICMgQ3VzdG9t
aXphYmxlIGJ1dCBub3Qgc2V0IGJ5IGNvbmZpZ3VyZQogCkBAIC03OCw2ICs3OSw3IEBACiAJICAg
IGlmIHRlc3QgISAtZCAkJGRpcjsgdGhlbiBcCiAJCWVjaG8gIkNyZWF0aW5nIGRpcmVjdG9yeSBo
aWVyYXJjaHkgJCRkaXIiOyBcCiAJCS4vbWtpbnN0YWxsZGlycyAkJGRpcjsgXAorCQljaG93biAk
KE1BSUxNQU5fVUlEKTokKE1BSUxNQU5fR0lEKSAkJGRpcjsgXAogCQljaG1vZCAkKERJUk1PREUp
ICQkZGlyOyBcCiAJCWNobW9kIGcrcyAkJGRpcjsgXAogCSAgICBlbHNlIHRydWU7IFwKQEAgLTkx
LDYgKzkzLDcgQEAKIAkgICAgaWYgdGVzdCAhIC1kICQkZGlyOyB0aGVuIFwKIAkJZWNobyAiQ3Jl
YXRpbmcgZGlyZWN0b3J5IGhpZXJhcmNoeSAkJGRpciI7IFwKIAkJLi9ta2luc3RhbGxkaXJzICQk
ZGlyOyBcCisJCWNob3duICQoTUFJTE1BTl9VSUQpOiQoTUFJTE1BTl9HSUQpICQkZGlyOyBcCiAJ
CWNobW9kICQoRElSTU9ERSkgJCRkaXI7IFwKIAkJY2htb2QgZytzICQkZGlyOyBcCiAJICAgIGVs
c2UgdHJ1ZTsgXApAQCAtMTAxLDkgKzEwNCwxMCBAQAogCSAgICAoY2QgJCRkOyAkKE1BS0UpIGlu
c3RhbGwpOyBcCiAJZG9uZQogCSQoUFlUSE9OKSAtYyAnaW1wb3J0IGNvbXBpbGVhbGw7IGNvbXBp
bGVhbGwuY29tcGlsZV9kaXIoIiQocHJlZml4KSIpJworCWNob3duIC1SICQoTUFJTE1BTl9VSUQp
OiQoTUFJTE1BTl9HSUQpICQocHJlZml4KS8qCiAJQGVjaG8gIioqKioqIgogCUBlY2hvICIqKioq
KiBJZiB5b3UgYXJlIGluc3RhbGxpbmcgb3ZlciBhbiBvbGQgaW5zdGFsbGF0aW9uLCBwbGVhc2Ui
Ci0JQGVjaG8gIioqKioqIHJ1biBcIm1ha2UgdXBkYXRlXCIuICBTZWUgdGhlIFVQR1JBRElORyBm
aWxlIGZvciBkZXRhaWxzLiIKKwlAZWNobyAiKioqKiogcnVuIFwibWFrZSB1cGRhdGVcIiBsaWtl
IG1haWxtYW4gdXNlci4gIFNlZSB0aGUgVVBHUkFESU5HIGZpbGUgZm9yIGRldGFpbHMuIgogCUBl
Y2hvICIqKioqKiIKIAogI2ZpbmlzaDoKZGlmZiAtTmF1ciAuL21haWxtYW4tMS4wYjkvYmluL25l
d2xpc3QgLi9tYWlsbWFuLTEuMGI5cC9iaW4vbmV3bGlzdAotLS0gLi9tYWlsbWFuLTEuMGI5L2Jp
bi9uZXdsaXN0CVNhdCBGZWIgMjcgMTM6MDU6NDMgMTk5OQorKysgLi9tYWlsbWFuLTEuMGI5cC9i
aW4vbmV3bGlzdAlNb24gTWFyICAxIDIxOjIzOjEyIDE5OTkKQEAgLTkyLDcgKzkyLDcgQEAKICAg
ICBmaW5hbGx5OgogICAgICAgICBvcy51bWFzayhvbGRtYXNrKQogCi0gICAgIyMjb3Muc3lzdGVt
KCclcyAlcycgJSAoQUREQUxJQVNFU19DTUQsIGxpc3RfbmFtZSkpCisgICAgCiAgICAgcHJpbnQg
JycnCiBFbnRyeSBmb3IgYWxpYXNlcyBmaWxlOgogCkBAIC0xMTgsNiArMTE4LDcgQEAKIAlwcmlu
dCAoIkhpdCBlbnRlciB0byBjb250aW51ZSB3aXRoICVzIG93bmVyIG5vdGlmaWNhdGlvbi4uLiIK
IAkgICAgICAgJSBsaXN0X25hbWUpLAogCXN5cy5zdGRpbi5yZWFkbGluZSgpCisgICAgb3Muc3lz
dGVtKCclcyAlcycgJSAoQUREQUxJQVNFU19DTUQsIGxpc3RfbmFtZSkpCiAgICAgc2VuZG5vdGlj
ZShuZXdsaXN0LCBsaXN0X25hbWUsIG93bmVyX21haWwsIGxpc3RfcHcpCiAgICAgbmV3bGlzdC5V
bmxvY2soKQogCmRpZmYgLU5hdXIgLi9tYWlsbWFuLTEuMGI5L2Jpbi9ybWxpc3QgLi9tYWlsbWFu
LTEuMGI5cC9iaW4vcm1saXN0Ci0tLSAuL21haWxtYW4tMS4wYjkvYmluL3JtbGlzdAlNb24gRmVi
ICAxIDE2OjU3OjU4IDE5OTkKKysrIC4vbWFpbG1hbi0xLjBiOXAvYmluL3JtbGlzdAlTdW4gTWFy
IDIxIDIyOjA1OjI0IDE5OTkKQEAgLTk1LDYgKzk1LDcgQEAKICAgICBmb3IgZGlydG1wbCwgbXNn
IGluIFJFTU9WQUJMRVM6CiAgICAgICAgIGRpciA9IG9zLnBhdGguam9pbihwYXRocy5wcmVmaXgs
IGRpcnRtcGwgJSBsaXN0bmFtZSkKICAgICAgICAgcmVtb3ZlX2l0KGxpc3RuYW1lLCBkaXIsIG1z
ZykKKwlvcy5zeXN0ZW0ocm1hbGlhc2VzIGxpc3RuYW1lKQogCiAMCiBpZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgpkaWZmIC1OYXVyIC4vbWFpbG1hbi0xLjBiOS9jb25maWd1cmUuaW4gLi9tYWls
bWFuLTEuMGI5cC9jb25maWd1cmUuaW4KLS0tIC4vbWFpbG1hbi0xLjBiOS9jb25maWd1cmUuaW4J
U2F0IEZlYiAyNyAxOToyNDoyMSAxOTk5CisrKyAuL21haWxtYW4tMS4wYjlwL2NvbmZpZ3VyZS5p
bglGcmkgTWFyICA1IDE2OjI3OjUzIDE5OTkKQEAgLTE3LDcgKzE3LDcgQEAKIGRubCBQcm9jZXNz
IHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0Lgog
QUNfUkVWSVNJT04oJFJldmlzaW9uOiAxLjMxICQpCiBBQ19QUkVSRVEoMi4wKQotQUNfSU5JVChz
cmMvYWxpYXMtd3JhcHBlci5jKQorQUNfSU5JVChzcmMvYWRkYWxpYXMtd3JhcHBlci5jKQogCiAK
ICMgL2hvbWUvbWFpbG1hbiBpcyB0aGUgZGVmYXVsdCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CkBA
IC0xNDgsMTAgKzE0OCwxMCBAQAogZm9yIHVzZXIgaW4gc3RyaW5nLnNwbGl0KCIkMiIpOgogICAg
IHRyeToKICAgICAgICAgdHJ5OgotCSAgICB1aWQgPSBwd2QuZ2V0cHd1aWQoaW50KHVzZXIpKVsw
XQorCSAgICB1aWQgPSBwd2QuZ2V0cHd1aWQoaW50KHVzZXIpKVsyXQogCSAgICBicmVhawogCWV4
Y2VwdCBWYWx1ZUVycm9yOgotCSAgICB1aWQgPSBwd2QuZ2V0cHduYW0odXNlcilbMF0KKwkgICAg
dWlkID0gcHdkLmdldHB3bmFtKHVzZXIpWzJdCiAJICAgIGJyZWFrCiAgICAgZXhjZXB0IEtleUVy
cm9yOgogICAgICAgICB1aWQgPSAnJwpAQCAtMjkyLDkgKzI5MiwxMCBAQAogKioqKiogZG9jdW1l
bnRhdGlvbiwgYW5kIHRoZSBJTlNUQUxMIGZpbGUgZm9yIGRldGFpbHNdKQogZmkKIAotCi0jTU1f
RklORF9VU0VSX0lEKEFMSUFTX1VJRCwgbWFpbG1hbiwgYWxpYXNfd3JhcHBlcikKLSNNTV9GSU5E
X0dST1VQX0lEKEFMSUFTX0dJRCwgbWFpbCwgYWxpYXNfd3JhcHBlcikKK0FDX01TR19DSEVDS0lO
Ryhmb3IgYWxpYXMgd3JhcHBlciBVSUQpCitNTV9GSU5EX1VTRVJfSUQoQUxJQVNfVUlELCBtYWls
bWFuLCBhbGlhc193cmFwcGVyKQorQUNfTVNHX0NIRUNLSU5HKGZvciBhbGlhcyB3cmFwcGVyIEdJ
RCkKK01NX0ZJTkRfR1JPVVBfSUQoQUxJQVNfR0lELCBtYWlsbWFuLCBhbGlhc193cmFwcGVyKQog
CiAjIENoZWNrIGZvciBDR0kgZXh0ZW5zaW9ucywgcmVxdWlyZWQgYnkgc29tZSBXZWIgc2VydmVy
cwogQUNfU1VCU1QoQ0dJRVhUKQpkaWZmIC1OYXVyIC4vbWFpbG1hbi0xLjBiOS9taXNjL01ha2Vm
aWxlLmluIC4vbWFpbG1hbi0xLjBiOXAvbWlzYy9NYWtlZmlsZS5pbgotLS0gLi9tYWlsbWFuLTEu
MGI5L21pc2MvTWFrZWZpbGUuaW4JVGh1IEphbiAxNCAyMzoyMjowMSAxOTk5CisrKyAuL21haWxt
YW4tMS4wYjlwL21pc2MvTWFrZWZpbGUuaW4JU3VuIE1hciAyMSAyMzoxNDoxNiAxOTk5CkBAIC02
NSw4ICs2NSw4IEBACiAJICAgIGRpcj0kKHByZWZpeCkvJCRkOyBcCiAJICAgICQoSU5TVEFMTCkg
LW0gJChGSUxFTU9ERSkgcGF0aHMucHkgJCRkaXI7IFwKIAlkb25lCi0JJChJTlNUQUxMKSAtbSAk
KERBVEFNT0RFKSBwZW5kaW5nX3N1YnNjcmlwdGlvbnMuZGIgJChwcmVmaXgpL2RhdGEKLQorCSQo
SU5TVEFMTCkgLW0gJChEQVRBTU9ERSkgcGVuZGluZ19zdWJzY3JpcHRpb25zLmRiICQoREFUQURJ
UikKKwkKIGZpbmlzaDoKIAogY2xlYW46CmRpZmYgLU5hdXIgLi9tYWlsbWFuLTEuMGI5L3NyYy9N
YWtlZmlsZS5pbiAuL21haWxtYW4tMS4wYjlwL3NyYy9NYWtlZmlsZS5pbgotLS0gLi9tYWlsbWFu
LTEuMGI5L3NyYy9NYWtlZmlsZS5pbglTYXQgRmViIDI3IDE5OjMwOjIxIDE5OTkKKysrIC4vbWFp
bG1hbi0xLjBiOXAvc3JjL01ha2VmaWxlLmluCVN1biBNYXIgMjEgMjM6NTE6NDIgMTk5OQpAQCAt
MzYsMTUgKzM2LDE2IEBACiAjIFVJRHMgYW5kIEdJRHMKIE1BSUxfR0lEPSAgICAgIAlATUFJTF9H
SURACiBDR0lfR0lEPQlAQ0dJX0dJREAKLSNBTElBU19VSUQ9CUBBTElBU19VSURACi0jQUxJQVNf
R0lEPQlAQUxJQVNfR0lEQAorQUxJQVNfVUlEPQlAQUxJQVNfVUlEQAorQUxJQVNfR0lEPQlAQUxJ
QVNfR0lEQAogTUFJTE1BTl9VSUQ9CUBNQUlMTUFOX1VJREAKK01BSUxNQU5fR0lEPQlATUFJTE1B
Tl9HSURACiAKICMgQ3VzdG9taXphYmxlIGJ1dCBub3Qgc2V0IGJ5IGNvbmZpZ3VyZQogT1BUPQkJ
QE9QVEAKIENGTEFHUz0JCSQoT1BUKSAkKERFRlMpCiBDR0lESVI9IAkkKGV4ZWNfcHJlZml4KS9j
Z2ktYmluCi1DR0lFWFQ9CQlAQ0dJRVhUQAorQ0dJRVhUPQkJQENHSUVYVEAJCQogTUFJTERJUj0J
JChleGVjX3ByZWZpeCkvbWFpbAogCiBTSEVMTD0JCS9iaW4vc2gKQEAgLTUzLDggKzU0LDggQEAK
IAogQ0dJX0ZMQUdTPQktRENHSV9HSUQ9JChDR0lfR0lEKQogCi0jQUxJQVNfRkxBR1M9CS1EQUxJ
QVNfVUlEPSQoQUxJQVNfVUlEKSBcCi0jCQktREFMSUFTX0dJRD0kKEFMSUFTX0dJRCkKK0FMSUFT
X0ZMQUdTPQktREFMSUFTX1VJRD0kKEFMSUFTX1VJRCkgXAorCQktREFMSUFTX0dJRD0kKEFMSUFT
X0dJRCkKIAogSEVMUEZVTD0JLURIRUxQRlVMCiAKQEAgLTc3LDI0ICs3OCwyOCBAQAogCiBNQUlM
X1BST0dTPSB3cmFwcGVyCiAKLSNBTElBU19QUk9HUz0gYWRkYWxpYXNlcworQUREQUxJQVNfUFJP
R1M9IGFkZGFsaWFzZXMKK1JNQUxJQVNfUFJPR1M9IHJtYWxpYXNlcworQUxJQVNfUFJPR1M9IHJt
YWxpYXNlcyBhZGRhbGlhc2VzCiAKIFNVSURfQ0dJX1BST0dTPSBwcml2YXRlCiAKIFNVSURfTUFJ
TF9QUk9HUz0KIAotUFJPR1JBTVM9ICQoQ0dJX1BST0dTKSAkKE1BSUxfUFJPR1MpICQoQUxJQVNf
UFJPR1MpCitQUk9HUkFNUz0gJChDR0lfUFJPR1MpICQoTUFJTF9QUk9HUykgJChBRERBTElBU19Q
Uk9HUykgJChSTUFMSUFTX1BST0dTKQogCiAKICMgUnVsZXMKIAogYWxsOiAkKFBST0dSQU1TKQog
Ci13cmFwcGVyOiAkKHNyY2RpcikvbWFpbC13cmFwcGVyLmMgY29tbW9uLm8KKyQoTUFJTF9QUk9H
Uyk6ICQoc3JjZGlyKS9tYWlsLXdyYXBwZXIuYyBjb21tb24ubwogCSQoQ0MpIC1JLiAkKE1BSUxf
RkxBR1MpICQoQ0ZMQUdTKSBjb21tb24ubyAtbyAkQCAkKHNyY2RpcikvbWFpbC13cmFwcGVyLmMK
IAotI2FkZGFsaWFzZXM6ICQoc3JjZGlyKS9hbGlhcy13cmFwcGVyLmMgY29tbW9uLm8KLSMJJChD
QykgLUkuICQoQUxJQVNfRkxBR1MpICQoQ0ZMQUdTKSAtbyAkQCAkKHNyY2RpcikvYWxpYXMtd3Jh
cHBlci5jCiskKEFEREFMSUFTX1BST0dTKTogJChzcmNkaXIpL2FkZGFsaWFzLXdyYXBwZXIuYyBj
b21tb24ubworCSQoQ0MpIC1JLiAkKEFMSUFTX0ZMQUdTKSAkKENGTEFHUykgLW8gJEAgJChzcmNk
aXIpL2FkZGFsaWFzLXdyYXBwZXIuYworJChSTUFMSUFTX1BST0dTKTogJChzcmNkaXIpL3JtYWxp
YXMtd3JhcHBlci5jIGNvbW1vbi5vCisJJChDQykgLUkuICQoQUxJQVNfRkxBR1MpICQoQ0ZMQUdT
KSAtbyAkQCAkKHNyY2Rpcikvcm1hbGlhcy13cmFwcGVyLmMKIAogJChDR0lfUFJPR1MpOiAkKHNy
Y2RpcikvY2dpLXdyYXBwZXIuYyBjb21tb24ubwogCSQoQ0MpIC1EU0NSSVBUPSJcIiRAXCIiIC1J
LiAkKENHSV9GTEFHUykgJChDRkxBR1MpIGNvbW1vbi5vIC1vICRAICQoc3JjZGlyKS9jZ2ktd3Jh
cHBlci5jCkBAIC0xMDcsMTcgKzExMiwyMCBAQAogCWRvIFwKIAkgICAgZXhlPSQoQ0dJRElSKS8k
JGYkKENHSUVYVCk7IFwKIAkgICAgJChJTlNUQUxMX1BST0dSQU0pICQkZiAkJGV4ZTsgXAorCSAg
ICBjaG93biAkKE1BSUxNQU5fVUlEKTokKE1BSUxNQU5fR0lEKSAkKENHSURJUikvJCRmOyBcCiAJ
ICAgIGNobW9kIGcrcyAkJGV4ZTsgXAogCWRvbmUKIAlmb3IgZiBpbiAkKE1BSUxfUFJPR1MpOyBc
CiAJZG8gXAogCSAgICAkKElOU1RBTExfUFJPR1JBTSkgJCRmICQoTUFJTERJUik7IFwKKwkgICAg
Y2hvd24gJChNQUlMTUFOX1VJRCk6JChNQUlMTUFOX0dJRCkgJChNQUlMRElSKS8kJGY7IFwKIAkg
ICAgY2htb2QgZytzICQoTUFJTERJUikvJCRmOyBcCiAJZG9uZQotIwlAZm9yIGYgaW4gJChBTElB
U19QUk9HUyk7IFwKLSMJZG8gXAotIwkgICAgJChJTlNUQUxMX1BST0dSQU0pICQkZiAkKGJpbmRp
cikgOyBcCi0jCWRvbmUKKwlAZm9yIGYgaW4gJChBTElBU19QUk9HUyk7IFwKKwlkbyBcCisJICAg
ICQoSU5TVEFMTF9QUk9HUkFNKSAkJGYgJChiaW5kaXIpIDsgXAorCSAgICBjaG93biAkKEFMSUFT
X1VJRCk6JChBTElBU19HSUQpICQoYmluZGlyKS8kJGY7IFwKKwlkb25lCiAKIGZpbmlzaDoKIAkt
Zm9yIGYgaW4gJChTVUlEX0NHSV9QUk9HUyk7IFwKZGlmZiAtTmF1ciAuL21haWxtYW4tMS4wYjkv
c3JjL2FkZGFsaWFzLXdyYXBwZXIuYyAuL21haWxtYW4tMS4wYjlwL3NyYy9hZGRhbGlhcy13cmFw
cGVyLmMKLS0tIC4vbWFpbG1hbi0xLjBiOS9zcmMvYWRkYWxpYXMtd3JhcHBlci5jCVR1ZSBNYXkg
MjYgMTQ6NDI6MzggMTk5OAorKysgLi9tYWlsbWFuLTEuMGI5cC9zcmMvYWRkYWxpYXMtd3JhcHBl
ci5jCU1vbiBNYXIgMjIgMDA6MDA6NDMgMTk5OQpAQCAtMTgsMTUgKzE4LDI0IEBACiAgKiBGb3Vu
ZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgogICovCiAKKwogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dGlt
ZS5oPgogCisvKiAjZGVmaW5lIExFR0FMX1BBUkVOVF9VSUQgTUFJTE1BTl9VSUQ7CisjZGVmaW5l
IExFR0FMX1BBUkVOVF9HSUQgTUFJTE1BTl9HSUQ7Ki8KIC8qIHBhc3NlZCBpbiBmcm9tIGNvbmZp
Z3VyZSBzY3JpcHQgKi8KLWNvbnN0IGludCAgTEVHQUxfUEFSRU5UX1VJRCA9IEFMSUFTX1VJRDsg
ICAgIC8qIG1haWxtYW4ncyBVSUQgKi8KLWNvbnN0IGludCAgTEVHQUxfUEFSRU5UX0dJRCA9IEFM
SUFTX0dJRDsgICAgIC8qIG1haWwncyBHSUQgKi8KK2NvbnN0IGludCAgTEVHQUxfUEFSRU5UX1VJ
RCA9IEFMSUFTX1VJRDsgICAvKiBtYWlsbWFuJ3MgVUlEICovCitjb25zdCBpbnQgIExFR0FMX1BB
UkVOVF9HSUQgPSBBTElBU19HSUQ7ICAgIC8qIG1haWwncyBHSUQgKi8KKworCiAKIGNvbnN0IGNo
YXIqIFNFTkRNQUlMX0NNRCA9ICIvdXNyL3NiaW4vc2VuZG1haWwiOwotY29uc3QgY2hhciogQUxJ
QVNfRklMRSAgID0gIi9ldGMvYWxpYXNlcyI7Ci1jb25zdCBjaGFyKiBXUkFQUEVSICAgICAgPSAi
L2hvbWUvbWFpbG1hbi9tYWlsbWFuL21haWwvd3JhcHBlciI7Citjb25zdCBjaGFyKiBBTElBU19G
SUxFICAgPSAiL2V0Yy9tYWlsbWFuL2FsaWFzZXMiOworY29uc3QgY2hhciogV1JBUFBFUiAgICAg
ID0gIi9ob21lL21haWxtYW4vbWFpbC93cmFwcGVyIjsKKworCisKIAogLyogCiAqKiBpcyB0aGUg
cGFyZW50IHByb2Nlc3MgYWxsb3dlZCB0byBjYWxsIHVzPwpAQCAtNTIsMzIgKzYxLDMzIEBACiB7
CiAJRklMRSAqZjsKIAlpbnQgIGVyciA9IDA7Ci0KKwl0aW1lX3Qgc2VjczsKKwl0aW1lKCAmc2Vj
cyApOwogCWYgPSBmb3BlbihBTElBU19GSUxFICwiYSsiKTsKIAlpZiAoZiA9PSBOVUxMKSB7CiAJ
CWVyciA9IDE7CiAJCWYgPSBzdGRlcnI7CiAJCWZwcmludGYoZiwgIlxuXG4qKioqKioqKioqKkVS
Uk9SISEhISoqKioqKioqKioqXG4iKTsKLQkJZnByaW50ZihmLCAiQ291bGQgbm90IHdyaXRlIHRv
IHRoZSAvZXRjL2FsaWFzZXMgZmlsZS5cbiIpOworCQlmcHJpbnRmKGYsICJDb3VsZCBub3Qgd3Jp
dGUgdG8gdGhlIGFsaWFzZXMgZmlsZS5cbiIpOwogCQlmcHJpbnRmKGYsICJQbGVhc2UgYmVjb21l
IHJvb3QsIGFkZCB0aGUgbGluZXMgYmVsb3cgdG9cbiIpOwogCQlmcHJpbnRmKGYsICJ0aGF0IGZp
bGUsIGFuZCB0aGVuIHJ1biB0aGUgY29tbWFuZDpcbiIpOwogCQlmcHJpbnRmKGYsICIlcyAtYmlc
biIsIFNFTkRNQUlMX0NNRCk7CiAJfQogCi0JZnByaW50ZihmLCAiXG5cbiMtLSAlcyAtLSBtYWls
aW5nIGxpc3QgYWxpYXNlczpcbiIsIGxpc3QpOwotCWZwcmludGYoZiwgIiVzOiBcdHxcIiVzIHBv
c3QgJXNcIlxuIiwgbGlzdCwgV1JBUFBFUiwgbGlzdCk7CisJZnByaW50ZihmLCAiIyMgJXMgbWFp
bGluZyBsaXN0OlxuIiwgbGlzdCk7CisJZnByaW50ZihmLCAiIyMgY3JlYXRlZCBieSBtYWlsbWFu
IG9uOiAlcyIsIGN0aW1lKCZzZWNzKSk7CisJZnByaW50ZihmLCAiJXM6IFx0XHR8XCIlcyBwb3N0
ICVzXCJcbiIsIGxpc3QsIFdSQVBQRVIsIGxpc3QpOwogCWZwcmludGYoZiwgIiVzLWFkbWluOiBc
dHxcIiVzIG1haWxvd25lciAlc1wiXG4iLCBsaXN0LCBXUkFQUEVSLCBsaXN0KTsKIAlmcHJpbnRm
KGYsICIlcy1yZXF1ZXN0OiBcdHxcIiVzIG1haWxjbWQgJXNcIlxuIiwgbGlzdCwgV1JBUFBFUiwg
bGlzdCk7Ci0JZnByaW50ZihmLCAiIyBJIHRoaW5rIHdlIGRvbid0IHdhbnQgdGhpcyBvbmUuLi5c
biIpOwotCWZwcmludGYoZiwgIml0J2xsIGNoYW5nZSB0aGUgdW5peCBmcm9tIGxpbmUuLi5cbiIp
OwotCWZwcmludGYoZiwgIiNvd25lci0lczogXHQlcy1hZG1pblxuIiwgbGlzdCwgbGlzdCk7Ci0J
ZnByaW50ZihmLCAiIyVzLW93bmVyOiBcdCVzLWFkbWluXG4iLCBsaXN0LCBsaXN0KTsKLQlmcHJp
bnRmKGYsICJcbiIpOworCWZwcmludGYoZiwgIm93bmVyLSVzOiBcdCVzLWFkbWluXG4iLCBsaXN0
LCBsaXN0KTsKKwlmcHJpbnRmKGYsICIlcy1vd25lcjogXHQlcy1hZG1pblxuIiwgbGlzdCwgbGlz
dCk7CisJZnByaW50ZihmLCAiXG5cblxuIik7CiAJZmNsb3NlKGYpOwogCiAJaWYgKCFlcnIpIHsK
IAkJcHJpbnRmKCJSZWJ1aWxkaW5nIGFsaWFzIGRhdGFiYXNlLi4uXG4iKTsKLQkJZXhlY2xwKFNF
TkRNQUlMX0NNRCwgU0VORE1BSUxfQ01ELCAiLWJpIik7CisJCWV4ZWNscChTRU5ETUFJTF9DTUQs
IFNFTkRNQUlMX0NNRCwgIi1iaSIsIE5VTEwpOworCQkKIAl9CiB9CiAK

------=_NextPart_000_008C_01BE74AA.C0C21600--