pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/42345 ([PATCH] sysutils/pftop on DragonFly BSD)



The following reply was made to PR pkg/42345; it has been noted by GNATS.

From: Rumko <rumcic%gmail.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: pkg/42345 ([PATCH] sysutils/pftop on DragonFly BSD)
Date: Sat, 28 Nov 2009 17:35:42 +0100

 --nextPart1639093.Q3v5CpiS2o
 Content-Type: text/plain; charset=utf-8
 Content-Transfer-Encoding: 8Bit
 
 reed%NetBSD.org@localhost wrote:
 
 > Synopsis: [PATCH] sysutils/pftop on DragonFly BSD
 > 
 > Responsible-Changed-From-To: pkg-manager->peter
 > Responsible-Changed-By: reed%NetBSD.org@localhost
 > Responsible-Changed-When: Thu, 19 Nov 2009 01:23:07 +0000
 > Responsible-Changed-Why:
 > Assigned to maintainer.
 > This should probably be sent upstream and have conditionals based on
 > features instead of a specific operating system.
 
 
 Something like this?
 
 --nextPart1639093.Q3v5CpiS2o
 Content-Type: application/mbox; 
name="0001-Make-pftop-compile-on-DragonFly.patch"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; 
filename="0001-Make-pftop-compile-on-DragonFly.patch"
 
 RnJvbSBlMmI0Y2ZhM2M3N2JlNTQ4MTdhYjBhZTMxYzA2MzcxMTBiNGI0OTg1IE1vbiBTZXAgMTcg
 MDA6MDA6MDAgMjAwMQpGcm9tOiBSdW1rbyA8cnVtY2ljQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAx
 NyBOb3YgMjAwOSAwMTo0MToyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIE1ha2UgcGZ0b3AgY29t
 cGlsZSBvbiBEcmFnb25GbHkuCgpTb21lIGNoYW5nZXMgdGFrZW4gZnJvbSBGcmVlQlNEJ3MgcG9y
 dHMuCi0tLQogc3lzdXRpbHMvcGZ0b3AvZGlzdGluZm8gICAgICAgICB8ICAgMTAgKy0KIHN5c3V0
 aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWEgfCAgIDEwICstCiBzeXN1dGlscy9wZnRvcC9wYXRj
 aGVzL3BhdGNoLWFkIHwgICA0MCArKy0tCiBzeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFn
 IHwgICA5OCArKysrKystCiBzeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFoIHwgICAyNSAr
 Ky0KIHN5c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWogfCAgIDM2ICsrKwogc3lzdXRpbHMv
 cGZ0b3AvcGF0Y2hlcy9wYXRjaC1hayB8ICA1MzIgKysrKysrKysrKysrKysrKysrKysrKysrKysr
 KysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDcwNyBpbnNlcnRpb25zKCspLCA0NCBkZWxl
 dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNo
 LWFqCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hawoK
 ZGlmZiAtLWdpdCBhL3N5c3V0aWxzL3BmdG9wL2Rpc3RpbmZvIGIvc3lzdXRpbHMvcGZ0b3AvZGlz
 dGluZm8KaW5kZXggZjc2NmU1Ni4uNjRjYTE5MyAxMDA2NDQKLS0tIGEvc3lzdXRpbHMvcGZ0b3Av
 ZGlzdGluZm8KKysrIGIvc3lzdXRpbHMvcGZ0b3AvZGlzdGluZm8KQEAgLTMsMTIgKzMsMTQgQEAg
 JE5ldEJTRDogZGlzdGluZm8sdiAxLjYgMjAwOC8wNi8xNSAxNDowOTowMyBwZXRlciBFeHAgJAog
 U0hBMSAocGZ0b3AtMC43LnRhci5neikgPSA2NTFhZmE1MzJjZmM4Y2Y1OWMzNTk4NzA0ZGViOWJm
 Mzc4OGFjOWU5CiBSTUQxNjAgKHBmdG9wLTAuNy50YXIuZ3opID0gMGUwYzA5ZTVmZWViMDdkZWJh
 OGI1NDAyMzNkY2I5NDZiYTBiNDUwOAogU2l6ZSAocGZ0b3AtMC43LnRhci5neikgPSA1OTc2NSBi
 eXRlcwotU0hBMSAocGF0Y2gtYWEpID0gZmZhZTlhNWFiOTViNzkzZmE4YjY3N2E1OGEyYjY5NjQ0
 ZGEzN2RlMgorU0hBMSAocGF0Y2gtYWEpID0gZmY1YzUyMjIyMzQ3MjE4ODkzM2E2Y2NiZTk3MjUx
 OTBkYzhlYzFiNQogU0hBMSAocGF0Y2gtYWIpID0gOWU1NGY3ZDZmNmU2YzRjNTRmOTI0Yjg2MDgw
 MzU5ZWZlYTliYTM2OQogU0hBMSAocGF0Y2gtYWMpID0gNGQ1ZmZjMzU0MjU4ZmIzOWMwYTQ2NTU0
 NTdiMGM3OGU0ZjU3MDljYgotU0hBMSAocGF0Y2gtYWQpID0gNjU4YzI2Y2VmMzg2YzMxZmJlZDk5
 YTEzOGJlMGE5NGJjOWNhMTI3OAorU0hBMSAocGF0Y2gtYWQpID0gY2EyMGE2Y2QxZGQ2MWFhYjVi
 NDFlNmVlMjJiMDhkZWU3NzQxYTU0MgogU0hBMSAocGF0Y2gtYWUpID0gNTQ2MTliODQ2ODk5YTdj
 NGYyNjAxOTFhNzcyZTQxZTFjMDdjMTc4YwogU0hBMSAocGF0Y2gtYWYpID0gNTliOTA3YjIwZmEy
 MTViM2YwYTFlNjkwYzljNzFkMmY3MDc3ZTMyMgotU0hBMSAocGF0Y2gtYWcpID0gZWE2M2I3ZTdh
 MGVjMDc4YTAzNjliNmE0MTZhNzkwNTM4ZmEwYTg3ZAotU0hBMSAocGF0Y2gtYWgpID0gYjYzNGQ1
 OTFiMGZlZmRiZjI3Mjk3MDI1M2ViMjc4OWE2ZDFjZDZjMgorU0hBMSAocGF0Y2gtYWcpID0gN2Iz
 YjBhOWQ3YWM3M2RmOWMyNThhZTI3YThjNzVlNjU1NjU3NGVlOAorU0hBMSAocGF0Y2gtYWgpID0g
 MTY1NDBhOGEyM2JlNmJkOTRiMzU3NThiYThjOWE2YzA4MDliMjY4OAogU0hBMSAocGF0Y2gtYWkp
 ID0gNjI5YzE2NjhlYWIwZDgxOWU1OTBmYjYyYjdhZmE2Yzg1NzA5ZmQxNQorU0hBMSAocGF0Y2gt
 YWopID0gYTJmMDM3MDdiNTljYTM5MGVkNDYwYWI3YmUwYWU4Mjk5NTI2YjY1NQorU0hBMSAocGF0
 Y2gtYWspID0gNGIzZDk0MDE5ODllMDU5MWQzYmFmM2MxY2E3NDRlYTZmNTdmZWU2YwpkaWZmIC0t
 Z2l0IGEvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hYSBiL3N5c3V0aWxzL3BmdG9wL3Bh
 dGNoZXMvcGF0Y2gtYWEKaW5kZXggYjQ0OTlhZi4uM2ViYjJiYSAxMDA2NDQKLS0tIGEvc3lzdXRp
 bHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hYQorKysgYi9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3Bh
 dGNoLWFhCkBAIC0xLDIwICsxLDIyIEBACiAkTmV0QlNEOiBwYXRjaC1hYSx2IDEuMiAyMDA4LzA2
 LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAKLS0tLSBNYWtlZmlsZS5vbGQJMjAwNy0xMS0wNyAw
 NzozNDoxOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBNYWtlZmlsZQkyMDA4LTA2LTE1IDAwOjQzOjQx
 LjAwMDAwMDAwMCArMDIwMAorLS0tIE1ha2VmaWxlLm9yaWcJMjAwNy0xMS0wNyAwNzozNDoxOCAr
 MDEwMAorKysrIE1ha2VmaWxlCTIwMDktMTEtMTcgMDA6NTk6MjYgKzAxMDAKIEBAIC02LDE3ICs2
 LDIxIEBACiAgCiAgUFJPRz0JcGZ0b3AKICBTUkNTPQlwZnRvcC5jIGNhY2hlLmMgZW5naW5lLmMK
 IC1TUkNTKz0Jc2YtZ2VuY29kZS5jIHNmLWdyYW1tZXIueSBzZi1zY2FubmVyLmwgcGNhcC1uYW1l
 dG9hZGRyLmMKKy1TUkNTKz0gIGJwZl9vcHRpbWl6ZS5jIGJwZl9maWx0ZXIuYyBicGZfZHVtcC5j
 IGJwZl9pbWFnZS5jCiArU1JDUys9CXNmLWdlbmNvZGUuYyBzZi1ncmFtbWVyLmMgc2Ytc2Nhbm5l
 ci5sIHBjYXAtbmFtZXRvYWRkci5jCi0gU1JDUys9ICBicGZfb3B0aW1pemUuYyBicGZfZmlsdGVy
 LmMgYnBmX2R1bXAuYyBicGZfaW1hZ2UuYworK1NSQ1MrPSAgYnBmX29wdGltaXplLmMKICBNQU49
 CXBmdG9wLjgKICAKICtDTEVBTkZJTEVTKz0gc2YtZ3JhbW1lci5jCiArCiAgQ0ZMQUdTKz0gLVdh
 bGwgLURPU19MRVZFTD0ke09TTEVWRUx9Ci0gTERBREQrPSAtbGN1cnNlcworLUxEQUREKz0gLWxj
 dXJzZXMKKytMREFERCs9IC1sY3Vyc2VzIC1scGNhcAogIAogK05PR0NDRVJST1I9eWVzCiArCmRp
 ZmYgLS1naXQgYS9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFkIGIvc3lzdXRpbHMvcGZ0
 b3AvcGF0Y2hlcy9wYXRjaC1hZAppbmRleCAxMDNiYWMwLi4zY2ExZjYyIDEwMDY0NAotLS0gYS9z
 eXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFkCisrKyBiL3N5c3V0aWxzL3BmdG9wL3BhdGNo
 ZXMvcGF0Y2gtYWQKQEAgLTEsOCArMSwxNiBAQAogJE5ldEJTRDogcGF0Y2gtYWQsdiAxLjEgMjAw
 OC8wNi8xNSAxNDowOTowMyBwZXRlciBFeHAgJAogCi0tLS0gZW5naW5lLmMub2xkCTIwMDgtMDYt
 MTQgMTc6Mzg6NTUuMDAwMDAwMDAwICswMjAwCi0rKysgZW5naW5lLmMJMjAwOC0wNi0xNSAxMjo0
 MTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMiw3ICsyMiwxMCBAQAorLS0tIGVuZ2luZS5jLm9y
 aWcJMjAwNy0xMS0wNyAwNzozNTo0NCArMDEwMAorKysrIGVuZ2luZS5jCTIwMDktMTEtMTcgMDA6
 MzE6NDYgKzAxMDAKK0BAIC0xOCwxMSArMTgsMTggQEAKKyAKKyAKKyAjaW5jbHVkZSA8c3lzL3R5
 cGVzLmg+CisrI2lmZGVmIF9fRHJhZ29uRmx5X18KKysjaW5jbHVkZSAicXVldWUuaCIKKysjZWxz
 ZQorICNpbmNsdWRlIDxzeXMvcXVldWUuaD4KKysjZW5kaWYKICAKICAjaW5jbHVkZSA8Y3R5cGUu
 aD4KICAjaW5jbHVkZSA8Y3Vyc2VzLmg+CkBAIC0xMyw3ICsyMSw3IEBAICROZXRCU0Q6IHBhdGNo
 LWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAjaW5jbHVkZSA8c3Rk
 bGliLmg+CiAgI2luY2x1ZGUgPHN0cmluZy5oPgogICNpbmNsdWRlIDx1bmlzdGQuaD4KLUBAIC0z
 Myw2ICszNiwxMCBAQAorQEAgLTMzLDYgKzQwLDEwIEBACiAgI2RlZmluZSBNSU4oYSxiKSAoKChh
 KTwoYikpPyhhKTooYikpCiAgI2VuZGlmCiAgCkBAIC0yNCw3ICszMiw3IEBAICROZXRCU0Q6IHBh
 dGNoLWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAvKiBjaXJjdWxh
 ciBsaW5rZWQgbGlzdCBvZiB2aWV3cyAqLwogIENJUkNMRVFfSEVBRCh2aWV3X2xpc3QsIHZpZXdf
 ZW50KSB2aWV3X2hlYWQgPQogIAkJCQkgIENJUkNMRVFfSEVBRF9JTklUSUFMSVpFUih2aWV3X2hl
 YWQpOwotQEAgLTU1LDkgKzYyLDYgQEAKK0BAIC01NSw5ICs2Niw2IEBACiAgCiAgdm9sYXRpbGUg
 c2lnX2F0b21pY190IGdvdHNpZ19jbG9zZSA9IDA7CiAgdm9sYXRpbGUgc2lnX2F0b21pY190IGdv
 dHNpZ19yZXNpemUgPSAwOwpAQCAtMzQsNyArNDIsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEu
 MSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAgCiAgU0NSRUVOICpzY3JlZW47CiAg
 Ci1AQCAtMTA1LDcgKzEwOSw2IEBACitAQCAtMTA1LDcgKzExMyw2IEBACiAgCiAgaW50CiAgdGJw
 cmludGYoY2hhciAqZm9ybWF0LCAuLi4pCkBAIC00Miw3ICs1MCw3IEBAICROZXRCU0Q6IHBhdGNo
 LWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICB7CiAgCWludCBsZW47
 CiAgCXZhX2xpc3QgYXJnOwotQEAgLTQ4Miw3ICs0ODUsNiBAQAorQEAgLTQ4Miw3ICs0ODksNiBA
 QAogIAl2ID0gdmUtPnZpZXc7CiAgCQogIAlpZiAoKGN1cnJfdmlldyAhPSBOVUxMKSAmJiAoY3Vy
 cl9tZ3IgIT0gdi0+bWdyKSkgewpAQCAtNTAsNyArNTgsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2
 IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAgCQlpZiAodi0+bWdyICE9IE5V
 TEwgJiYgdi0+bWdyLT5zZWxlY3RfZm4gIT0gTlVMTCkKICAJCQl2LT5tZ3ItPnNlbGVjdF9mbigp
 OwogIAl9Ci1AQCAtNDkxLDcgKzQ5Myw2IEBACitAQCAtNDkxLDcgKzQ5Nyw2IEBACiAgCWN1cnJf
 dmlldyA9IHY7CiAgCWN1cnJfbWdyID0gdi0+bWdyOwogIAlmaWVsZF9zZXR1cCgpOwpAQCAtNTgs
 NyArNjYsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBl
 dGVyIEV4cCAkCiAgfQogIAogIHZvaWQKLUBAIC05MDUsMTIgKzkwNiw2IEBACitAQCAtOTA1LDEy
 ICs5MTAsNiBAQAogIH0KICAKICB2b2lkCkBAIC03MSw3ICs3OSw3IEBAICROZXRCU0Q6IHBhdGNo
 LWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICBzZXR1cF90ZXJtKGlu
 dCBkbWF4KQogIHsKICAJbWF4X2Rpc3AgPSBkbWF4OwotQEAgLTk0MSw4ICs5MzYsOSBAQAorQEAg
 LTk0MSw4ICs5NDAsOSBAQAogIAkJa2V5cGFkKHN0ZHNjciwgVFJVRSk7CiAgCQlpbnRyZmx1c2go
 c3Rkc2NyLCBGQUxTRSk7CiAgCkBAIC04Miw3ICs5MCw3IEBAICROZXRCU0Q6IHBhdGNoLWFkLHYg
 MS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAJfQogIAogIAlpZiAoZG1heCA9
 PSAwKQotQEAgLTk3MCw3ICs5NjYsNiBAQAorQEAgLTk3MCw3ICs5NzAsNiBAQAogIAl9CiAgCWN1
 cnJfbWVzc2FnZSA9IE5VTEw7CiAgCWN1cnJfY21kID0gY21kOwpAQCAtOTAsNyArOTgsNyBAQCAk
 TmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAg
 CXJldHVybiBwcmV2OwogIH0KICAKLUBAIC05ODcsNyArOTgyLDYgQEAKK0BAIC05ODcsNyArOTg2
 LDYgQEAKICAKICBpbnQKICBtc2dwcmludGYoY2hhciAqZm9ybWF0LCAuLi4pCkBAIC05OCw3ICsx
 MDYsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVy
 IEV4cCAkCiAgewogIAlzdGF0aWMgY2hhciBidWZbMTAyNF07CiAgCWludCBsZW47Ci1AQCAtMTA4
 NSwyOCArMTA3OSwyMSBAQAorQEAgLTEwODUsMjggKzEwODMsMjEgQEAKICAJaWYgKGN1cnJfbWVz
 c2FnZSAhPSBOVUxMKSB7CiAgCQlpZiAoY2ggPiAwKSB7CiAgCQkJY3Vycl9tZXNzYWdlID0gTlVM
 TDsKQEAgLTEyNyw3ICsxMzUsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1
 IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAgCQlicmVhazsKICAJY2FzZSAndic6CiAgCQkvKiBGQUxM
 VEhST1VHSCAqLwotQEAgLTExMjQsNDkgKzExMTEsNDAgQEAKK0BAIC0xMTI0LDQ5ICsxMTE1LDQw
 IEBACiAgCQkvKiBGQUxMVEhST1VHSCAqLwogIAljYXNlIENUUkxfTjoKICAJCWRpc3BzdGFydCsr
 OwpAQCAtMTc4LDcgKzE4Niw3IEBAICROZXRCU0Q6IHBhdGNoLWFkLHYgMS4xIDIwMDgvMDYvMTUg
 MTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAJCXNldF92aWV3X2hvdGtleShjaCk7CiAgfQogIAotQEAg
 LTExNzcsNDMgKzExNTUsMTUgQEAKK0BAIC0xMTc3LDQzICsxMTU5LDE1IEBACiAgCXNpZ25hbChT
 SUdJTlQsIHNpZ19jbG9zZSk7CiAgCXNpZ25hbChTSUdRVUlULCBzaWdfY2xvc2UpOwogIAlzaWdu
 YWwoU0lHV0lOQ0gsIHNpZ19yZXNpemUpOwpAQCAtMjIzLDcgKzIzMSw3IEBAICROZXRCU0Q6IHBh
 dGNoLWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAJCWlmIChnb3Rz
 aWdfY2xvc2UpCiAgCQkJYnJlYWs7CiAgCQlpZiAoZ290c2lnX3Jlc2l6ZSkgewotQEAgLTEyMjEs
 MTMgKzExNzEsMzEgQEAKK0BAIC0xMjIxLDEzICsxMTc1LDMxIEBACiAgCQkJCWVuZHdpbigpOwog
 IAkJCXNldHVwX3Rlcm0obWF4X2Rpc3ApOwogIAkJCWdvdHNpZ19yZXNpemUgPSAwOwpkaWZmIC0t
 Z2l0IGEvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hZyBiL3N5c3V0aWxzL3BmdG9wL3Bh
 dGNoZXMvcGF0Y2gtYWcKaW5kZXggMGI5YTZkNi4uZDc0Mzk4YiAxMDA2NDQKLS0tIGEvc3lzdXRp
 bHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hZworKysgYi9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3Bh
 dGNoLWFnCkBAIC0xLDggKzEsOCBAQAogJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAwOC8wNi8x
 NSAxNDowOTowNCBwZXRlciBFeHAgJAogCi0tLS0gcGZ0b3AuYy5vbGQJMjAwOC0wNi0xNCAxNzo0
 MTowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBwZnRvcC5jCTIwMDgtMDYtMTUgMTI6NDI6MDYuMDAw
 MDAwMDAwICswMjAwCi1AQCAtNDAsNyArNDAsMTEgQEAKKy0tLSBwZnRvcC5jLm9yaWcJMjAwNy0x
 MS0wNyAwNzozNjo0NiArMDEwMAorKysrIHBmdG9wLmMJMjAwOS0xMS0xNiAyMzozNzowMyArMDEw
 MAorQEAgLTQwLDIxICs0MCw0MSBAQAogICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAgI2RlZmlu
 ZSBUQ1BTVEFURVMKICAjaW5jbHVkZSA8bmV0aW5ldC90Y3BfZnNtLmg+CkBAIC0xNCw3ICsxNCwy
 OSBAQCAkTmV0QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4
 cCAkCiAgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgogIAogICNpZmRlZiBIQVZFX0FMVFEKLUBAIC01
 NSw2ICs1OSw3IEBACisrI2lmZGVmIF9fRHJhZ29uRmx5X18KKysjaW5jbHVkZSA8bmV0L2FsdHEv
 YWx0cS5oPgorKyNpbmNsdWRlIDxuZXQvYWx0cS9hbHRxX2NicS5oPgorKyNpbmNsdWRlIDxuZXQv
 YWx0cS9hbHRxX3ByaXEuaD4KKysjaW5jbHVkZSA8bmV0L2FsdHEvYWx0cV9oZnNjLmg+CisrI2Vs
 c2UKKyAjaW5jbHVkZSA8YWx0cS9hbHRxLmg+CisgI2luY2x1ZGUgPGFsdHEvYWx0cV9jYnEuaD4K
 KyAjaW5jbHVkZSA8YWx0cS9hbHRxX3ByaXEuaD4KKyAjaW5jbHVkZSA8YWx0cS9hbHRxX2hmc2Mu
 aD4KKyAjZW5kaWYKKyAKKysjaWZkZWYgQUxUUVRfRkFJUlEKKysjaWZkZWYgX19EcmFnb25GbHlf
 XworKyNpbmNsdWRlIDxuZXQvYWx0cS9hbHRxX2ZhaXJxLmg+CisrI2Vsc2UKKysjaW5jbHVkZSA8
 YWx0cS9hbHRxX2ZhaXJxLmg+CisrI2VuZGlmCisrI2VuZGlmCisrI2VuZGlmCisrCisgI2luY2x1
 ZGUgPGN0eXBlLmg+CisgI2luY2x1ZGUgPGN1cnNlcy5oPgogICNpbmNsdWRlIDxlcnIuaD4KICAj
 aW5jbHVkZSA8ZXJybm8uaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KQEAgLTIyLDcgKzQ0LDE3IEBA
 ICROZXRCU0Q6IHBhdGNoLWFnLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQK
 ICAjaW5jbHVkZSA8bmV0ZGIuaD4KICAjaW5jbHVkZSA8c2lnbmFsLmg+CiAgI2luY2x1ZGUgPHN0
 ZGlvLmg+Ci1AQCAtNzM2LDcgKzc0MSw3IEBACitAQCAtMzcxLDYgKzM5MSw5IEBACisgCWNsYXNz
 X3N0YXRzX3QJCWNicV9zdGF0czsKKyAJc3RydWN0IHByaXFfY2xhc3NzdGF0cwlwcmlxX3N0YXRz
 OworIAlzdHJ1Y3QgaGZzY19jbGFzc3N0YXRzCWhmc2Nfc3RhdHM7CisrI2lmZGVmIEFMVFFUX0ZB
 SVJRCisrCXN0cnVjdCBmYWlycV9jbGFzc3N0YXRzIGZhaXJxX3N0YXRzOworKyNlbmRpZgorIH07
 CisgCisgc3RydWN0IHF1ZXVlX3N0YXRzIHsKK0BAIC03MzYsNyArNzU5LDcgQEAKICAJfSBlbHNl
 IHsKICAJCW51bV9zdGF0ZXMgPSAwOwogIAkJZm9yIChuID0gMDsgbjxudW1fc3RhdGVzX2FsbDsg
 bisrKQpAQCAtMzEsNyArNjMsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1
 IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCQkJICAgIHNpemVvZihwZl9zdGF0ZV90KSwgc2l6ZW9m
 KHBmX3N0YXRlX3QpKSA+IDApCiAgCQkJCXN0YXRlX29yZFtudW1fc3RhdGVzKytdID0gbjsKICAJ
 fQotQEAgLTgyOCw3ICs4MzMsNyBAQAorQEAgLTgyOCw3ICs4NTEsNyBAQAogIAkJdGJwcmludGYo
 IiBQQVVTRUQiKTsKICAKICAJaWYgKHJhd21vZGUpCkBAIC00MCw3ICs3Miw3IEBAICROZXRCU0Q6
 IHBhdGNoLWFnLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKICAJZWxzZQog
 IAkJbXZwcmludHcoMCwgMCwgIiVzIiwgdG1wX2J1Zik7CiAgCi1AQCAtODQzLDcgKzg0OCwxMCBA
 QAorQEAgLTg0Myw3ICs4NjYsMTAgQEAKICAJCWxlbiA9IGNvbHVtbnMgLSBzdHJsZW4odG1wX2J1
 Zik7CiAgCQlpZiAobGVuIDwgMCkKICAJCQlsZW4gPSAwOwpAQCAtNTIsNyArODQsNyBAQCAkTmV0
 QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCX0K
 ICAKICAJdGJfZW5kKCk7Ci1AQCAtMTI0NCw3ICsxMjUyLDYgQEAKK0BAIC0xMjQ0LDcgKzEyNzAs
 NiBAQAogIAkJRkxEX0FOQ0hPUi0+bWF4X3dpZHRoID0gbXg7CiAgCQlGTERfQU5DSE9SLT5ub3Jt
 X3dpZHRoID0gbng7CiAgCQlmaWVsZF9zZXR1cCgpOwpAQCAtNjAsNyArOTIsNyBAQCAkTmV0QlNE
 OiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCX0KICB9
 CiAgI2VuZGlmCi1AQCAtMTI3OSw3ICsxMjg2LDYgQEAKK0BAIC0xMjc5LDcgKzEzMDQsNiBAQAog
 IAkJCUZMRF9MQUJFTC0+bm9ybV93aWR0aCA9IG53OwogIAkJCUZMRF9MQUJFTC0+bWF4X3dpZHRo
 ID0gbXc7CiAgCQkJZmllbGRfc2V0dXAoKTsKQEAgLTY4LDcgKzEwMCw0NSBAQCAkTmV0QlNEOiBw
 YXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCQl9CiAgCX0K
 ICAjZW5kaWYKLUBAIC0yMDQxLDExICsyMDQ3LDkgQEAKK0BAIC0xOTI0LDYgKzE5NDgsMTAgQEAK
 KyAJICAgIG5vZGUtPmFsdHEuc2NoZWR1bGVyID09IEFMVFFUX0hGU0MKKyAJCSkKKyAJCXByaW50
 X2ZsZF9idyhGTERfQkFORFcsIChkb3VibGUpbm9kZS0+YWx0cS5iYW5kd2lkdGgpOworKyNpZmRl
 ZiBBTFRRVF9GQUlSUQorKwlpZiAobm9kZS0+YWx0cS5zY2hlZHVsZXIgPT0gQUxUUVRfRkFJUlEp
 CisrCQlwcmludF9mbGRfYncoRkxEX0JBTkRXLCAoZG91YmxlKW5vZGUtPmFsdHEuYmFuZHdpZHRo
 KTsKKysjZW5kaWYKKyAJCisgCWlmIChub2RlLT5hbHRxLnByaW9yaXR5ICE9IERFRkFVTFRfUFJJ
 T1JJVFkpCisgCQlwcmludF9mbGRfdWludChGTERfUFJJTywKK0BAIC0xOTkyLDYgKzIwMjAsMjYg
 QEAKKyAJCQkJCW5vZGUtPnFzdGF0c19sYXN0LmRhdGEuaGZzY19zdGF0cy54bWl0X2NudC5ieXRl
 cywgaW50ZXJ2YWwpOworIAkJfQorIAkJYnJlYWs7CisrI2lmZGVmIEFMVFFUX0ZBSVJRCisrCWNh
 c2UgQUxUUVRfRkFJUlE6CisrCQlwcmludF9mbGRfc3RyKEZMRF9TQ0hFRCwgImZhaXJxIik7Cisr
 CQlwcmludF9mbGRfc2l6ZShGTERfUEtUUywKKysJCQkJbm9kZS0+cXN0YXRzLmRhdGEuZmFpcnFf
 c3RhdHMueG1pdF9jbnQucGFja2V0cyk7CisrCQlwcmludF9mbGRfc2l6ZShGTERfQllURVMsCisr
 CQkJCW5vZGUtPnFzdGF0cy5kYXRhLmZhaXJxX3N0YXRzLnhtaXRfY250LmJ5dGVzKTsKKysJCXBy
 aW50X2ZsZF9zaXplKEZMRF9EUk9QUCwKKysJCQkJbm9kZS0+cXN0YXRzLmRhdGEuZmFpcnFfc3Rh
 dHMuZHJvcF9jbnQucGFja2V0cyk7CisrCQlwcmludF9mbGRfc2l6ZShGTERfRFJPUEIsCisrCQkJ
 CW5vZGUtPnFzdGF0cy5kYXRhLmZhaXJxX3N0YXRzLmRyb3BfY250LmJ5dGVzKTsKKysJCXByaW50
 X2ZsZF9zaXplKEZMRF9RTEVOLCBub2RlLT5xc3RhdHMuZGF0YS5mYWlycV9zdGF0cy5xbGVuZ3Ro
 KTsKKysJCWlmIChpbnRlcnZhbCA+IDApIHsKKysJCQlwcHMgPSBjYWxjX3Bwcyhub2RlLT5xc3Rh
 dHMuZGF0YS5mYWlycV9zdGF0cy54bWl0X2NudC5wYWNrZXRzLAorKwkJCQkJbm9kZS0+cXN0YXRz
 X2xhc3QuZGF0YS5mYWlycV9zdGF0cy54bWl0X2NudC5wYWNrZXRzLCBpbnRlcnZhbCk7CisrCQkJ
 YnBzID0gY2FsY19yYXRlKG5vZGUtPnFzdGF0cy5kYXRhLmZhaXJxX3N0YXRzLnhtaXRfY250LmJ5
 dGVzLAorKwkJCQkJbm9kZS0+cXN0YXRzX2xhc3QuZGF0YS5mYWlycV9zdGF0cy54bWl0X2NudC5i
 eXRlcywgaW50ZXJ2YWwpOworKwkJfQorKwkJYnJlYWs7CisrI2VuZGlmCisgCX0KKyAKKyAJLyog
 aWYgKG5vZGUtPmFsdHEuc2NoZWR1bGVyICE9IEFMVFFUX0hGU0MgJiYgaW50ZXJ2YWwgPiAwKSB7
 ICovCitAQCAtMjA0MSwxMSArMjA4OSw5IEBACiAgCWlmIChjYWNoZXN0YXRlcykgewogIAkJc2hv
 d19maWVsZChGTERfU0kpOwogIAkJc2hvd19maWVsZChGTERfU1ApOwpAQCAtODAsNyArMTUwLDcg
 QEAgJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAwOC8wNi8xNSAxNDowOTowNCBwZXRlciBFeHAg
 JAogIAl9CiAgCWZpZWxkX3NldHVwKCk7CiAgfQotQEAgLTIxMDUsOCArMjEwOSwxMCBAQAorQEAg
 LTIxMDUsOCArMjE1MSwxMCBAQAogIAlsaW5lKys7CiAgCW12cHJpbnR3KGxpbmUrKywgNiwgInBy
 ZXNzIGFueSBrZXkgdG8gY29udGludWUgLi4uIik7CiAgCkBAIC05Myw3ICsxNjMsNyBAQCAkTmV0
 QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgfQog
 IAogIAotQEAgLTIxNDIsNyArMjE0OCw2IEBACitAQCAtMjE0Miw3ICsyMTkwLDYgQEAKICAJZGVs
 ID0gYXRvaShjbWRidWYpOwogIAlpZiAoZGVsID4gMCkgewogIAkJZGVsYXkgPSBkZWw7CkBAIC0x
 MDEsNyArMTcxLDcgQEAgJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAwOC8wNi8xNSAxNDowOTow
 NCBwZXRlciBFeHAgJAogIAl9CiAgfQogIAotQEAgLTIxNzUsNyArMjE4MCw2IEBACitAQCAtMjE3
 NSw3ICsyMjIyLDYgQEAKICAJCS8qIEZBTExUSFJPVUdIICovCiAgCWNhc2UgJ2gnOgogIAkJc2hv
 d19oZWxwKCk7CkBAIC0xMDksNyArMTc5LDcgQEAgJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAw
 OC8wNi8xNSAxNDowOTowNCBwZXRlciBFeHAgJAogIAkJYnJlYWs7CiAgCWNhc2UgJ24nOgogIAkJ
 Y29tbWFuZF9zZXQoJmNtX2NvdW50LCBOVUxMKTsKLUBAIC0yMzQ5LDggKzIzNTMsNiBAQAorQEAg
 LTIzNDksOCArMjM5NSw2IEBACiAgCWlmIChyYXdtb2RlICYmIGNvdW50bWF4ID09IDApCiAgCQlj
 b3VudG1heCA9IDE7CiAgCmRpZmYgLS1naXQgYS9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNo
 LWFoIGIvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1haAppbmRleCBlZGZhMjQwLi5hODQ1
 YjcyIDEwMDY0NAotLS0gYS9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFoCisrKyBiL3N5
 c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWgKQEAgLTEsMTMgKzEsMTQgQEAKICROZXRCU0Q6
 IHBhdGNoLWFoLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKIAotLS0tIHNm
 LWdlbmNvZGUuYy5vbGQJMjAwOC0wNi0xNCAxNzo0NDo1Mi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBz
 Zi1nZW5jb2RlLmMJMjAwOC0wNi0xNSAwMToxOTo0My4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zMiw4
 ICszMiwxMSBAQAorLS0tIHNmLWdlbmNvZGUuYy5vcmlnCTIwMDctMTEtMDcgMDc6MzQ6MTggKzAx
 MDAKKysrKyBzZi1nZW5jb2RlLmMJMjAwOS0xMS0xNyAwMTowMzo0NSArMDEwMAorQEAgLTMyLDgg
 KzMyLDEyIEBACiAgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAjaW5jbHVkZSA8bmV0aW5ldC9p
 Zl9ldGhlci5oPgogIAogLSNpbmNsdWRlIDxuZXQvaWZfcGZsb2cuaD4KICsjaWZkZWYgX19EcmFn
 b25GbHlfXworKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICsjaW5jbHVkZSA8bmV0L3BmL3BmdmFy
 Lmg+CiArI2Vsc2UKICAjaW5jbHVkZSA8bmV0L3BmdmFyLmg+CkBAIC0xNSw3ICsxNiw3IEBAICRO
 ZXRCU0Q6IHBhdGNoLWFoLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKICAK
 ICAjaW5jbHVkZSA8bmV0ZGIuaD4KICAjaW5jbHVkZSA8c3RkbGliLmg+Ci1AQCAtNDQsNyArNDcs
 NyBAQAorQEAgLTQ0LDcgKzQ4LDcgQEAKICAKICAjZGVmaW5lIElORVQ2CiAgCkBAIC0yNCw3ICsy
 NSwxOSBAQCAkTmV0QlNEOiBwYXRjaC1haCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVy
 IEV4cCAkCiAgI2luY2x1ZGUgPHBjYXAtbmFtZWRiLmg+CiAgI2luY2x1ZGUgInNmLWdlbmNvZGUu
 aCIKICAKLUBAIC03MzMsMTMgKzczNiwxNyBAQAorQEAgLTYwLDcgKzY0LDExIEBACisgc3RhdGlj
 IGNoYXIgc2ZfZXJyYnVmW1BGVE9QX0VSUkJVRl9TSVpFXTsKKyAKKyAvKiBWQVJBUkdTICovCisr
 I2lmZGVmIF9fRHJhZ29uRmx5X18KKyt2b2lkCisrI2Vsc2UKKyBfX2RlYWQgdm9pZAorKyNlbmRp
 ZgorIHNmX2Vycm9yKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQorIHsKKyAJdmFfbGlzdCBhcDsKK0BA
 IC03MzMsMTMgKzc0MSwxNyBAQAogIAkJYjEgPSBnZW5fcHJvdG8oSVBQUk9UT19FU1ApOwogIAkJ
 YnJlYWs7CiAgCkBAIC00Miw3ICs1NSw3IEBAICROZXRCU0Q6IHBhdGNoLWFoLHYgMS4xIDIwMDgv
 MDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKICAKICAJZGVmYXVsdDoKICAJCXNmX2Vycm9yKCJV
 bmtub3duIHByb3RvY29sIGFiYnJldmlhdGlvbiIpOwotQEAgLTE1NjAsNyArMTU2Nyw3IEBACitA
 QCAtMTU2MCw3ICsxNTcyLDcgQEAKICAJCS8qIE5PVFJFQUNIRUQgKi8KICAJfQogIApkaWZmIC0t
 Z2l0IGEvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1haiBiL3N5c3V0aWxzL3BmdG9wL3Bh
 dGNoZXMvcGF0Y2gtYWoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU1Njhk
 ZgotLS0gL2Rldi9udWxsCisrKyBiL3N5c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWoKQEAg
 LTAsMCArMSwzNiBAQAorLS0tIHNmLWdlbmNvZGUuaC5vcmlnCTIwMDktMTEtMTYgMjM6NDc6NDIg
 KzAxMDAKKysrKyBzZi1nZW5jb2RlLmgJMjAwOS0xMS0xNiAyMzo0Nzo1NCArMDEwMAorQEAgLTE2
 OSw4ICsxNjksMTMgQEAKKyBzdHJ1Y3QgYXJ0aCAgKmdlbl9sb2FkZXhwaXJlKHZvaWQpOworIAor
 IHZvaWQgYnBmX29wdGltaXplKHN0cnVjdCBibG9jayAqKik7CisrI2lmZGVmIF9fRHJhZ29uRmx5
 X18KKyt2b2lkIGJwZl9lcnJvcihjb25zdCBjaGFyICosIC4uLikKKysgICAgX19hdHRyaWJ1dGVf
 Xygodm9sYXRpbGUsIF9fZm9ybWF0X18gKHByaW50ZiwgMSwgMikpKTsKKysjZWxzZQorIF9fZGVh
 ZCB2b2lkIGJwZl9lcnJvcihjb25zdCBjaGFyICosIC4uLikKKyAgICAgX19hdHRyaWJ1dGVfXygo
 dm9sYXRpbGUsIF9fZm9ybWF0X18gKHByaW50ZiwgMSwgMikpKTsKKysjZW5kaWYKKyAKKyB2b2lk
 IGZpbmlzaF9wYXJzZShzdHJ1Y3QgYmxvY2sgKik7CisgY2hhciAqc2R1cChjb25zdCBjaGFyICop
 OworQEAgLTE4NCwxMSArMTg5LDE5IEBACisgI2RlZmluZSBKVChiKSAgKChiKS0+ZXQuc3VjYykK
 KyAjZGVmaW5lIEpGKGIpICAoKGIpLT5lZi5zdWNjKQorIAorKyNpZmRlZiBfX0RyYWdvbkZseV9f
 Cisrdm9pZCBzZl9lcnJvcihjb25zdCBjaGFyICpmbXQsIC4uLik7CisrI2Vsc2UKKyBfX2RlYWQg
 dm9pZCBzZl9lcnJvcihjb25zdCBjaGFyICpmbXQsIC4uLik7CisrI2VuZGlmCisgY29uc3QgY2hh
 ciAqc2ZfZ2V0X2Vycm9yKHZvaWQpOworIGludCBzZl9jb21waWxlKHN0cnVjdCBicGZfcHJvZ3Jh
 bSAqLCBjaGFyICosIGludCwgYnBmX3VfaW50MzIpOworIHZvaWQgc2ZfZnJlZWNvZGUoc3RydWN0
 IGJwZl9wcm9ncmFtICopOworKyNpZmRlZiBfX0RyYWdvbkZseV9fCisrdm9pZCBicGZfZHVtcChj
 b25zdCBzdHJ1Y3QgYnBmX3Byb2dyYW0gKiwgaW50KTsKKysjZWxzZQorIHZvaWQgYnBmX2R1bXAo
 c3RydWN0IGJwZl9wcm9ncmFtICosIGludCk7CisrI2VuZGlmCisgCisgZXh0ZXJuIGludCBub19v
 cHRpbWl6ZTsKKyAKZGlmZiAtLWdpdCBhL3N5c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWsg
 Yi9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
 ZGV4IDAwMDAwMDAuLmExMmM0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXN1dGlscy9wZnRvcC9w
 YXRjaGVzL3BhdGNoLWFrCkBAIC0wLDAgKzEsNTMyIEBACitUYWtlbiBmcm9tIEZyZWVCU0QgcG9y
 dHMuCisKKy0tLSAvZGV2L251bGwJMjAwOS0xMS0xNyAwMDozMDoxMSArMDEwMAorKysrIHF1ZXVl
 LmgJMjAwOS0xMS0xNyAwMDozMTozMiArMDEwMAorQEAgLTAsMCArMSw1MjcgQEAKKysvKgkkT3Bl
 bkJTRDogcXVldWUuaCx2IDEuMzIgMjAwNy8wNC8zMCAxODo0MjozNCBwZWRybyBFeHAgJAkqLwor
 Ky8qCSROZXRCU0Q6IHF1ZXVlLmgsdiAxLjExIDE5OTYvMDUvMTYgMDU6MTc6MTQgbXljcm9mdCBF
 eHAgJAkqLworKworKy8qCisrICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkzCisrICoJVGhlIFJl
 Z2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2
 ZWQuCisrICoKKysgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKysgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
 cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKysgKiBhcmUgbWV0OgorKyAq
 IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
 Y29weXJpZ2h0CisrICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
 IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
 Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0
 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
 ZQorKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
 aXRoIHRoZSBkaXN0cmlidXRpb24uCisrICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5p
 dmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKysgKiAgICBtYXkgYmUg
 dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29m
 dHdhcmUKKysgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
 KysgKgorKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENP
 TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisrICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
 QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisrICogSU1QTElFRCBX
 QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
 IFBVUlBPU0UKKysgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdF
 TlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKysgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
 Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorKyAq
 IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
 VUJTVElUVVRFIEdPT0RTCisrICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
 Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisrICogSE9XRVZFUiBDQVVTRUQgQU5E
 IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QK
 KysgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
 RSkgQVJJU0lORyBJTiBBTlkgV0FZCisrICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
 RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorKyAqIFNVQ0ggREFNQUdF
 LgorKyAqCisrICoJQCgjKXF1ZXVlLmgJOC41IChCZXJrZWxleSkgOC8yMC85NAorKyAqLworKwor
 KyNpZm5kZWYJX1FVRVVFX0hfCisrI2RlZmluZQlfUVVFVUVfSF8KKysKKysvKgorKyAqIFRoaXMg
 ZmlsZSBkZWZpbmVzIGZpdmUgdHlwZXMgb2YgZGF0YSBzdHJ1Y3R1cmVzOiBzaW5nbHktbGlua2Vk
 IGxpc3RzLCAKKysgKiBsaXN0cywgc2ltcGxlIHF1ZXVlcywgdGFpbCBxdWV1ZXMsIGFuZCBjaXJj
 dWxhciBxdWV1ZXMuCisrICoKKysgKgorKyAqIEEgc2luZ2x5LWxpbmtlZCBsaXN0IGlzIGhlYWRl
 ZCBieSBhIHNpbmdsZSBmb3J3YXJkIHBvaW50ZXIuIFRoZSBlbGVtZW50cworKyAqIGFyZSBzaW5n
 bHkgbGlua2VkIGZvciBtaW5pbXVtIHNwYWNlIGFuZCBwb2ludGVyIG1hbmlwdWxhdGlvbiBvdmVy
 aGVhZCBhdAorKyAqIHRoZSBleHBlbnNlIG9mIE8obikgcmVtb3ZhbCBmb3IgYXJiaXRyYXJ5IGVs
 ZW1lbnRzLiBOZXcgZWxlbWVudHMgY2FuIGJlCisrICogYWRkZWQgdG8gdGhlIGxpc3QgYWZ0ZXIg
 YW4gZXhpc3RpbmcgZWxlbWVudCBvciBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdC4KKysgKiBFbGVt
 ZW50cyBiZWluZyByZW1vdmVkIGZyb20gdGhlIGhlYWQgb2YgdGhlIGxpc3Qgc2hvdWxkIHVzZSB0
 aGUgZXhwbGljaXQKKysgKiBtYWNybyBmb3IgdGhpcyBwdXJwb3NlIGZvciBvcHRpbXVtIGVmZmlj
 aWVuY3kuIEEgc2luZ2x5LWxpbmtlZCBsaXN0IG1heQorKyAqIG9ubHkgYmUgdHJhdmVyc2VkIGlu
 IHRoZSBmb3J3YXJkIGRpcmVjdGlvbi4gIFNpbmdseS1saW5rZWQgbGlzdHMgYXJlIGlkZWFsCisr
 ICogZm9yIGFwcGxpY2F0aW9ucyB3aXRoIGxhcmdlIGRhdGFzZXRzIGFuZCBmZXcgb3Igbm8gcmVt
 b3ZhbHMgb3IgZm9yCisrICogaW1wbGVtZW50aW5nIGEgTElGTyBxdWV1ZS4KKysgKgorKyAqIEEg
 bGlzdCBpcyBoZWFkZWQgYnkgYSBzaW5nbGUgZm9yd2FyZCBwb2ludGVyIChvciBhbiBhcnJheSBv
 ZiBmb3J3YXJkCisrICogcG9pbnRlcnMgZm9yIGEgaGFzaCB0YWJsZSBoZWFkZXIpLiBUaGUgZWxl
 bWVudHMgYXJlIGRvdWJseSBsaW5rZWQKKysgKiBzbyB0aGF0IGFuIGFyYml0cmFyeSBlbGVtZW50
 IGNhbiBiZSByZW1vdmVkIHdpdGhvdXQgYSBuZWVkIHRvCisrICogdHJhdmVyc2UgdGhlIGxpc3Qu
 IE5ldyBlbGVtZW50cyBjYW4gYmUgYWRkZWQgdG8gdGhlIGxpc3QgYmVmb3JlCisrICogb3IgYWZ0
 ZXIgYW4gZXhpc3RpbmcgZWxlbWVudCBvciBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdC4gQSBsaXN0
 CisrICogbWF5IG9ubHkgYmUgdHJhdmVyc2VkIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbi4KKysg
 KgorKyAqIEEgc2ltcGxlIHF1ZXVlIGlzIGhlYWRlZCBieSBhIHBhaXIgb2YgcG9pbnRlcnMsIG9u
 ZSB0aGUgaGVhZCBvZiB0aGUKKysgKiBsaXN0IGFuZCB0aGUgb3RoZXIgdG8gdGhlIHRhaWwgb2Yg
 dGhlIGxpc3QuIFRoZSBlbGVtZW50cyBhcmUgc2luZ2x5CisrICogbGlua2VkIHRvIHNhdmUgc3Bh
 Y2UsIHNvIGVsZW1lbnRzIGNhbiBvbmx5IGJlIHJlbW92ZWQgZnJvbSB0aGUKKysgKiBoZWFkIG9m
 IHRoZSBsaXN0LiBOZXcgZWxlbWVudHMgY2FuIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGJlZm9yZSBv
 ciBhZnRlcgorKyAqIGFuIGV4aXN0aW5nIGVsZW1lbnQsIGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0
 LCBvciBhdCB0aGUgZW5kIG9mIHRoZQorKyAqIGxpc3QuIEEgc2ltcGxlIHF1ZXVlIG1heSBvbmx5
 IGJlIHRyYXZlcnNlZCBpbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24uCisrICoKKysgKiBBIHRhaWwg
 cXVldWUgaXMgaGVhZGVkIGJ5IGEgcGFpciBvZiBwb2ludGVycywgb25lIHRvIHRoZSBoZWFkIG9m
 IHRoZQorKyAqIGxpc3QgYW5kIHRoZSBvdGhlciB0byB0aGUgdGFpbCBvZiB0aGUgbGlzdC4gVGhl
 IGVsZW1lbnRzIGFyZSBkb3VibHkKKysgKiBsaW5rZWQgc28gdGhhdCBhbiBhcmJpdHJhcnkgZWxl
 bWVudCBjYW4gYmUgcmVtb3ZlZCB3aXRob3V0IGEgbmVlZCB0bworKyAqIHRyYXZlcnNlIHRoZSBs
 aXN0LiBOZXcgZWxlbWVudHMgY2FuIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGJlZm9yZSBvcgorKyAq
 IGFmdGVyIGFuIGV4aXN0aW5nIGVsZW1lbnQsIGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0LCBvciBh
 dCB0aGUgZW5kIG9mCisrICogdGhlIGxpc3QuIEEgdGFpbCBxdWV1ZSBtYXkgYmUgdHJhdmVyc2Vk
 IGluIGVpdGhlciBkaXJlY3Rpb24uCisrICoKKysgKiBBIGNpcmNsZSBxdWV1ZSBpcyBoZWFkZWQg
 YnkgYSBwYWlyIG9mIHBvaW50ZXJzLCBvbmUgdG8gdGhlIGhlYWQgb2YgdGhlCisrICogbGlzdCBh
 bmQgdGhlIG90aGVyIHRvIHRoZSB0YWlsIG9mIHRoZSBsaXN0LiBUaGUgZWxlbWVudHMgYXJlIGRv
 dWJseQorKyAqIGxpbmtlZCBzbyB0aGF0IGFuIGFyYml0cmFyeSBlbGVtZW50IGNhbiBiZSByZW1v
 dmVkIHdpdGhvdXQgYSBuZWVkIHRvCisrICogdHJhdmVyc2UgdGhlIGxpc3QuIE5ldyBlbGVtZW50
 cyBjYW4gYmUgYWRkZWQgdG8gdGhlIGxpc3QgYmVmb3JlIG9yIGFmdGVyCisrICogYW4gZXhpc3Rp
 bmcgZWxlbWVudCwgYXQgdGhlIGhlYWQgb2YgdGhlIGxpc3QsIG9yIGF0IHRoZSBlbmQgb2YgdGhl
 IGxpc3QuCisrICogQSBjaXJjbGUgcXVldWUgbWF5IGJlIHRyYXZlcnNlZCBpbiBlaXRoZXIgZGly
 ZWN0aW9uLCBidXQgaGFzIGEgbW9yZQorKyAqIGNvbXBsZXggZW5kIG9mIGxpc3QgZGV0ZWN0aW9u
 LgorKyAqCisrICogRm9yIGRldGFpbHMgb24gdGhlIHVzZSBvZiB0aGVzZSBtYWNyb3MsIHNlZSB0
 aGUgcXVldWUoMykgbWFudWFsIHBhZ2UuCisrICovCisrCisrI2lmIGRlZmluZWQoUVVFVUVfTUFD
 Uk9fREVCVUcpIHx8IChkZWZpbmVkKF9LRVJORUwpICYmIGRlZmluZWQoRElBR05PU1RJQykpCisr
 I2RlZmluZSBfUV9JTlZBTElEQVRFKGEpIChhKSA9ICgodm9pZCAqKS0xKQorKyNlbHNlCisrI2Rl
 ZmluZSBfUV9JTlZBTElEQVRFKGEpCisrI2VuZGlmCisrCisrLyoKKysgKiBTaW5nbHktbGlua2Vk
 IExpc3QgZGVmaW5pdGlvbnMuCisrICovCisrI2RlZmluZSBTTElTVF9IRUFEKG5hbWUsIHR5cGUp
 CQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnNsaF9maXJz
 dDsJLyogZmlyc3QgZWxlbWVudCAqLwkJCVwKKyt9CisrIAorKyNkZWZpbmUJU0xJU1RfSEVBRF9J
 TklUSUFMSVpFUihoZWFkKQkJCQkJXAorKwl7IE5VTEwgfQorKyAKKysjZGVmaW5lIFNMSVNUX0VO
 VFJZKHR5cGUpCQkJCQkJXAorK3N0cnVjdCB7CQkJCQkJCQlcCisrCXN0cnVjdCB0eXBlICpzbGVf
 bmV4dDsJLyogbmV4dCBlbGVtZW50ICovCQkJXAorK30KKysgCisrLyoKKysgKiBTaW5nbHktbGlu
 a2VkIExpc3QgYWNjZXNzIG1ldGhvZHMuCisrICovCisrI2RlZmluZQlTTElTVF9GSVJTVChoZWFk
 KQkoKGhlYWQpLT5zbGhfZmlyc3QpCisrI2RlZmluZQlTTElTVF9FTkQoaGVhZCkJCU5VTEwKKysj
 ZGVmaW5lCVNMSVNUX0VNUFRZKGhlYWQpCShTTElTVF9GSVJTVChoZWFkKSA9PSBTTElTVF9FTkQo
 aGVhZCkpCisrI2RlZmluZQlTTElTVF9ORVhUKGVsbSwgZmllbGQpCSgoZWxtKS0+ZmllbGQuc2xl
 X25leHQpCisrCisrI2RlZmluZQlTTElTVF9GT1JFQUNIKHZhciwgaGVhZCwgZmllbGQpCQkJCQlc
 CisrCWZvcigodmFyKSA9IFNMSVNUX0ZJUlNUKGhlYWQpOwkJCQkJXAorKwkgICAgKHZhcikgIT0g
 U0xJU1RfRU5EKGhlYWQpOwkJCQkJXAorKwkgICAgKHZhcikgPSBTTElTVF9ORVhUKHZhciwgZmll
 bGQpKQorKworKyNkZWZpbmUJU0xJU1RfRk9SRUFDSF9QUkVWUFRSKHZhciwgdmFycCwgaGVhZCwg
 ZmllbGQpCQkJXAorKwlmb3IgKCh2YXJwKSA9ICZTTElTVF9GSVJTVCgoaGVhZCkpOwkJCQlcCisr
 CSAgICAoKHZhcikgPSAqKHZhcnApKSAhPSBTTElTVF9FTkQoaGVhZCk7CQkJXAorKwkgICAgKHZh
 cnApID0gJlNMSVNUX05FWFQoKHZhciksIGZpZWxkKSkKKysKKysvKgorKyAqIFNpbmdseS1saW5r
 ZWQgTGlzdCBmdW5jdGlvbnMuCisrICovCisrI2RlZmluZQlTTElTVF9JTklUKGhlYWQpIHsJCQkJ
 CQlcCisrCVNMSVNUX0ZJUlNUKGhlYWQpID0gU0xJU1RfRU5EKGhlYWQpOwkJCQlcCisrfQorKwor
 KyNkZWZpbmUJU0xJU1RfSU5TRVJUX0FGVEVSKHNsaXN0ZWxtLCBlbG0sIGZpZWxkKSBkbyB7CQkJ
 XAorKwkoZWxtKS0+ZmllbGQuc2xlX25leHQgPSAoc2xpc3RlbG0pLT5maWVsZC5zbGVfbmV4dDsJ
 CVwKKysJKHNsaXN0ZWxtKS0+ZmllbGQuc2xlX25leHQgPSAoZWxtKTsJCQkJXAorK30gd2hpbGUg
 KDApCisrCisrI2RlZmluZQlTTElTVF9JTlNFUlRfSEVBRChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7
 CQkJXAorKwkoZWxtKS0+ZmllbGQuc2xlX25leHQgPSAoaGVhZCktPnNsaF9maXJzdDsJCQlcCisr
 CShoZWFkKS0+c2xoX2ZpcnN0ID0gKGVsbSk7CQkJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVm
 aW5lCVNMSVNUX1JFTU9WRV9ORVhUKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0p
 LT5maWVsZC5zbGVfbmV4dCA9IChlbG0pLT5maWVsZC5zbGVfbmV4dC0+ZmllbGQuc2xlX25leHQ7
 CVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUJU0xJU1RfUkVNT1ZFX0hFQUQoaGVhZCwgZmll
 bGQpIGRvIHsJCQkJXAorKwkoaGVhZCktPnNsaF9maXJzdCA9IChoZWFkKS0+c2xoX2ZpcnN0LT5m
 aWVsZC5zbGVfbmV4dDsJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0xJU1RfUkVNT1ZF
 KGhlYWQsIGVsbSwgdHlwZSwgZmllbGQpIGRvIHsJCQlcCisrCWlmICgoaGVhZCktPnNsaF9maXJz
 dCA9PSAoZWxtKSkgewkJCQlcCisrCQlTTElTVF9SRU1PVkVfSEVBRCgoaGVhZCksIGZpZWxkKTsJ
 CQlcCisrCX0gZWxzZSB7CQkJCQkJCVwKKysJCXN0cnVjdCB0eXBlICpjdXJlbG0gPSAoaGVhZCkt
 PnNsaF9maXJzdDsJCVwKKysJCQkJCQkJCQlcCisrCQl3aGlsZSAoY3VyZWxtLT5maWVsZC5zbGVf
 bmV4dCAhPSAoZWxtKSkJCQlcCisrCQkJY3VyZWxtID0gY3VyZWxtLT5maWVsZC5zbGVfbmV4dDsJ
 CVwKKysJCWN1cmVsbS0+ZmllbGQuc2xlX25leHQgPQkJCQlcCisrCQkgICAgY3VyZWxtLT5maWVs
 ZC5zbGVfbmV4dC0+ZmllbGQuc2xlX25leHQ7CQlcCisrCQlfUV9JTlZBTElEQVRFKChlbG0pLT5m
 aWVsZC5zbGVfbmV4dCk7CQkJXAorKwl9CQkJCQkJCQlcCisrfSB3aGlsZSAoMCkKKysKKysvKgor
 KyAqIExpc3QgZGVmaW5pdGlvbnMuCisrICovCisrI2RlZmluZSBMSVNUX0hFQUQobmFtZSwgdHlw
 ZSkJCQkJCQlcCisrc3RydWN0IG5hbWUgewkJCQkJCQkJXAorKwlzdHJ1Y3QgdHlwZSAqbGhfZmly
 c3Q7CS8qIGZpcnN0IGVsZW1lbnQgKi8JCQlcCisrfQorKworKyNkZWZpbmUgTElTVF9IRUFEX0lO
 SVRJQUxJWkVSKGhlYWQpCQkJCQlcCisrCXsgTlVMTCB9CisrCisrI2RlZmluZSBMSVNUX0VOVFJZ
 KHR5cGUpCQkJCQkJXAorK3N0cnVjdCB7CQkJCQkJCQlcCisrCXN0cnVjdCB0eXBlICpsZV9uZXh0
 OwkvKiBuZXh0IGVsZW1lbnQgKi8JCQlcCisrCXN0cnVjdCB0eXBlICoqbGVfcHJldjsJLyogYWRk
 cmVzcyBvZiBwcmV2aW91cyBuZXh0IGVsZW1lbnQgKi8JXAorK30KKysKKysvKgorKyAqIExpc3Qg
 YWNjZXNzIG1ldGhvZHMKKysgKi8KKysjZGVmaW5lCUxJU1RfRklSU1QoaGVhZCkJCSgoaGVhZCkt
 PmxoX2ZpcnN0KQorKyNkZWZpbmUJTElTVF9FTkQoaGVhZCkJCQlOVUxMCisrI2RlZmluZQlMSVNU
 X0VNUFRZKGhlYWQpCQkoTElTVF9GSVJTVChoZWFkKSA9PSBMSVNUX0VORChoZWFkKSkKKysjZGVm
 aW5lCUxJU1RfTkVYVChlbG0sIGZpZWxkKQkJKChlbG0pLT5maWVsZC5sZV9uZXh0KQorKworKyNk
 ZWZpbmUgTElTVF9GT1JFQUNIKHZhciwgaGVhZCwgZmllbGQpCQkJCQlcCisrCWZvcigodmFyKSA9
 IExJU1RfRklSU1QoaGVhZCk7CQkJCQlcCisrCSAgICAodmFyKSE9IExJU1RfRU5EKGhlYWQpOwkJ
 CQkJXAorKwkgICAgKHZhcikgPSBMSVNUX05FWFQodmFyLCBmaWVsZCkpCisrCisrLyoKKysgKiBM
 aXN0IGZ1bmN0aW9ucy4KKysgKi8KKysjZGVmaW5lCUxJU1RfSU5JVChoZWFkKSBkbyB7CQkJCQkJ
 XAorKwlMSVNUX0ZJUlNUKGhlYWQpID0gTElTVF9FTkQoaGVhZCk7CQkJCVwKKyt9IHdoaWxlICgw
 KQorKworKyNkZWZpbmUgTElTVF9JTlNFUlRfQUZURVIobGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8g
 ewkJCVwKKysJaWYgKCgoZWxtKS0+ZmllbGQubGVfbmV4dCA9IChsaXN0ZWxtKS0+ZmllbGQubGVf
 bmV4dCkgIT0gTlVMTCkJXAorKwkJKGxpc3RlbG0pLT5maWVsZC5sZV9uZXh0LT5maWVsZC5sZV9w
 cmV2ID0JCVwKKysJCSAgICAmKGVsbSktPmZpZWxkLmxlX25leHQ7CQkJCVwKKysJKGxpc3RlbG0p
 LT5maWVsZC5sZV9uZXh0ID0gKGVsbSk7CQkJCVwKKysJKGVsbSktPmZpZWxkLmxlX3ByZXYgPSAm
 KGxpc3RlbG0pLT5maWVsZC5sZV9uZXh0OwkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZQlM
 SVNUX0lOU0VSVF9CRUZPUkUobGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8gewkJCVwKKysJKGVsbSkt
 PmZpZWxkLmxlX3ByZXYgPSAobGlzdGVsbSktPmZpZWxkLmxlX3ByZXY7CQlcCisrCShlbG0pLT5m
 aWVsZC5sZV9uZXh0ID0gKGxpc3RlbG0pOwkJCQlcCisrCSoobGlzdGVsbSktPmZpZWxkLmxlX3By
 ZXYgPSAoZWxtKTsJCQkJXAorKwkobGlzdGVsbSktPmZpZWxkLmxlX3ByZXYgPSAmKGVsbSktPmZp
 ZWxkLmxlX25leHQ7CQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIExJU1RfSU5TRVJUX0hF
 QUQoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJCQlcCisrCWlmICgoKGVsbSktPmZpZWxkLmxlX25l
 eHQgPSAoaGVhZCktPmxoX2ZpcnN0KSAhPSBOVUxMKQkJXAorKwkJKGhlYWQpLT5saF9maXJzdC0+
 ZmllbGQubGVfcHJldiA9ICYoZWxtKS0+ZmllbGQubGVfbmV4dDtcCisrCShoZWFkKS0+bGhfZmly
 c3QgPSAoZWxtKTsJCQkJCVwKKysJKGVsbSktPmZpZWxkLmxlX3ByZXYgPSAmKGhlYWQpLT5saF9m
 aXJzdDsJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIExJU1RfUkVNT1ZFKGVsbSwgZmll
 bGQpIGRvIHsJCQkJCVwKKysJaWYgKChlbG0pLT5maWVsZC5sZV9uZXh0ICE9IE5VTEwpCQkJCVwK
 KysJCShlbG0pLT5maWVsZC5sZV9uZXh0LT5maWVsZC5sZV9wcmV2ID0JCQlcCisrCQkgICAgKGVs
 bSktPmZpZWxkLmxlX3ByZXY7CQkJCVwKKysJKihlbG0pLT5maWVsZC5sZV9wcmV2ID0gKGVsbSkt
 PmZpZWxkLmxlX25leHQ7CQkJXAorKwlfUV9JTlZBTElEQVRFKChlbG0pLT5maWVsZC5sZV9wcmV2
 KTsJCQkJXAorKwlfUV9JTlZBTElEQVRFKChlbG0pLT5maWVsZC5sZV9uZXh0KTsJCQkJXAorK30g
 d2hpbGUgKDApCisrCisrI2RlZmluZSBMSVNUX1JFUExBQ0UoZWxtLCBlbG0yLCBmaWVsZCkgZG8g
 ewkJCQlcCisrCWlmICgoKGVsbTIpLT5maWVsZC5sZV9uZXh0ID0gKGVsbSktPmZpZWxkLmxlX25l
 eHQpICE9IE5VTEwpCVwKKysJCShlbG0yKS0+ZmllbGQubGVfbmV4dC0+ZmllbGQubGVfcHJldiA9
 CQkJXAorKwkJICAgICYoZWxtMiktPmZpZWxkLmxlX25leHQ7CQkJCVwKKysJKGVsbTIpLT5maWVs
 ZC5sZV9wcmV2ID0gKGVsbSktPmZpZWxkLmxlX3ByZXY7CQkJXAorKwkqKGVsbTIpLT5maWVsZC5s
 ZV9wcmV2ID0gKGVsbTIpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmxlX3By
 ZXYpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmxlX25leHQpOwkJCQlcCisr
 fSB3aGlsZSAoMCkKKysKKysvKgorKyAqIFNpbXBsZSBxdWV1ZSBkZWZpbml0aW9ucy4KKysgKi8K
 KysjZGVmaW5lIFNJTVBMRVFfSEVBRChuYW1lLCB0eXBlKQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJ
 CQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnNxaF9maXJzdDsJLyogZmlyc3QgZWxlbWVudCAqLwkJ
 CVwKKysJc3RydWN0IHR5cGUgKipzcWhfbGFzdDsJLyogYWRkciBvZiBsYXN0IG5leHQgZWxlbWVu
 dCAqLwkJXAorK30KKysKKysjZGVmaW5lIFNJTVBMRVFfSEVBRF9JTklUSUFMSVpFUihoZWFkKQkJ
 CQkJXAorKwl7IE5VTEwsICYoaGVhZCkuc3FoX2ZpcnN0IH0KKysKKysjZGVmaW5lIFNJTVBMRVFf
 RU5UUlkodHlwZSkJCQkJCQlcCisrc3RydWN0IHsJCQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnNx
 ZV9uZXh0OwkvKiBuZXh0IGVsZW1lbnQgKi8JCQlcCisrfQorKworKy8qCisrICogU2ltcGxlIHF1
 ZXVlIGFjY2VzcyBtZXRob2RzLgorKyAqLworKyNkZWZpbmUJU0lNUExFUV9GSVJTVChoZWFkKQkg
 ICAgKChoZWFkKS0+c3FoX2ZpcnN0KQorKyNkZWZpbmUJU0lNUExFUV9FTkQoaGVhZCkJICAgIE5V
 TEwKKysjZGVmaW5lCVNJTVBMRVFfRU1QVFkoaGVhZCkJICAgIChTSU1QTEVRX0ZJUlNUKGhlYWQp
 ID09IFNJTVBMRVFfRU5EKGhlYWQpKQorKyNkZWZpbmUJU0lNUExFUV9ORVhUKGVsbSwgZmllbGQp
 ICAgICgoZWxtKS0+ZmllbGQuc3FlX25leHQpCisrCisrI2RlZmluZSBTSU1QTEVRX0ZPUkVBQ0go
 dmFyLCBoZWFkLCBmaWVsZCkJCQkJXAorKwlmb3IoKHZhcikgPSBTSU1QTEVRX0ZJUlNUKGhlYWQp
 OwkJCQlcCisrCSAgICAodmFyKSAhPSBTSU1QTEVRX0VORChoZWFkKTsJCQkJCVwKKysJICAgICh2
 YXIpID0gU0lNUExFUV9ORVhUKHZhciwgZmllbGQpKQorKworKy8qCisrICogU2ltcGxlIHF1ZXVl
 IGZ1bmN0aW9ucy4KKysgKi8KKysjZGVmaW5lCVNJTVBMRVFfSU5JVChoZWFkKSBkbyB7CQkJCQkJ
 XAorKwkoaGVhZCktPnNxaF9maXJzdCA9IE5VTEw7CQkJCQlcCisrCShoZWFkKS0+c3FoX2xhc3Qg
 PSAmKGhlYWQpLT5zcWhfZmlyc3Q7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0lN
 UExFUV9JTlNFUlRfSEVBRChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7CQkJXAorKwlpZiAoKChlbG0p
 LT5maWVsZC5zcWVfbmV4dCA9IChoZWFkKS0+c3FoX2ZpcnN0KSA9PSBOVUxMKQlcCisrCQkoaGVh
 ZCktPnNxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zcWVfbmV4dDsJCVwKKysJKGhlYWQpLT5zcWhf
 Zmlyc3QgPSAoZWxtKTsJCQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0lNUExFUV9J
 TlNFUlRfVEFJTChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7CQkJXAorKwkoZWxtKS0+ZmllbGQuc3Fl
 X25leHQgPSBOVUxMOwkJCQkJXAorKwkqKGhlYWQpLT5zcWhfbGFzdCA9IChlbG0pOwkJCQkJXAor
 KwkoaGVhZCktPnNxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zcWVfbmV4dDsJCQlcCisrfSB3aGls
 ZSAoMCkKKysKKysjZGVmaW5lIFNJTVBMRVFfSU5TRVJUX0FGVEVSKGhlYWQsIGxpc3RlbG0sIGVs
 bSwgZmllbGQpIGRvIHsJCVwKKysJaWYgKCgoZWxtKS0+ZmllbGQuc3FlX25leHQgPSAobGlzdGVs
 bSktPmZpZWxkLnNxZV9uZXh0KSA9PSBOVUxMKVwKKysJCShoZWFkKS0+c3FoX2xhc3QgPSAmKGVs
 bSktPmZpZWxkLnNxZV9uZXh0OwkJXAorKwkobGlzdGVsbSktPmZpZWxkLnNxZV9uZXh0ID0gKGVs
 bSk7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0lNUExFUV9SRU1PVkVfSEVBRCho
 ZWFkLCBmaWVsZCkgZG8gewkJCVwKKysJaWYgKCgoaGVhZCktPnNxaF9maXJzdCA9IChoZWFkKS0+
 c3FoX2ZpcnN0LT5maWVsZC5zcWVfbmV4dCkgPT0gTlVMTCkgXAorKwkJKGhlYWQpLT5zcWhfbGFz
 dCA9ICYoaGVhZCktPnNxaF9maXJzdDsJCQlcCisrfSB3aGlsZSAoMCkKKysKKysvKgorKyAqIFRh
 aWwgcXVldWUgZGVmaW5pdGlvbnMuCisrICovCisrI2RlZmluZSBUQUlMUV9IRUFEKG5hbWUsIHR5
 cGUpCQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnRxaF9m
 aXJzdDsJLyogZmlyc3QgZWxlbWVudCAqLwkJCVwKKysJc3RydWN0IHR5cGUgKip0cWhfbGFzdDsJ
 LyogYWRkciBvZiBsYXN0IG5leHQgZWxlbWVudCAqLwkJXAorK30KKysKKysjZGVmaW5lIFRBSUxR
 X0hFQURfSU5JVElBTElaRVIoaGVhZCkJCQkJCVwKKysJeyBOVUxMLCAmKGhlYWQpLnRxaF9maXJz
 dCB9CisrCisrI2RlZmluZSBUQUlMUV9FTlRSWSh0eXBlKQkJCQkJCVwKKytzdHJ1Y3QgewkJCQkJ
 CQkJXAorKwlzdHJ1Y3QgdHlwZSAqdHFlX25leHQ7CS8qIG5leHQgZWxlbWVudCAqLwkJCVwKKysJ
 c3RydWN0IHR5cGUgKip0cWVfcHJldjsJLyogYWRkcmVzcyBvZiBwcmV2aW91cyBuZXh0IGVsZW1l
 bnQgKi8JXAorK30KKysKKysvKiAKKysgKiB0YWlsIHF1ZXVlIGFjY2VzcyBtZXRob2RzIAorKyAq
 LworKyNkZWZpbmUJVEFJTFFfRklSU1QoaGVhZCkJCSgoaGVhZCktPnRxaF9maXJzdCkKKysjZGVm
 aW5lCVRBSUxRX0VORChoZWFkKQkJCU5VTEwKKysjZGVmaW5lCVRBSUxRX05FWFQoZWxtLCBmaWVs
 ZCkJCSgoZWxtKS0+ZmllbGQudHFlX25leHQpCisrI2RlZmluZSBUQUlMUV9MQVNUKGhlYWQsIGhl
 YWRuYW1lKQkJCQkJXAorKwkoKigoKHN0cnVjdCBoZWFkbmFtZSAqKSgoaGVhZCktPnRxaF9sYXN0
 KSktPnRxaF9sYXN0KSkKKysvKiBYWFggKi8KKysjZGVmaW5lIFRBSUxRX1BSRVYoZWxtLCBoZWFk
 bmFtZSwgZmllbGQpCQkJCVwKKysJKCooKChzdHJ1Y3QgaGVhZG5hbWUgKikoKGVsbSktPmZpZWxk
 LnRxZV9wcmV2KSktPnRxaF9sYXN0KSkKKysjZGVmaW5lCVRBSUxRX0VNUFRZKGhlYWQpCQkJCQkJ
 XAorKwkoVEFJTFFfRklSU1QoaGVhZCkgPT0gVEFJTFFfRU5EKGhlYWQpKQorKworKyNkZWZpbmUg
 VEFJTFFfRk9SRUFDSCh2YXIsIGhlYWQsIGZpZWxkKQkJCQkJXAorKwlmb3IoKHZhcikgPSBUQUlM
 UV9GSVJTVChoZWFkKTsJCQkJCVwKKysJICAgICh2YXIpICE9IFRBSUxRX0VORChoZWFkKTsJCQkJ
 CVwKKysJICAgICh2YXIpID0gVEFJTFFfTkVYVCh2YXIsIGZpZWxkKSkKKysKKysjZGVmaW5lIFRB
 SUxRX0ZPUkVBQ0hfUkVWRVJTRSh2YXIsIGhlYWQsIGhlYWRuYW1lLCBmaWVsZCkJCVwKKysJZm9y
 KCh2YXIpID0gVEFJTFFfTEFTVChoZWFkLCBoZWFkbmFtZSk7CQkJCVwKKysJICAgICh2YXIpICE9
 IFRBSUxRX0VORChoZWFkKTsJCQkJCVwKKysJICAgICh2YXIpID0gVEFJTFFfUFJFVih2YXIsIGhl
 YWRuYW1lLCBmaWVsZCkpCisrCisrLyoKKysgKiBUYWlsIHF1ZXVlIGZ1bmN0aW9ucy4KKysgKi8K
 KysjZGVmaW5lCVRBSUxRX0lOSVQoaGVhZCkgZG8gewkJCQkJCVwKKysJKGhlYWQpLT50cWhfZmly
 c3QgPSBOVUxMOwkJCQkJXAorKwkoaGVhZCktPnRxaF9sYXN0ID0gJihoZWFkKS0+dHFoX2ZpcnN0
 OwkJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIFRBSUxRX0lOU0VSVF9IRUFEKGhlYWQs
 IGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCWlmICgoKGVsbSktPmZpZWxkLnRxZV9uZXh0ID0gKGhl
 YWQpLT50cWhfZmlyc3QpICE9IE5VTEwpCVwKKysJCShoZWFkKS0+dHFoX2ZpcnN0LT5maWVsZC50
 cWVfcHJldiA9CQkJXAorKwkJICAgICYoZWxtKS0+ZmllbGQudHFlX25leHQ7CQkJCVwKKysJZWxz
 ZQkJCQkJCQkJXAorKwkJKGhlYWQpLT50cWhfbGFzdCA9ICYoZWxtKS0+ZmllbGQudHFlX25leHQ7
 CQlcCisrCShoZWFkKS0+dHFoX2ZpcnN0ID0gKGVsbSk7CQkJCQlcCisrCShlbG0pLT5maWVsZC50
 cWVfcHJldiA9ICYoaGVhZCktPnRxaF9maXJzdDsJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVm
 aW5lIFRBSUxRX0lOU0VSVF9UQUlMKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0p
 LT5maWVsZC50cWVfbmV4dCA9IE5VTEw7CQkJCQlcCisrCShlbG0pLT5maWVsZC50cWVfcHJldiA9
 IChoZWFkKS0+dHFoX2xhc3Q7CQkJXAorKwkqKGhlYWQpLT50cWhfbGFzdCA9IChlbG0pOwkJCQkJ
 XAorKwkoaGVhZCktPnRxaF9sYXN0ID0gJihlbG0pLT5maWVsZC50cWVfbmV4dDsJCQlcCisrfSB3
 aGlsZSAoMCkKKysKKysjZGVmaW5lIFRBSUxRX0lOU0VSVF9BRlRFUihoZWFkLCBsaXN0ZWxtLCBl
 bG0sIGZpZWxkKSBkbyB7CQlcCisrCWlmICgoKGVsbSktPmZpZWxkLnRxZV9uZXh0ID0gKGxpc3Rl
 bG0pLT5maWVsZC50cWVfbmV4dCkgIT0gTlVMTClcCisrCQkoZWxtKS0+ZmllbGQudHFlX25leHQt
 PmZpZWxkLnRxZV9wcmV2ID0JCQlcCisrCQkgICAgJihlbG0pLT5maWVsZC50cWVfbmV4dDsJCQkJ
 XAorKwllbHNlCQkJCQkJCQlcCisrCQkoaGVhZCktPnRxaF9sYXN0ID0gJihlbG0pLT5maWVsZC50
 cWVfbmV4dDsJCVwKKysJKGxpc3RlbG0pLT5maWVsZC50cWVfbmV4dCA9IChlbG0pOwkJCQlcCisr
 CShlbG0pLT5maWVsZC50cWVfcHJldiA9ICYobGlzdGVsbSktPmZpZWxkLnRxZV9uZXh0OwkJXAor
 K30gd2hpbGUgKDApCisrCisrI2RlZmluZQlUQUlMUV9JTlNFUlRfQkVGT1JFKGxpc3RlbG0sIGVs
 bSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0pLT5maWVsZC50cWVfcHJldiA9IChsaXN0ZWxtKS0+
 ZmllbGQudHFlX3ByZXY7CQlcCisrCShlbG0pLT5maWVsZC50cWVfbmV4dCA9IChsaXN0ZWxtKTsJ
 CQkJXAorKwkqKGxpc3RlbG0pLT5maWVsZC50cWVfcHJldiA9IChlbG0pOwkJCQlcCisrCShsaXN0
 ZWxtKS0+ZmllbGQudHFlX3ByZXYgPSAmKGVsbSktPmZpZWxkLnRxZV9uZXh0OwkJXAorK30gd2hp
 bGUgKDApCisrCisrI2RlZmluZSBUQUlMUV9SRU1PVkUoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJ
 CQlcCisrCWlmICgoKGVsbSktPmZpZWxkLnRxZV9uZXh0KSAhPSBOVUxMKQkJCQlcCisrCQkoZWxt
 KS0+ZmllbGQudHFlX25leHQtPmZpZWxkLnRxZV9wcmV2ID0JCQlcCisrCQkgICAgKGVsbSktPmZp
 ZWxkLnRxZV9wcmV2OwkJCQlcCisrCWVsc2UJCQkJCQkJCVwKKysJCShoZWFkKS0+dHFoX2xhc3Qg
 PSAoZWxtKS0+ZmllbGQudHFlX3ByZXY7CQlcCisrCSooZWxtKS0+ZmllbGQudHFlX3ByZXYgPSAo
 ZWxtKS0+ZmllbGQudHFlX25leHQ7CQkJXAorKwlfUV9JTlZBTElEQVRFKChlbG0pLT5maWVsZC50
 cWVfcHJldik7CQkJCVwKKysJX1FfSU5WQUxJREFURSgoZWxtKS0+ZmllbGQudHFlX25leHQpOwkJ
 CQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIFRBSUxRX1JFUExBQ0UoaGVhZCwgZWxtLCBl
 bG0yLCBmaWVsZCkgZG8gewkJCVwKKysJaWYgKCgoZWxtMiktPmZpZWxkLnRxZV9uZXh0ID0gKGVs
 bSktPmZpZWxkLnRxZV9uZXh0KSAhPSBOVUxMKQlcCisrCQkoZWxtMiktPmZpZWxkLnRxZV9uZXh0
 LT5maWVsZC50cWVfcHJldiA9CQlcCisrCQkgICAgJihlbG0yKS0+ZmllbGQudHFlX25leHQ7CQkJ
 CVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGhlYWQpLT50cWhfbGFzdCA9ICYoZWxtMiktPmZpZWxk
 LnRxZV9uZXh0OwkJXAorKwkoZWxtMiktPmZpZWxkLnRxZV9wcmV2ID0gKGVsbSktPmZpZWxkLnRx
 ZV9wcmV2OwkJCVwKKysJKihlbG0yKS0+ZmllbGQudHFlX3ByZXYgPSAoZWxtMik7CQkJCVwKKysJ
 X1FfSU5WQUxJREFURSgoZWxtKS0+ZmllbGQudHFlX3ByZXYpOwkJCQlcCisrCV9RX0lOVkFMSURB
 VEUoKGVsbSktPmZpZWxkLnRxZV9uZXh0KTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrLyoKKysg
 KiBDaXJjdWxhciBxdWV1ZSBkZWZpbml0aW9ucy4KKysgKi8KKysjZGVmaW5lIENJUkNMRVFfSEVB
 RChuYW1lLCB0eXBlKQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwKKysJc3RydWN0IHR5
 cGUgKmNxaF9maXJzdDsJCS8qIGZpcnN0IGVsZW1lbnQgKi8JCVwKKysJc3RydWN0IHR5cGUgKmNx
 aF9sYXN0OwkJLyogbGFzdCBlbGVtZW50ICovCQlcCisrfQorKworKyNkZWZpbmUgQ0lSQ0xFUV9I
 RUFEX0lOSVRJQUxJWkVSKGhlYWQpCQkJCQlcCisrCXsgQ0lSQ0xFUV9FTkQoJmhlYWQpLCBDSVJD
 TEVRX0VORCgmaGVhZCkgfQorKworKyNkZWZpbmUgQ0lSQ0xFUV9FTlRSWSh0eXBlKQkJCQkJCVwK
 KytzdHJ1Y3QgewkJCQkJCQkJXAorKwlzdHJ1Y3QgdHlwZSAqY3FlX25leHQ7CQkvKiBuZXh0IGVs
 ZW1lbnQgKi8JCVwKKysJc3RydWN0IHR5cGUgKmNxZV9wcmV2OwkJLyogcHJldmlvdXMgZWxlbWVu
 dCAqLwkJXAorK30KKysKKysvKgorKyAqIENpcmN1bGFyIHF1ZXVlIGFjY2VzcyBtZXRob2RzIAor
 KyAqLworKyNkZWZpbmUJQ0lSQ0xFUV9GSVJTVChoZWFkKQkJKChoZWFkKS0+Y3FoX2ZpcnN0KQor
 KyNkZWZpbmUJQ0lSQ0xFUV9MQVNUKGhlYWQpCQkoKGhlYWQpLT5jcWhfbGFzdCkKKysjZGVmaW5l
 CUNJUkNMRVFfRU5EKGhlYWQpCQkoKHZvaWQgKikoaGVhZCkpCisrI2RlZmluZQlDSVJDTEVRX05F
 WFQoZWxtLCBmaWVsZCkJKChlbG0pLT5maWVsZC5jcWVfbmV4dCkKKysjZGVmaW5lCUNJUkNMRVFf
 UFJFVihlbG0sIGZpZWxkKQkoKGVsbSktPmZpZWxkLmNxZV9wcmV2KQorKyNkZWZpbmUJQ0lSQ0xF
 UV9FTVBUWShoZWFkKQkJCQkJCVwKKysJKENJUkNMRVFfRklSU1QoaGVhZCkgPT0gQ0lSQ0xFUV9F
 TkQoaGVhZCkpCisrCisrI2RlZmluZSBDSVJDTEVRX0ZPUkVBQ0godmFyLCBoZWFkLCBmaWVsZCkJ
 CQkJXAorKwlmb3IoKHZhcikgPSBDSVJDTEVRX0ZJUlNUKGhlYWQpOwkJCQlcCisrCSAgICAodmFy
 KSAhPSBDSVJDTEVRX0VORChoZWFkKTsJCQkJCVwKKysJICAgICh2YXIpID0gQ0lSQ0xFUV9ORVhU
 KHZhciwgZmllbGQpKQorKworKyNkZWZpbmUgQ0lSQ0xFUV9GT1JFQUNIX1JFVkVSU0UodmFyLCBo
 ZWFkLCBmaWVsZCkJCQlcCisrCWZvcigodmFyKSA9IENJUkNMRVFfTEFTVChoZWFkKTsJCQkJCVwK
 KysJICAgICh2YXIpICE9IENJUkNMRVFfRU5EKGhlYWQpOwkJCQkJXAorKwkgICAgKHZhcikgPSBD
 SVJDTEVRX1BSRVYodmFyLCBmaWVsZCkpCisrCisrLyoKKysgKiBDaXJjdWxhciBxdWV1ZSBmdW5j
 dGlvbnMuCisrICovCisrI2RlZmluZQlDSVJDTEVRX0lOSVQoaGVhZCkgZG8gewkJCQkJCVwKKysJ
 KGhlYWQpLT5jcWhfZmlyc3QgPSBDSVJDTEVRX0VORChoZWFkKTsJCQkJXAorKwkoaGVhZCktPmNx
 aF9sYXN0ID0gQ0lSQ0xFUV9FTkQoaGVhZCk7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZp
 bmUgQ0lSQ0xFUV9JTlNFUlRfQUZURVIoaGVhZCwgbGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8gewkJ
 XAorKwkoZWxtKS0+ZmllbGQuY3FlX25leHQgPSAobGlzdGVsbSktPmZpZWxkLmNxZV9uZXh0OwkJ
 XAorKwkoZWxtKS0+ZmllbGQuY3FlX3ByZXYgPSAobGlzdGVsbSk7CQkJCVwKKysJaWYgKChsaXN0
 ZWxtKS0+ZmllbGQuY3FlX25leHQgPT0gQ0lSQ0xFUV9FTkQoaGVhZCkpCQlcCisrCQkoaGVhZCkt
 PmNxaF9sYXN0ID0gKGVsbSk7CQkJCVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGxpc3RlbG0pLT5m
 aWVsZC5jcWVfbmV4dC0+ZmllbGQuY3FlX3ByZXYgPSAoZWxtKTsJXAorKwkobGlzdGVsbSktPmZp
 ZWxkLmNxZV9uZXh0ID0gKGVsbSk7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgQ0lS
 Q0xFUV9JTlNFUlRfQkVGT1JFKGhlYWQsIGxpc3RlbG0sIGVsbSwgZmllbGQpIGRvIHsJCVwKKysJ
 KGVsbSktPmZpZWxkLmNxZV9uZXh0ID0gKGxpc3RlbG0pOwkJCQlcCisrCShlbG0pLT5maWVsZC5j
 cWVfcHJldiA9IChsaXN0ZWxtKS0+ZmllbGQuY3FlX3ByZXY7CQlcCisrCWlmICgobGlzdGVsbSkt
 PmZpZWxkLmNxZV9wcmV2ID09IENJUkNMRVFfRU5EKGhlYWQpKQkJXAorKwkJKGhlYWQpLT5jcWhf
 Zmlyc3QgPSAoZWxtKTsJCQkJXAorKwllbHNlCQkJCQkJCQlcCisrCQkobGlzdGVsbSktPmZpZWxk
 LmNxZV9wcmV2LT5maWVsZC5jcWVfbmV4dCA9IChlbG0pOwlcCisrCShsaXN0ZWxtKS0+ZmllbGQu
 Y3FlX3ByZXYgPSAoZWxtKTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZSBDSVJDTEVR
 X0lOU0VSVF9IRUFEKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0pLT5maWVsZC5j
 cWVfbmV4dCA9IChoZWFkKS0+Y3FoX2ZpcnN0OwkJCVwKKysJKGVsbSktPmZpZWxkLmNxZV9wcmV2
 ID0gQ0lSQ0xFUV9FTkQoaGVhZCk7CQkJXAorKwlpZiAoKGhlYWQpLT5jcWhfbGFzdCA9PSBDSVJD
 TEVRX0VORChoZWFkKSkJCQlcCisrCQkoaGVhZCktPmNxaF9sYXN0ID0gKGVsbSk7CQkJCVwKKysJ
 ZWxzZQkJCQkJCQkJXAorKwkJKGhlYWQpLT5jcWhfZmlyc3QtPmZpZWxkLmNxZV9wcmV2ID0gKGVs
 bSk7CQlcCisrCShoZWFkKS0+Y3FoX2ZpcnN0ID0gKGVsbSk7CQkJCQlcCisrfSB3aGlsZSAoMCkK
 KysKKysjZGVmaW5lIENJUkNMRVFfSU5TRVJUX1RBSUwoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJ
 CVwKKysJKGVsbSktPmZpZWxkLmNxZV9uZXh0ID0gQ0lSQ0xFUV9FTkQoaGVhZCk7CQkJXAorKwko
 ZWxtKS0+ZmllbGQuY3FlX3ByZXYgPSAoaGVhZCktPmNxaF9sYXN0OwkJCVwKKysJaWYgKChoZWFk
 KS0+Y3FoX2ZpcnN0ID09IENJUkNMRVFfRU5EKGhlYWQpKQkJCVwKKysJCShoZWFkKS0+Y3FoX2Zp
 cnN0ID0gKGVsbSk7CQkJCVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGhlYWQpLT5jcWhfbGFzdC0+
 ZmllbGQuY3FlX25leHQgPSAoZWxtKTsJCVwKKysJKGhlYWQpLT5jcWhfbGFzdCA9IChlbG0pOwkJ
 CQkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZQlDSVJDTEVRX1JFTU9WRShoZWFkLCBlbG0s
 IGZpZWxkKSBkbyB7CQkJCVwKKysJaWYgKChlbG0pLT5maWVsZC5jcWVfbmV4dCA9PSBDSVJDTEVR
 X0VORChoZWFkKSkJCQlcCisrCQkoaGVhZCktPmNxaF9sYXN0ID0gKGVsbSktPmZpZWxkLmNxZV9w
 cmV2OwkJXAorKwllbHNlCQkJCQkJCQlcCisrCQkoZWxtKS0+ZmllbGQuY3FlX25leHQtPmZpZWxk
 LmNxZV9wcmV2ID0JCQlcCisrCQkgICAgKGVsbSktPmZpZWxkLmNxZV9wcmV2OwkJCQlcCisrCWlm
 ICgoZWxtKS0+ZmllbGQuY3FlX3ByZXYgPT0gQ0lSQ0xFUV9FTkQoaGVhZCkpCQkJXAorKwkJKGhl
 YWQpLT5jcWhfZmlyc3QgPSAoZWxtKS0+ZmllbGQuY3FlX25leHQ7CQlcCisrCWVsc2UJCQkJCQkJ
 CVwKKysJCShlbG0pLT5maWVsZC5jcWVfcHJldi0+ZmllbGQuY3FlX25leHQgPQkJCVwKKysJCSAg
 ICAoZWxtKS0+ZmllbGQuY3FlX25leHQ7CQkJCVwKKysJX1FfSU5WQUxJREFURSgoZWxtKS0+Zmll
 bGQuY3FlX3ByZXYpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmNxZV9uZXh0
 KTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZSBDSVJDTEVRX1JFUExBQ0UoaGVhZCwg
 ZWxtLCBlbG0yLCBmaWVsZCkgZG8gewkJCVwKKysJaWYgKCgoZWxtMiktPmZpZWxkLmNxZV9uZXh0
 ID0gKGVsbSktPmZpZWxkLmNxZV9uZXh0KSA9PQkJXAorKwkgICAgQ0lSQ0xFUV9FTkQoaGVhZCkp
 CQkJCQkJXAorKwkJKGhlYWQpLmNxaF9sYXN0ID0gKGVsbTIpOwkJCQlcCisrCWVsc2UJCQkJCQkJ
 CVwKKysJCShlbG0yKS0+ZmllbGQuY3FlX25leHQtPmZpZWxkLmNxZV9wcmV2ID0gKGVsbTIpOwlc
 CisrCWlmICgoKGVsbTIpLT5maWVsZC5jcWVfcHJldiA9IChlbG0pLT5maWVsZC5jcWVfcHJldikg
 PT0JCVwKKysJICAgIENJUkNMRVFfRU5EKGhlYWQpKQkJCQkJCVwKKysJCShoZWFkKS5jcWhfZmly
 c3QgPSAoZWxtMik7CQkJCVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGVsbTIpLT5maWVsZC5jcWVf
 cHJldi0+ZmllbGQuY3FlX25leHQgPSAoZWxtMik7CVwKKysJX1FfSU5WQUxJREFURSgoZWxtKS0+
 ZmllbGQuY3FlX3ByZXYpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmNxZV9u
 ZXh0KTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrI2VuZGlmCS8qICFfU1lTX1FVRVVFX0hfICov
 Ci0tIAoxLjYuNAoK
 
 --nextPart1639093.Q3v5CpiS2o--
 


Home | Main Index | Thread Index | Old Index