[Coldstuff] MSCV patches

Robert Bradley coldstuff@cold.org
Sat, 11 May 2002 19:56:49 -0600


--------------Boundary-00=_PQ6ZD12SJ3FZVNTSG556
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

I've attached the patch file to correct most of the problems compiling 
genesis 1.1.10 with Visual C++ (tested only on version 6.0sr5).  I'll supply 
a supplimentary package containing files that complete the patch so you can 
compile it without access to linux soon.  I've tested this patch with linux, 
also, it remains unaffected, all tests pass.

Rob
--------------Boundary-00=_PQ6ZD12SJ3FZVNTSG556
Content-Type: text/x-diff;
  charset="iso-8859-1";
  name="msvc.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="msvc.patch"

ZGlmZiAtdXIgR2VuZXNpcy0xLjEuMTAtU1RBQkxFL3NyYy9iaW5hcnlkYi5jIHdpbjMyL3NyYy9i
aW5hcnlkYi5jCi0tLSBHZW5lc2lzLTEuMS4xMC1TVEFCTEUvc3JjL2JpbmFyeWRiLmMJV2VkIEph
biAgOSAyMjozMDowOCAyMDAyCisrKyB3aW4zMi9zcmMvYmluYXJ5ZGIuYwlGcmkgTWF5IDEwIDE3
OjQ0OjA0IDIwMDIKQEAgLTI0LDYgKzI0LDEwIEBACiAjaW5jbHVkZSAidXRpbC5oIgogI2luY2x1
ZGUgIm1vZGRlZi5oIgogCisjaWZkZWYgX19NU1ZDX18KKyNpbmNsdWRlIDxkaXJlY3QuaD4KKyNl
bmRpZgorCiAjZGVmaW5lIE5FRURFRChuLCBiKQkJKCgobikgJSAoYikpID8gKG4pIC8gKGIpICsg
MSA6IChuKSAvIChiKSkKICNkZWZpbmUgUk9VTkRfVVAoYSwgbSkJCSgoKGEpIC0gMSkgKyAobSkg
LSAoKChhKSAtIDEpICUgKG0pKSkKIApAQCAtNjgsNiArNzIsNyBAQAogCiAjZGVmaW5lIERCRklM
RShfX2IsIF9fZikgKHNwcmludGYoX19iLCAiJXMvJXMiLCBjX2Rpcl9iaW5hcnksIF9fZikpCiAK
KyNpZm5kZWYgX19NU1ZDX18KICNkZWZpbmUgb3Blbl9kYl9kaXJlY3RvcnkoKSB7IFwKICAgICAg
ICAgaWYgKHN0YXQoY19kaXJfYmluYXJ5LCAmc3RhdGJ1ZikgPT0gRl9GQUlMVVJFKSB7IFwKICAg
ICAgICAgICAgIGlmIChta2RpcihjX2Rpcl9iaW5hcnksIFJFQURfV1JJVEVfRVhFQ1VURSkgPT0g
Rl9GQUlMVVJFKSBcCkBAIC03OSw2ICs4NCwxOSBAQAogICAgICAgICAgICAgICAgIEZBSUwoIkNh
bm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNcIi5cbiIpOyBcCiAgICAgICAgIH0gXAogICAgIH0K
KyNlbHNlCisjZGVmaW5lIG9wZW5fZGJfZGlyZWN0b3J5KCkgeyBcCisgICAgICAgIGlmIChzdGF0
KGNfZGlyX2JpbmFyeSwgJnN0YXRidWYpID09IEZfRkFJTFVSRSkgeyBcCisgICAgICAgICAgICBp
ZiAobWtkaXIoY19kaXJfYmluYXJ5KSA9PSBGX0ZBSUxVUkUpIFwKKyAgICAgICAgICAgICAgICBG
QUlMKCJDYW5ub3QgY3JlYXRlIGJpbmFyeSBkaXJlY3RvcnkgXCIlc1wiLlxuIik7IFwKKyAgICAg
ICAgfSBlbHNlIGlmICghU19JU0RJUihzdGF0YnVmLnN0X21vZGUpKSB7IFwKKyAgICAgICAgICAg
IGlmICh1bmxpbmsoY19kaXJfYmluYXJ5KSA9PSBGX0ZBSUxVUkUpIFwKKyAgICAgICAgICAgICAg
ICBGQUlMKCJDYW5ub3QgZGVsZXRlIGZpbGUgXCIlc1wiLlxuIik7IFwKKyAgICAgICAgICAgIGlm
IChta2RpcihjX2Rpcl9iaW5hcnkpID09IEZfRkFJTFVSRSkgXAorICAgICAgICAgICAgICAgIEZB
SUwoIkNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNcIi5cbiIpOyBcCisgICAgICAgIH0gXAor
ICAgIH0KKyNlbmRpZgogCiAjZGVmaW5lIGluaXRfYml0bWFwcygpIHsgXAogICAgICAgICBpZiAo
c3RhdChmZGJfb2JqZWN0cywgJnN0YXRidWYpIDwgMCkgXApkaWZmIC11ciBHZW5lc2lzLTEuMS4x
MC1TVEFCTEUvc3JjL2dlbmVzaXMuYyB3aW4zMi9zcmMvZ2VuZXNpcy5jCi0tLSBHZW5lc2lzLTEu
MS4xMC1TVEFCTEUvc3JjL2dlbmVzaXMuYwlXZWQgSmFuICA5IDIyOjMwOjA5IDIwMDIKKysrIHdp
bjMyL3NyYy9nZW5lc2lzLmMJRnJpIE1heSAxMCAxNzo0NDowNCAyMDAyCkBAIC0yNyw2ICsyNywx
MSBAQAogI2luY2x1ZGUgIm5ldC5oIgogI2luY2x1ZGUgInNpZy5oIgogCisjaWZkZWYgX19NU1ZD
X18KKyNpbmNsdWRlIDxkaXJlY3QuaD4KKyNpbmNsdWRlIDxwcm9jZXNzLmg+CisjZW5kaWYKKwog
SU5URVJOQUwgdm9pZCBpbml0aWFsaXplKEludCBhcmdjLCBjaGFyICoqYXJndik7CiBJTlRFUk5B
TCB2b2lkIG1haW5fbG9vcCh2b2lkKTsKIApAQCAtMzg5LDcgKzM5NCwxMSBAQAogICAgICAgICBi
YXNlZGlyID0gIi4iOwogCiAgICAgLyogU3dpdGNoIGludG8gZGF0YWJhc2UgZGlyZWN0b3J5LiAq
LwotICAgIGlmIChjaGRpcihiYXNlZGlyKSA9PSBGX0ZBSUxVUkUpIHsKKyNpZmRlZiBfX01TVkNf
XworICAgIGlmIChfY2hkaXIoYmFzZWRpcikgPT0gRl9GQUlMVVJFKSB7CisjZWxzZQorICAgIGlm
IChjaGRpcihiYXNlZGlyKSA9PSBGX0ZBSUxVUkUpIHsKKyNlbmRpZgogICAgICAgICB1c2FnZShu
YW1lKTsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICIqKiBDb3VsZG4ndCBjaGFuZ2UgdG8gYmFz
ZSBkaXJlY3RvcnkgXCIlc1wiLlxuIiwKICAgICAgICAgICAgICAgICBiYXNlZGlyKTsKQEAgLTQ2
NiwxMSArNDc1LDE5IEBACiAKICAgICAvKiBwcmludCB0aGUgUElEICovCiAgICAgaWYgKChmcCA9
IGZvcGVuKGNfcnVuZmlsZSwgIndiIikpICE9IE5VTEwpIHsKKyNpZmRlZiBfX01TVkNfXworICAg
ICAgICBmcHJpbnRmKGZwLCAiJWxkXG4iLCAobG9uZykgX2dldHBpZCgpKTsKKyNlbHNlCiAgICAg
ICAgIGZwcmludGYoZnAsICIlbGRcbiIsIChsb25nKSBnZXRwaWQoKSk7CisjZW5kaWYKICAgICAg
ICAgZmNsb3NlKGZwKTsKICAgICAgICAgYXRleGl0KHVubGlua19ydW5uaW5nZmlsZSk7CiAgICAg
fSBlbHNlIHsKKyNpZmRlZiBfX01TVkNfXworICAgICAgICBmcHJpbnRmKGVycmZpbGUsICJnZW5l
c2lzIHBpZDogJWxkXG4iLCAobG9uZykgX2dldHBpZCgpKTsKKyNlbHNlCiAgICAgICAgIGZwcmlu
dGYoZXJyZmlsZSwgImdlbmVzaXMgcGlkOiAlbGRcbiIsIChsb25nKSBnZXRwaWQoKSk7CisjZW5k
aWYKICAgICB9CiAKICAgICAvKiBJbml0aWFsaXplIGRhdGFiYXNlIGFuZCBuZXR3b3JrIG1vZHVs
ZXMuICovCmRpZmYgLXVyIEdlbmVzaXMtMS4xLjEwLVNUQUJMRS9zcmMvaW5jbHVkZS9jZGNfZXJy
cy5oIHdpbjMyL3NyYy9pbmNsdWRlL2NkY19lcnJzLmgKLS0tIEdlbmVzaXMtMS4xLjEwLVNUQUJM
RS9zcmMvaW5jbHVkZS9jZGNfZXJycy5oCVdlZCBKYW4gIDkgMjI6MzA6MTAgMjAwMgorKysgd2lu
MzIvc3JjL2luY2x1ZGUvY2RjX2VycnMuaAlGcmkgTWF5IDEwIDE3OjQ2OjQ2IDIwMDIKQEAgLTgs
NyArOCwxOSBAQAogI2lmZGVmIF9fV2luMzJfXwogCiAjaW5jbHVkZSA8ZXJybm8uaD4KKworLy8g
SW4gVkMsIGxpbmtlZCB0byB3aW5zb2NrLmgsIGlzIGEgaGVhZGVyIHRoYXQgZGVmaW5lcyBGTE9B
VCwgdGhpcyBrZWVwcyBpdCBmcm9tCisvLyBjb21wYWluaW5nIGFuZCBwcmV2ZW50cyBpdCBmcm9t
IGludGVyZmVyaW5nIHdpdGggZ2VuZXNpcworI2lmZGVmIF9fTVNWQ19fCisjdW5kZWYgRkxPQVQK
KyNlbmRpZgorCiAjaW5jbHVkZSA8d2luc29jay5oPgorCisvLyBVbmRlZmluZSBWQydzIHNpbGx5
IGRlZmluaXRpb24KKyNpZmRlZiBfX01TVkNfXworI3VuZGVmIEZMT0FUCisjZW5kaWYKIAogI2Rl
ZmluZSAgICAgRVJSX0lOVFIgICAgICAgICBXU0FFSU5UUgogI2RlZmluZSAgICAgRVJSX05PTUVN
ICAgICAgICBFTk9NRU0KT25seSBpbiB3aW4zMi9zcmMvaW5jbHVkZTogY29uZmlnLmgKZGlmZiAt
dXIgR2VuZXNpcy0xLjEuMTAtU1RBQkxFL3NyYy9pbmNsdWRlL2RlZnMuaCB3aW4zMi9zcmMvaW5j
bHVkZS9kZWZzLmgKLS0tIEdlbmVzaXMtMS4xLjEwLVNUQUJMRS9zcmMvaW5jbHVkZS9kZWZzLmgJ
V2VkIEphbiAgOSAyMjozMDoxMCAyMDAyCisrKyB3aW4zMi9zcmMvaW5jbHVkZS9kZWZzLmgJRnJp
IE1heSAxMCAxNzo0Njo0NiAyMDAyCkBAIC0zNTMsNiArMzUzLDEwIEBACiAKICNkZWZpbmUgU0VS
VkVSX05BTUUgIkdlbmVzaXMgKHRoZSBDb2xkIGRyaXZlcikiCiAKKyNpZmRlZiBfX01TVkNfXwor
I2RlZmluZSBTX0lTRElSKG1vZGUpIChtb2RlICYgX1NfSUZESVIpCisjZW5kaWYKKwogLyogaW5j
YXNlIGl0IGRvZXNuJ3QgZXhpc3QgKi8KICNpZm5kZWYgT19CSU5BUlkKICNkZWZpbmUgT19CSU5B
UlkgMApPbmx5IGluIHdpbjMyL3NyYy9pbmNsdWRlOiBkaXJlbnQuaApPbmx5IGluIHdpbjMyL3Ny
Yy9pbmNsdWRlOiBuZGJtLmgKT25seSBpbiB3aW4zMi9zcmMvaW5jbHVkZTogcGFyc2UuaApPbmx5
IGluIHdpbjMyL3NyYzogaW5zdGFsbC5zaApkaWZmIC11ciBHZW5lc2lzLTEuMS4xMC1TVEFCTEUv
c3JjL21vZHVsZXMvY2RjX21pc2MuYyB3aW4zMi9zcmMvbW9kdWxlcy9jZGNfbWlzYy5jCi0tLSBH
ZW5lc2lzLTEuMS4xMC1TVEFCTEUvc3JjL21vZHVsZXMvY2RjX21pc2MuYwlXZWQgSmFuICA5IDIy
OjMwOjExIDIwMDIKKysrIHdpbjMyL3NyYy9tb2R1bGVzL2NkY19taXNjLmMJRnJpIE1heSAxMCAx
Nzo0ODo0MCAyMDAyCkBAIC0xNyw3ICsxNywxMSBAQAogI2luY2x1ZGUgImRucy5oIgogCiAjaWZk
ZWYgX19XaW4zMl9fCisjaWZuZGVmIF9fTVNWQ19fCiAjZGVmaW5lIEZUSU1FIF9sc3RyZnRpbWUK
KyNlbHNlCisjZGVmaW5lIEZUSU1FIHN0cmZ0aW1lCisjZW5kaWYKICNlbHNlCiAjZGVmaW5lIEZU
SU1FIHN0cmZ0aW1lCiAjZW5kaWYKZGlmZiAtdXIgR2VuZXNpcy0xLjEuMTAtU1RBQkxFL3NyYy9v
cHMvZmlsZS5jIHdpbjMyL3NyYy9vcHMvZmlsZS5jCi0tLSBHZW5lc2lzLTEuMS4xMC1TVEFCTEUv
c3JjL29wcy9maWxlLmMJV2VkIEphbiAgOSAyMjozMDoxMSAyMDAyCisrKyB3aW4zMi9zcmMvb3Bz
L2ZpbGUuYwlGcmkgTWF5IDEwIDE3OjQ4OjU4IDIwMDIKQEAgLTI5LDcgKzI5LDEzIEBACiAjaW5j
bHVkZSA8c3lzL3dhaXQuaD4KICNlbmRpZgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVk
ZSA8ZGlyZW50Lmg+ICAvKiBmdW5jX2ZpbGVzKCkgKi8KKyNpZmRlZiBfX01TVkNfXyAgICAgIC8q
IGZ1bmNfZmlsZXMoKSAqLworI2luY2x1ZGUgImRpcmVudC5oIgorI2luY2x1ZGUgPGRpcmVjdC5o
PgorI2luY2x1ZGUgPGlvLmg+CisjZWxzZQorI2luY2x1ZGUgPGRpcmVudC5oPgorI2VuZGlmCiAj
aW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlICJleGVjdXRlLmgiCiAjaW5jbHVkZSAiY2FjaGUu
aCIKQEAgLTI0NCw4ICsyNTAsMTEgQEAKICAgICAgICAgaWYgKHBhdGggPT0gTlVMTCkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0KKyNpZmRlZiBfX01TVkNfXworCQlmYWlsZWQgPSBfY2ht
b2QocGF0aC0+cywgbW9kZSk7CisjZWxzZQogICAgIGZhaWxlZCA9IGNobW9kKHBhdGgtPnMsIG1v
ZGUpOworI2VuZGlmCiAgICAgc3RyaW5nX2Rpc2NhcmQocGF0aCk7CiAKICAgICBpZiAoZmFpbGVk
KSB7CkBAIC0zMDEsNyArMzEwLDExIEBACiAgICAgfQogCiAgICAgLyogZGVmYXVsdCB0aGUgbW9k
ZSB0byAwNzAwLCB0aGV5IGNhbiBjaG1vZCBpdCBsYXRlciAqLworI2lmZGVmIF9fTVNWQ19fCisg
ICAgZXJyID0gbWtkaXIocGF0aC0+cyk7CisjZWxzZQogICAgIGVyciA9IG1rZGlyKHBhdGgtPnMs
IDA3MDApOworI2VuZGlmCiAgICAgc3RyaW5nX2Rpc2NhcmQocGF0aCk7CiAgICAgaWYgKGVyciAh
PSBGX1NVQ0NFU1MpIHsKICAgICAgICAgY3Rocm93KGZpbGVfaWQsIHN0cmVycm9yKEdFVEVSUigp
KSk7CmRpZmYgLXVyIEdlbmVzaXMtMS4xLjEwLVNUQUJMRS9zcmMvb3BzL21pc2MuYyB3aW4zMi9z
cmMvb3BzL21pc2MuYwotLS0gR2VuZXNpcy0xLjEuMTAtU1RBQkxFL3NyYy9vcHMvbWlzYy5jCVdl
ZCBKYW4gIDkgMjI6MzA6MTEgMjAwMgorKysgd2luMzIvc3JjL29wcy9taXNjLmMJRnJpIE1heSAx
MCAxNzo0ODo1OCAyMDAyCkBAIC05LDYgKzksOSBAQAogI2lmZGVmIF9fVU5JWF9fCiAjaW5jbHVk
ZSA8c3lzL3RpbWUuaD4gICAgLyogZm9yIG10aW1lKCkgKi8KICNlbmRpZgorI2lmZGVmIF9fV2lu
MzJfXworI2luY2x1ZGUgPHdpbmRvd3MuaD4JCSAvKiBmb3IgbXRpbWUoKSAqLworI2VuZGlmCiAK
ICNpbmNsdWRlICJvcGVyYXRvcnMuaCIKICNpbmNsdWRlICJleGVjdXRlLmgiCkBAIC0xNTAsMTAg
KzE1MywxNCBAQAogI2lmZGVmIEhBVkVfR0VUVElNRU9GREFZCiAgICAgc3RydWN0IHRpbWV2YWwg
dHA7CiAjZW5kaWYKKyNpZmRlZiBfX1dpbjMyX18KKwkJTEFSR0VfSU5URUdFUiBmcmVxLCBjbnQ7
CisjZW5kaWYKIAogICAgIGlmICghZnVuY19pbml0XzAoKSkKICAgICAgICAgcmV0dXJuOwogCisj
aWZuZGVmIF9fV2luMzJfXwogI2lmZGVmIEhBVkVfR0VUVElNRU9GREFZCiAgICAgLyogdXNlYyBp
cyBtaWNyb3NlY29uZHMgKi8KICAgICBnZXR0aW1lb2ZkYXkoJnRwLCBOVUxMKTsKQEAgLTE2Miw2
ICsxNjksMTMgQEAKICNlbHNlCiAgICAgcHVzaF9pbnQoLTEpOwogI2VuZGlmCisjZWxzZQorCQkv
LyBXaW4zMiBpbXBsZW1lbnRhdGlvbgorCQlRdWVyeVBlcmZvcm1hbmNlRnJlcXVlbmN5KCZmcmVx
KTsKKwkJUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoJmNudCk7CisJCXB1c2hfaW50KChjTnVtKSAo
KChjbnQuUXVhZFBhcnQgKiAxMDAwMDAwKSAvIGZyZXEuUXVhZFBhcnQpICUgMTAwMDAwMCkpOwor
I2VuZGlmCisKIH0KIAogdm9pZCBmdW5jX2N0aW1lKHZvaWQpIHsKT25seSBpbiB3aW4zMi9zcmMv
b3BzOiBzbmlwdHlwZS5oCmRpZmYgLXVyIEdlbmVzaXMtMS4xLjEwLVNUQUJMRS9zcmMvb3BzL3N5
cy5jIHdpbjMyL3NyYy9vcHMvc3lzLmMKLS0tIEdlbmVzaXMtMS4xLjEwLVNUQUJMRS9zcmMvb3Bz
L3N5cy5jCVdlZCBKYW4gIDkgMjI6MzA6MTEgMjAwMgorKysgd2luMzIvc3JjL29wcy9zeXMuYwlG
cmkgTWF5IDEwIDE3OjQ4OjU4IDIwMDIKQEAgLTEwLDcgKzEwLDEyIEBACiAjaW5jbHVkZSA8c3lz
L3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxmY250bC5oPgotI2lu
Y2x1ZGUgPGRpcmVudC5oPiAgLyogZGlyZWN0b3J5IGZ1bmNzICovCisjaWZkZWYgX19NU1ZDX18K
KyNpbmNsdWRlICJkaXJlbnQuaCIgIC8qIGRpcmVjdG9yeSBmdW5jcyAqLworI2luY2x1ZGUgPGRp
cmVjdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNlbmRpZgogI2luY2x1ZGUgImNh
Y2hlLmgiCiAjaW5jbHVkZSAiZXhlY3V0ZS5oIgogI2luY2x1ZGUgImJpbmFyeWRiLmgiCkBAIC02
NCw4ICs2OSwxMSBAQAogICAgIGZyb21fZmQgPSBvcGVuKHNvdXJjZSwgT19SRE9OTFkgfCBPX0JJ
TkFSWSwgMCk7CiAgICAgaWYgKGZyb21fZmQgPT0gRl9GQUlMVVJFKQogICAgICAgICB4X1RIUk9X
KHNvdXJjZSkKLQotICAgIHRvX2ZkID0gb3BlbihkZXN0LCAoT19XUk9OTFl8T19UUlVOQ3xPX0NS
RUFUfE9fQklOQVJZKSwgKFNfSVJVU1J8U19JV1VTUikpOworI2lmZGVmIF9fTVNWQ19fCisJCXRv
X2ZkID0gb3BlbihkZXN0LCAoT19XUk9OTFl8T19UUlVOQ3xPX0NSRUFUfE9fQklOQVJZKSwgKF9T
X0lSRUFEfF9TX0lXUklURSkpOworI2Vsc2UKKwkJdG9fZmQgPSBvcGVuKGRlc3QsIChPX1dST05M
WXxPX1RSVU5DfE9fQ1JFQVR8T19CSU5BUlkpLCAoU19JUlVTUnxTX0lXVVNSKSk7CisjZW5kaWYK
ICAgICBpZiAodG9fZmQgPT0gRl9GQUlMVVJFKQogICAgICAgICB4X1RIUk9XKGRlc3QpCiAKQEAg
LTExMywxMiArMTIxLDIwIEBACiAgICAgc3RyY3B5KGJ1ZiwgY19kaXJfYmluYXJ5KTsKICAgICBz
dHJjYXQoYnVmLCAiLmJhayIpOwogICAgIGlmIChzdGF0KGJ1ZiwgJnN0YXRidWYpID09IEZfRkFJ
TFVSRSkgeworI2lmZGVmIF9fTVNWQ19fCisgICAgICAgIGlmIChta2RpcihidWYpID09IEZfRkFJ
TFVSRSkKKyNlbHNlCiAgICAgICAgIGlmIChta2RpcihidWYsIFJFQURfV1JJVEVfRVhFQ1VURSkg
PT0gRl9GQUlMVVJFKQorI2VuZGlmCiAgICAgICAgICAgICBUSFJPVygoZmlsZV9pZCwgIkNhbm5v
dCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNcIjogJXMiLCBidWYsIHN0cmVycm9yKEdFVEVSUigpKSkp
CiAgICAgfSBlbHNlIGlmICghU19JU0RJUihzdGF0YnVmLnN0X21vZGUpKSB7CiAgICAgICAgIGlm
ICh1bmxpbmsoYnVmKSA9PSBGX0ZBSUxVUkUpCiAgICAgICAgICAgICBUSFJPVygoZmlsZV9pZCwg
IkNhbm5vdCBkZWxldGUgZmlsZSBcIiVzXCI6ICVzIiwgYnVmLCBzdHJlcnJvcihHRVRFUlIoKSkp
KQorI2lmZGVmIF9fTVNWQ19fCisgICAgICAgIGlmIChta2RpcihidWYpID09IEZfRkFJTFVSRSkK
KyNlbHNlCiAgICAgICAgIGlmIChta2RpcihidWYsIFJFQURfV1JJVEVfRVhFQ1VURSkgPT0gRl9G
QUlMVVJFKQorI2VuZGlmCiAgICAgICAgICAgICBUSFJPVygoZmlsZV9pZCwgIkNhbm5vdCBjcmVh
dGUgZGlyZWN0b3J5IFwiJXNcIjogJXMiLCBidWYsIHN0cmVycm9yKEdFVEVSUigpKSkpCiAgICAg
fQogCmRpZmYgLXVyIEdlbmVzaXMtMS4xLjEwLVNUQUJMRS9zcmMvc2lnLmMgd2luMzIvc3JjL3Np
Zy5jCi0tLSBHZW5lc2lzLTEuMS4xMC1TVEFCTEUvc3JjL3NpZy5jCVdlZCBKYW4gIDkgMjI6MzA6
MDkgMjAwMgorKysgd2luMzIvc3JjL3NpZy5jCUZyaSBNYXkgMTAgMTc6NDQ6MDQgMjAwMgpAQCAt
MjUsOCArMjUsMTAgQEAKICAgICBzaWduYWwoU0lHSUxMLCAgU0lHX0RGTCk7CiAgICAgc2lnbmFs
KFNJR0lOVCwgIFNJR19ERkwpOwogICAgIHNpZ25hbChTSUdURVJNLCBTSUdfREZMKTsKKyNpZm5k
ZWYgX19NU1ZDX18KICAgICBzaWduYWwoU0lHVVNSMSwgU0lHX0RGTCk7CiAgICAgc2lnbmFsKFNJ
R1VTUjIsIFNJR19ERkwpOworI2VuZGlmCiAjaWZkZWYgX19VTklYX18KICAgICBzaWduYWwoU0lH
UVVJVCwgU0lHX0RGTCk7CiAgICAgc2lnbmFsKFNJR0hVUCwgIFNJR19ERkwpOwpAQCAtNDAsOCAr
NDIsMTAgQEAKICAgICBzaWduYWwoU0lHSUxMLCAgY2F0Y2hfc2lnbmFsKTsKICAgICBzaWduYWwo
U0lHSU5ULCAgY2F0Y2hfc2lnbmFsKTsKICAgICBzaWduYWwoU0lHVEVSTSwgY2F0Y2hfc2lnbmFs
KTsKKyNpZm5kZWYgX19NU1ZDX18KICAgICBzaWduYWwoU0lHVVNSMSwgY2F0Y2hfc2lnbmFsKTsK
ICAgICBzaWduYWwoU0lHVVNSMiwgY2F0Y2hfc2lnbmFsKTsKKyNlbmRpZgogICAgIHNpZ25hbChT
SUdGUEUsICBjYXRjaF9TSUdGUEUpOwogI2lmZGVmIF9fVU5JWF9fCiAgICAgc2lnbmFsKFNJR1FV
SVQsIGNhdGNoX3NpZ25hbCk7CkBAIC04Miw4ICs4NiwxMCBAQAogICAgICAgICBjYXNlIFNJR0hV
UDogIHJldHVybiAiSFVQIjsKICNlbmRpZgogICAgICAgICBjYXNlIFNJR1RFUk06IHJldHVybiAi
VEVSTSI7CisjaWZuZGVmIF9fTVNWQ19fCiAgICAgICAgIGNhc2UgU0lHVVNSMTogcmV0dXJuICJV
U1IxIjsKICAgICAgICAgY2FzZSBTSUdVU1IyOiByZXR1cm4gIlVTUjIiOworI2VuZGlmCiAgICAg
ICAgIGRlZmF1bHQ6ICAgICAgcmV0dXJuICJVbmtub3duIjsKICAgICB9CiAgICAgcmV0dXJuIE5V
TEw7CkBAIC0xMTQsNiArMTIwLDcgQEAKICAgICAgICAgICAgIGhhbmRsZV9jb25uZWN0aW9uX291
dHB1dCgpOwogICAgICAgICAgICAgZmx1c2hfZmlsZXMoKTsKICNlbmRpZgorI2lmbmRlZiBfX01T
VkNfXwogICAgICAgICBjYXNlIFNJR1VTUjI6CiAgICAgICAgICAgICAvKiBsZXQgdGhlIGRiIGRv
IHdoYXQgaXQgd2FudHMgZnJvbSBoZXJlICovCiAgICAgICAgICAgICBicmVhazsKQEAgLTE0MCw2
ICsxNDcsNyBAQAogICAgICAgICAgICAgbG9uZ2ptcChtYWluX2ptcCwgMSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGNhc2UgU0lHSUxMOgogICAgICAg
ICAgICAgLyogbGV0cyBwYW5pYyBhbmQgaG9wZWZ1bGx5IHNodXRkb3duIHdpdGhvdXQgZnJvYmJp
bmcgdGhlIGRiICovCiAgICAgICAgICAgICBwYW5pYyhzaWdfbmFtZShzaWcpKTsKZGlmZiAtdXIg
R2VuZXNpcy0xLjEuMTAtU1RBQkxFL3NyYy9zdHJ1dGlsLmMgd2luMzIvc3JjL3N0cnV0aWwuYwot
LS0gR2VuZXNpcy0xLjEuMTAtU1RBQkxFL3NyYy9zdHJ1dGlsLmMJV2VkIEphbiAgOSAyMjozMDow
OSAyMDAyCisrKyB3aW4zMi9zcmMvc3RydXRpbC5jCUZyaSBNYXkgMTAgMTc6NDQ6MDQgMjAwMgpA
QCAtMzgwLDcgKzM4MCw3IEBACiAgICAgSW50ICAgICAgaTsKIAogICAgIGlmICgocnggPSBzdHJp
bmdfcmVnZXhwKHJlZykpID09IE5VTEwpIHsKLSAgICAgICAgY3Rocm93KHJlZ2V4cF9pZCwgIiVz
IiwgcmVnZXJyb3IoTlVMTCkpOworICAgICAgICBjdGhyb3cocmVnZXhwX2lkLCAiJXMiLCBnZW5f
cmVnZXJyb3IoTlVMTCkpOwogICAgICAgICAqZXJyb3IgPSBZRVM7CiAgICAgICAgIHJldHVybiBO
VUxMOwogICAgIH0KQEAgLTQyNyw3ICs0MjcsNyBAQAogICAgICAgICAgICAgIHNpemU7CiAKICAg
ICBpZiAoKHJ4ID0gc3RyaW5nX3JlZ2V4cChyZWcpKSA9PSAocmVnZXhwICopIE5VTEwpIHsKLSAg
ICAgICAgY3Rocm93KHJlZ2V4cF9pZCwgIiVzIiwgcmVnZXJyb3IoTlVMTCkpOworICAgICAgICBj
dGhyb3cocmVnZXhwX2lkLCAiJXMiLCBnZW5fcmVnZXJyb3IoTlVMTCkpOwogICAgICAgICAqZXJy
b3IgPSBZRVM7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTU3OSw3ICs1NzksNyBA
QAogCiAgICAgLyogQ29tcGlsZSB0aGUgcmVnZXhwLCBub3RlOiBpdCBpcyBmcmVlJ2QgYnkgc3Ry
aW5nX2Rpc2NhcmQoKSAqLwogICAgIGlmICgocnggPSBzdHJpbmdfcmVnZXhwKHJlZykpID09IChy
ZWdleHAgKikgTlVMTCkKLSAgICAgICAgVEhST1coKHJlZ2V4cF9pZCwgIiVzIiwgcmVnZXJyb3Io
TlVMTCkpKQorICAgICAgICBUSFJPVygocmVnZXhwX2lkLCAiJXMiLCBnZW5fcmVnZXJyb3IoTlVM
TCkpKQogCiAgICAgLyogaW5pdGlhbCByZWdleHAgZXhlY3V0aW9uICovCiAgICAgaWYgKCFnZW5f
cmVnZXhlYyhyeCwgcywgc2Vuc2l0aXZlKSkKQEAgLTEwMjksNyArMTAyOSw3IEBACiAKICAgICAv
KiBDb21waWxlIHRoZSByZWdleHAsIG5vdGU6IGl0IGlzIGZyZWUnZCBieSBzdHJpbmdfZGlzY2Fy
ZCgpICovCiAgICAgaWYgKChyeCA9IHN0cmluZ19yZWdleHAocmVnKSkgPT0gKHJlZ2V4cCAqKSBO
VUxMKQotICAgICAgICB4X1RIUk9XKChyZWdleHBfaWQsICIlcyIsIHJlZ2Vycm9yKE5VTEwpKSkK
KyAgICAgICAgeF9USFJPVygocmVnZXhwX2lkLCAiJXMiLCBnZW5fcmVnZXJyb3IoTlVMTCkpKQog
CiAgICAgLyogbG9vayBhdCB0aGUgcmVnZXhwIGFuZCBzZWUgaWYgaXRzIGEgc2ltcGxlIG9uZSwK
ICAgICAgICB3aGljaCB3ZSBjYW4gY3VycmVudGx5IGhhbmRsZSAqLwpkaWZmIC11ciBHZW5lc2lz
LTEuMS4xMC1TVEFCTEUvc3JjL3V0aWwuYyB3aW4zMi9zcmMvdXRpbC5jCi0tLSBHZW5lc2lzLTEu
MS4xMC1TVEFCTEUvc3JjL3V0aWwuYwlXZWQgSmFuICA5IDIyOjMwOjA5IDIwMDIKKysrIHdpbjMy
L3NyYy91dGlsLmMJRnJpIE1heSAxMCAxNzo0NDowNCAyMDAyCkBAIC0xNyw2ICsxNywxMCBAQAog
I2luY2x1ZGUgInRva2VuLmgiCiAjaW5jbHVkZSAibWFjcm9zLmgiCiAKKyNpZmRlZiBfX01TVkNf
XworI2luY2x1ZGUgPHByb2Nlc3MuaD4KKyNlbmRpZgorCiAjZGVmaW5lIEZPUk1BVF9CVUZfSU5J
VElBTF9MRU5HVEggNDgKICNkZWZpbmUgTUFYX1NDUkFUQ0ggMgogCg==

--------------Boundary-00=_PQ6ZD12SJ3FZVNTSG556--