Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jun 2001 07:50:00 -0400
From:      James Halstead <James_Bond_79@yahoo.com>
To:        David Gilbert <dgilbert@velocet.ca>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: DVD IOCTLs on IDE?
Message-ID:  <01062507500001.00449@halstead007>
In-Reply-To: <15158.36689.918629.862331@trooper.velocet.net>
References:  <15158.24886.958193.121109@trooper.velocet.net> <01062420555600.00449@halstead007> <15158.36689.918629.862331@trooper.velocet.net>

next in thread | previous in thread | raw e-mail | index | archive | help

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

On Sunday 24 June 2001 21:09, David Gilbert wrote:
> Could I have a copy of your patches?  Where do I get xine?

The attached is a shell archive for a port I made out of the libcss from 
livid. It compiles but i have no idea if it works. Please do not submit it to 
the ports collection! all the patches are in the files/patch-* files.

As for xine, go to xine.sourceforge.net, hit the how to link, then choose 
browseable html. Select the playing dvd's and there will be a link to the 
captiancss page. It compiles cleanly on my 4.x system with ./configure 
--prefix=/usr/X11R6; gmake; gmake install. If I remember right the makefiles 
will work with the regular make as well if you don't have gmake installed.

There is also a link to the linux video site (where libcss comes from) and a 
plugin to use libcss. However I cannot get the plugin for this one to compile 
yet. 

If you have any luck tell me. I have been able to watch encrypted dvd's but 
it seems to like crashing when changing tracks. Also i have had a problem 
where xine will stop running after a while, seems to be running out of shared 
memory maps, something is not getting cleaned up properly. 

> Dave.

James
--------------Boundary-00=_C7IHYKFQN29DWWVL1GHJ
Content-Type: text/plain;
  charset="iso-8859-1";
  name="libcss.shar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="libcss.shar"

IyBUaGlzIGlzIGEgc2hlbGwgYXJjaGl2ZS4gIFNhdmUgaXQgaW4gYSBmaWxlLCByZW1vdmUgYW55
dGhpbmcgYmVmb3JlCiMgdGhpcyBsaW5lLCBhbmQgdGhlbiB1bnBhY2sgaXQgYnkgZW50ZXJpbmcg
InNoIGZpbGUiLiAgTm90ZSwgaXQgbWF5CiMgY3JlYXRlIGRpcmVjdG9yaWVzOyBmaWxlcyBhbmQg
ZGlyZWN0b3JpZXMgd2lsbCBiZSBvd25lZCBieSB5b3UgYW5kCiMgaGF2ZSBkZWZhdWx0IHBlcm1p
c3Npb25zLgojCiMgVGhpcyBhcmNoaXZlIGNvbnRhaW5zOgojCiMJbGliY3NzCiMJbGliY3NzL3Br
Zy1kZXNjcgojCWxpYmNzcy9wa2ctcGxpc3QKIwlsaWJjc3MvZmlsZXMKIwlsaWJjc3MvZmlsZXMv
cGF0Y2gtYWEKIwlsaWJjc3MvZmlsZXMvcGF0Y2gtYWcKIwlsaWJjc3MvZmlsZXMvcGF0Y2gtYWIK
IwlsaWJjc3MvZmlsZXMvcGF0Y2gtYWMKIwlsaWJjc3MvZmlsZXMvcGF0Y2gtYWQKIwlsaWJjc3Mv
ZmlsZXMvcGF0Y2gtYWUKIwlsaWJjc3MvZmlsZXMvcGF0Y2gtYWYKIwlsaWJjc3MvZmlsZXMvcGF0
Y2hlcy1haAojCWxpYmNzcy9kaXN0aW5mbwojCWxpYmNzcy9wa2ctY29tbWVudAojCWxpYmNzcy9N
YWtlZmlsZQojCmVjaG8gYyAtIGxpYmNzcwpta2RpciAtcCBsaWJjc3MgPiAvZGV2L251bGwgMj4m
MQplY2hvIHggLSBsaWJjc3MvcGtnLWRlc2NyCnNlZCAncy9eWC8vJyA+bGliY3NzL3BrZy1kZXNj
ciA8PCAnRU5ELW9mLWxpYmNzcy9wa2ctZGVzY3InClhMaWJjc3MgbGlicmFyeSBhcyBpbXBsZW1l
bnRlZCBpbiB0aGUgbGl2aWQgcHJvamVjdC4gU2hvdWxkIHdvcmsgd2l0aCB4aW5lIHRvClhwbGF5
IGVuY3J5cHRlZCBkdmQncwpFTkQtb2YtbGliY3NzL3BrZy1kZXNjcgplY2hvIHggLSBsaWJjc3Mv
cGtnLXBsaXN0CnNlZCAncy9eWC8vJyA+bGliY3NzL3BrZy1wbGlzdCA8PCAnRU5ELW9mLWxpYmNz
cy9wa2ctcGxpc3QnClhiaW4vdHN0ZHZkClhiaW4vZHZkaW5mbwpYYmluL3Jlc2V0X2R2ZApYaW5j
bHVkZS9jc3MuaApYbGliL2xpYmNzcy5zby4xClhsaWIvbGliY3NzLnNvClhsaWIvbGliY3NzLmxh
ClhsaWIvbGliY3NzLmEKWHNoYXJlL2FjbG9jYWwvZHZkLm00CkVORC1vZi1saWJjc3MvcGtnLXBs
aXN0CmVjaG8gYyAtIGxpYmNzcy9maWxlcwpta2RpciAtcCBsaWJjc3MvZmlsZXMgPiAvZGV2L251
bGwgMj4mMQplY2hvIHggLSBsaWJjc3MvZmlsZXMvcGF0Y2gtYWEKc2VkICdzL15YLy8nID5saWJj
c3MvZmlsZXMvcGF0Y2gtYWEgPDwgJ0VORC1vZi1saWJjc3MvZmlsZXMvcGF0Y2gtYWEnClgtLS0g
Y29uZmlndXJlLmluLm9yaWcJV2VkIEZlYiAxNCAxOTo0MDowMiAyMDAxClgrKysgY29uZmlndXJl
LmluCVdlZCBKdW4gMjAgMTY6MzM6MjQgMjAwMQpYQEAgLTQzLDE1ICs0MywxOSBAQApYIGlmIHRl
c3QgIngkZW5hYmxlX2RldmVsIiA9ICJ4eWVzIjsgdGhlbgpYICAgICAgICAgQ0ZMQUdTPSIkQ0ZM
QUdTIC1nMyAtRERFVkVMIC1EREVCVUciClggZWxzZQpYLSAgICAgICAgQ0ZMQUdTPSIkQ0ZMQUdT
IC1PNiAtZm9taXQtZnJhbWUtcG9pbnRlciAtZnVucm9sbC1hbGwtbG9vcHMgLURfX09QVElNSVpF
X18gLURfX1VTRV9TVFJJTkdfSU5MSU5FUyIKWCsgICAgICAgIENGTEFHUz0iJENGTEFHUyAtTzYg
LWZvbWl0LWZyYW1lLXBvaW50ZXIgLWZ1bnJvbGwtYWxsLWxvb3BzIC1EX19PUFRJTUlaRV9fIC1E
X19VU0VfU1RSSU5HX0lOTElORVMgXCQoRVhUUkFfREVGUykiClggZmkgICAgIApYIApYLQpYIGRu
bCA9PT09PT09PT09ClggZG5sIGdldCBsb2NhdGlvbiBvZiBrZXJuZWwgaGVhZGVycwpYIGRubCA9
PT09PT09PT09ClggClggQUNfQ19LRVJORUxfSU5DTFVERVMKWCsKWCtkbmwgPT09PT09PT09PQpY
K2RubCBDaGVjayBpZiB3ZSdyZSBvbiBGcmVlQlNEClgrZG5sID09PT09PT09PT0KWCtBTV9DT05E
SVRJT05BTChGUkVFQlNELCB0ZXN0IGB1bmFtZSAtc2AgPSAiRnJlZUJTRCIpClggClggZG5sID09
PT09PT09PT0KWCBkbmwgT3V0cHV0IGNvbmZpZ3VyYXRpb24gZmlsZXMKRU5ELW9mLWxpYmNzcy9m
aWxlcy9wYXRjaC1hYQplY2hvIHggLSBsaWJjc3MvZmlsZXMvcGF0Y2gtYWcKc2VkICdzL15YLy8n
ID5saWJjc3MvZmlsZXMvcGF0Y2gtYWcgPDwgJ0VORC1vZi1saWJjc3MvZmlsZXMvcGF0Y2gtYWcn
ClgtLS0gc3JjL3RzdGR2ZC5jLm9yaWcJVHVlIEZlYiAxMyAxNjo1OToyNyAyMDAxClgrKysgc3Jj
L3RzdGR2ZC5jCVdlZCBKdW4gMjAgMTY6MzM6MjQgMjAwMQpYQEAgLTY1LDExICs2NSwxOSBAQApY
IAkJcGVycm9yKCJEVkQgdm9iIGZpbGUiKTsKWCAJCXJldHVybiAwOwpYIAl9ClgrI2lmbmRlZiBf
X0ZyZWVCU0RfXwpYIAlpZiAoaW9jdGwoZmQsIEZJQk1BUCwgJmxiYSkgIT0gMCkgewpYIAkJcGVy
cm9yICgiaW9jdGwgRklCTUFQIik7ClggCQljbG9zZShmZCk7ClggCQlyZXR1cm4gMDsKWCAJfQpY
KyNlbHNlClgrCWlmIChpb2N0bChmZCwgRklPR0VUTEJBLCAmbGJhKSAhPSAwKSB7ClgrCQlwZXJy
b3IgKCJpb2N0bCBGSU9HRVRMQkEiKTsKWCsJCWNsb3NlKGZkKTsKWCsJCXJldHVybiAwOwpYKwl9
ClgrI2VuZGlmClggClggCWNsb3NlKGZkKTsKWCAKRU5ELW9mLWxpYmNzcy9maWxlcy9wYXRjaC1h
ZwplY2hvIHggLSBsaWJjc3MvZmlsZXMvcGF0Y2gtYWIKc2VkICdzL15YLy8nID5saWJjc3MvZmls
ZXMvcGF0Y2gtYWIgPDwgJ0VORC1vZi1saWJjc3MvZmlsZXMvcGF0Y2gtYWInClgtLS0gc3JjL01h
a2VmaWxlLmFtLm9yaWcJVGh1IE5vdiAgMiAxNDowNjo0MSAyMDAwClgrKysgc3JjL01ha2VmaWxl
LmFtCQlXZWQgSnVuIDIwIDE2OjMzOjI0IDIwMDEKWEBAIC0xMCwxNyArMTAsMzAgQEAKWCBiaW5f
UFJPR1JBTVMgPSB0c3RkdmQgZHZkaW5mbyByZXNldF9kdmQKWCBub2luc3RfUFJPR1JBTVMgPSBj
c3NfY2F0ClggClgraWYgRlJFRUJTRApYK0VYVFJBX0RFRlMgPSAtRF9USFJFQURfU0FGRQpYK0xJ
QlBUSFJFQUQgPSAtcHRocmVhZApYK0xJQkRMID0KWCtlbHNlClgrRVhUUkFfREVGUyA9ClgrTElC
UFRIUkVBRCA9ClgrTElCREwgPSAtbGRsClgrZW5kaWYKWCsKWCB0c3RkdmRfU09VUkNFUyA9IHRz
dGR2ZC5jClggdHN0ZHZkX0RFUEVOREVOQ0lFUyA9IGxpYmNzcy5sYQpYLXRzdGR2ZF9MREFERCA9
IGxpYmNzcy5sYSAtbGRsClgrdHN0ZHZkX0xERkxBR1MgPSAkKExJQlBUSFJFQUQpClgrdHN0ZHZk
X0xEQUREID0gbGliY3NzLmxhICQoTElCREwpClggClggY3NzX2NhdF9TT1VSQ0VTID0gY3NzX2Nh
dC5jClggY3NzX2NhdF9ERVBFTkRFTkNJRVMgPSBsaWJjc3MubGEKWC1jc3NfY2F0X0xEQUREID0g
bGliY3NzLmxhIC1sZGwKWCtjc3NfY2F0X0xERkxBR1MgPSAkKExJQlBUSFJFQUQpClgrY3NzX2Nh
dF9MREFERCA9IGxpYmNzcy5sYSAkKExJQkRMKQpYIApYIGR2ZGluZm9fU09VUkNFUyA9IGR2ZGlu
Zm8uYwpYIGR2ZGluZm9fREVQRU5ERU5DSUVTID0gbGliY3NzLmxhClgtZHZkaW5mb19MREFERCA9
IGxpYmNzcy5sYSAtbGRsClgrZHZkaW5mb19MREZMQUdTID0gJChMSUJQVEhSRUFEKQpYK2R2ZGlu
Zm9fTERBREQgPSBsaWJjc3MubGEgJChMSUJETCkKWCAKWCByZXNldF9kdmRfU09VUkNFUyA9IHJl
c2V0X2R2ZC5jClggCkVORC1vZi1saWJjc3MvZmlsZXMvcGF0Y2gtYWIKZWNobyB4IC0gbGliY3Nz
L2ZpbGVzL3BhdGNoLWFjCnNlZCAncy9eWC8vJyA+bGliY3NzL2ZpbGVzL3BhdGNoLWFjIDw8ICdF
TkQtb2YtbGliY3NzL2ZpbGVzL3BhdGNoLWFjJwpYLS0tIHNyYy9jc3MuYy5vcmlnCVR1ZSBGZWIg
MTMgMTY6NTk6MjcgMjAwMQpYKysrIHNyYy9jc3MuYwkJV2VkIEp1biAyMCAxNjozMzoyNCAyMDAx
ClhAQCAtMzAsNyArMzAsNyBAQApYICNpbmNsdWRlIDxzeXMvc3RhdC5oPgpYICNpbmNsdWRlIDxz
eXMvdHlwZXMuaD4KWCAjaW5jbHVkZSA8ZXJybm8uaD4KWC0jaWYgZGVmaW5lZChfX05ldEJTRF9f
KSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQpYKyNpZiBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRl
ZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX18pClggIyBpbmNsdWRlIDxz
eXMvZHZkaW8uaD4KWCAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykKWCAjIGluY2x1ZGUgPGxpbnV4
L2Nkcm9tLmg+ClhAQCAtNDEsMTMgKzQxLDE3IEBAClggI2luY2x1ZGUgImNzc19hdXRoLmgiClgg
I2luY2x1ZGUgImNzcy5oIgpYIApYKyNpZmRlZiBfX0ZyZWVCU0RfXwpYK3R5cGVkZWYgc3RydWN0
IGR2ZF9zdHJ1Y3QgICBkdmRfc3RydWN0OwpYK3R5cGVkZWYgc3RydWN0IGR2ZF9hdXRoaW5mbyBk
dmRfYXV0aGluZm87ClgrI2VuZGlmClggClggdHlwZWRlZiBzdHJ1Y3QgewpYIAl1aW50OF90IENo
YWxsZW5nZVsxMF07ClggCXVpbnQ4X3QgS2V5MVtMRU5fS0VZXTsKWCAJdWludDhfdCBLZXkyW0xF
Tl9LRVldOwpYIAl1aW50OF90IEtleUNoZWNrW0xFTl9LRVldOwpYLQl1aW50OF90IHZhcmllbnQ7
ClgrCXVpbnQ4X3QgdmFyaWFudDsKWCB9IERpc2NLZXlzOwpYIApYIERpc2NLZXlzIGRpc2NLZXlz
OwpYQEAgLTcwLDEyICs3NCwxMyBAQApYICNlbHNlClggI2RlZmluZSBfQ1NTUHJpbnREZWJ1Zyhh
cmdzLi4uKQpYICNkZWZpbmUgX0NTU1ByaW50RGVidWdCeXRlcyhkZXNjciwgdmFsLCBsZW4pClgr
I2RlZmluZSBfQ1NTUHJpbnRCeXRlcyh2YWwsIGxlbikKWCAjZW5kaWYKWCAKWCAvKioKWCAgKiBD
U1NBdXRoRHJpdmUKWCAgKiBEZXRlcm1pbmUgaWYgZHJpdmUgaXMgYXV0aGVudGljClgtICogUmV0
dXJuOiAtMSBpZiBmYWlsZWQsIDAuLjMyID0gdmFyaWVudCBvZiBDU1MKWCsgKiBSZXR1cm46IC0x
IGlmIGZhaWxlZCwgMC4uMzIgPSB2YXJpYW50IG9mIENTUwpYICAqKi8KWCAKWCAKWEBAIC05MCw4
ICs5NSw4IEBAClggCQlDcnlwdEtleTEoIGksIGRpc2MtPkNoYWxsZW5nZSwgZGlzYy0+S2V5Q2hl
Y2spOwpYIApYIAkJaWYgKG1lbWNtcCAoZGlzYy0+S2V5Q2hlY2ssIGRpc2MtPktleTEsIExFTl9L
RVkpID09IDApIHsKWC0JCQlfQ1NTUHJpbnREZWJ1ZyAoIkRyaXZlIEF1dGhlbnRpYyAtIHVzaW5n
IHZhcmllbnQgJWRcbiIsIGkpOwpYLQkJCWRpc2MtPnZhcmllbnQgPSBpOwpYKwkJCV9DU1NQcmlu
dERlYnVnICgiRHJpdmUgQXV0aGVudGljIC0gdXNpbmcgdmFyaWFudCAlZFxuIiwgaSk7ClgrCQkJ
ZGlzYy0+dmFyaWFudCA9IGk7ClggCQkJcmV0dXJuIGk7ClggCQl9ClggCX0KWEBAIC0xMTksNiAr
MTI0LDcgQEAKWCAJZHZkX3N0cnVjdCBzOwpYIAlpbnQgaTsKWCAKWCsjaWZuZGVmIF9fRnJlZUJT
RF9fClggCXMudHlwZSA9IERWRF9TVFJVQ1RfRElTQ0tFWTsKWCAJcy5kaXNja2V5LmFnaWQgPSBh
Z2lkOwpYIAltZW1zZXQgKHMuZGlzY2tleS52YWx1ZSwgMCwgMjA0OCk7ClhAQCAtMTM0LDYgKzE0
MCwyOSBAQApYIAlfQ1NTUHJpbnREZWJ1Z0J5dGVzICgiUmVjZWl2ZWQgRGlzYyBLZXkiLCBzLmRp
c2NrZXkudmFsdWUsIDEwKTsKWCAKWCAJbWVtY3B5IChrZXlfZGlzYywgcy5kaXNja2V5LnZhbHVl
LCAyMDQ4KTsKWCsjZWxzZQpYKwkvKgpYKwkgKiBGcmVlQlNEJ3MgZHZkX3N0cnVjdCBpcyBub3Qg
YSB1bmlvbiBhcyBpdCBpcyB3aXRoIHRoZSBvdGhlcgpYKwkgKiBwbGF0Zm9ybXM7IGhlbmNlLCB0
aGVyZSBhcmUgbm8gYWRkaXRpb25hbCBzdWItbWVtYmVyClgrCSAqIGRlcmVmZXJlbmNlcy4KWCsJ
ICovClgrClgrCXMuZm9ybWF0ID0gRFZEX1NUUlVDVF9ESVNDS0VZOwpYKwlzLmFnaWQgICA9IGFn
aWQ7ClgrCW1lbXNldCggcy5kYXRhLCAwLCAyMDQ4KTsKWCsKWCsJaWYgKGlvY3RsKCBmZCwgRFZE
SU9DUkVBRFNUUlVDVFVSRSwgJnMpIDwgMCkgewpYKwkJcGVycm9yKCAiQ291bGQgbm90IHJlYWQg
RGlzYyBLZXkiKTsKWCsJCXJldHVybiAtMTsKWCsJfQpYKwpYKwlmb3IoIGk9MDsgaTxzaXplb2Yo
cy5kYXRhKTsgaSsrKQpYKwkJcy5kYXRhW2ldIF49IGtleVs0IC0gKGkgJSBMRU5fS0VZKV07Clgr
ClgrCV9DU1NQcmludERlYnVnQnl0ZXMoICJSZWNlaXZlZCBEaXNjIEtleSIsIHMuZGF0YSwgMTAp
OwpYKwpYKwltZW1jcHkoIGtleV9kaXNjLCBzLmRhdGEsIDIwNDgpOwpYKyNlbmRpZgpYIApYIAly
ZXR1cm4gMDsKWCB9ClhAQCAtMTU2LDYgKzE4NSw3IEBAClggCWR2ZF9hdXRoaW5mbyBhaTsKWCAJ
aW50IGk7ClggClgrI2lmbmRlZiBfX0ZyZWVCU0RfXwpYIAlhaS50eXBlID0gRFZEX0xVX1NFTkRf
VElUTEVfS0VZOwpYIApYIAlhaS5sc3RrLmFnaWQgPSBhZ2lkOwpYQEAgLTE3Myw2ICsyMDMsMjUg
QEAKWCAJX0NTU1ByaW50RGVidWcgKCIgQ1BNPSVkLCBDUF9TRUM9JWQsIENHTVM9JWRcbiIsIGFp
LmxzdGsuY3BtLCBhaS5sc3RrLmNwX3NlYywgYWkubHN0ay5jZ21zKTsKWCAKWCAJbWVtY3B5IChr
ZXlfdGl0bGUsIGFpLmxzdGsudGl0bGVfa2V5LCBMRU5fS0VZKTsKWCsjZWxzZQpYKwlhaS5mb3Jt
YXQgPSBEVkRfUkVQT1JUX1RJVExFX0tFWTsKWCsJYWkuYWdpZCAgID0gYWdpZDsKWCsJYWkubGJh
ICAgID0gbGJhOwpYKwltZW1zZXQoIGFpLmtleWNoYWwsIDAsIDEwKTsKWCsKWCsJaWYgKGlvY3Rs
KCBmZCwgRFZESU9DUkVQT1JUS0VZLCAmYWkpKSB7ClgrCQlwZXJyb3IoICJHZXRUaXRsZUtleSBm
YWlsZWQiKTsKWCsJCXJldHVybiAtMTsKWCsJfQpYKyAKWCsJZm9yKCBpPTA7IGk8TEVOX0tFWTsg
aSsrKQpYKwkJYWkua2V5Y2hhbFtpXSBePSBrZXlbNCAtIChpJUxFTl9LRVkpXTsKWCsKWCsJX0NT
U1ByaW50RGVidWdCeXRlcyggIlJlY2VpdmVkIFRpdGxlIEtleSIsIGFpLmtleWNoYWwsIExFTl9L
RVkpOwpYKwlfQ1NTUHJpbnREZWJ1ZygiIENQTT0lZCwgQ1BfU0VDPSVkLCBDR01TPSVkXG4iLCBh
aS5jcG0sIGFpLmNwX3NlYywgYWkuY2dtcyk7ClgrClgrCW1lbWNweSgga2V5X3RpdGxlLCBhaS5r
ZXljaGFsLCBMRU5fS0VZKTsKWCsjZW5kaWYKWCAKWCAJcmV0dXJuIDA7ClggfQpYQEAgLTE4OSw2
ICsyMzgsNyBAQApYIHsKWCAJZHZkX2F1dGhpbmZvIGFpOwpYIApYKyNpZm5kZWYgX19GcmVlQlNE
X18KWCAJYWkudHlwZSA9IERWRF9MVV9TRU5EX0FTRjsKWCAJYWkubHNhc2YuYXNmID0gMDsKWCAK
WEBAIC0xOTgsNiArMjQ4LDE2IEBAClggCQkJcmV0dXJuIDA7ClggCQl9ClggCX0KWCsjZWxzZQpY
KwlhaS5mb3JtYXQgPSBEVkRfUkVQT1JUX0FTRjsKWCsJYWkuYWdpZCAgID0gMDsKWCsJYWkuYXNm
ICAgID0gMDsKWCsKWCsJaWYgKCEoaW9jdGwoZmQsIERWRElPQ1JFUE9SVEtFWSwgJmFpKSkpIHsK
WCsJCV9DU1NQcmludERlYnVnICgiJXNBdXRoZW50aWNhdGVkXG4iLCAoYWkuYXNmKSA/ICIiIDog
Im5vdCIpOwpYKwkJcmV0dXJuIDA7ClgrCX0KWCsjZW5kaWYKWCAJcGVycm9yICgiR2V0QVNGIik7
ClggCXJldHVybiAtMTsKWCB9ClhAQCAtMjE0LDE4ICsyNzQsMzQgQEAKWCAKWCAJLyogSW5pdCBz
ZXF1ZW5jZSwgcmVxdWVzdCBBR0lEICovClggCWZvciAodHJpZXMgPSAxOyB0cmllcyA8IDQ7ICsr
dHJpZXMpIHsKWC0JCV9DU1NQcmludERlYnVnICgiUmVxdWVzdCBBR0lEIFslZF0uLi5cbiIsIHRy
aWVzKTsKWCsJCV9DU1NQcmludERlYnVnICgiUmVxdWVzdCBBR0lEIFslZF0uLi4iLCB0cmllcyk7
ClgrI2lmbmRlZiBfX0ZyZWVCU0RfXwpYIAkJYWktPnR5cGUgPSBEVkRfTFVfU0VORF9BR0lEOwpY
IAkJYWktPmxzYS5hZ2lkID0gMDsKWCAJCXJ2ID0gIGlvY3RsIChmZCwgRFZEX0FVVEgsIGFpKTsK
WCsjZWxzZQpYKwkJYWktPmZvcm1hdCA9IERWRF9SRVBPUlRfQUdJRDsKWCsJCWFpLT5hZ2lkICAg
PSAwOwpYKwkJcnYgICAgICAgICA9IGlvY3RsKCBmZCwgRFZESU9DUkVQT1JUS0VZLCBhaSk7Clgr
I2VuZGlmClggCQlpZiAocnYgIT0gLTEpIHsKWCAJCQkvLyBmb3VuZCBrZXkKWCsJCQlfQ1NTUHJp
bnREZWJ1ZyggIkFHSUQgJWRcbiIsIGFpLT5hZ2lkKTsKWCAJCQlyZXR1cm4oIHRyaWVzKTsKWCAJ
CX0KWCsJCWVsc2UgewpYKwkJCV9DU1NQcmludERlYnVnKCJcbiIpOwpYKwkJfQpYIAkJcGVycm9y
ICgiTi9BLCBpbnZhbGlkYXRpbmciKTsKWCsjaWZuZGVmIF9fRnJlZUJTRF9fClggCQlhaS0+dHlw
ZSA9IERWRF9JTlZBTElEQVRFX0FHSUQ7ClggCQlhaS0+bHNhLmFnaWQgPSAwOwpYIAkJaW9jdGwg
KGZkLCBEVkRfQVVUSCwgYWkpOwpYKyNlbHNlClgrCQlhaS0+Zm9ybWF0ID0gRFZEX0lOVkFMSURB
VEVfQUdJRDsKWCsJCWFpLT5hZ2lkICAgPSAwOwpYKwkJaW9jdGwgKGZkLCBEVkRJT0NSRVBPUlRL
RVksIGFpKTsKWCsjZW5kaWYKWCAJfQpYIApYIAlfQ1NTUHJpbnREZWJ1ZyAoIkNhbm5vdCBnZXQg
QUdJRFxuIik7ClhAQCAtMjM0LDYgKzMxMCw3IEBAClggfQpYIApYIApYKyNpZm5kZWYgX19GcmVl
QlNEX18KWCAvKioKWCAgKiBTaW11bGF0aW9uIG9mIGEgbm9uLUNTUyBjb21wbGlhbnQgaG9zdCAo
aS5lLiB0aGUgYXV0aGVudGljYXRpb24gZmFpbHMsClggICogYnV0IGlkZWEgaXMgaGVyZSBmb3Ig
YSByZWFsIENTUyBjb21wbGlhbnQgYXV0aGVudGljYXRpb24gc2NoZW1lKS4KWEBAIC0yNjcsNyAr
MzQ0LDcgQEAKWCAKWCAJCV9DU1NQcmludERlYnVnQnl0ZXMgKCJMVSBzZW50IGNoYWxsZW5nZSIs
IGFpLT5oc2MuY2hhbCwgMTApOwpYIApYLQkJQ3J5cHRLZXkyIChkaXNjLT52YXJpZW50LCBkaXNj
LT5DaGFsbGVuZ2UsIGRpc2MtPktleTIpOwpYKwkJQ3J5cHRLZXkyIChkaXNjLT52YXJpYW50LCBk
aXNjLT5DaGFsbGVuZ2UsIGRpc2MtPktleTIpOwpYIAkJYWktPnR5cGUgPSBEVkRfSE9TVF9TRU5E
X0tFWTI7ClggCQlicmVhazsKWCAKWEBAIC0yOTgsNiArMzc1LDcgQEAKWCAKWCAJcmV0dXJuIDA7
ClggfQpYKyNlbmRpZgpYIApYIApYIC8qKgpYQEAgLTMxOSw2ICszOTcsNyBAQApYIAlmb3IgKGkg
PSAwOyBpIDwgMTA7ICsraSkKWCAJCWRpc2MtPkNoYWxsZW5nZVtpXSA9IGk7ClggClgrI2lmbmRl
ZiBfX0ZyZWVCU0RfXwpYIAkvKiBTZW5kIEFHSUQgdG8gaG9zdCAqLwpYIAlpZiAoX0NTU0F1dGhI
b3N0KCZhaSwgZGlzYykgPCAwKSB7ClggCQlfQ1NTUHJpbnREZWJ1ZyAoIlNlbmQgQUdJRCB0byBo
b3N0IGZhaWxlZFxuIik7ClhAQCAtMzcwLDEwICs0NDksODUgQEAKWCAJCV9DU1NQcmludERlYnVn
ICgiRFZEIGlzIGF1dGhlbnRpY2F0ZWRcbiIpOwpYIAllbHNlIGlmIChhaS50eXBlID09IERWRF9B
VVRIX0ZBSUxVUkUpClggCQlfQ1NTUHJpbnREZWJ1ZyAoIkRWRCBhdXRoZW50aWNhdGlvbiBmYWls
ZWRcbiIpOwpYKyNlbHNlClgrCWFnaWQgPSBhaS5hZ2lkOwpYKwpYKwkvKiBHZXQgY2hhbGxlbmdl
IGZyb20gaG9zdCAqLwpYKwpYKwlhaS5mb3JtYXQgPSBEVkRfU0VORF9DSEFMTEVOR0U7ClgrCWZv
ciAoaT0wOyBpPDEwOyArK2kpClgrCQlhaS5rZXljaGFsWzktaV0gPSBkaXNjLT5DaGFsbGVuZ2Vb
aV07ClgrClgrCV9DU1NQcmludERlYnVnKCJIb3N0IHNlbmRpbmcgY2hhbGxlbmdlOiAiKTsKWCsJ
X0NTU1ByaW50Qnl0ZXMoYWkua2V5Y2hhbCwgMTApOwpYKwlfQ1NTUHJpbnREZWJ1ZygiXG4iKTsK
WCsKWCsJLyogU2VuZCBjaGFsbGVuZ2UgdG8gTFUgKi8KWCsKWCsJaWYgKGlvY3RsKGZkLCBEVkRJ
T0NTRU5ES0VZLCAmYWkpIDwgMCkgewpYKwkJX0NTU1ByaW50RGVidWcoIlNlbmQgY2hhbGxlbmdl
IHRvIExVIGZhaWxlZFxuIik7ClgrCQlyZXR1cm4gLTE7ClgrCX0KWCsKWCsJLyogR2V0IGtleTEg
ZnJvbSBMVSAqLwpYKwpYKwlhaS5mb3JtYXQgPSBEVkRfUkVQT1JUX0tFWTE7ClgrCWlmIChpb2N0
bChmZCwgRFZESU9DUkVQT1JUS0VZLCAmYWkpIDwgMCkgewpYKwkJX0NTU1ByaW50RGVidWcoIkdl
dCBrZXkxIGZyb20gTFUgZmFpbGVkXG4iKTsKWCsJCXJldHVybiAtMTsKWCsJfQpYKwpYKwkvKiBT
ZW5kIGtleTEgdG8gaG9zdCAqLwpYKwpYKwlfQ1NTUHJpbnREZWJ1ZygiTFUgc2VudCBrZXkxOiAi
KTsKWCsJX0NTU1ByaW50Qnl0ZXMoYWkua2V5Y2hhbCwgTEVOX0tFWSk7ClgrCV9DU1NQcmludERl
YnVnKCJcbiIpOwpYKwpYKwlpZiAoX0NTU0F1dGhEcml2ZSggYWkua2V5Y2hhbCwgZGlzYykgPCAw
KSB7ClgrCQlfQ1NTUHJpbnREZWJ1ZygiU2VuZCBrZXkxIHRvIGhvc3QgZmFpbGVkXG4iKTsKWCsJ
CXJldHVybiAtMTsKWCsJfQpYKwpYKwkvKiBHZXQgY2hhbGxlbmdlIGZyb20gTFUgKi8KWCsKWCsJ
YWkuZm9ybWF0ID0gRFZEX1JFUE9SVF9DSEFMTEVOR0U7ClgrCWlmIChpb2N0bChmZCwgRFZESU9D
UkVQT1JUS0VZLCAmYWkpIDwgMCkgewpYKwkJX0NTU1ByaW50RGVidWcoIkdldCBjaGFsbGVuZ2Ug
ZnJvbSBMVSBmYWlsZWRcbiIpOwpYKwkJcmV0dXJuIC0xOwpYKwl9ClgrClgrCS8qIFNlbmQgY2hh
bGxlbmdlIHRvIGhvc3QgKi8KWCsKWCsJZm9yIChpPTA7IGk8MTA7ICsraSkKWCsJCWRpc2MtPkNo
YWxsZW5nZVtpXSA9IGFpLmtleWNoYWxbOS1pXTsKWCsKWCsJX0NTU1ByaW50RGVidWcoIkxVIHNl
bnQgY2hhbGxlbmdlOiAiKTsKWCsJX0NTU1ByaW50Qnl0ZXMoZGlzYy0+Q2hhbGxlbmdlLCAxMCk7
ClgrCV9DU1NQcmludERlYnVnKCJcbiIpOwpYKwpYKwlDcnlwdEtleTIoZGlzYy0+dmFyaWFudCwg
ZGlzYy0+Q2hhbGxlbmdlLCBkaXNjLT5LZXkyKTsKWCsKWCsJLyogR2V0IGtleTIgZnJvbSBob3N0
ICovClgrClgrCWFpLmZvcm1hdCA9IERWRF9TRU5EX0tFWTI7ClgrCWZvciAoaT0wOyBpPExFTl9L
RVk7ICsraSkKWCsJCWFpLmtleWNoYWxbNC1pXSA9IGRpc2MtPktleTJbaV07ClgrClgrCV9DU1NQ
cmludERlYnVnKCJIb3N0IHNlbmRpbmcga2V5IDI6ICIpOwpYKwlfQ1NTUHJpbnRCeXRlcyhkaXNj
LT5LZXkyLCBMRU5fS0VZKTsKWCsJX0NTU1ByaW50RGVidWcoIlxuIik7ClgrClgrCS8qIFNlbmQg
a2V5MiB0byBMVSAqLwpYKwlpZiAoaW9jdGwoZmQsIERWRElPQ1NFTkRLRVksICZhaSkgPCAwKSB7
ClgrCQlwcmludGYoIlNlbmQga2V5MiB0byBMVSBmYWlsZWQgKGV4cGVjdGVkKVxuIik7ClgrCQly
ZXR1cm4gLTE7ClgrCX0KWCsKWCsjZW5kaWYKWCAKWCAJbWVtY3B5IChkaXNjLT5DaGFsbGVuZ2Us
IGRpc2MtPktleTEsIExFTl9LRVkpOwpYIAltZW1jcHkgKGRpc2MtPkNoYWxsZW5nZStMRU5fS0VZ
LCBkaXNjLT5LZXkyLCBMRU5fS0VZKTsKWC0JQ3J5cHRCdXNLZXkgKGRpc2MtPnZhcmllbnQsIGRp
c2MtPkNoYWxsZW5nZSwgZGlzYy0+S2V5Q2hlY2spOwpYKwlDcnlwdEJ1c0tleSAoZGlzYy0+dmFy
aWFudCwgZGlzYy0+Q2hhbGxlbmdlLCBkaXNjLT5LZXlDaGVjayk7ClggClggCV9DU1NQcmludERl
YnVnQnl0ZXMgKCJSZWNlaXZlZCBTZXNzaW9uIEtleVxuIiwgJmRpc2MtPktleUNoZWNrWzBdLCBM
RU5fS0VZKTsKWCAKWEBAIC00NDUsNiArNTk5LDcgQEAKWCB7ClggCWR2ZF9zdHJ1Y3QgZHZkOwpY
IApYKyNpZm5kZWYgX19GcmVlQlNEX18KWCAJZHZkLmNvcHlyaWdodC50eXBlID0gRFZEX1NUUlVD
VF9DT1BZUklHSFQ7ClggCWR2ZC5jb3B5cmlnaHQubGF5ZXJfbnVtID0gMDsKWCAKWEBAIC00NTQs
NCArNjA5LDE1IEBAClggCX0KWCAKWCAJcmV0dXJuIGR2ZC5jb3B5cmlnaHQuY3BzdDsgICAgICAv
LyAwIC4uLiBub3QgZW5jcnlwdGVkClgrI2Vsc2UKWCsJZHZkLmZvcm1hdCAgICA9IERWRF9TVFJV
Q1RfQ09QWVJJR0hUOwpYKwlkdmQubGF5ZXJfbnVtID0gMDsKWCsKWCsJaWYgKGlvY3RsKCBmZCwg
RFZESU9DUkVBRFNUUlVDVFVSRSwgJmR2ZCkgPCAwKSB7ClgrCQlfQ1NTUHJpbnREZWJ1ZyAoImVy
cm9yIHVzaW5nIGlvY3RsIERWRElPQ1JFQURTVFJVQ1RVUkVcbiIpOwpYKwkJcmV0dXJuIC0xOwpY
Kwl9ClgrClgrCXJldHVybiBkdmQuY3BzdDsgICAgICAgICAgICAgICAgLy8gMCAuLi4gbm90IGVu
Y3J5cHRlZApYKyNlbmRpZgpYIH0KRU5ELW9mLWxpYmNzcy9maWxlcy9wYXRjaC1hYwplY2hvIHgg
LSBsaWJjc3MvZmlsZXMvcGF0Y2gtYWQKc2VkICdzL15YLy8nID5saWJjc3MvZmlsZXMvcGF0Y2gt
YWQgPDwgJ0VORC1vZi1saWJjc3MvZmlsZXMvcGF0Y2gtYWQnClgtLS0gc3JjL2Nzc19jYXQuYy5v
cmlnCVR1ZSBGZWIgMTMgMTY6NTk6MjcgMjAwMQpYKysrIHNyYy9jc3NfY2F0LmMJV2VkIEp1biAy
MCAxNjozMzoyNCAyMDAxClhAQCAtMjA4LDcgKzIwOCw5IEBAClggICoKWCAgKi8KWCAKWCsjaWZk
ZWYgX19saW51eF9fClggI2luY2x1ZGUgPGxpbnV4L2ZzLmg+ClgrI2VuZGlmClggClggaW50IHBh
dGhfdG9fbGJhIChjaGFyICpwKQpYIHsKWEBAIC0yMTksOCArMjIxLDEzIEBAClggCQlyZXR1cm4g
LTE7ClggCX0KWCAKWCsjaWZuZGVmIF9fRnJlZUJTRF9fClggCWlmIChpb2N0bChmZCwgRklCTUFQ
LCAmbGJhKSA8IDApIHsKWCAJCXBlcnJvciAoImlvY3RsIEZJQk1BUCIpOwpYKyNlbHNlClgrCWlm
IChpb2N0bChmZCwgRklPR0VUTEJBLCAmbGJhKSA8IDApIHsKWCsJCXBlcnJvciAoImlvY3RsIEZJ
T0dFVExCQSIpOwpYKyNlbmRpZgpYIAkJY2xvc2UoZmQpOwpYIAkJcmV0dXJuIC0xOwpYIAl9ClhA
QCAtMjUyLDYgKzI1OSwxNCBAQApYIAkJZ290byBjbGVhbl91cDsKWCAJfQpYICNlbmRpZgpYKwpY
KyNpZmRlZiBfX0ZyZWVCU0RfXwpYKwlpZiAoIXN0cmNtcCggYXJndlthcmdpXSwgIi0iKSkgewpY
KwkJYXJndlthcmdpXSA9IChjaGFyICopbWFsbG9jKCBzdHJsZW4oICIvZGV2L3N0ZGluIikgKyAx
KTsKWCsJCXN0cmNweSggYXJndlthcmdpXSwgIi9kZXYvc3RkaW4iKTsKWCsJfQpYKyNlbmRpZgpY
KwpYIAlpZiAoKGZkID0gb3BlbiAoYXJndlthcmdpXSwgT19SRE9OTFkpKSA9PSAtMSkgewpYIAkJ
cGVycm9yICgiY2FuJ3Qgb3BlbiBEVkQiKTsKWCAJCWdvdG8gY2xlYW5fdXA7CkVORC1vZi1saWJj
c3MvZmlsZXMvcGF0Y2gtYWQKZWNobyB4IC0gbGliY3NzL2ZpbGVzL3BhdGNoLWFlCnNlZCAncy9e
WC8vJyA+bGliY3NzL2ZpbGVzL3BhdGNoLWFlIDw8ICdFTkQtb2YtbGliY3NzL2ZpbGVzL3BhdGNo
LWFlJwpYLS0tIHNyYy9kdmRpbmZvLmMub3JpZwlUdWUgRmViIDEzIDE2OjU5OjI3IDIwMDEKWCsr
KyBzcmMvZHZkaW5mby5jCVdlZCBKdW4gMjAgMTY6NTk6MjQgMjAwMQpYQEAgLTI3LDcgKzI3LDcg
QEAKWCAjaW5jbHVkZSA8c3RkbGliLmg+ClggI2luY2x1ZGUgPGZjbnRsLmg+ClggI2luY2x1ZGUg
PHN0cmluZy5oPgpYLSNpZiBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNE
X18pClgrI2lmIGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwg
ZGVmaW5lZChfX0ZyZWVCU0RfXykKWCAjIGluY2x1ZGUgPHN5cy9kdmRpby5oPgpYICNlbGlmIGRl
ZmluZWQoX19saW51eF9fKQpYICMgaW5jbHVkZSA8bGludXgvY2Ryb20uaD4KWEBAIC0zOSw2ICsz
OSwxMCBAQApYIApYICNpbmNsdWRlICJjc3MuaCIKWCAKWCsjaWZkZWYgX19GcmVlQlNEX18KWCt0
eXBlZGVmIHN0cnVjdCBkdmRfc3RydWN0IGR2ZF9zdHJ1Y3Q7ClgrI2VuZGlmClgrClggI2RlZmlu
ZSBEVkQJIi9kZXYvY2Ryb20iClggClggLyoqClhAQCAtNTIsNiArNTYsNyBAQApYIAlpbnQgaTsK
WCAJaW50IGxheWVycyA9IDQ7ClggClgrI2lmbmRlZiBfX0ZyZWVCU0RfXwpYIAlkLnBoeXNpY2Fs
LnR5cGUgPSBEVkRfU1RSVUNUX1BIWVNJQ0FMOwpYIAlmb3IgKGk9MDsgaTxsYXllcnM7IGkrKykg
ewpYIAkJZC5waHlzaWNhbC5sYXllcl9udW0gPSBpOwpYQEAgLTYyLDEyICs2NywyOCBAQApYIAkJ
fQpYIApYIAkJbGF5ZXIgPSAmZC5waHlzaWNhbC5sYXllcltpXTsKWCsjZWxzZQpYKwlkLmZvcm1h
dCA9IERWRF9TVFJVQ1RfUEhZU0lDQUw7ClgrCW1lbXNldCggZC5kYXRhLCAwLCAyMDQ4KTsKWCsJ
Zm9yIChpPTA7IGk8bGF5ZXJzOyBpKyspIHsKWCsJCWQubGF5ZXJfbnVtID0gaTsKWCsJCWlmIChp
b2N0bCAoZmQsIERWRElPQ1JFQURTVFJVQ1RVUkUsICZkKTwwKSB7ClgrCQkJZnByaW50ZiAoc3Rk
ZXJyLCAiQ291bGQgbm90IHJlYWQgUGh5c2ljYWwgbGF5ZXIgJWRcbiIsIGkpOwpYKwkJCXJldHVy
biAwOwpYKwkJfQpYKwpYKwkJbGF5ZXIgPSAoc3RydWN0IGR2ZF9sYXllciAqKSgmKGQuZGF0YVtp
KnNpemVvZihzdHJ1Y3QgZHZkX2xheWVyKV0pKTsKWCsjZW5kaWYKWCAJCWxheWVycyA9IGxheWVy
LT5ubGF5ZXJzICsgMTsKWCAKWCAJCXByaW50ZiAoIkxheWVyICVkWyVkXVxuIiwgaSwgbGF5ZXJz
KTsKWCAJCXByaW50ZiAoIiBCb29rIFZlcnNpb246ICAgJWRcbiIsIGxheWVyLT5ib29rX3ZlcnNp
b24pOwpYIAkJcHJpbnRmICgiIEJvb2sgVHlwZTogICAgICAlZFxuIiwgbGF5ZXItPmJvb2tfdHlw
ZSk7ClgrI2lmbmRlZiBfX0ZyZWVCU0RfXwpYIAkJcHJpbnRmICgiIE1pbiBSYXRlOiAgICAgICAl
ZFxuIiwgbGF5ZXItPm1pbl9yYXRlKTsKWCsjZWxzZQpYKwkJcHJpbnRmICgiIE1heCBSYXRlOiAg
ICAgICAlZFxuIiwgbGF5ZXItPm1heF9yYXRlKTsKWCsjZW5kaWYKWCAJCXByaW50ZiAoIiBEaXNj
IFNpemU6ICAgICAgJWRcbiIsIGxheWVyLT5kaXNjX3NpemUpOwpYIAkJcHJpbnRmICgiIExheWVy
IFR5cGU6ICAgICAlZFxuIiwgbGF5ZXItPmxheWVyX3R5cGUpOwpYIAkJcHJpbnRmICgiIFRyYWNr
IFBhdGg6ICAgICAlZFxuIiwgbGF5ZXItPnRyYWNrX3BhdGgpOwpYQEAgLTkyLDYgKzExMyw3IEBA
ClggewpYIAlkdmRfc3RydWN0IGQ7ClggClgrI2lmbmRlZiBfX0ZyZWVCU0RfXwpYIAlkLmNvcHly
aWdodC50eXBlID0gRFZEX1NUUlVDVF9DT1BZUklHSFQ7ClggCWQuY29weXJpZ2h0LmxheWVyX251
bSA9IDA7ClggCQpYQEAgLTEwMSw2ICsxMjMsMTcgQEAKWCAJfQpYIApYIAlwcmludGYgKCJDb3B5
cmlnaHQ6IENQU1Q9JWQsIFJNST0lIzAyeFxuIiwgZC5jb3B5cmlnaHQuY3BzdCwgZC5jb3B5cmln
aHQucm1pKTsKWCsjZWxzZQpYKwlkLmZvcm1hdCAgICA9IERWRF9TVFJVQ1RfQ09QWVJJR0hUOwpY
KwlkLmxheWVyX251bSA9IDA7ClgrClgrCWlmIChpb2N0bChmZCwgRFZESU9DUkVBRFNUUlVDVFVS
RSwgJmQpPDApIHsKWCsJCWZwcmludGYgKHN0ZGVyciwgIkNvdWxkIG5vdCByZWFkIENvcHlyaWdo
dCBTdHJ1Y3RcbiIpOwpYKwkJcmV0dXJuIDA7ClgrCX0KWCsKWCsJcHJpbnRmICgiQ29weXJpZ2h0
OiBDUFNUPSVkLCBSTUk9JSMwMnhcbiIsIGQuY3BzdCwgZC5ybWkpOwpYKyNlbmRpZgpYIApYIAly
ZXR1cm4gMTsKWCB9ClhAQCAtMTE0LDYgKzE0Nyw3IEBAClggewpYIAlkdmRfc3RydWN0IGR2ZDsK
WCAKWCsjaWZuZGVmIF9fRnJlZUJTRF9fClggCWR2ZC5jb3B5cmlnaHQudHlwZSA9IERWRF9TVFJV
Q1RfQ09QWVJJR0hUOwpYIAlkdmQuY29weXJpZ2h0LmxheWVyX251bSA9IDA7ClggClhAQCAtMTI1
LDYgKzE1OSwxOSBAQApYIAlwcmludGYgKCJEaXNjIGlzICVzXG4iLCBkdmQuY29weXJpZ2h0LmNw
c3QgPyAiZW5jcnlwdGVkLiIgOiAiTk9UIGVuY3J5cHRlZCBhdCBhbGwgLSBubyBuZWVkIHRvIHVz
ZSBDU1MhISEiKTsKWCAKWCAJcmV0dXJuIGR2ZC5jb3B5cmlnaHQuY3BzdDsKWCsjZWxzZQpYKwlk
dmQuZm9ybWF0ID0gRFZEX1NUUlVDVF9DT1BZUklHSFQ7ClgrCWR2ZC5sYXllcl9udW0gPSAwOwpY
KwpYKwlpZiAoaW9jdGwgKGZkLCBEVkRJT0NSRUFEU1RSVUNUVVJFLCAmZHZkKSA8IDApIHsKWCsJ
CXBlcnJvciAoIkRWRElPQ1JFQURTVFJVQ1RVUkUiKTsKWCsJCXJldHVybiAtMTsKWCsJfQpYKwpY
KwlwcmludGYoICJEaXNjIGlzICVzXG4iLCBkdmQuY3BzdCA/ICJlbmNyeXB0ZWQuIiA6ICJOT1Qg
ZW5jcnlwdGVkIGF0IGFsbCAtIG5vIG5lZWQgdG8gdXNlIENTUyEhISIpOwpYKwpYKwlyZXR1cm4g
ZHZkLmNwc3Q7ClgrI2VuZGlmClggfQpYIApYIApFTkQtb2YtbGliY3NzL2ZpbGVzL3BhdGNoLWFl
CmVjaG8geCAtIGxpYmNzcy9maWxlcy9wYXRjaC1hZgpzZWQgJ3MvXlgvLycgPmxpYmNzcy9maWxl
cy9wYXRjaC1hZiA8PCAnRU5ELW9mLWxpYmNzcy9maWxlcy9wYXRjaC1hZicKWC0tLSBzcmMvcmVz
ZXRfZHZkLmMub3JpZwlUdWUgRmViIDEzIDE2OjU5OjI3IDIwMDEKWCsrKyBzcmMvcmVzZXRfZHZk
LmMJCVdlZCBKdW4gMjAgMTY6NTk6MzggMjAwMQpYQEAgLTI1LDcgKzI1LDcgQEAKWCAjaW5jbHVk
ZSA8c3RkaW8uaD4KWCAjaW5jbHVkZSA8c3RyaW5nLmg+ClggI2luY2x1ZGUgPGZjbnRsLmg+Clgt
I2lmIGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykKWCsjaWYgZGVm
aW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKSB8fCBkZWZpbmVkKF9fRnJl
ZUJTRF9fKQpYICMgaW5jbHVkZSA8c3lzL2R2ZGlvLmg+ClggI2VsaWYgZGVmaW5lZChfX2xpbnV4
X18pClggIyBpbmNsdWRlIDxsaW51eC9jZHJvbS5oPgpYQEAgLTM3LDYgKzM3LDEwIEBAClggClgg
c3RhdGljIGludCBmZDsKWCAKWCsjaWZkZWYgX19GcmVlQlNEX18KWCt0eXBlZGVmIHN0cnVjdCBk
dmRfYXV0aGluZm8gZHZkX2F1dGhpbmZvOwpYKyNlbmRpZgpYKwpYICNkZWZpbmUgRFZECSIvZGV2
L2Nkcm9tIgpYIApYIGludCBtYWluIChpbnQgYWMsIGNoYXIgKiphdikKWEBAIC01Nyw5ICs2MSwx
NSBAQApYIApYIAlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7ClggCQltZW1zZXQoJmFpLCAwLCBz
aXplb2YoYWkpKTsKWCsjaWZuZGVmIF9fRnJlZUJTRF9fClggCQlhaS50eXBlID0gRFZEX0lOVkFM
SURBVEVfQUdJRDsKWCAJCWFpLmxzYS5hZ2lkID0gaTsKWCAJCWlvY3RsKGZkLCBEVkRfQVVUSCwg
JmFpKTsKWCsjZWxzZQpYKwkJYWkuZm9ybWF0ID0gRFZEX0lOVkFMSURBVEVfQUdJRDsKWCsJCWFp
LmFnaWQgPSBpOwpYKwkJaW9jdGwoZmQsIERWRElPQ1JFUE9SVEtFWSwgJmFpKTsKWCsjZW5kaWYK
WCAJfQpYIApYIAlyZXR1cm4gMDsKRU5ELW9mLWxpYmNzcy9maWxlcy9wYXRjaC1hZgplY2hvIHgg
LSBsaWJjc3MvZmlsZXMvcGF0Y2hlcy1haApzZWQgJ3MvXlgvLycgPmxpYmNzcy9maWxlcy9wYXRj
aGVzLWFoIDw8ICdFTkQtb2YtbGliY3NzL2ZpbGVzL3BhdGNoZXMtYWgnClgtLS0gbTQvZHZkLm00
Lm9yaWcJVGh1IE5vdiAyMyAxNzoyMToyMiAyMDAwClgrKysgbTQvZHZkLm00CQlXZWQgSnVuIDIw
IDE2OjMzOjI0IDIwMDEKWEBAIC00Miw3ICs0Miw3IEBAClggCQlDRkxBR1M9IiRDRkxBR1MgLUkk
S0VSTkVMX0lOQ0xVREVTIgpYIApYIAkJQUNfVFJZX0NPTVBJTEUoWwpYLQkJCSNpZiBkZWZpbmVk
KF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pClgrCQkJI2lmIGRlZmluZWQoX19O
ZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0RfXykK
WCAJCQkjIGluY2x1ZGUgPHN5cy9kdmRpby5oPgpYIAkJCSNlbGlmIGRlZmluZWQoX19saW51eF9f
KQpYIAkJCSMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CkVORC1vZi1saWJjc3MvZmlsZXMvcGF0Y2hl
cy1haAplY2hvIHggLSBsaWJjc3MvZGlzdGluZm8Kc2VkICdzL15YLy8nID5saWJjc3MvZGlzdGlu
Zm8gPDwgJ0VORC1vZi1saWJjc3MvZGlzdGluZm8nClhNRDUgKGxpYmNzcy0wLjEuMC50YXIuZ3op
ID0gZjMyODA3N2Y1NmY2OTBkMDEzNmExMDYwODBjMzU5ZGYKRU5ELW9mLWxpYmNzcy9kaXN0aW5m
bwplY2hvIHggLSBsaWJjc3MvcGtnLWNvbW1lbnQKc2VkICdzL15YLy8nID5saWJjc3MvcGtnLWNv
bW1lbnQgPDwgJ0VORC1vZi1saWJjc3MvcGtnLWNvbW1lbnQnClhMaWJyYXJ5IHRvIGJydXRlIGZv
cmNlIGRlY3J5cHQgZHZkIHZpZGVvcwpFTkQtb2YtbGliY3NzL3BrZy1jb21tZW50CmVjaG8geCAt
IGxpYmNzcy9NYWtlZmlsZQpzZWQgJ3MvXlgvLycgPmxpYmNzcy9NYWtlZmlsZSA8PCAnRU5ELW9m
LWxpYmNzcy9NYWtlZmlsZScKWCMgTmV3IHBvcnRzIGNvbGxlY3Rpb24gbWFrZWZpbGUgZm9yOiAg
IGxpYmNzcwpYIyBEYXRlIGNyZWF0ZWQ6ICAgICAgICAyMCBKdW5lIDIwMDEKWCMgV2hvbTogICAg
ICAgICAgICAgICAgClgjClgjICRGcmVlQlNEJApYIwpYClhQT1JUTkFNRT0JbGliY3NzClhQT1JU
VkVSU0lPTj0JMC4xLjAKWENBVEVHT1JJRVM9CWdyYXBoaWNzClhNQVNURVJfU0lURVM9ICAgaHR0
cDovL3d3dy5saW51eHZpZGVvLm9yZy9vbXMvZGF0YS8KWApYTUFJTlRBSU5FUj0JSmFtZXNfQm9u
ZF83OUB5YWhvby5jb20KWApYSU5TVEFMTFNfU0hMSUI9CXllcwpYClhHTlVfQ09ORklHVVJFPQl5
ZXMKWFVTRV9HTUFLRT0JeWVzClgKWEJVSUxEX0RFUEVORFM9IGF1dG9tYWtlOiR7UE9SVFNESVJ9
L2RldmVsL2F1dG9jb25mClgKWHByZS1jb25maWd1cmU6ClgJQGNkICR7V1JLU1JDfSAmJiBhdXRv
bWFrZQpYClguaW5jbHVkZSA8YnNkLnBvcnQubWs+CkVORC1vZi1saWJjc3MvTWFrZWZpbGUKZXhp
dAoK

--------------Boundary-00=_C7IHYKFQN29DWWVL1GHJ--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?01062507500001.00449>