Re: New pre-2.0.31 patches..

Nigel Metheringham (Nigel.Metheringham@ThePLAnet.net)
Tue, 05 Aug 1997 18:26:44 +0100


This is a multipart MIME message.

--==_Exmh_733654640
Content-Type: text/plain; charset=us-ascii

} The IP Masquerading mods that I fed to David M are missing - hardly
} critical, but small, self-contained, stable and occasionally *very* useful.

Here they are....
I have extracted from my CVS tree all patches to masq functionality
between 2.0.30 and my slightly enhanced version of David M's pre-2.0.31-2
release.

They apply cleanly, config & make dep is OK, I have a series of builds
running right now, and will run solid tests on this particular variant
tomorrow.

Nigel.

--==_Exmh_733654640
Content-Type: application/x-patch ; name="masq-for-pre-2.0.31-3.patch"
Content-Description: masq-for-pre-2.0.31-3.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="masq-for-pre-2.0.31-3.patch"

SW5kZXg6IGZ1bGxfbGludXgvTUFJTlRBSU5FUlMKZGlmZiAtdSBmdWxsX2xpbnV4L01BSU5U
QUlORVJTOjEuMS4xLjEgZnVsbF9saW51eC9NQUlOVEFJTkVSUzoxLjMKLS0tIGZ1bGxfbGlu
dXgvTUFJTlRBSU5FUlM6MS4xLjEuMQlXZWQgTWF5IDE0IDE3OjI4OjMxIDE5OTcKKysrIGZ1
bGxfbGludXgvTUFJTlRBSU5FUlMJVHVlIEp1biAxMCAxODozNzo0NyAxOTk3CkBAIC0xMjgs
NiArMTM0LDEyIEBACiBMOglsaW51eC1oYW1zQHZnZXIucnV0Z2Vycy5lZHUKIFM6CU1haW50
YWluZWQKIAorSVAgTUFTUVVFUkFESU5HIChJUFY0KQorUDoJTmlnZWwgTWV0aGVyaW5naGFt
CitNOglOaWdlbC5NZXRoZXJpbmdoYW1AVGhlUExBbmV0Lm5ldAorTDoJbWFzcUBpbmR5cmFt
cC5jb20KK1M6CU1haW50YWluZWQKKwogQlVTTE9HSUMgU0NTSSBEUklWRVIKIFA6CUxlb25h
cmQgTi4gWnVia29mZgogTToJTGVvbmFyZCBOLiBadWJrb2ZmIDxsbnpAZGFuZGVsaW9uLmNv
bT4KSW5kZXg6IGZ1bGxfbGludXgvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscApkaWZm
IC11IGZ1bGxfbGludXgvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscDoxLjEuMS4xIGZ1
bGxfbGludXgvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscDoxLjQKLS0tIGZ1bGxfbGlu
dXgvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscDoxLjEuMS4xCVdlZCBNYXkgMTQgMTc6
Mjk6MDMgMTk5NworKysgZnVsbF9saW51eC9Eb2N1bWVudGF0aW9uL0NvbmZpZ3VyZS5oZWxw
CVR1ZSBKdW4gMTAgMTg6Mzc6NDggMTk5NwpAQCAtOTQ3LDEyICs5NDcsMTQgQEAKICAgSWYg
eW91IHdhbnQgdGhpcywgc2F5IFkuCiAKIElQOiBpcGF1dG9mdyBtYXNxdWVyYWRlIHN1cHBv
cnQKLUNPTkZJR19JUF9NQVNRVUVSQURFX0lQQVVUT0ZXCitDT05GSUdfSVBfTUFTUVVFUkFE
RV9JUEFVVE9GVyAoRXhwZXJpbWVudGFsKQogICBpcGF1dG9mdyBpcyBhIHByb2dyYW0gYnkg
UmljaGFyZCBMeW5jaCBhbGxvd2luZyBhZGRpdGlvbmFsCiAgIHN1cHBvcnQgZm9yIG1hc3F1
ZXJhZGluZyBwcm90b2NvbHMgd2hpY2ggZG8gbm90IChhcyB5ZXQpCiAgIGhhdmUgYWRkaXRp
b25hbCBwcm90b2NvbCBoZWxwZXJzLiAgCiAgIEluZm9ybWF0aW9uIGFuZCBzb3VyY2UgZm9y
IGlwYXV0b2Z3IGlzIGF2YWlsYWJsZSBmcm9tCiAgIGZ0cDovL2Z0cC5uZXRpcy5jb20vcHVi
L21lbWJlcnMvcmx5bmNoLworICBUaGUgaXBhdXRvZncgY29kZSBpcyBzdGlsbCB1bmRlciBk
ZXZlbG9wbWVudCBhbmQgc28gaXMgY3VycmVudGx5CisgIG1hcmtlZCBFWFBFUklNRU5UQUwu
CiAgIElmIHlvdSB3YW50IHRoaXMsIHNheSBZLgogCiBJUDogSUNNUCBtYXNxdWVyYWRpbmcK
SW5kZXg6IGZ1bGxfbGludXgvaW5jbHVkZS9uZXQvaXBfbWFzcS5oCmRpZmYgLXUgZnVsbF9s
aW51eC9pbmNsdWRlL25ldC9pcF9tYXNxLmg6MS4xLjEuMSBmdWxsX2xpbnV4L2luY2x1ZGUv
bmV0L2lwX21hc3EuaDoxLjMKLS0tIGZ1bGxfbGludXgvaW5jbHVkZS9uZXQvaXBfbWFzcS5o
OjEuMS4xLjEJV2VkIE1heSAxNCAxNzoyODo0MCAxOTk3CisrKyBmdWxsX2xpbnV4L2luY2x1
ZGUvbmV0L2lwX21hc3EuaAlUdWUgTWF5IDI3IDEzOjI2OjAwIDE5OTcKQEAgLTU0LDYgKzU0
LDggQEAKICNkZWZpbmUgSVBfTUFTUV9GX0NPTlRST0wJCTB4MTAwIAkvKiB0aGlzIGlzIGEg
Y29udHJvbCBjaGFubmVsICovCiAjZGVmaW5lIElQX01BU1FfRl9OT19TUE9SVCAgICAJCTB4
MjAwCS8qIG5vIHNwb3J0IHNldCB5ZXQgKi8KICNkZWZpbmUgSVBfTUFTUV9GX0ZUUF9QQVNW
CSAgICAJMHg0MDAJLyogZnRwIFBBU1YgY29tbWFuZCBqdXN0IGlzc3VlZCAqLworI2RlZmlu
ZSBJUF9NQVNRX0ZfTk9fUkVQTFkJCTB4ODAwIAkvKiBubyByZXBseSB5ZXQgZnJvbSBvdXRz
aWRlICovCisjZGVmaW5lIElQX01BU1FfRl9BRldfUE9SVAkgICAgICAgMHgxMDAwCiAKICNp
ZmRlZiBfX0tFUk5FTF9fCiAKSW5kZXg6IGZ1bGxfbGludXgvbmV0L2lwdjQvQ29uZmlnLmlu
CmRpZmYgLXUgZnVsbF9saW51eC9uZXQvaXB2NC9Db25maWcuaW46MS4xLjEuMSBmdWxsX2xp
bnV4L25ldC9pcHY0L0NvbmZpZy5pbjoxLjIKLS0tIGZ1bGxfbGludXgvbmV0L2lwdjQvQ29u
ZmlnLmluOjEuMS4xLjEJV2VkIE1heSAxNCAxNzoyODo0MSAxOTk3CisrKyBmdWxsX2xpbnV4
L25ldC9pcHY0L0NvbmZpZy5pbglUdWUgTWF5IDI3IDEyOjAyOjQ0IDE5OTcKQEAgLTE0LDcg
KzE0LDkgQEAKICAgICAgIGJvb2wgJ0lQOiBtYXNxdWVyYWRpbmcnIENPTkZJR19JUF9NQVNR
VUVSQURFCiAgICAgICBpZiBbICIkQ09ORklHX0lQX01BU1FVRVJBREUiICE9ICJuIiBdOyB0
aGVuCiAgICAgICAgIGNvbW1lbnQgJ1Byb3RvY29sLXNwZWNpZmljIG1hc3F1ZXJhZGluZyBz
dXBwb3J0IHdpbGwgYmUgYnVpbHQgYXMgbW9kdWxlcy4nCi0gICAgICAgIGJvb2wgJ0lQOiBp
cGF1dG9mdyBtYXNxIHN1cHBvcnQnIENPTkZJR19JUF9NQVNRVUVSQURFX0lQQVVUT0ZXCisg
ICAgICAgIGlmIFsgIiRDT05GSUdfRVhQRVJJTUVOVEFMIiA9ICJ5IiBdOyB0aGVuCQorICAg
ICAgICAgIGJvb2wgJ0lQOiBpcGF1dG9mdyBtYXNxIHN1cHBvcnQnIENPTkZJR19JUF9NQVNR
VUVSQURFX0lQQVVUT0ZXCisgICAgICAgIGZpCiAgICAgICAgIGJvb2wgJ0lQOiBJQ01QIG1h
c3F1ZXJhZGluZycgQ09ORklHX0lQX01BU1FVRVJBREVfSUNNUAogICAgICAgZmkKICAgICAg
IGlmIFsgIiRDT05GSUdfRVhQRVJJTUVOVEFMIiA9ICJ5IiBdOyB0aGVuCQpkaWZmIC11IGZ1
bGxfbGludXgvbmV0L2lwdjQvaXBfZncuYzoxLjEuMS4xIGZ1bGxfbGludXgvbmV0L2lwdjQv
aXBfZncuYzoxLjIKLS0tIGZ1bGxfbGludXgvbmV0L2lwdjQvaXBfZncuYzoxLjEuMS4xCVdl
ZCBNYXkgMTQgMTc6Mjg6NDEgMTk5NworKysgZnVsbF9saW51eC9uZXQvaXB2NC9pcF9mdy5j
CVR1ZSBNYXkgMjcgMTE6MjM6NTMgMTk5NwpAQCAtODk1LDYgKzg5NSwxNCBAQAogCXN0cnVj
dCBpcF9hdXRvZncgKiBuZXdhZjsKIAlpbml0X3RpbWVyKCZhZi0+dGltZXIpOwogCW5ld2Fm
ID0ga21hbGxvYyggc2l6ZW9mKHN0cnVjdCBpcF9hdXRvZncpLCBHRlBfQVRPTUlDICk7CisJ
aWYgKCBuZXdhZiA9PSBOVUxMICkgCisJeworI2lmZGVmIERFQlVHX0lQX0ZJUkVXQUxMCisJ
CXByaW50aygiaXBfYXV0b2Z3X2FkZDogIG1hbGxvYyBzYWlkIG5vXG4iKTsKKyNlbmRpZgor
CQlyZXR1cm4oIEVOT01FTSApOworCX0KKwogCW1lbWNweShuZXdhZiwgYWYsIHNpemVvZihz
dHJ1Y3QgaXBfYXV0b2Z3KSk7CiAJbmV3YWYtPnRpbWVyLmRhdGEgPSAodW5zaWduZWQgbG9u
ZykgbmV3YWY7CiAJbmV3YWYtPnRpbWVyLmZ1bmN0aW9uID0gaXBfYXV0b2Z3X2V4cGlyZTsK
SW5kZXg6IGZ1bGxfbGludXgvbmV0L2lwdjQvaXBfbWFzcS5jCmRpZmYgLXUgZnVsbF9saW51
eC9uZXQvaXB2NC9pcF9tYXNxLmM6MS4xLjEuMSBmdWxsX2xpbnV4L25ldC9pcHY0L2lwX21h
c3EuYzoxLjMKLS0tIGZ1bGxfbGludXgvbmV0L2lwdjQvaXBfbWFzcS5jOjEuMS4xLjEJV2Vk
IE1heSAxNCAxNzoyODo0MiAxOTk3CisrKyBmdWxsX2xpbnV4L25ldC9pcHY0L2lwX21hc3Eu
YwlXZWQgSnVuIDExIDEwOjE5OjExIDE5OTcKQEAgLTE5LDcgKzE5LDcgQEAKICAqCUtlaXRo
IE93ZW5zCQk6CUtlZXAgY29udHJvbCBjaGFubmVscyBhbGl2ZSBpZiBhbnkgcmVsYXRlZCBk
YXRhIGVudHJpZXMuCiAgKglEZWxpYW4gRGVsY2hldgkJOglBZGRlZCBzdXBwb3J0IGZvciBJ
Q01QIHJlcXVlc3RzIGFuZCByZXBseXMKICAqCU5pZ2VsIE1ldGhlcmluZ2hhbQk6CUlDTVAg
aW4gSUNNUCBoYW5kbGluZywgdGlkeSB1cHMsIGJ1ZyBmaXhlcywgbWFkZSBJQ01QIG9wdGlv
bmFsCi0gKgorICoJSnVhbiBKb3NlIENpYXJsYW50ZQk6CXJlLWFzc2lnbiBtYWRkciBpZiBu
byBwYWNrZXQgcmVjZWl2ZWQgZnJvbSBvdXRzaWRlCiAgKgkKICAqLwogCkBAIC02MzIsMTMg
KzYzMiwyMSBAQAogICAgICAgICBtcy0+YXBwX2RhdGEJICAgPSBOVUxMOwogCW1zLT5jb250
cm9sCSAgID0gTlVMTDsKIAotICAgICAgICBpZiAocHJvdG8gPT0gSVBQUk9UT19VRFApCisg
ICAgICAgIGlmIChwcm90byA9PSBJUFBST1RPX1VEUCAmJiAhbWF0Y2hwb3J0KQogICAgICAg
ICAgICAgICAgIG1zLT5mbGFncyB8PSBJUF9NQVNRX0ZfTk9fREFERFI7CiAgICAgICAgIAog
ICAgICAgICAvKiBnZXQgbWFzcSBhZGRyZXNzIGZyb20gcmlmICovCiAgICAgICAgIG1zLT5t
YWRkcgkgICA9IGRldi0+cGFfYWRkcjsKKyAgICAgICAgLyoKKyAgICAgICAgICoJU2V0dXAg
bmV3IGVudHJ5IGFzIG5vdCByZXBsaWVkIHlldC4KKyAgICAgICAgICoJVGhpcyBmbGFnIHdp
bGwgYWxsb3cgbWFzcS4gYWRkciAobXMtPm1hZGRyKQorICAgICAgICAgKgl0byBmb2xsb3cg
Zm9yd2FyZGluZyBpbnRlcmZhY2UgYWRkcmVzcy4KKyAgICAgICAgICovCisgICAgICAgIG1z
LT5mbGFncyAgICAgICAgIHw9IElQX01BU1FfRl9OT19SRVBMWTsKIAotICAgICAgICBmb3Ig
KHBvcnRzX3RyaWVkID0gMDsgcG9ydHNfdHJpZWQgPCAqZnJlZV9wb3J0c19wOyBwb3J0c190
cmllZCsrKXsKKyAgICAgICAgZm9yIChwb3J0c190cmllZCA9IDA7IAorCSAgICAgKCpmcmVl
X3BvcnRzX3AgJiYgKHBvcnRzX3RyaWVkIDw9IChQT1JUX01BU1FfRU5EIC0gUE9SVF9NQVNR
X0JFR0lOKSkpOworCSAgICAgcG9ydHNfdHJpZWQrKyl7CiAgICAgICAgICAgICAgICAgc2F2
ZV9mbGFncyhmbGFncyk7CiAgICAgICAgICAgICAgICAgY2xpKCk7CiAgICAgICAgICAgICAg
ICAgCkBAIC02NTksNyArNjY3LDcgQEAKICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICBtc3QgPSBpcF9tYXNxX2dldGJ5bShwcm90bywg
bXMtPm1hZGRyLCBtcy0+bXBvcnQpOwotICAgICAgICAgICAgICAgIGlmIChtc3QgPT0gTlVM
TCkgeworICAgICAgICAgICAgICAgIGlmIChtc3QgPT0gTlVMTCB8fCBtYXRjaHBvcnQpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVfZmxhZ3MoZmxhZ3MpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgY2xpKCk7CiAgICAgICAgICAgICAgICAgCkBAIC03NTIsNyArNzYw
LDI3IEBACiAgICAgICAgIG1zID0gaXBfbWFzcV9vdXRfZ2V0KGlwaCk7CiAJaWYgKG1zIT1O
VUxMKSB7CiAgICAgICAgICAgICAgICAgaXBfbWFzcV9zZXRfZXhwaXJlKG1zLDApOwotCisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAg
KglJZiBzeXNjdGwgIT0wIGFuZCBubyBwa3QgaGFzIGJlZW4gcmVjZWl2ZWQgeWV0CisgICAg
ICAgICAgICAgICAgICoJaW4gdGhpcyB0dW5uZWwgYW5kIHJvdXRpbmcgaWZhY2UgYWRkcmVz
cyBoYXMgY2hhbmdlZC4uLgorICAgICAgICAgICAgICAgICAqCSAiWW91IGFyZSB3ZWxjb21l
LCBkaWFsZCIuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYgKCBz
eXNjdGxfaXBfZHluYWRkciAmJiBtcy0+ZmxhZ3MgJiBJUF9NQVNRX0ZfTk9fUkVQTFkgJiYg
ZGV2LT5wYV9hZGRyICE9IG1zLT5tYWRkcikgeworICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBmbGFnczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzeXNj
dGxfaXBfZHluYWRkciA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnRrKEtFUk5fSU5GTyAiaXBfZndfbWFzcXVlcmFkZSgpOiBjaGFuZ2UgbWFkZHIgZnJv
bSAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9udG9h
KG1zLT5tYWRkcikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGso
IiB0byAlc1xuIiwgaW5fbnRvYShkZXYtPnBhX2FkZHIpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVfZmxhZ3MoZmxhZ3MpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpcF9tYXNxX3VuaGFzaChtcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBtcy0+bWFk
ZHIgPSBkZXYtPnBhX2FkZHI7CisgICAgICAgICAgICAgICAgICAgICAgICBpcF9tYXNxX2hh
c2gobXMpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdG9yZV9mbGFncyhmbGFncyk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAogCQkvKgogCQkgKiAgICAg
IFNldCBzcG9ydCBpZiBub3QgZGVmaW5lZCB5ZXQgKGUuZy4gZnRwIFBBU1YpLiAgQmVjYXVz
ZQogCQkgKgltYXNxIGVudHJpZXMgYXJlIGhhc2hlZCBvbiBzcG9ydCwgdW5oYXNoIHdpdGgg
b2xkIHZhbHVlCkBAIC03ODQsNyArODEyLDYgQEAKIAkvKgogCSAqCU5vcGUsIG5vdCBmb3Vu
ZCwgY3JlYXRlIGEgbmV3IGVudHJ5IGZvciBpdAogCSAqLwotCQogCWlmIChtcz09TlVMTCkK
IAl7CiAjaWZkZWYgQ09ORklHX0lQX01BU1FVRVJBREVfSVBBVVRPRlcKQEAgLTk0Miw2ICs5
NjksMjcgQEAKIAkJfQogCQlpcF9tYXNxX3NldF9leHBpcmUobXMsIDApOwogCQkvKiBSZXdy
aXRlIHNvdXJjZSBhZGRyZXNzICovCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgLyoKKyAgICAgICAgICAgICAgICAgKglJZiBzeXNjdGwgIT0wIGFuZCBubyBwa3QgaGFz
IGJlZW4gcmVjZWl2ZWQgeWV0CisgICAgICAgICAgICAgICAgICoJaW4gdGhpcyB0dW5uZWwg
YW5kIHJvdXRpbmcgaWZhY2UgYWRkcmVzcyBoYXMgY2hhbmdlZC4uLgorICAgICAgICAgICAg
ICAgICAqCSAiWW91IGFyZSB3ZWxjb21lLCBkaWFsZCIuCisgICAgICAgICAgICAgICAgICov
CisgICAgICAgICAgICAgICAgaWYgKCBzeXNjdGxfaXBfZHluYWRkciAmJiBtcy0+ZmxhZ3Mg
JiBJUF9NQVNRX0ZfTk9fUkVQTFkgJiYgZGV2LT5wYV9hZGRyICE9IG1zLT5tYWRkcikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKKyNpZmRlZiBE
RUJVR19DT05GSUdfSVBfTUFTUVVFUkFERQorICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnRrKEtFUk5fSU5GTyAiaXBfZndfbWFzcV9pY21wKCk6IGNoYW5nZSBtYXNxLmFkZHIgJXMi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX250b2EobXMtPm1hZGRyKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGsoIi0+ICVzXG4iLCBpbl9udG9hKGRl
di0+cGFfYWRkcikpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICBzYXZlX2Zs
YWdzKGZsYWdzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsaSgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaXBfbWFzcV91bmhhc2gobXMpOworICAgICAgICAgICAgICAgICAg
ICAgICAgbXMtPm1hZGRyID0gZGV2LT5wYV9hZGRyOworICAgICAgICAgICAgICAgICAgICAg
ICAgaXBfbWFzcV9oYXNoKG1zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVf
ZmxhZ3MoZmxhZ3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKIAkJ
aXBoLT5zYWRkciA9IG1zLT5tYWRkcjsKIAkJaXBfc2VuZF9jaGVjayhpcGgpOwogCQkvKiBS
ZXdyaXRlIHBvcnQgKGlkKSAqLwpAQCAtMTA0Miw3ICsxMDkwLDcgQEAKIAlpZiAoaXBfY29t
cHV0ZV9jc3VtKCh1bnNpZ25lZCBjaGFyICopIGljbXBoLCBsZW4pKSAKIAl7CiAJCS8qIEZh
aWxlZCBjaGVja3N1bSEgKi8KLQkJcHJpbnRrKEtFUk5fSU5GTyAiTUFTUTogZm9yd2FyZCBJ
Q01QOiBmYWlsZWQgY2hlY2tzdW0gZnJvbSAlcyFcbiIsIAorCQlwcmludGsoS0VSTl9ERUJV
RyAiTUFTUTogZm9yd2FyZCBJQ01QOiBmYWlsZWQgY2hlY2tzdW0gZnJvbSAlcyFcbiIsIAog
CQkgICAgICAgaW5fbnRvYShpcGgtPnNhZGRyKSk7CiAJCXJldHVybigtMSk7CiAJfQpAQCAt
MTEzMyw2ICsxMTgxLDExIEBACiAJCQlyZXR1cm4gMDsKIAogCQlpcF9tYXNxX3NldF9leHBp
cmUobXMsMCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAg
ICAgICAgICAgICAgKglnb3QgcmVwbHksIHNvIGNsZWFyIGZsYWcKKyAgICAgICAgICAgICAg
ICAgKi8KKyAgICAgICAgICAgICAgICBtcy0+ZmxhZ3MgJj0gfklQX01BU1FfRl9OT19SRVBM
WTsKIAogCQkvKiBSZXNldCBzb3VyY2UgYWRkcmVzcyAqLwogCQlpcGgtPmRhZGRyID0gbXMt
PnNhZGRyOwpAQCAtMTIzOCw3ICsxMjkxLDcgQEAKIAlpZiAoaXBfY29tcHV0ZV9jc3VtKCh1
bnNpZ25lZCBjaGFyICopIGljbXBoLCBsZW4pKSAKIAl7CiAJCS8qIEZhaWxlZCBjaGVja3N1
bSEgKi8KLQkJcHJpbnRrKEtFUk5fSU5GTyAiTUFTUTogcmV2ZXJzZSBJQ01QOiBmYWlsZWQg
Y2hlY2tzdW0gZnJvbSAlcyFcbiIsIAorCQlwcmludGsoS0VSTl9ERUJVRyAiTUFTUTogcmV2
ZXJzZSBJQ01QOiBmYWlsZWQgY2hlY2tzdW0gZnJvbSAlcyFcbiIsIAogCQkgICAgICAgaW5f
bnRvYShpcGgtPnNhZGRyKSk7CiAJCXJldHVybigtMSk7CiAJfQpAQCAtMTMzOCw3ICsxMzkx
LDcgQEAKIAkJCQlpZiAoY3N1bV90Y3B1ZHBfbWFnaWMoaXBoLT5zYWRkciwgaXBoLT5kYWRk
ciwgbGVuLAogCQkJCQkJICAgICAgaXBoLT5wcm90b2NvbCwgc2tiLT5jc3VtKSkKIAkJCQl7
Ci0JCQkJCXByaW50ayhLRVJOX0lORk8gIk1BU1E6IGZhaWxlZCBUQ1AvVURQIGNoZWNrc3Vt
IGZyb20gJXMhXG4iLCAKKwkJCQkJcHJpbnRrKEtFUk5fREVCVUcgIk1BU1E6IGZhaWxlZCBU
Q1AvVURQIGNoZWNrc3VtIGZyb20gJXMhXG4iLCAKIAkJCQkJICAgICAgIGluX250b2EoaXBo
LT5zYWRkcikpOwogCQkJCQlyZXR1cm4gLTE7CiAJCQkJfQpAQCAtMTM2NCwyMCArMTQxNywy
NyBAQAogICAgICAgICBtcyA9IGlwX21hc3FfaW5fZ2V0KGlwaCk7CiAKICNpZmRlZiBDT05G
SUdfSVBfTUFTUVVFUkFERV9JUEFVVE9GVyAKLSAgICAgICAgaWYgKG1zID09IE5VTEwgJiYg
KGFmPWlwX2F1dG9md19jaGVja19yYW5nZShpcGgtPnNhZGRyLCBwb3J0cHRyWzFdLAotCQkJ
CQkJICAgIGlwaC0+cHJvdG9jb2wsIDApKSkgeworCisgICAgICAgIGlmIChtcyA9PSBOVUxM
ICYmIChhZj1pcF9hdXRvZndfY2hlY2tfcmFuZ2UoaXBoLT5zYWRkciwgcG9ydHB0clsxXSwg
aXBoLT5wcm90b2NvbCwgMCkpKSAKKwl7CisjaWZkZWYgREVCVUdfQ09ORklHX0lQX01BU1FV
RVJBREUKKwkJcHJpbnRrKCJpcF9hdXRvZndfY2hlY2tfcmFuZ2VcbiIpOworI2VuZGlmCiAg
ICAgICAgIAltcyA9IGlwX21hc3FfbmV3X2VuaChkZXYsIGlwaC0+cHJvdG9jb2wsCiAgICAg
ICAgIAkJCSAgICAgYWYtPndoZXJlLCBwb3J0cHRyWzFdLAogICAgICAgICAJCQkgICAgIGlw
aC0+c2FkZHIsIHBvcnRwdHJbMF0sCiAgICAgICAgIAkJCSAgICAgMCwKICAgICAgICAgCQkJ
ICAgICBwb3J0cHRyWzFdKTsKICAgICAgICAgfQotICAgICAgICBpZiAoIG1zID09IE5VTEwg
JiYgKGFmPWlwX2F1dG9md19jaGVja19wb3J0KHBvcnRwdHJbMV0sIAotCQkJCQkJICAgIGlw
aC0+cHJvdG9jb2wpKSApIHsKKyAgICAgICAgaWYgKCBtcyA9PSBOVUxMICYmIChhZj1pcF9h
dXRvZndfY2hlY2tfcG9ydChwb3J0cHRyWzFdLCBpcGgtPnByb3RvY29sKSkgKSAKKwl7Cisj
aWZkZWYgREVCVUdfQ09ORklHX0lQX01BU1FVRVJBREUKKwkJcHJpbnRrKCJpcF9hdXRvZndf
Y2hlY2tfcG9ydFxuIik7CisjZW5kaWYKICAgICAgICAgCW1zID0gaXBfbWFzcV9uZXdfZW5o
KGRldiwgaXBoLT5wcm90b2NvbCwKICAgICAgICAgCQkJICAgICBhZi0+d2hlcmUsIGh0b25z
KGFmLT5oaWRkZW4pLAogICAgICAgICAJCQkgICAgIGlwaC0+c2FkZHIsIHBvcnRwdHJbMF0s
Ci0gICAgICAgIAkJCSAgICAgMCwKKyAgICAgICAgCQkJICAgICBJUF9NQVNRX0ZfQUZXX1BP
UlQsCiAgICAgICAgIAkJCSAgICAgaHRvbnMoYWYtPnZpc2libGUpKTsKICAgICAgICAgfQog
I2VuZGlmIC8qIENPTkZJR19JUF9NQVNRVUVSQURFX0lQQVVUT0ZXICovCkBAIC0xMzkyLDYg
KzE0NTIsMTEgQEAKIAkJaXBfbWFzcV9zZXRfZXhwaXJlKG1zLDApOwogCiAgICAgICAgICAg
ICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKglnb3QgcmVwbHksIHNvIGNsZWFyIGZsYWcK
KyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBtcy0+ZmxhZ3MgJj0gfklQ
X01BU1FfRl9OT19SRVBMWTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAv
KgogICAgICAgICAgICAgICAgICAqCVNldCBkcG9ydCBpZiBub3QgZGVmaW5lZCB5ZXQuCiAg
ICAgICAgICAgICAgICAgICovCiAKQEAgLTE1NDMsOSArMTYwOCwxNSBAQAogCQogCWlmIChv
ZmZzZXQgPCAxMjgpIAogCXsKKyNpZmRlZiBDT05GSUdfSVBfTUFTUVVFUkFERV9JQ01QCisJ
CXNwcmludGYodGVtcCwKKwkJCSJQcmMgRnJvbUlQICAgRlBydCBUb0lQICAgICBUUHJ0IE1h
c3EgSW5pdC1zZXEgIERlbHRhIFBEZWx0YSBFeHBpcmVzIChmcmVlPSVkLCVkLCVkKSIsCisJ
CQlpcF9tYXNxX2ZyZWVfcG9ydHNbMF0sIGlwX21hc3FfZnJlZV9wb3J0c1sxXSwgaXBfbWFz
cV9mcmVlX3BvcnRzWzJdKTsgCisjZWxzZSAvKiAhZGVmaW5lZChDT05GSUdfSVBfTUFTUVVF
UkFERV9JQ01QKSAqLwogCQlzcHJpbnRmKHRlbXAsCiAJCQkiUHJjIEZyb21JUCAgIEZQcnQg
VG9JUCAgICAgVFBydCBNYXNxIEluaXQtc2VxICBEZWx0YSBQRGVsdGEgRXhwaXJlcyAoZnJl
ZT0lZCwlZCkiLAogCQkJaXBfbWFzcV9mcmVlX3BvcnRzWzBdLCBpcF9tYXNxX2ZyZWVfcG9y
dHNbMV0pOyAKKyNlbmRpZiAvKiBDT05GSUdfSVBfTUFTUVVFUkFERV9JQ01QICovCiAJCWxl
biA9IHNwcmludGYoYnVmZmVyLCAiJS0xMjdzXG4iLCB0ZW1wKTsKIAl9CiAJcG9zID0gMTI4
OwpJbmRleDogZnVsbF9saW51eC9uZXQvaXB2NC9pcF9tYXNxX2FwcC5jCmRpZmYgLXUgZnVs
bF9saW51eC9uZXQvaXB2NC9pcF9tYXNxX2FwcC5jOjEuMS4xLjEgZnVsbF9saW51eC9uZXQv
aXB2NC9pcF9tYXNxX2FwcC5jOjEuMgotLS0gZnVsbF9saW51eC9uZXQvaXB2NC9pcF9tYXNx
X2FwcC5jOjEuMS4xLjEJV2VkIE1heSAxNCAxNzoyODo0MiAxOTk3CisrKyBmdWxsX2xpbnV4
L25ldC9pcHY0L2lwX21hc3FfYXBwLmMJVHVlIE1heSAyNyAxMjowMjo0NCAxOTk3CkBAIC0x
NSw2ICsxNSw3IEBACiAgKiBGaXhlczoKICAqCUpKQwkJCTogSW1wbGVtZW50ZWQgYWxzbyBp
bnB1dCBwa3QgaG9vawogICoJTWlxdWVsIHZhbiBTbW9vcmVuYnVyZwk6IENvcHkgbW9yZSBz
dHVmZiB3aGVuIHJlc2l6aW5nIHNrYgorICoJSGFyYWxkIEhveWVyL0phbWVzIFIuIExldTog
QWRkaXRpb25hbCBpcGF1dG9mdyBzdXBwb3J0CiAgKgogICoKICAqIEZJWE1FOgpAQCAtMTg2
LDcgKzE4NywxMSBAQAogc3RydWN0IGlwX21hc3FfYXBwICogaXBfbWFzcV9iaW5kX2FwcChz
dHJ1Y3QgaXBfbWFzcSAqbXMpCiB7CiAgICAgICAgIHN0cnVjdCBpcF9tYXNxX2FwcCAqIG1h
cHA7Ci0gICAgICAgIG1hcHAgPSBpcF9tYXNxX2FwcF9nZXQobXMtPnByb3RvY29sLCBtcy0+
ZHBvcnQpOworCW1hcHAgPSBpcF9tYXNxX2FwcF9nZXQobXMtPnByb3RvY29sLCBtcy0+ZHBv
cnQpOworI2lmZGVmIENPTkZJR19JUF9NQVNRVUVSQURFX0lQQVVUT0ZXCisJaWYgKG1hcHAg
PT0gTlVMTCkKKwkJbWFwcCA9IGlwX21hc3FfYXBwX2dldChtcy0+cHJvdG9jb2wsIG1zLT5z
cG9ydCk7CisjZW5kaWYKICAgICAgICAgaWYgKG1hcHAgIT0gTlVMTCkgewogICAgICAgICAg
ICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICoJZG9uJ3QgYWxsb3cgYmluZGluZyBpZiBh
bHJlYWR5IGJvdW5kCkluZGV4OiBmdWxsX2xpbnV4L25ldC9pcHY0L2lwX21hc3FfY3VzZWVt
ZS5jCmRpZmYgLXUgZnVsbF9saW51eC9uZXQvaXB2NC9pcF9tYXNxX2N1c2VlbWUuYzoxLjEu
MS4xIGZ1bGxfbGludXgvbmV0L2lwdjQvaXBfbWFzcV9jdXNlZW1lLmM6MS4zCi0tLSBmdWxs
X2xpbnV4L25ldC9pcHY0L2lwX21hc3FfY3VzZWVtZS5jOjEuMS4xLjEJV2VkIE1heSAxNCAx
NzoyODo0MiAxOTk3CisrKyBmdWxsX2xpbnV4L25ldC9pcHY0L2lwX21hc3FfY3VzZWVtZS5j
CVR1ZSBKdW4gMTAgMTg6Mzg6MzQgMTk5NwpAQCAtMiw3ICsyLDcgQEAKICAqCQlJUF9NQVNR
X0ZUUCBDVVNlZU1lIG1hc3F1ZXJhZGluZyBtb2R1bGUKICAqCiAgKgotICogVmVyc2lvbjoJ
QCgjKWlwX21hc3FfY3VzZWVtZS5jIDAuMDIgICAwNy8yMy85NgorICogVmVyc2lvbjoJQCgj
KSRJZDogaXBfbWFzcV9jdXNlZW1lLmMsdiAxLjEuMi4yIDE5OTcvMDUvMjkgMTg6Mjc6NDEg
ZGF2ZW0gRXhwICQKICAqCiAgKiBBdXRob3I6CVJpY2hhcmQgTHluY2gKICAqCQkKQEAgLTEx
LDcgKzExLDEzIEBACiAgKglSaWNoYXJkIEx5bmNoICAgICAJOglVcGRhdGVkIHBhdGNoIHRv
IGNvbmZvcm0gdG8gbmV3IG1vZHVsZQogICoJCQkJCXNwZWNpZmljYXRpb25zCiAgKglOaWdl
bCBNZXRoZXJpbmdoYW0JOglNdWx0aXBsZSBwb3J0IHN1cHBvcnQKLSAqCQorICoJTWljaGFl
bCBPd2luZ3MJCToJRml4ZWQgYnJva2VuIGluaXQgY29kZQorICoJCQkJCUFkZGVkIGNvZGUg
dG8gdXBkYXRlIGluYm91bmQKKyAqCQkJCQlwYWNrZXRzIHdpdGggY29ycmVjdCBsb2NhbCBh
ZGRyZXNzZXMuCisgKgkJCQkJRml4ZXMgYXVkaW8gYW5kICJjaGF0IiBwcm9ibGVtcworICoJ
CQkJCVRoYW54IHRvIHRoZSBDVS1TZWVNZSBDb25zb3J0aXVtIGZvcgorICoJCQkJCXRlY2hu
aWNhbCBkb2NzCisgKgogICoKICAqCiAgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00Nyw3ICs1MywzOCBAQAog
I2RlZmluZSBERUJVR19DT05GSUdfSVBfTUFTUV9DVVNFRU1FIDAKICNlbmRpZgogCi0vKiAK
KyNwcmFnbWEgcGFjaygxKQorLyogQ1UtU2VlTWUgRGF0YSBIZWFkZXIgKi8KK3R5cGVkZWYg
c3RydWN0IHsKKwl1X3Nob3J0IAlkZXN0X2ZhbWlseTsKKwl1X3Nob3J0IAlkZXN0X3BvcnQ7
CisJdV9sb25nICAJZGVzdF9hZGRyOworCXNob3J0IAkJZmFtaWx5OworCXVfc2hvcnQgCXBv
cnQ7CisJdV9sb25nIAkJYWRkcjsKKwl1X2xvbmcgCQlzZXE7CisJdV9zaG9ydCAJbXNnOwor
CXVfc2hvcnQJCWRhdGFfdHlwZTsKKwl1X3Nob3J0CQlwYWNrZXRfbGVuOworfSBjdV9oZWFk
ZXI7CisKKy8qIE9wZW4gQ29udGludWUgSGVhZGVyICovCit0eXBlZGVmIHN0cnVjdAl7CisJ
Y3VfaGVhZGVyCWN1X2hlYWQ7CisJdV9zaG9ydCAJY2xpZW50X2NvdW50OyAvKiBOdW1iZXIg
b2YgY2xpZW50IGluZm8gc3RydWN0cyAqLworCXVfbG9uZwkJc2VxX25vOworCWNoYXIJCXVz
ZXJfbmFtZVsyMF07CisJY2hhcgkJc3R1ZmZbNF07IC8qIGZsYWdzLCAgdmVyc2lvbiBzdHVm
ZiwgIGV0YyAqLworfW9jX2hlYWRlcjsKKworLyogY2xpZW50IGluZm8gc3RydWN0dXJlcyAq
LwordHlwZWRlZiBzdHJ1Y3QgeworCXVfbG9uZwkJYWRkcmVzczsgLyogQ2xpZW50IGFkZHJl
c3MgKi8KKwljaGFyCSAgICAgICAJc3R1ZmZbOF07IC8qIEZsYWdzLCBwcnVuaW5nIGJpdGZp
ZWxkLCAgcGFja2V0IGNvdW50cyBldGMgKi8KK30gY2xpZW50X2luZm87CisjcHJhZ21hIHBh
Y2soKQorCisvKgogICogTGlzdCBvZiBwb3J0cyAodXAgdG8gTUFYX01BU1FfQVBQX1BPUlRT
KSB0byBiZSBoYW5kbGVkIGJ5IGhlbHBlcgogICogRmlyc3QgcG9ydCBpcyBzZXQgdG8gdGhl
IGRlZmF1bHQgcG9ydC4KICAqLwpAQCAtNzQsMjAgKzExMSw2MSBAQAogCXN0cnVjdCBza19i
dWZmICpza2IgPSAqc2tiX3A7CiAJc3RydWN0IGlwaGRyICppcGggPSBza2ItPmguaXBoOwog
CXN0cnVjdCB1ZHBoZHIgKnVoID0gKHN0cnVjdCB1ZHBoZHIgKikmKCgoY2hhciAqKWlwaClb
aXBoLT5paGwqNF0pOwotCXN0cnVjdCBjdV9oZWFkZXIgewotCQljaGFyIGRlc3RbOF07Ci0J
CXNob3J0IGZhbWlseTsKLQkJdV9zaG9ydCBwb3J0OwotCQl1X2xvbmcgYWRkcjsKLQl9ICpj
dV9oZWFkOworCWN1X2hlYWRlciAqY3VfaGVhZDsKIAljaGFyICpkYXRhPShjaGFyICopJnVo
WzFdOwotCQotCWlmIChza2ItPmxlbiAtICgodW5zaWduZWQgY2hhciAqKSBkYXRhIC0gc2ti
LT5oLnJhdykgPiAxNikKKworCWlmIChza2ItPmxlbiAtICgodW5zaWduZWQgY2hhciAqKSBk
YXRhIC0gc2tiLT5oLnJhdykgPj0gc2l6ZW9mKGN1X2hlYWRlcikpCiAJewotCQljdV9oZWFk
ICAgICAgICAgPSAoc3RydWN0IGN1X2hlYWRlciAqKSBkYXRhOwotLyoJCXByaW50aygiQ1VT
ZWVNZSBvcmlnOiAlbFg6JVhcbiIsbnRvaGwoY3VfaGVhZC0+YWRkciksbnRvaHMoY3VfaGVh
ZC0+cG9ydCkpOyovCi0JCWN1X2hlYWQtPnBvcnQgICA9IG1zLT5tcG9ydDsKKwkJY3VfaGVh
ZCAgICAgICAgID0gKGN1X2hlYWRlciAqKSBkYXRhOworCQkvKiBjdV9oZWFkLT5wb3J0ICAg
PSBtcy0+bXBvcnQ7ICovCisJICAgICAgICBpZiggY3VfaGVhZC0+YWRkciApCiAJCWN1X2hl
YWQtPmFkZHIgPSAodV9sb25nKSBkZXYtPnBhX2FkZHI7CisjaWYgREVCVUdfQ09ORklHX0lQ
X01BU1FfQ1VTRUVNRQkgIAorCSAgICAgICAgaWYobnRvaHMoY3VfaGVhZC0+ZGF0YV90eXBl
KSA9PSAyNTcpCisJICAgICAgICAgICBwcmludGsoS0VSTl9JTkZPICJTZW5kaW5nIHRhbGsg
cGFja2V0IVxuIik7CisjZW5kaWYJICAKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorbWFz
cV9jdXNlZW1lX2luIChzdHJ1Y3QgaXBfbWFzcV9hcHAgKm1hcHAsIHN0cnVjdCBpcF9tYXNx
ICptcywgc3RydWN0IHNrX2J1ZmYgKipza2JfcCwgc3RydWN0IGRldmljZSAqZGV2KQorewor
CXN0cnVjdCBza19idWZmICpza2IgPSAqc2tiX3A7CisJc3RydWN0IGlwaGRyICppcGggPSBz
a2ItPmguaXBoOworCXN0cnVjdCB1ZHBoZHIgKnVoID0gKHN0cnVjdCB1ZHBoZHIgKikmKCgo
Y2hhciAqKWlwaClbaXBoLT5paGwqNF0pOworCWN1X2hlYWRlciAqY3VfaGVhZDsKKwlvY19o
ZWFkZXIJKm9jOworCWNsaWVudF9pbmZvCSpjaTsKKwljaGFyICpkYXRhPShjaGFyICopJnVo
WzFdOworCXVfc2hvcnQgbGVuID0gc2tiLT5sZW4gLSAoKHVuc2lnbmVkIGNoYXIgKikgZGF0
YSAtIHNrYi0+aC5yYXcpOworCWludAkJaSwgb2ZmOworCisJaWYgKGxlbiA+PSBzaXplb2Yo
Y3VfaGVhZGVyKSkKKwl7CisJCWN1X2hlYWQgICAgICAgICA9IChjdV9oZWFkZXIgKikgZGF0
YTsKKwkJaWYoY3VfaGVhZC0+ZGVzdF9hZGRyKSAvKiBDb3JyZWN0IGRlc3RpbmF0aW9uIGFk
ZHJlc3MgKi8KKwkJCWN1X2hlYWQtPmRlc3RfYWRkciA9ICh1X2xvbmcpIG1zLT5zYWRkcjsK
KwkJaWYobnRvaHMoY3VfaGVhZC0+ZGF0YV90eXBlKT09MTAxICYmIGxlbiA+IHNpemVvZihv
Y19oZWFkZXIpKQorCQl7CisJCQlvYyA9IChvY19oZWFkZXIgKiApIGRhdGE7CisJCQkvKiBT
cGluIChncm92ZWwpIHRocnUgY2xpZW50X2luZm8gc3RydWN0cyB0aWxsIHdlIGZpbmQgb3Vy
IG93biAqLworCQkgICAgICAgIG9mZj1zaXplb2Yob2NfaGVhZGVyKTsKKwkJCWZvcihpPTA7
CisJCQkgICAgKGkgPCBvYy0+Y2xpZW50X2NvdW50ICYmIG9mZitzaXplb2YoY2xpZW50X2lu
Zm8pIDw9IGxlbik7CisJCQkgICAgaSsrKQkJICAgIAorCQkJeworCQkJICAgICAgICBjaT0o
Y2xpZW50X2luZm8gKikoZGF0YStvZmYpOworCQkJCWlmKGNpLT5hZGRyZXNzPT0odV9sb25n
KSBkZXYtPnBhX2FkZHIpCisJCQkJeworCQkJCSAgICAgICAgLyogVXBkYXRlIHcvIG91ciBy
ZWFsIGlwIGFkZHJlc3MgYW5kIGV4aXQgKi8KKwkJCQkJY2ktPmFkZHJlc3MgPSAodV9sb25n
KSBtcy0+c2FkZHI7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCSAgICAgICAgZWxzZQorCQkJ
CSAgIG9mZis9c2l6ZW9mKGNsaWVudF9pbmZvKTsKKwkJCX0KKwkJfQogCX0KIAlyZXR1cm4g
MDsKIH0KQEAgLTEwMCw3ICsxNzgsNyBAQAogICAgICAgICBtYXNxX2N1c2VlbWVfaW5pdF8x
LAkvKiBpcF9tYXNxX2luaXRfMSAqLwogICAgICAgICBtYXNxX2N1c2VlbWVfZG9uZV8xLAkv
KiBpcF9tYXNxX2RvbmVfMSAqLwogICAgICAgICBtYXNxX2N1c2VlbWVfb3V0LAkvKiBwa3Rf
b3V0ICovCi0gICAgICAgIE5VTEwgICAgICAgICAgICAgICAgICAgIC8qIHBrdF9pbiAqLwor
ICAgICAgICBtYXNxX2N1c2VlbWVfaW4gICAgCS8qIHBrdF9pbiAqLwogfTsKIAogCkBAIC0x
MTksMTIgKzE5NywxMiBAQAogCQkJCXJldHVybiAtRU5PTUVNOwogCQkJbWVtY3B5KG1hc3Ff
aW5jYXJuYXRpb25zW2ldLCAmaXBfbWFzcV9jdXNlZW1lLCBzaXplb2Yoc3RydWN0IGlwX21h
c3FfYXBwKSk7CiAJCQlpZiAoKGogPSByZWdpc3Rlcl9pcF9tYXNxX2FwcChtYXNxX2luY2Fy
bmF0aW9uc1tpXSwgCi0JCQkJCQkgICAgICBJUFBST1RPX1RDUCwgCisJCQkJCQkgICAgICBJ
UFBST1RPX1VEUCwKIAkJCQkJCSAgICAgIHBvcnRzW2ldKSkpIHsKIAkJCQlyZXR1cm4gajsK
IAkJCX0KICNpZiBERUJVR19DT05GSUdfSVBfTUFTUV9DVVNFRU1FCi0JCQlwcmludGsoIkN1
U2VlTWU6IGxvYWRlZCBzdXBwb3J0IG9uIHBvcnRbJWRdID0gJWRcbiIsCisJCQlwcmludGso
S0VSTl9JTkZPICJDdVNlZU1lOiBsb2FkZWQgc3VwcG9ydCBvbiBwb3J0WyVkXSA9ICVkXG4i
LAogCQkJICAgICAgIGksIHBvcnRzW2ldKTsKICNlbmRpZgogCQl9IGVsc2UgewpAQCAtMTUy
LDcgKzIzMCw3IEBACiAJCQkJa2ZyZWUobWFzcV9pbmNhcm5hdGlvbnNbaV0pOwogCQkJCW1h
c3FfaW5jYXJuYXRpb25zW2ldID0gTlVMTDsKICNpZiBERUJVR19DT05GSUdfSVBfTUFTUV9D
VVNFRU1FCi0JCQkJcHJpbnRrKCJDdVNlZU1lOiB1bmxvYWRlZCBzdXBwb3J0IG9uIHBvcnRb
JWRdID0gJWRcbiIsCisJCQkJcHJpbnRrKEtFUk5fSU5GTyAiQ3VTZWVNZTogdW5sb2FkZWQg
c3VwcG9ydCBvbiBwb3J0WyVkXSA9ICVkXG4iLAogCQkJCSAgICAgICBpLCBwb3J0c1tpXSk7
CiAjZW5kaWYKIAkJCX0KQEAgLTE3NCw3ICsyNTIsNyBAQAogdm9pZCBjbGVhbnVwX21vZHVs
ZSh2b2lkKQogewogICAgICAgICBpZiAoaXBfbWFzcV9jdXNlZW1lX2RvbmUoKSAhPSAwKQot
ICAgICAgICAgICAgICAgIHByaW50aygiaXBfbWFzcV9jdXNlZW1lOiBjYW4ndCByZW1vdmUg
bW9kdWxlIik7CisgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiaXBfbWFzcV9j
dXNlZW1lOiBjYW4ndCByZW1vdmUgbW9kdWxlIik7CiB9CiAKICNlbmRpZiAvKiBNT0RVTEUg
Ki8K

--==_Exmh_733654640
Content-Type: text/plain; charset=us-ascii

[ Nigel.Metheringham@theplanet.net - Systems Software Engineer ]
[ Tel : +44 113 251 6012 Fax : +44 113 224 0003 ]
[ Friends don't let friends use sendmail! ]

--==_Exmh_733654640--