[Bf-committers] My first 'little' patch

Pol bf-committers@blender.org
Sun, 10 Aug 2003 21:03:44 +0200


This is a multi-part message in MIME format.

--Multipart_Sun__10_Aug_2003_21:03:44_+0200_083dcb30
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi all,

Like some ppl here I'm learning the Blender source code and I have
worked on that feature request:

http://projects.blender.org/tracker/index.php?func=detail&aid=438&group_id=9&atid=128

And I think it works.

I need some comment about the way to use cvs/patch comment in the code,
coding style etc ... feel free to help me !

Bye

 -pol-

PS: Just patch the file editobject.c and compile it

--Multipart_Sun__10_Aug_2003_21:03:44_+0200_083dcb30
Content-Type: application/octet-stream;
 name="editobject.patch"
Content-Disposition: attachment;
 filename="editobject.patch"
Content-Transfer-Encoding: base64

LS0tIGJsZW5kZXItMi4yOC9zb3VyY2UvYmxlbmRlci9zcmMvZWRpdG9iamVjdC5jCTIwMDMtMDgt
MTAgMTg6NDM6NTEuMDAwMDAwMDAwICswMjAwCisrKyBibGVuZGVyLTIuMjgvYmxlbmRlci0yLjI4
L3NvdXJjZS9ibGVuZGVyL3NyYy9lZGl0b2JqZWN0LmMJMjAwMy0wNy0yMCAxNzo1NTowMi4wMDAw
MDAwMDAgKzAyMDAKQEAgLTM2NzgsMTUgKzM2NzgsMTMgQEAKIAlyZXR1cm4gKGludClmdGltZTsK
IH0KIAotI2RlZmluZSBYCQkweDAxCi0jZGVmaW5lIFkJCTB4MDIKLSNkZWZpbmUgWgkJMHgwNAot
I2RlZmluZSBOCQkweDA1Ci0jZGVmaW5lIExPQ0FMCTB4ODAKLSNkZWZpbmUgWF9MT0NBTAkoWHxM
T0NBTCkKLSNkZWZpbmUgWV9MT0NBTAkoWXxMT0NBTCkKLSNkZWZpbmUgWl9MT0NBTAkoWnxMT0NB
TCkKLSNkZWZpbmUgTl9MT0NBTAkoTnxMT0NBTCkKKyNkZWZpbmUgWFJPVAkJMHgwMQorI2RlZmlu
ZSBZUk9UCQkweDAyCisjZGVmaW5lIFpST1QJCTB4MDQKKyNkZWZpbmUgUk9UTE9DQUwJMHg4MAor
I2RlZmluZSBYUk9UTE9DQUwJKFhST1R8Uk9UTE9DQUwpCisjZGVmaW5lIFlST1RMT0NBTAkoWVJP
VHxST1RMT0NBTCkKKyNkZWZpbmUgWlJPVExPQ0FMCShaUk9UfFJPVExPQ0FMKQogCiB2b2lkIHZp
ZXdfZWRpdG1vdmUodW5zaWduZWQgY2hhciBldmVudCkKIHsKQEAgLTM3NDIsOCArMzc0MCw4IEBA
CiAJCQkJcGVyc3B0b2V0c2VuKFBBRFBMVVNLRVkpOwogCQkJZWxzZQogCQkJCXBlcnNwdG9ldHNl
bihQQURNSU5VUyk7Ci0JCQlicmVhazsKIAkJCQorCQkJYnJlYWs7CiAJfQogfQogdm9pZCB0cmFu
c2Zvcm0oaW50IG1vZGUpCS8qICdnJyAnRycgJ3InICdSJyAncycgJ1MnICd0JyBvciAndycgJ04n
ICovCkBAIC0zNzUzLDExICszNzUxLDEyIEBACiAJVHJhbnNWZXJ0ICp0djsKIAlmbG9hdCB2ZWNb
M10sIG1pblszXSwgbWF4WzNdLCBkdmVjWzNdLCBkX2R2ZWNbM10sIGR2ZWNwWzNdLCByb3QwWzNd
LCByb3QxWzNdLCByb3QyWzNdLCBheGlzWzNdOwogCWZsb2F0IHRvdG1hdFszXVszXSwgb21hdFsz
XVszXSwgaW1hdFszXVszXSwgbWF0WzNdWzNdLCB0bWF0WzNdWzNdLCBwaGksIGRwaGk7CisKIAlm
bG9hdCBwZXJzaW52WzNdWzNdLCBwZXJzbWF0WzNdWzNdLCB2aWV3aW52WzRdWzRdLCBpbWF0NFs0
XVs0XTsKIAlmbG9hdCAqY3VycywgZHgxLCBkeDIsIGR5MSwgZHkyLCBldWxbM10sIHF1YXRbNF0s
IHJvdFszXSwgcGhpMCwgcGhpMSwgZGVsZXIsIHJhZCA9IDAuMDsKIAlmbG9hdCBzaXplZmFjLCBz
aXplWzNdLCBzaXplbG9bM10sIHNtYXRbM11bM10sIHhyZWY9MS4wLCB5cmVmPTEuMCwgenJlZj0g
MS4wOwogCWZsb2F0IHNpLCBjbywgZGlzdCwgc3RhcnRvbXRyZWtmYWMgPSAwLjAsIG9tdHJla2Zh
Yywgb2xkdmFsWzNdOwotCWludCBkaXJlY3Rpb249MCwgdGltZSwgZmFzdD0wLCBhLCBtaWR0b2c9
MCwgZmlyc3R0aW1lPTEsIHByb2o9IDAsIGZvdXQ9IDAsIGNhbWVyYWdyYWI9IDAsIGdyaWRmbGFn
OworCWludCByb3Rtb2RlPTAsIHRpbWUsIGZhc3Q9MCwgYSwgbWlkdG9nPTAsIGZpcnN0dGltZT0x
LCBwcm9qPSAwLCBmb3V0PSAwLCBjYW1lcmFncmFiPSAwLCBncmlkZmxhZzsKIAl1bnNpZ25lZCBz
aG9ydCBldmVudD0wOwogCXNob3J0IG12YWxbMl0sIGFmYnJlZWs9MCwgZG9pdCwgeG4sIHluLCB4
YywgeWMsIHhvLCB5byA9IDAsIHZhbDsKIAljaGFyIHN0clsxMDBdOwpAQCAtMzk1NSw3ICszOTU0
LDcgQEAKIAogCWdyaWRmbGFnPSBVLmZsYWc7CiAJCi0Jd2hpbGUoZm91dD09MCAmJiBhZmJyZWVr
PT0wKSB7IC8vIG1haW4gbG9vcAorCXdoaWxlKGZvdXQ9PTAgJiYgYWZicmVlaz09MCkgewogCQkK
IAkJZ2V0bW91c2Vjb19hcmVhd2luKG12YWwpOwogCQlpZihtdmFsWzBdIT14byB8fCBtdmFsWzFd
IT15byB8fCBmaXJzdHRpbWUpIHsKQEAgLTM5NzYsMTQzICszOTc1LDg0IEBACiAJCQl9CiAJCQlm
aXJzdHRpbWU9IDA7CiAJCQkKLQkJCQotCQkJCi0JCQkKLQkJCQotCQkJCi0JCQkKLQkJCWlmKG1v
ZGU9PSdnJyB8fCBtb2RlPT0nRycpIC8vIEV4dHJ1ZGUsIEdyYWIKLQkJCQl7CisJCQlpZihtb2Rl
PT0nZycgfHwgbW9kZT09J0cnKSB7CiAJCQkJCiAJCQkJa2V5ZmxhZ3MgfD0gS0VZRkxBR19MT0M7
Ci0KLQkJCQlpZihtaWR0b2cpCi0JCQkJCXsKLQkJCQkJaWYoY2FtZXJhZ3JhYikKLQkJCQkJCXsK
KwkJCQkKKwkJCQlpZihtaWR0b2cpIHsKKwkJCQkJaWYoY2FtZXJhZ3JhYikgewogCQkJCQkJZHgx
PSAwLjAwMioobXZhbFsxXS15bikqRy52ZC0+Z3JpZDsKIAkJCQkJCWR2ZWNbMF0tPSBkeDEqRy52
ZC0+dmlld2ludlsyXVswXTsKIAkJCQkJCWR2ZWNbMV0tPSBkeDEqRy52ZC0+dmlld2ludlsyXVsx
XTsKIAkJCQkJCWR2ZWNbMl0tPSBkeDEqRy52ZC0+dmlld2ludlsyXVsyXTsKLQkJCQkJCWZpcnN0
dGltZT0gMTsKLQkJCQkJCX0KLQkJCQkJCi0JCQkJCWVsc2UKLQkJCQkJCXsKKwkJCQkJCWZpcnN0
dGltZT0gMTsJLyogc28gaXQga2VlcHMgZ29pbmcgKi8KKwkJCQkJfQorCQkJCQllbHNlIHsKIAkJ
CQkJCXdpbmRvd190b18zZChkdmVjLCBtdmFsWzBdLXhuLCBtdmFsWzFdLXluKTsKIAkJCQkJCWlm
KHByb2o9PTApIGR2ZWNbMV09ZHZlY1syXT0gMC4wOwogCQkJCQkJaWYocHJvaj09MSkgZHZlY1sw
XT1kdmVjWzJdPSAwLjA7CiAJCQkJCQlpZihwcm9qPT0yKSBkdmVjWzBdPWR2ZWNbMV09IDAuMDsK
LQkJCQkJCX0KIAkJCQkJfQotCQkJCWVsc2UJCi0JCQkJCXsKLQkJCQkJd2luZG93X3RvXzNkKGR2
ZWMsIG12YWxbMF0teG4sIG12YWxbMV0teW4pOwotCQkJCQlpZihkaXJlY3Rpb249PVgpCi0JCQkJ
CQl7Ci0JCQkJCQlkdmVjWzFdPWR2ZWNbMl09IDAuMDsKLQkJCQkJCXNwcmludGYoc3RyLCAiW01v
dmluZyBhbG9uZyBYIGF4aXNdIER4OiAlLjRmIiwgZHZlY1swXSk7Ci0JCQkJCQl9Ci0JCQkJCWVs
c2UgaWYoZGlyZWN0aW9uPT1ZKQotCQkJCQkJewotCQkJCQkJZHZlY1swXT1kdmVjWzJdPSAwLjA7
Ci0JCQkJCQlzcHJpbnRmKHN0ciwgIltNb3ZpbmcgYWxvbmcgWSBheGlzXSBEeTogJS40ZiIsIGR2
ZWNbMV0pOwotCQkJCQkJfQotCQkJCQllbHNlIGlmKGRpcmVjdGlvbj09WikKLQkJCQkJCXsKLQkJ
CQkJCWR2ZWNbMF09ZHZlY1sxXT0gMC4wOwotCQkJCQkJc3ByaW50ZihzdHIsICJbTW92aW5nIGFs
b25nIFogYXhpc10gRHo6ICUuNGYiLCBkdmVjWzJdKTsKLQkJCQkJCX0KLQkJCQkJZWxzZSBpZihk
aXJlY3Rpb249PU4pCi0JCQkJCQl7Ci0JCQkJCQkvLyBIZXJlIEkgbXVzdCBmaW5kIGhvdyB0byBj
YWxjdWxhdGUgdG8gZXh0cnVkZSBhbG9uZyB0aGUgbm9ybWFsLi4uIEFueW9uZSBnb3QgYW4gaWRl
YSA/Ci0JCQkJCQlzcHJpbnRmKHN0ciwgIltNb3ZpbmcgYWxvbmcgbm9ybWFsIGF4aXNdIFt0b3Rh
bCBmYWNlIHNlbGVjdGVkOl0gJWQiLCBHLnRvdGZhY2VzZWwpOwotCQkJCQkJLy9va2VlKCJJIG5l
ZWQgaGVscCBoZXJlIGluIGVkaXRvYmplY3QuYyIpOwotCQkJCQkJLy8gSSBuZWVkIGhlbHAgaGVy
ZS4KLQkJCQkJCWR2ZWNbMF09ZHZlY1swXStkdmVjWzBdKnZlY1swXTsKLQkJCQkJCWR2ZWNbMV09
ZHZlY1sxXStkdmVjWzFdKnZlY1sxXTsKLQkJCQkJCWR2ZWNbMl09ZHZlY1syXStkdmVjWzJdKnZl
Y1syXTsKLQkJCQkJCS8vIEkgbmVlZGVkIGhlbHAgdGhlcmUgOikKLQkJCQkJCX0KLQkJCQkJZWxz
ZQotCQkJCQkJewotCQkJCQkJd2luZG93X3RvXzNkKGR2ZWMsIG12YWxbMF0teG4sIG12YWxbMV0t
eW4pOwotCQkJCQkJc3ByaW50ZihzdHIsICJEeDogJS40ZiAgIER5OiAlLjRmICBEejogJS40ZiIs
IGR2ZWNbMF0sIGR2ZWNbMV0sIGR2ZWNbMl0pOwotCQkJCQkJfQotCQkJCQkKIAkJCQl9Ci0JCQkK
LQkJCQkJLyogZ3JpZHMgKi8KLQkJCQlpZihHLnF1YWwgJiBMUl9TSElGVEtFWSkKLQkJCQkJewor
CQkJCWVsc2Ugd2luZG93X3RvXzNkKGR2ZWMsIG12YWxbMF0teG4sIG12YWxbMV0teW4pOworCisJ
CQkJLyogZ3JpZHMgKi8KKwkJCQlpZihHLnF1YWwgJiBMUl9TSElGVEtFWSkgewogCQkJCQlkdmVj
WzBdPSAwLjEqKGR2ZWNbMF0tZF9kdmVjWzBdKStkX2R2ZWNbMF07CiAJCQkJCWR2ZWNbMV09IDAu
MSooZHZlY1sxXS1kX2R2ZWNbMV0pK2RfZHZlY1sxXTsKIAkJCQkJZHZlY1syXT0gMC4xKihkdmVj
WzJdLWRfZHZlY1syXSkrZF9kdmVjWzJdOwotCQkJCQl9Ci0JCQkJCisJCQkJfQogCQkJCWFwcGx5
X2tleWJfZ3JpZChkdmVjLCAwLjAsIEcudmQtPmdyaWQsIDAuMSpHLnZkLT5ncmlkLCBncmlkZmxh
ZyAmIEFVVE9HUkFCR1JJRCk7CiAJCQkJYXBwbHlfa2V5Yl9ncmlkKGR2ZWMrMSwgMC4wLCBHLnZk
LT5ncmlkLCAwLjEqRy52ZC0+Z3JpZCwgZ3JpZGZsYWcgJiBBVVRPR1JBQkdSSUQpOwogCQkJCWFw
cGx5X2tleWJfZ3JpZChkdmVjKzIsIDAuMCwgRy52ZC0+Z3JpZCwgMC4xKkcudmQtPmdyaWQsIGdy
aWRmbGFnICYgQVVUT0dSQUJHUklEKTsKIAotCQkJCWlmKGR2ZWNbMF0hPW9sZHZhbFswXSB8fGR2
ZWNbMV0hPW9sZHZhbFsxXSB8fGR2ZWNbMl0hPW9sZHZhbFsyXSkKLQkJCQkJeworCQkJCWlmKGR2
ZWNbMF0hPW9sZHZhbFswXSB8fGR2ZWNbMV0hPW9sZHZhbFsxXSB8fGR2ZWNbMl0hPW9sZHZhbFsy
XSkgewogCQkJCQlWRUNDT1BZKG9sZHZhbCwgZHZlYyk7CiAJCQkJCQogCQkJCQkvKiBzcGVlZHVw
IGZvciB2ZXJ0aWNlcyAqLwotCQkJCQlpZiAoRy5vYmVkaXQpCi0JCQkJCQl7CisJCQkJCWlmIChH
Lm9iZWRpdCkgewogCQkJCQkJVkVDQ09QWShkdmVjcCwgZHZlYyk7CiAJCQkJCQlNYXQzTXVsVmVj
ZmwoaW1hdCwgZHZlY3ApOwotCQkJCQkJfQorCQkJCQl9CiAKIAkJCQkJCiAJCQkJCS8qIGFwcGx5
ICovCiAJCQkJCXRvYj0gdHJhbnNtYWluOwotCQkJCQl0diA9IHRyYW5zdm1haW47Ci0JCQkJCWZv
cihhPTA7IGE8dG90dHJhbnM7IGErKywgdG9iKyssIHR2KyspCi0JCQkJCQl7Ci0JCQkJCQlpZih0
cmFuc21haW4pCi0JCQkJCQkJeworCQkJCQl0dj0gdHJhbnN2bWFpbjsKKwkJCQkJZm9yKGE9MDsg
YTx0b3R0cmFuczsgYSsrLCB0b2IrKywgdHYrKykgeworCQkJCQkJCisJCQkJCQlpZih0cmFuc21h
aW4pIHsKIAkJCQkJCQlWRUNDT1BZKGR2ZWNwLCBkdmVjKTsKIAkJCQkJCQkKIAkJCQkJCQlpZih0
cmFuc21vZGU9PVRSQU5TX1RFWCkgTWF0M011bFZlY2ZsKHRvYi0+b2JpbnYsIGR2ZWNwKTsKIAot
CQkJCQkJCWlmKHRvYi0+ZmxhZyAmIFRPQl9JS0EpCi0JCQkJCQkJCXsKKwkJCQkJCQlpZih0b2It
PmZsYWcgJiBUT0JfSUtBKSB7CiAJCQkJCQkJCVZlY0FkZGYodG9iLT5lZmYsIHRvYi0+b2xkZWZm
LCBkdmVjcCk7Ci0JCQkJCQkJCX0KKwkJCQkJCQl9CiAJCQkJCQkJZWxzZQotCQkJCQkJCQl7CiAJ
CQkJCQkJCU1hdDNNdWxWZWNmbCh0b2ItPnBhcmludiwgZHZlY3ApOwotCQkJCQkJCQl9Ci0JCQkJ
CQkJCQotCQkJCQkJCWlmKHRvYi0+ZmxhZyAmIFRPQl9JUE8pCi0JCQkJCQkJCXsKKwkJCQkJCQkK
KwkJCQkJCQlpZih0b2ItPmZsYWcgJiBUT0JfSVBPKSB7CiAJCQkJCQkJCWFkZF9pcG9fdG9iX3Bv
aW4odG9iLT5sb2N4LCB0b2ItPm9sZGxvYywgZHZlY3BbMF0pOwogCQkJCQkJCQlhZGRfaXBvX3Rv
Yl9wb2luKHRvYi0+bG9jeSwgdG9iLT5vbGRsb2MrMSwgZHZlY3BbMV0pOwogCQkJCQkJCQlhZGRf
aXBvX3RvYl9wb2luKHRvYi0+bG9jeiwgdG9iLT5vbGRsb2MrMiwgZHZlY3BbMl0pOwotCQkJCQkJ
CQl9Ci0JCQkJCQkJZWxzZSBpZih0b2ItPmxvYykKLQkJCQkJCQkJeworCQkJCQkJCX0KKwkJCQkJ
CQllbHNlIGlmKHRvYi0+bG9jKSB7CiAJCQkJCQkJCVZlY0FkZGYodG9iLT5sb2MsIHRvYi0+b2xk
bG9jLCBkdmVjcCk7Ci0JCQkJCQkJCX0KIAkJCQkJCQl9Ci0JCQkJCQllbHNlCi0JCQkJCQkJewot
CQkJCQkJCWlmKG1vZGU9PSdHJykKLQkJCQkJCQkJeworCQkJCQkJfQorCQkJCQkJZWxzZSB7CisJ
CQkJCQkJaWYobW9kZT09J0cnKSB7CiAJCQkJCQkJCXR2LT5sb2NbMF09IHR2LT5vbGRsb2NbMF0r
dHYtPmZhYypkdmVjcFswXTsKIAkJCQkJCQkJdHYtPmxvY1sxXT0gdHYtPm9sZGxvY1sxXSt0di0+
ZmFjKmR2ZWNwWzFdOwogCQkJCQkJCQl0di0+bG9jWzJdPSB0di0+b2xkbG9jWzJdK3R2LT5mYWMq
ZHZlY3BbMl07Ci0JCQkJCQkJCX0KLQkJCQkJCQllbHNlIFZlY0FkZGYodHYtPmxvYywgdHYtPm9s
ZGxvYywgZHZlY3ApOwogCQkJCQkJCX0KLQorCQkJCQkJCWVsc2UgVmVjQWRkZih0di0+bG9jLCB0
di0+b2xkbG9jLCBkdmVjcCk7CiAJCQkJCQl9CiAKLQkJCQkJCQotCQkJCQloZWFkZXJwcmludChz
dHIpOyAvLyBEaXNwbGF5IG9uIHRoZSBzbWFsbCB0aXRsZSBiYXIuCisJCQkJCX0KKwkJCQkJc3By
aW50ZihzdHIsICJEeDogJS40ZiAgIER5OiAlLjRmICBEejogJS40ZiIsIGR2ZWNbMF0sIGR2ZWNb
MV0sIGR2ZWNbMl0pOworCQkJCQloZWFkZXJwcmludChzdHIpOwogCiAJCQkJCXRpbWU9IG15X2Ns
b2NrKCk7CiAKQEAgLTQxMjksMjIgKzQwNjksOCBAQAogCQkJCQkJc2NyZWVuX3N3YXBidWZmZXJz
KCk7CiAJCQkJCX0KIAkJCQl9Ci0JCQl9ICAvLyBFbmQgb2YgZXh0cnVkZQotCQkJCi0JCQkKLQkJ
CQotCQkJCi0JCQkKLQkJCQotCQkJCi0JCQkKLQkJCQotCQkJCi0JCQkKLQkJCQotCQkJCi0JCQkK
LQkJCWVsc2UgaWYobW9kZT09J3InIHx8IG1vZGU9PSd0JyB8fCBtb2RlPT0nUicpIHsgLy8gUm90
YXRpb24KKwkJCX0KKwkJCWVsc2UgaWYobW9kZT09J3InIHx8IG1vZGU9PSd0JyB8fCBtb2RlPT0n
UicpIHsKIAkJCQlkb2l0PSAwOwogCQkJCWtleWZsYWdzIHw9IEtFWUZMQUdfUk9UOwogCQkJCWR4
Mj0geGMtbXZhbFswXTsKQEAgLTQxODgsMTEgKzQxMTQsMTEgQEAKIAkJCQkJCQlkeTE9IGR5MjsK
IAkJCQkJCQlvbGR2YWxbMl09IHBoaTsKIAkJCQkJCQlkb2l0PSAxOwotCQkJCQkJCWlmKGRpcmVj
dGlvbikgeworCQkJCQkJCWlmKHJvdG1vZGUpIHsKIAotCQkJCQkJCQlpZihkaXJlY3Rpb249PVgp
IHZlY1swXT0gLTEuMDsgZWxzZSB2ZWNbMF09IDAuMDsKLQkJCQkJCQkJaWYoZGlyZWN0aW9uPT1Z
KSB2ZWNbMV09IDEuMDsgZWxzZSB2ZWNbMV09IDAuMDsKLQkJCQkJCQkJaWYoZGlyZWN0aW9uPT1a
KSB2ZWNbMl09IC0xLjA7IGVsc2UgdmVjWzJdPSAwLjA7CisJCQkJCQkJCWlmKHJvdG1vZGU9PVhS
T1QpIHZlY1swXT0gLTEuMDsgZWxzZSB2ZWNbMF09IDAuMDsKKwkJCQkJCQkJaWYocm90bW9kZT09
WVJPVCkgdmVjWzFdPSAxLjA7IGVsc2UgdmVjWzFdPSAwLjA7CisJCQkJCQkJCWlmKHJvdG1vZGU9
PVpST1QpIHZlY1syXT0gLTEuMDsgZWxzZSB2ZWNbMl09IDAuMDsKIAkJCQkJCQkKIAkJCQkJCQkJ
VmVjUm90VG9NYXQzKHZlYywgcGhpLCBtYXQpOwogCQkJCQkJCX0KQEAgLTQyMTYsMTkgKzQxNDIs
MTkgQEAKIAkJCQkJCQogCQkJCQkJCS8qIFJvbGwgYXJvdW5kIGxvY2FsIGF4aXMgKi8KIAkJCQkJ
CQlpZiAobW9kZT09J3InIHx8IG1vZGU9PSdSJyl7Ci0JCQkJCQkJCWlmICh0b2IgJiYgZGlyZWN0
aW9uKXsKLQkJCQkJCQkJCWlmIChkaXJlY3Rpb24gPT0gWF9MT0NBTCl7IAorCQkJCQkJCQlpZiAo
dG9iICYmIHJvdG1vZGUpeworCQkJCQkJCQkJaWYgKHJvdG1vZGUgPT0gWFJPVExPQ0FMKXsgCiAJ
CQkJCQkJCQkJVkVDQ09QWSh2ZWMsIHRvYi0+YXhpc21hdFswXSk7CiAJCQkJCQkJCQl9Ci0JCQkJ
CQkJCQlpZiAoZGlyZWN0aW9uID09IFlfTE9DQUwpeworCQkJCQkJCQkJaWYgKHJvdG1vZGUgPT0g
WVJPVExPQ0FMKXsKIAkJCQkJCQkJCQlWRUNDT1BZKHZlYywgdG9iLT5heGlzbWF0WzFdKTsKIAkJ
CQkJCQkJCX0KLQkJCQkJCQkJCWlmIChkaXJlY3Rpb24gPT0gWl9MT0NBTCl7CisJCQkJCQkJCQlp
ZiAocm90bW9kZSA9PSBaUk9UTE9DQUwpewogCQkJCQkJCQkJCVZFQ0NPUFkodmVjLCB0b2ItPmF4
aXNtYXRbMl0pOwogCQkJCQkJCQkJfQogCQkJCQkJCQkJCiAJCQkJCQkJCQkvKiBDb3JyZWN0IHRo
ZSB2ZWN0b3IgKi8KLQkJCQkJCQkJCWlmICgoZGlyZWN0aW9uICYgTE9DQUwpICYmICgoRy52ZC0+
dmlld21hdFswXVsyXSAqIHZlY1swXStHLnZkLT52aWV3bWF0WzFdWzJdICogdmVjWzFdK0cudmQt
PnZpZXdtYXRbMl1bMl0gKiB2ZWNbMl0pPjApKXsKKwkJCQkJCQkJCWlmICgocm90bW9kZSAmIFJP
VExPQ0FMKSAmJiAoKEcudmQtPnZpZXdtYXRbMF1bMl0gKiB2ZWNbMF0rRy52ZC0+dmlld21hdFsx
XVsyXSAqIHZlY1sxXStHLnZkLT52aWV3bWF0WzJdWzJdICogdmVjWzJdKT4wKSl7CiAJCQkJCQkJ
CQkJdmVjWzBdKj0tMTsKIAkJCQkJCQkJCQl2ZWNbMV0qPS0xOwogCQkJCQkJCQkJCXZlY1syXSo9
LTE7CkBAIC00MzY1LDE4ICs0MjkxLDE2IEBACiAJCQkJCQl9CiAJCQkJCX0KIAkJCQkJCi0JCQot
CQkJCQkKLQkJCQkJaWYobWlkdG9nKSBzcHJpbnRmKHN0ciwgIlJvdCBYOiAlLjJmICBSb3QgWTog
JS4yZiIsIDE4MC4wKnBoaTAvTV9QSSwgMTgwLjAqcGhpMS9NX1BJKTsKLQkJCQkJZWxzZSBpZihk
aXJlY3Rpb24pIHsKLQkJCQkJCWlmKGRpcmVjdGlvbj09WCkgc3ByaW50ZihzdHIsICJbUm90YXRp
bmcgYXJvdW5kIFggYXhpc10gRHg6ICUuMmYiLCAxODAuMCpwaGkvTV9QSSk7Ci0JCQkJCQllbHNl
IGlmKGRpcmVjdGlvbj09WSkgc3ByaW50ZihzdHIsICJbUm90YXRpbmcgYXJvdW5kIFkgYXhpc10g
RHk6ICUuMmYiLCAxODAuMCpwaGkvTV9QSSk7Ci0JCQkJCQllbHNlIGlmKGRpcmVjdGlvbj09Wikg
c3ByaW50ZihzdHIsICJbUm90YXRpbmcgYXJvdW5kIFogYXhpc10gRHo6ICUuMmYiLCAxODAuMCpw
aGkvTV9QSSk7Ci0JCQkJCQllbHNlIGlmKGRpcmVjdGlvbj09WF9MT0NBTCkgc3ByaW50ZihzdHIs
ICJbUm90YXRpbmcgbG9jYWx5IGFyb3VuZCBYIGF4aXNdOiAlLjJmIiwgMTgwLjAqcGhpL01fUEkp
OwotCQkJCQkJZWxzZSBpZihkaXJlY3Rpb249PVlfTE9DQUwpIHNwcmludGYoc3RyLCAiW1JvdGF0
aW5nIGxvY2FseSBhcm91bmQgWSBheGlzXTogJS4yZiIsIDE4MC4wKnBoaS9NX1BJKTsKLQkJCQkJ
CWVsc2UgaWYoZGlyZWN0aW9uPT1aX0xPQ0FMKSBzcHJpbnRmKHN0ciwgIltSb3RhdGluZyBsb2Nh
bHkgYXJvdW5kIFogYXhpc106ICUuMmYiLCAxODAuMCpwaGkvTV9QSSk7CisJCQkJCWlmKG1pZHRv
Zykgc3ByaW50ZihzdHIsICJSb3R4OiAlLjJmICBSb3R5OiAlLjJmIiwgMTgwLjAqcGhpMC9NX1BJ
LCAxODAuMCpwaGkxL01fUEkpOworCQkJCQllbHNlIGlmKHJvdG1vZGUpIHsKKwkJCQkJCWlmKHJv
dG1vZGU9PVhST1QpIHNwcmludGYoc3RyLCAiUm90IFg6ICUuMmYiLCAxODAuMCpwaGkvTV9QSSk7
CisJCQkJCQllbHNlIGlmKHJvdG1vZGU9PVlST1QpIHNwcmludGYoc3RyLCAiUm90IFk6ICUuMmYi
LCAxODAuMCpwaGkvTV9QSSk7CisJCQkJCQllbHNlIGlmKHJvdG1vZGU9PVpST1QpIHNwcmludGYo
c3RyLCAiUm90IFo6ICUuMmYiLCAxODAuMCpwaGkvTV9QSSk7CisJCQkJCQllbHNlIGlmKHJvdG1v
ZGU9PVhST1RMT0NBTCkgc3ByaW50ZihzdHIsICJMb2NhbCBSb3QgWDogJS4yZiIsIDE4MC4wKnBo
aS9NX1BJKTsKKwkJCQkJCWVsc2UgaWYocm90bW9kZT09WVJPVExPQ0FMKSBzcHJpbnRmKHN0ciwg
IkxvY2FsIFJvdCBZOiAlLjJmIiwgMTgwLjAqcGhpL01fUEkpOworCQkJCQkJZWxzZSBpZihyb3Rt
b2RlPT1aUk9UTE9DQUwpIHNwcmludGYoc3RyLCAiTG9jYWwgUm90IFo6ICUuMmYiLCAxODAuMCpw
aGkvTV9QSSk7CiAJCQkJCX0KLQkJCQkJZWxzZSBzcHJpbnRmKHN0ciwgIkZyZWUgUm90YXRpb246
ICUuMmYiLCAxODAuMCpwaGkvTV9QSSk7CisJCQkJCWVsc2Ugc3ByaW50ZihzdHIsICJSb3Q6ICUu
MmYiLCAxODAuMCpwaGkvTV9QSSk7CiAJCQkJCWhlYWRlcnByaW50KHN0cik7CiAJCQkJCQogCQkJ
CQl0aW1lPSBteV9jbG9jaygpOwpAQCAtNDM5NiwxMyArNDMyMCw4IEBACiAJCQkJCWlmKHRvdHRy
YW5zPjEgfHwgRy52ZC0+YXJvdW5kPT1WM0RfQ1VSU09SKSBoZWxwbGluZShjZW50cmUpOwogCQkJ
CQllbHNlIGlmIChHLm9icG9zZSkgaGVscGxpbmUgKGNlbnRyZSk7CiAJCQkJfQotCQkJfSAvL2Vu
ZCBvZiByb3RhdGlvbgotCQkJCi0JCQkKLQkJCQotCQkJCi0JCQkKLQkJCWVsc2UgaWYobW9kZT09
J3MnIHx8IG1vZGU9PSdTJyB8fCBtb2RlPT0nQycgfHwgbW9kZT09J04nKSB7IC8vIFNpemUKKwkJ
CX0KKwkJCWVsc2UgaWYobW9kZT09J3MnIHx8IG1vZGU9PSdTJyB8fCBtb2RlPT0nQycgfHwgbW9k
ZT09J04nKSB7CiAJCQkJa2V5ZmxhZ3MgfD0gS0VZRkxBR19TSVpFOwogCiAJCQkJaWYobW9kZT09
J1MnKSB7CkBAIC00NDEyLDMzICs0MzMxLDEyIEBACiAJCQkJfQogCQkJCWVsc2Ugc2l6ZVswXT1z
aXplWzFdPXNpemVbMl09IChzcXJ0KCAoZmxvYXQpKCh5Yy1tdmFsWzFdKSooeWMtbXZhbFsxXSkr
KG12YWxbMF0teGMpKihtdmFsWzBdLXhjKSkgKSkvc2l6ZWZhYzsKIAkJCQkKLQkJCQlpZihtaWR0
b2cgJiYgbW9kZT09J3MnKQotCQkJCQl7CisJCQkJaWYobWlkdG9nICYmIG1vZGU9PSdzJykgewog
CQkJCQkvKiBzaGVhciBoYXMgbm8gbWlkdG9nICovCiAJCQkJCWlmKHByb2o9PTApIHNpemVbMV09
c2l6ZVsyXT0gMS4wOwogCQkJCQlpZihwcm9qPT0xKSBzaXplWzBdPXNpemVbMl09IDEuMDsKIAkJ
CQkJaWYocHJvaj09Mikgc2l6ZVsxXT1zaXplWzBdPSAxLjA7Ci0JCQkJCX0KLQkJCQllbHNlCi0J
CQkJCXsKLQkJCQkJaWYgKGRpcmVjdGlvbj09WCkKLQkJCQkJCXsKLQkJCQkJCXNpemVbMV09c2l6
ZVsyXT0xLjA7Ci0JCQkJCQlzcHJpbnRmKHN0ciwgIltTY2FsaW5nIGFsb25nIFggYXhpc106ICUu
MmYiLCBzaXplbG9bMF0pOwotCQkJCQkJfQotCi0JCQkJCWlmIChkaXJlY3Rpb249PVkpCi0JCQkJ
CQl7Ci0JCQkJCQlzaXplWzBdPXNpemVbMl09IDEuMDsKLQkJCQkJCXNwcmludGYoc3RyLCAiW1Nj
YWxpbmcgYWxvbmcgWSBheGlzXTogJS4yZiIsIHNpemVsb1sxXSk7Ci0JCQkJCQl9Ci0KLQkJCQkJ
aWYgKGRpcmVjdGlvbj09WikKLQkJCQkJCXsKLQkJCQkJCXNpemVbMV09c2l6ZVswXT0gMS4wOwot
CQkJCQkJc3ByaW50ZihzdHIsICJbU2NhbGluZyBhbG9uZyBaIGF4aXNdOiAlLjJmIiwgc2l6ZWxv
WzJdKTsKLQkJCQkJCX0KLQkJCQkJfQorCQkJCX0KIAogLyogWCBlbiBZIGZsaXAsIHRoZXJlIGFy
ZSAyIG1ldGhvZHM6IGF0ICB8Kip8IHJlbW92aW5nIGNvbW1lbnRzIG1ha2VzIGZsaXBzIGxvY2Fs
ICovCiAKQEAgLTQ1OTAsMzcgKzQ0ODgsOCBAQAogCQkJCQkJCX0KIAkJCQkJCX0KIAkJCQkJfQot
CQkJCQlpZihtb2RlPT0ncycpCi0JCQkJCQl7Ci0JCQkJCQlpZiAoZGlyZWN0aW9uPT1YKQotCQkJ
CQkJCXsKLQkJCQkJCQlzcHJpbnRmKHN0ciwgIltTY2FsaW5nIGFsb25nIFggYXhpc106ICUuMmYi
LCBzaXplbG9bMF0pOwotCQkJCQkJCX0KLQkJCQkJCWVsc2UgaWYgKGRpcmVjdGlvbj09WSkKLQkJ
CQkJCQl7Ci0JCQkJCQkJc3ByaW50ZihzdHIsICJbU2NhbGluZyBhbG9uZyBZIGF4aXNdOiAlLjJm
Iiwgc2l6ZWxvWzFdKTsKLQkJCQkJCQl9Ci0JCQkJCQllbHNlIGlmIChkaXJlY3Rpb249PVopCi0J
CQkJCQkJewotCQkJCQkJCXNwcmludGYoc3RyLCAiW1NjYWxpbmcgYWxvbmcgWiBheGlzXTogJS4y
ZiIsIHNpemVsb1syXSk7Ci0JCQkJCQkJfQotCQkJCQkJZWxzZSBpZiAoZGlyZWN0aW9uPT1YX0xP
Q0FMKQotCQkJCQkJCXsKLQkJCQkJCQlzcHJpbnRmKHN0ciwgIltTY2FsaW5nIGxvY2FseSBhbG9u
ZyBYIGF4aXNdOiAlLjJmIiwgc2l6ZWxvWzBdKTsKLQkJCQkJCQl9Ci0JCQkJCQllbHNlIGlmIChk
aXJlY3Rpb249PVlfTE9DQUwpCi0JCQkJCQkJewotCQkJCQkJCXNwcmludGYoc3RyLCAiW1NjYWxp
bmcgbG9jYWx5IGFsb25nIFkgYXhpc106ICUuMmYiLCBzaXplbG9bMV0pOwotCQkJCQkJCX0KLQkJ
CQkJCWVsc2UgaWYgKGRpcmVjdGlvbj09Wl9MT0NBTCkKLQkJCQkJCQl7Ci0JCQkJCQkJc3ByaW50
ZihzdHIsICJbU2NhbGluZyBsb2NhbHkgYWxvbmcgWiBheGlzXTogJS4yZiIsIHNpemVsb1syXSk7
Ci0JCQkJCQkJfQotCQkJCQkJZWxzZQotCQkJCQkJCXsKLQkJCQkJCQlzcHJpbnRmKHN0ciwgIlNp
emUgWDogJS4zZiAgIFNpemUgWTogJS4zZiAgU2l6ZSBaOiAlLjNmIiwgc2l6ZWxvWzBdLCBzaXpl
bG9bMV0sIHNpemVsb1syXSk7Ci0JCQkJCQkJfQotCQkJCQkJfQkKKwkJCQkJaWYobW9kZT09J3Mn
KSAKKwkJCQkJCXNwcmludGYoc3RyLCAiU2l6ZXg6ICUuM2YgICBTaXpleTogJS4zZiAgU2l6ZXo6
ICUuM2YiLCBzaXplbG9bMF0sIHNpemVsb1sxXSwgc2l6ZWxvWzJdKTsKIAkJCQkJZWxzZSBpZiAo
bW9kZT09J1MnKQogCQkJCQkJc3ByaW50ZihzdHIsICJTaGVhcjogJS4zZiAiLCBzaXplbG9bMF0p
OwogCQkJCQllbHNlIGlmIChtb2RlPT0nQycpCkBAIC00NzQwLDE5ICs0NjA5LDYgQEAKIAkJCQkJ
fQogCQkJCQlmaXJzdHRpbWU9IDE7CiAJCQkJCWJyZWFrOwotCQkJCQkKLQkJCQljYXNlIE5LRVk6
Ci0JCQkJCWlmIChkaXJlY3Rpb249PU4pCi0JCQkJCQlkaXJlY3Rpb249Tl9MT0NBTDsKLQkJCQkJ
ZWxzZSBpZiAoZGlyZWN0aW9uPT1OX0xPQ0FMKQotCQkJCQkJZGlyZWN0aW9uPTA7Ci0JCQkJCWVs
c2V7Ci0JCQkJCQl4cmVmPSAteHJlZjsKLQkJCQkJCWRpcmVjdGlvbj0gTjsKLQkJCQkJfQotCQkJ
CQlmaXJzdHRpbWU9MTsKLQkJCQkJYnJlYWs7Ci0JCQkJCQogCQkJCWNhc2UgR0tFWToKIAkJCQlj
YXNlIFJLRVk6CiAJCQkJY2FzZSBTS0VZOgpAQCAtNDc5MCwzNyArNDY0NiwzNyBAQAogCQkJCQli
cmVhazsKIAkJCQkKIAkJCQljYXNlIFhLRVk6Ci0JCQkJCWlmIChkaXJlY3Rpb249PVgpCi0JCQkJ
CQlkaXJlY3Rpb249WF9MT0NBTDsKLQkJCQkJZWxzZSBpZiAoZGlyZWN0aW9uPT1YX0xPQ0FMKQot
CQkJCQkJZGlyZWN0aW9uPTA7CisJCQkJCWlmIChyb3Rtb2RlPT1YUk9UKQorCQkJCQkJcm90bW9k
ZT1YUk9UTE9DQUw7CisJCQkJCWVsc2UgaWYgKHJvdG1vZGU9PVhST1RMT0NBTCkKKwkJCQkJCXJv
dG1vZGU9MDsKIAkJCQkJZWxzZXsKLQkJCQkJCS8veHJlZj0gLXhyZWY7Ci0JCQkJCQlkaXJlY3Rp
b249IFg7CisJCQkJCQl4cmVmPSAteHJlZjsKKwkJCQkJCXJvdG1vZGU9IFhST1Q7CiAJCQkJCX0K
IAkJCQkJZmlyc3R0aW1lPTE7CiAJCQkJCWJyZWFrOwogCQkJCQkKIAkJCQljYXNlIFlLRVk6Ci0J
CQkJCWlmIChkaXJlY3Rpb249PVkpCi0JCQkJCQlkaXJlY3Rpb249WV9MT0NBTDsKLQkJCQkJZWxz
ZSBpZiAoZGlyZWN0aW9uPT1ZX0xPQ0FMKQotCQkJCQkJZGlyZWN0aW9uPTA7CisJCQkJCWlmIChy
b3Rtb2RlPT1ZUk9UKQorCQkJCQkJcm90bW9kZT1ZUk9UTE9DQUw7CisJCQkJCWVsc2UgaWYgKHJv
dG1vZGU9PVlST1RMT0NBTCkKKwkJCQkJCXJvdG1vZGU9MDsKIAkJCQkJZWxzZXsKLQkJCQkJCS8v
eXJlZj0gLXlyZWY7Ci0JCQkJCQlkaXJlY3Rpb249IFk7CisJCQkJCQl5cmVmPSAteXJlZjsKKwkJ
CQkJCXJvdG1vZGU9IFlST1Q7CiAJCQkJCX0KIAkJCQkJZmlyc3R0aW1lPTE7CiAJCQkJCWJyZWFr
OwogCQkJCQkKIAkJCQljYXNlIFpLRVk6Ci0JCQkJCWlmIChkaXJlY3Rpb249PVopCi0JCQkJCQlk
aXJlY3Rpb249Wl9MT0NBTDsKLQkJCQkJZWxzZSBpZiAoZGlyZWN0aW9uPT1aX0xPQ0FMKQotCQkJ
CQkJZGlyZWN0aW9uPTA7CisJCQkJCWlmIChyb3Rtb2RlPT1aUk9UKQorCQkJCQkJcm90bW9kZT1a
Uk9UTE9DQUw7CisJCQkJCWVsc2UgaWYgKHJvdG1vZGU9PVpST1RMT0NBTCkKKwkJCQkJCXJvdG1v
ZGU9MDsKIAkJCQkJZWxzZXsKLQkJCQkJCS8venJlZj0gLXpyZWY7Ci0JCQkJCQlkaXJlY3Rpb249
IFo7CisJCQkJCQl6cmVmPSAtenJlZjsKKwkJCQkJCXJvdG1vZGU9IFpST1Q7CiAJCQkJCX0KIAkJ
CQkJZmlyc3R0aW1lPTE7CiAJCQkJCWJyZWFrOwpAQCAtNjE1NiwzICs2MDEyLDQgQEAKIAkJaWYg
KG9iZGF0YT09YmFzZS0+b2JqZWN0LT5kYXRhKQogCQkJbWFrZURpc3BMaXN0KGJhc2UtPm9iamVj
dCk7CiB9CisK

--Multipart_Sun__10_Aug_2003_21:03:44_+0200_083dcb30--