[Lcdproc] 2 line BIGNUM display on HD47780
Robin Gilks
g8ecj@gilks.org
Thu Jun 15 09:06:02 2006
------=_20060615210535_83630
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
> Robin Gilks wrote:
>> Greetings
>>
>> I know that the current implementation of BIGNUM on the HD47780 display
>> requires at least 4 lines, I wondered if anyone had done it on a two
>> line
>> display using the 8 available user defined characters.
>>
> I've done it about 3 or 3 month ago, the patch against lcdproc 0.5.0 is
> somewhere in the mailinglist (there is a picture of the display too).
> The threat is named: "big numbers on hd44780 cvs". Unfortunately it is
> NOT compatible with the recent CVS-version anymore.
> The Feature had been included in the serialVFD and the
> crystalFontzPacket driver so far. I'll include it into the HD47780
> driver, as soon I have the time to do it and nobody else has done it
> before. I'm also planing to fix the lcdproc-client for the use on ?x16
> and ?x12 displays.
>> I've whipped up two character sets (on paper only so far), one that is
>> one
>> char wide and 2 lines tall and the other 2 chars wide and 2 lines tall.
>>
> The Characters are stored in advbignum.c now. They are 2 lines high, 3
> characters wide and compatible with bigclock of t the lcdproc-client.
> (All big numbers have to be 3 characters wide!)
>> I'm mostly trying for a clock I can read across the room (funny how the
>> eyes start to fade after over half a century!), so I'm only looking for
>> 0-9 and a seperator of some sort (colon or whatever).
>>
>> If someone has already got this wheel, I won't reinvent, it but if there
>> is nothing available in anyones patch library then I'll implement the
>> two
>> ideas I have to see which is the more readable.
>>
>> Cheers for now...
>>
>>
I found it thanks Stefan and it works great. Here is an updated patch
against 0.5.0 stable and also a patch for anyone interested that fixes a
problem with flickering backlight on a single winamp wired hd47780
didplay.
Now to implement bignum time display in Mythtv :-)
--
Robin Gilks
------=_20060615210535_83630
Content-Type: application/octet-stream; name="lcdproc-0.5.0_backlight.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="lcdproc-0.5.0_backlight.patch"
ZGlmZiAtTmF1ciBsY2Rwcm9jLTAuNS4wLm9yaWcvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC13aW5h
bXAuYyBsY2Rwcm9jLTAuNS4wL3NlcnZlci9kcml2ZXJzL2hkNDQ3ODAtd2luYW1wLmMKLS0tIGxj
ZHByb2MtMC41LjAub3JpZy9zZXJ2ZXIvZHJpdmVycy9oZDQ0NzgwLXdpbmFtcC5jCTIwMDYtMDQt
MDggMDI6NTQ6MjkuMDAwMDAwMDAwICsxMjAwCisrKyBsY2Rwcm9jLTAuNS4wL3NlcnZlci9kcml2
ZXJzL2hkNDQ3ODAtd2luYW1wLmMJMjAwNi0wNi0wOCAyMjowOTowMC4wMDAwMDAwMDAgKzEyMDAK
QEAgLTEzNyw3ICsxMzcsOSBAQAogCXBvcnRDb250cm9sIHw9IHAtPmJhY2tsaWdodF9iaXQ7CiAK
IAlpZiAoZGlzcGxheUlEID09IDApCi0JCWVuYWJsZUxpbmVzID0gRW5NYXNrWzBdIHwgRW5NYXNr
WzFdIHwgKHAtPm51bURpc3BsYXlzPT0zID8gRW5NYXNrWzJdIDogMCk7CisJCWVuYWJsZUxpbmVz
ID0gRW5NYXNrWzBdIAorCQl8ICgocC0+aGF2ZV9iYWNrbGlnaHQpID8gMCA6IEVuTWFza1sxXSkK
KwkJfCAocC0+bnVtRGlzcGxheXM9PTMgPyBFbk1hc2tbMl0gOiAwKTsKIAllbHNlCiAJCWVuYWJs
ZUxpbmVzID0gRW5NYXNrW2Rpc3BsYXlJRCAtIDFdOwogCg==
------=_20060615210535_83630
Content-Type: application/octet-stream; name="lcdproc-0.5.0_bignum.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="lcdproc-0.5.0_bignum.patch"
ZGlmZiAtcHVyIGxjZHByb2MtMC41LjAub3JpZy9jbGllbnRzL2xjZHByb2MvY2hyb25vLmMgbGNk
cHJvYy0wLjUuMC9jbGllbnRzL2xjZHByb2MvY2hyb25vLmMKLS0tIGxjZHByb2MtMC41LjAub3Jp
Zy9jbGllbnRzL2xjZHByb2MvY2hyb25vLmMJMjAwNi0wNC0xNCAyMTo1NTowOS4wMDAwMDAwMDAg
KzEyMDAKKysrIGxjZHByb2MtMC41LjAvY2xpZW50cy9sY2Rwcm9jL2Nocm9uby5jCTIwMDYtMDYt
MTUgMTg6NTM6NTUuMDAwMDAwMDAwICsxMjAwCkBAIC0zODgsNyArMzg4LDcgQEAgYmlnX2Nsb2Nr
X3NjcmVlbiAoaW50IHJlcCwgaW50IGRpc3BsYXksIAogCXN0YXRpYyBpbnQgaGVhcnRiZWF0ID0g
MDsKIAlpbnQgaiA9IDA7CiAKLQlpZiAobGNkX2hndCA8IDQpCisJaWYgKGxjZF9oZ3QgPCAyKQog
CQlyZXR1cm4gMDsKIAogCS8vIHRvZ2dsZSBjb2xvbiBkaXNwbGF5CmRpZmYgLXB1ciBsY2Rwcm9j
LTAuNS4wLm9yaWcvc2VydmVyL2RyaXZlcnMvTWFrZWZpbGUuYW0gbGNkcHJvYy0wLjUuMC9zZXJ2
ZXIvZHJpdmVycy9NYWtlZmlsZS5hbQotLS0gbGNkcHJvYy0wLjUuMC5vcmlnL3NlcnZlci9kcml2
ZXJzL01ha2VmaWxlLmFtCTIwMDYtMDQtMTQgMDI6MTY6MzguMDAwMDAwMDAwICsxMjAwCisrKyBs
Y2Rwcm9jLTAuNS4wL3NlcnZlci9kcml2ZXJzL01ha2VmaWxlLmFtCTIwMDYtMDYtMTUgMTg6NTc6
MTUuMDAwMDAwMDAwICsxMjAwCkBAIC0zMSw3ICszMSw3IEBAIENGb250elBhY2tldF9MREFERCA9
IGxpYkxDRC5hCiBjdXJzZXNfTERBREQgPSAgICAgICBATElCQ1VSU0VTQAogQ3dMbnhfTERBREQg
PSAgICAgICAgbGliTENELmEKIGdsY2RsaWJfTERBREQgPSAgICAgIGxpYkxDRC5hIEBMSUJHTENE
QAotaGQ0NDc4MF9MREFERCA9ICAgICAgbGliTENELmEgQEhENDQ3ODBfRFJJVkVSU0AgQGxpYnVz
Yl9saWJzQAoraGQ0NDc4MF9MREFERCA9ICAgICAgbGliTENELmEgQEhENDQ3ODBfRFJJVkVSU0Ag
QGxpYnVzYl9saWJzQCBsaWJiaWdudW0uYQogaGQ0NDc4MF9ERVBFTkRFTkNJRVMgPSBASEQ0NDc4
MF9EUklWRVJTQAogaWNwX2ExMDZfTERBREQgPSAgICAgbGliTENELmEKIGltb25fTERBREQgPSAg
ICAgICAgIGxpYkxDRC5hCkBAIC02MSw3ICs2MSw3IEBAIGN1cnNlc19TT1VSQ0VTID0gICAgIGxj
ZC5oIGN1cnNlc19kcnYuaCAKIEN3TG54X1NPVVJDRVMgPSAgICAgIGxjZC5oIGxjZF9saWIuaCBD
d0xueC5jIEN3TG54LmggcmVwb3J0LmgKIGdsY2RsaWJfU09VUkNFUyA9ICAgIGxjZC5oIGxjZF9s
aWIuaCBnbGNkbGliLmggZ2xjZGxpYi5jIHJlcG9ydC5oCiBnbGtfU09VUkNFUyA9ICAgICAgICBs
Y2QuaCBnbGsuYyBnbGsuaCBnbGtwcm90by5jIGdsa3Byb3RvLmggcmVwb3J0LmgKLWhkNDQ3ODBf
U09VUkNFUyA9ICAgIGxjZC5oIGxjZF9saWIuaCBoZDQ0NzgwLmggaGQ0NDc4MC5jIGhkNDQ3ODAt
ZHJpdmVycy5oIGhkNDQ3ODAtbG93LmggaGQ0NDc4MC1jaGFybWFwLmggcmVwb3J0LmgKK2hkNDQ3
ODBfU09VUkNFUyA9ICAgIGxjZC5oIGxjZF9saWIuaCBoZDQ0NzgwLmggaGQ0NDc4MC5jIGhkNDQ3
ODAtZHJpdmVycy5oIGhkNDQ3ODAtbG93LmggaGQ0NDc4MC1jaGFybWFwLmggcmVwb3J0LmggYWR2
X2JpZ251bS5oCiBFWFRSQV9oZDQ0NzgwX1NPVVJDRVMgPSBoZDQ0NzgwLTRiaXQuYyBoZDQ0Nzgw
LTRiaXQuaCBoZDQ0NzgwLWV4dDhiaXQuYyBoZDQ0NzgwLWV4dDhiaXQuaCBsY2Rfc2VtLmMgbGNk
X3NlbS5oIGhkNDQ3ODAtc2VyaWFsTHB0LmMgaGQ0NDc4MC1zZXJpYWxMcHQuaCBoZDQ0NzgwLXdp
bmFtcC5jIGhkNDQ3ODAtd2luYW1wLmggaGQ0NDc4MC1waWNhbmxjZC5jIGhkNDQ3ODAtcGljYW5s
Y2QuaCBoZDQ0NzgwLWJ3Y3QtdXNiLmMgaGQ0NDc4MC1id2N0LXVzYi5oIGhkNDQ3ODAtbGNkc2Vy
aWFsaXplci5jIGhkNDQ3ODAtbGNkc2VyaWFsaXplci5oIGhkNDQ3ODAtbGlzMi5jIGhkNDQ3ODAt
bGlzMi5oIGhkNDQ3ODAtaTJjLmMgaGQ0NDc4MC1pMmMuaCBwb3J0LmggbHB0LXBvcnQuaCB0aW1p
bmcuaAogCiBpY3BfYTEwNl9TT1VSQ0VTID0gICBsY2QuaCBsY2RfbGliLmggaWNwX2ExMDYuYyBp
Y3BfYTEwNi5oIHJlcG9ydC5oCmRpZmYgLXB1ciBsY2Rwcm9jLTAuNS4wLm9yaWcvc2VydmVyL2Ry
aXZlcnMvYWR2X2JpZ251bS5jIGxjZHByb2MtMC41LjAvc2VydmVyL2RyaXZlcnMvYWR2X2JpZ251
bS5jCi0tLSBsY2Rwcm9jLTAuNS4wLm9yaWcvc2VydmVyL2RyaXZlcnMvYWR2X2JpZ251bS5jCTIw
MDYtMDQtMDggMDI6NTQ6MjkuMDAwMDAwMDAwICsxMjAwCisrKyBsY2Rwcm9jLTAuNS4wL3NlcnZl
ci9kcml2ZXJzL2Fkdl9iaWdudW0uYwkyMDA2LTA2LTE1IDE4OjU1OjU1LjAwMDAwMDAwMCArMTIw
MApAQCAtODksNiArODksNyBAQCBzdGF0aWMgdm9pZCBhZHZfYmlnbnVtX251bV8yXzAgKERyaXZl
ciAqCiBzdGF0aWMgdm9pZCBhZHZfYmlnbnVtX251bV8yXzEgKERyaXZlciAqZHJ2dGhpcywgaW50
IHgsIGludCBudW0sIGludCBoZWlnaHQsIGludCBkb19pbml0KTsKIHN0YXRpYyB2b2lkIGFkdl9i
aWdudW1fbnVtXzJfMiAoRHJpdmVyICpkcnZ0aGlzLCBpbnQgeCwgaW50IG51bSwgaW50IGhlaWdo
dCwgaW50IGRvX2luaXQpOwogc3RhdGljIHZvaWQgYWR2X2JpZ251bV9udW1fMl81IChEcml2ZXIg
KmRydnRoaXMsIGludCB4LCBpbnQgbnVtLCBpbnQgaGVpZ2h0LCBpbnQgZG9faW5pdCk7CitzdGF0
aWMgdm9pZCBhZHZfYmlnbnVtX251bV8yXzYgKERyaXZlciAqZHJ2dGhpcywgaW50IHgsIGludCBu
dW0sIGludCBoZWlnaHQsIGludCBkb19pbml0KTsKIHN0YXRpYyB2b2lkIGFkdl9iaWdudW1fbnVt
XzJfMjggKERyaXZlciAqZHJ2dGhpcywgaW50IHgsIGludCBudW0sIGludCBoZWlnaHQsIGludCBk
b19pbml0KTsKIAogc3RhdGljIHZvaWQgYWR2X2JpZ251bV9udW1fNF8wIChEcml2ZXIgKmRydnRo
aXMsIGludCB4LCBpbnQgbnVtLCBpbnQgaGVpZ2h0LCBpbnQgZG9faW5pdCk7CkBAIC0xMTcsOSAr
MTE4LDEyIEBAIGxpYl9hZHZfYmlnbnVtKERyaXZlciAqZHJ2dGhpcywgaW50IHgsIGkKIAkJCWVs
c2UgaWYgKGN1c3RvbWNoYXJzIDwgNSl7Ly8gMiBsaW5lcyBhbmQgY3VzdG9tY2hhcnMgPSAyIC4u
LiA0CiAJCQkJYWR2X2JpZ251bV9udW1fMl8yIChkcnZ0aGlzLCB4LCBudW0sIGhlaWdodCwgZG9f
aW5pdCk7CiAJCQkJfQotCQkJZWxzZSBpZiAoY3VzdG9tY2hhcnMgPCAyOCl7IC8vIDIgbGluZXMg
YW5kIGN1c3RvbWNoYXJzID0gNSAuLi4gMjcKLQkJCQlhZHZfYmlnbnVtX251bV8yXzUgKGRydnRo
aXMsIHgsIG51bSwgaGVpZ2h0LCBkb19pbml0KTsKLQkJCQl9CisgCQkJZWxzZSBpZiAoY3VzdG9t
Y2hhcnMgPCA2KXsvLyAyIGxpbmVzIGFuZCBjdXN0b21jaGFycyA9IDUKKyAgCQkJCWFkdl9iaWdu
dW1fbnVtXzJfNSAoZHJ2dGhpcywgeCwgbnVtLCBoZWlnaHQsIGRvX2luaXQpOworICAJCQkJfQor
IAkJCWVsc2UgaWYgKGN1c3RvbWNoYXJzIDwgMjgpeyAvLyAyIGxpbmVzIGFuZCBjdXN0b21jaGFy
cyA9IDYgLi4uIDI3CisgCQkJCWFkdl9iaWdudW1fbnVtXzJfNiAoZHJ2dGhpcywgeCwgbnVtLCBo
ZWlnaHQsIGRvX2luaXQpOworIAkJCQl9CiAJCQllbHNlIHsgLy8gMiBsaW5lcyBhbmQgY3VzdG9t
Y2hhcnMgPj0gMjgKIAkJCQlhZHZfYmlnbnVtX251bV8yXzI4IChkcnZ0aGlzLCB4LCBudW0sIGhl
aWdodCwgZG9faW5pdCk7CiAJCQkJfQpAQCAtNTE4LDcgKzUyMiwxMjcgQEAgc3RhdGljIHZvaWQg
YWR2X2JpZ251bV9udW1fMl81IChEcml2ZXIgKgogCQl9CiAJCWFkdl9iaWdudW1fd3JpdGVfbnVt
IChkcnZ0aGlzLCBudW1fbWFwLCB4LCBudW0sIGhlaWdodCk7IC8vIHdyaXRlIHRoZSBudW1iZXIK
IH0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gVGhpcyBmdW5jdGlv
biBpcyB1c2FibGUgZm9yIGEgMiBsaW5lIGRpc3BsYXkgd2l0aCA1IG9yIG1vcmUgY3VzdG9tIGNo
YXJhY3RlcnMuCisvLyAobmljZSBiaWdudW1iZXJzKQogCitzdGF0aWMgdm9pZCBhZHZfYmlnbnVt
X251bV8yXzYgKERyaXZlciAqZHJ2dGhpcywgaW50IHgsIGludCBudW0sIGludCBoZWlnaHQsIGlu
dCBkb19pbml0KQoreworCXN0YXRpYyBjaGFyIG51bV9tYXBbXVs0XVs0XSA9CisJCXt7ezMJLDAJ
LDJ9LCAvKjAqLworCQl7MwksMQksMn0sCisJCXsiICAgIn0sCisJCXsiICAgIn19LAorCQl7eycg
JwksJyAnLCAgICAyfSwvKjEqLworCQl7JyAnCSwnICcsICAgIDJ9LAorCQl7IiAgICJ9LAorCQl7
IiAgICJ9fSwKKwkJe3snICcJLDUJLDJ9LC8qMiovCisJCXszCSw0CSwnICd9LAorCQl7IiAgICJ9
LAorCQl7IiAgICJ9fSwKKwkJe3snICcJLDUJLDJ9LC8qMyovCisJCXsnICcJLDQJLDJ9LAorCQl7
IiAgICJ9LAorCQl7IiAgICJ9fSwKKwkJe3szCSwxCSwyfSwvKjQqLworCQl7JyAnCSwnICcJLDJ9
LAorCQl7IiAgICJ9LAorCQl7IiAgICJ9fSwKKwkJe3szCSw1CSwnICd9LC8qNSovCisJCXsnICcJ
LDQJLDJ9LAorCQl7IiAgICJ9LAorCQl7IiAgICJ9fSwKKwkJe3szCSw1CSw3fSwvKjYqLworCQl7
MwksNAksMn0sCisJCXsiICAgIn0sCisJCXsiICAgIn19LAorCQl7eycgJwksMAksMn0sLyo3Ki8K
KwkJeycgJwksJyAnCSwyfSwKKwkJeyIgICAifSwKKwkJeyIgICAifX0sCisJCXt7MwksNQksMn0s
Lyo4Ki8KKwkJezMJLDQJLDJ9LAorCQl7IiAgICJ9LAorCQl7IiAgICJ9fSwKKwkJe3szCSw1CSwy
fSwvKjkqLworCQl7JyAnCSwxCSwyfSwKKwkJeyIgICAifSwKKwkJeyIgICAifX0sCisJCXt7Jy4n
fSwvKjoqLworCQl7Jy4nfSwKKwkJeyIgICAifSwKKwkJeyIgICAifX19OyAvLyBEZWZpbmVzIHRo
ZSBjaGFyYWN0ZXIgcGxhY2luZyBpbnNpZGUgdGhlIGJpZ251bWJlci4KKwlpZiAoZG9faW5pdCkg
Ly8gU2V0IGN1c3RvbWNoYXJhY3RlcnMgaWYgbmVlZGVkLgorCQl7CisJCXN0YXRpYyBjaGFyIGJp
Z251bVs2XVs1ICogOF0gPSB7IC8vIHN0b3JlZCBjdXN0b21jaGFyYWN0ZXJzCisJCXsKKwkJCTEs
IDEsIDEsIDEsIDEsCisJCQkxLCAxLCAxLCAxLCAxLAorCQkJMCwgMCwgMCwgMCwgMCwKKwkJCTAs
IDAsIDAsIDAsIDAsCisJCQkwLCAwLCAwLCAwLCAwLAorCQkJMCwgMCwgMCwgMCwgMCwKKwkJCTAs
IDAsIDAsIDAsIDAsCisJCQkwLCAwLCAwLCAwLCAwLAorCQl9LAorCQkJeworCQkJMCwgMCwgMCwg
MCwgMCwKKwkJCTAsIDAsIDAsIDAsIDAsCisJCQkwLCAwLCAwLCAwLCAwLAorCQkJMCwgMCwgMCwg
MCwgMCwKKwkJCTAsIDAsIDAsIDAsIDAsCisJCQkxLCAxLCAxLCAxLCAxLAorCQkJMSwgMSwgMSwg
MSwgMSwKKwkJCTEsIDEsIDEsIDEsIDEsCisJCX0sCisJCQl7CisJCQkxLCAxLCAxLCAwLCAwLAor
CQkJMSwgMSwgMSwgMCwgMCwKKwkJCTEsIDEsIDEsIDAsIDAsCisJCQkxLCAxLCAxLCAwLCAwLAor
CQkJMSwgMSwgMSwgMCwgMCwKKwkJCTEsIDEsIDEsIDAsIDAsCisJCQkxLCAxLCAxLCAwLCAwLAor
CQkJMSwgMSwgMSwgMCwgMCwKKwkJfSwKKwkJCXsKKwkJCTAsIDAsIDEsIDEsIDEsCisJCQkwLCAw
LCAxLCAxLCAxLAorCQkJMCwgMCwgMSwgMSwgMSwKKwkJCTAsIDAsIDEsIDEsIDEsCisJCQkwLCAw
LCAxLCAxLCAxLAorCQkJMCwgMCwgMSwgMSwgMSwKKwkJCTAsIDAsIDEsIDEsIDEsCisJCQkwLCAw
LCAxLCAxLCAxLAorCQl9LAorCQl7CisJCQkxLCAxLCAxLCAxLCAxLAorCQkJMCwgMCwgMCwgMCwg
MCwKKwkJCTAsIDAsIDAsIDAsIDAsCisJCQkwLCAwLCAwLCAwLCAwLAorCQkJMCwgMCwgMCwgMCwg
MCwKKwkJCTEsIDEsIDEsIDEsIDEsCisJCQkxLCAxLCAxLCAxLCAxLAorCQkJMSwgMSwgMSwgMSwg
MSwKKwkJfSwKKwkJeworCQkJMSwgMSwgMSwgMSwgMSwKKwkJCTEsIDEsIDEsIDEsIDEsCisJCQkw
LCAwLCAwLCAwLCAwLAorCQkJMCwgMCwgMCwgMCwgMCwKKwkJCTAsIDAsIDAsIDAsIDAsCisJCQkw
LCAwLCAwLCAwLCAwLAorCQkJMSwgMSwgMSwgMSwgMSwKKwkJCTEsIDEsIDEsIDEsIDEsCisJCX19
OworCQlpbnQgaTsKKwkJZm9yIChpID0gMDsgaSA8PSA2IDsgaSsrKSB7IC8vIHB1dCB0aGUgY3Vz
dG9tY2hhcmFjdGVycyBpbnRvIHRoZSBkaXNwbGF5CisJCQlkcnZ0aGlzLT5zZXRfY2hhciAoZHJ2
dGhpcywgaSwgJmJpZ251bVtpXVswXSk7CisJCQl9CisJCX0KKwkJYWR2X2JpZ251bV93cml0ZV9u
dW0gKGRydnRoaXMsIG51bV9tYXAsIHgsIG51bSwgaGVpZ2h0KTsgLy8gd3JpdGUgdGhlIG51bWJl
cgorfQogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vIFRoaXMgZnVu
Y3Rpb24gaXMgdXNhYmxlIGZvciBhIDIgbGluZSBkaXNwbGF5IHdpdGggMjggb3IgbW9yZSBjdXN0
b20gY2hhcmFjdGVycy4KZGlmZiAtcHVyIGxjZHByb2MtMC41LjAub3JpZy9zZXJ2ZXIvZHJpdmVy
cy9oZDQ0NzgwLmMgbGNkcHJvYy0wLjUuMC9zZXJ2ZXIvZHJpdmVycy9oZDQ0NzgwLmMKLS0tIGxj
ZHByb2MtMC41LjAub3JpZy9zZXJ2ZXIvZHJpdmVycy9oZDQ0NzgwLmMJMjAwNi0wNC0xNSAwMDox
OToxMS4wMDAwMDAwMDAgKzEyMDAKKysrIGxjZHByb2MtMC41LjAvc2VydmVyL2RyaXZlcnMvaGQ0
NDc4MC5jCTIwMDYtMDYtMTUgMTk6MDA6MDAuMDAwMDAwMDAwICsxMjAwCkBAIC03OCw2ICs3OCw3
IEBACiAjaW5jbHVkZSAiaGQ0NDc4MC1sb3cuaCIKICNpbmNsdWRlICJoZDQ0NzgwLWRyaXZlcnMu
aCIKICNpbmNsdWRlICJoZDQ0NzgwLWNoYXJtYXAuaCIKKyNpbmNsdWRlICJhZHZfYmlnbnVtLmgi
CiAKIC8vIE9ubHkgb25lIGFsdGVybmF0ZSBkZWxheSBtZXRob2QgYXQgYSB0aW1lLCBwbGVhc2Ug
Oy0pCiAjaWYgZGVmaW5lZCBERUxBWV9HRVRUSU1FT0ZEQVkKQEAgLTUxOCw2ICs1MTksMTAgQEAg
TU9EVUxFX0VYUE9SVCB2b2lkCiBIRDQ0NzgwX2NociAoRHJpdmVyICpkcnZ0aGlzLCBpbnQgeCwg
aW50IHksIGNoYXIgY2gpCiB7CiAJUHJpdmF0ZURhdGEgKnAgPSAoUHJpdmF0ZURhdGEgKikgZHJ2
dGhpcy0+cHJpdmF0ZV9kYXRhOworCisJLy8gSSBndWVzcyBhIGNoZWNrIGZvciBidWZmZXIgb3Zl
cmZsb3dzIGlzIGEgZ29vZCBpZGVhLgorCWlmICgoeCA+IHAtPndpZHRoKSB8fCAoeSA+IHAtPmhl
aWdodCkpCisJCXJldHVybjsKIAl5LS07CiAJeC0tOwogCkBAIC03NzMsMTg5ICs3NzgsMjAgQEAg
SEQ0NDc4MF9oYmFyIChEcml2ZXIgKmRydnRoaXMsIGludCB4LCBpbgogCWxpYl9oYmFyX3N0YXRp
YyhkcnZ0aGlzLCB4LCB5LCBsZW4sIHByb21pbGxlLCBvcHRpb25zLCBwLT5jZWxsd2lkdGgsIDAp
OwogfQogCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwotLy8gU2V0cyB1cCBmb3IgYmlnIG51bWJlcnMuCi0vLwotc3RhdGlj
IHZvaWQKLUhENDQ3ODBfaW5pdF9udW0gKERyaXZlciAqZHJ2dGhpcykKLXsKLQlQcml2YXRlRGF0
YSAqcCA9IChQcml2YXRlRGF0YSAqKSBkcnZ0aGlzLT5wcml2YXRlX2RhdGE7Ci0KLQljaGFyIGJp
Z251bV9jY3NbOF1bNSo4XSA9IHt7Ci0JCTEsIDEsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAs
Ci0JCTEsIDEsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0J
CTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAKLQl9LCB7
Ci0JCTAsIDAsIDAsIDEsIDEsCi0JCTAsIDAsIDAsIDEsIDEsCi0JCTAsIDAsIDAsIDEsIDEsCi0J
CTAsIDAsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTEs
IDEsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAKLQl9LCB7Ci0JCTEsIDEsIDAsIDEsIDEsCi0J
CTEsIDEsIDAsIDEsIDEsCi0JCTEsIDEsIDAsIDEsIDEsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAs
IDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAs
IDAsIDAsIDAKLQl9LCB7Ci0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAs
IDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTEsIDEs
IDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAKLQl9LCB7Ci0JCTEs
IDEsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTAsIDAs
IDAsIDAsIDAsCi0JCTAsIDAsIDAsIDEsIDEsCi0JCTAsIDAsIDAsIDEsIDEsCi0JCTAsIDAsIDAs
IDEsIDEsCi0JCTAsIDAsIDAsIDAsIDAKLQl9LCB7Ci0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAs
IDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTEsIDEsIDAs
IDEsIDEsCi0JCTEsIDEsIDAsIDEsIDEsCi0JCTEsIDEsIDAsIDEsIDEsCi0JCTAsIDAsIDAsIDAs
IDAKLQl9LCB7Ci0JCTEsIDEsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTEsIDEsIDAs
IDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTEsIDEsIDAsIDAs
IDAsCi0JCTEsIDEsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAKLQl9LCB7Ci0JCTAsIDAsIDAs
IDEsIDEsCi0JCTAsIDAsIDAsIDEsIDEsCi0JCTAsIDAsIDAsIDEsIDEsCi0JCTAsIDAsIDAsIDAs
IDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAsCi0JCTAsIDAsIDAsIDAsIDAs
Ci0JCTAsIDAsIDAsIDAsIDAKLQl9fTsKLQotCWlmIChwLT5jY21vZGUgIT0gQ0NNT0RFX0JJR05V
TSkgewotCQlpbnQgaTsKLQotCQlpZiAoIHAtPmNjbW9kZSAhPSBDQ01PREVfU1RBTkRBUkQgKSB7
Ci0JCQkvKiBOb3Qgc3VwcG9ydGVkICh5ZXQpICovCi0JCQlyZXBvcnQoUlBUX1dBUk5JTkcsICJI
RDQ0NzgwX2luaXRfbnVtOiBDYW5ub3QgY29tYmluZSB0d28gbW9kZXMgdXNpbmcgdXNlciBkZWZp
bmVkIGNoYXJhY3RlcnMiICk7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJcC0+Y2Ntb2RlID0gQ0NNT0RF
X0JJR05VTTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQotCQkJSEQ0NDc4MF9zZXRfY2hh
ciAoZHJ2dGhpcywgaSwgYmlnbnVtX2Njc1tpXSk7Ci0JfQotfQotCi0vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8gV3Jp
dGVzIGEgYmlnIG51bWJlci4KLS8vCiBNT0RVTEVfRVhQT1JUIHZvaWQKLUhENDQ3ODBfbnVtIChE
cml2ZXIgKmRydnRoaXMsIGludCB4LCBpbnQgbnVtKQorSEQ0NDc4MF9udW0gKCBEcml2ZXIgKiBk
cnZ0aGlzLCBpbnQgeCwgaW50IG51bSApCiB7Ci0JUHJpdmF0ZURhdGEgKnAgPSAoUHJpdmF0ZURh
dGEgKikgZHJ2dGhpcy0+cHJpdmF0ZV9kYXRhOwotCi0JY2hhciBiaWdudW1fbWFwWzExXVs0XVsz
XSA9IHsKLQl7IC8qIDA6ICovCi0JCXsgIDEsICAyLCAgMyB9LCAKLQkJeyAgNiwgMzIsICA2IH0s
IAotCQl7ICA2LCAzMiwgIDYgfSwgCi0JCXsgIDcsICAyLCAzMiB9IH0sIAotCXsgLyogMTogKi8K
LQkJeyAgNywgIDYsIDMyIH0sIAotCQl7IDMyLCAgNiwgMzIgfSwgCi0JCXsgMzIsICA2LCAzMiB9
LCAKLQkJeyAgNywgIDIsIDMyIH0gfSwgCi0JeyAvKiAyOiAqLwotCQl7ICAxLCAgMiwgIDMgfSwg
Ci0JCXsgMzIsICA1LCAgMCB9LCAKLQkJeyAgMSwgMzIsIDMyIH0sIAotCQl7ICAyLCAgMiwgIDAg
fSB9LCAKLQl7IC8qIDM6ICovCi0JCXsgIDEsICAyLCAgMyB9LCAKLQkJeyAzMiwgIDUsICAwIH0s
IAotCQl7ICAzLCAzMiwgIDYgfSwgCi0JCXsgIDcsICAyLCAzMiB9IH0sIAotCXsgLyogNDogKi8K
LQkJeyAzMiwgIDMsIDYgfSwgCi0JCXsgIDEsIDMyLCA2IH0sIAotCQl7ICAyLCAgMiwgNiB9LCAK
LQkJeyAzMiwgMzIsIDAgfSB9LCAKLQl7IC8qIDU6ICovCi0JCXsgIDEsICAyLCAgMCB9LCAKLQkJ
eyAgMiwgIDIsICAzIH0sIAotCQl7ICAzLCAzMiwgIDYgfSwgCi0JCXsgIDcsICAyLCAzMiB9IH0s
IAotCXsgLyogNjogKi8KLQkJeyAgMSwgIDIsIDMyIH0sIAotCQl7ICA2LCAgNSwgMzIgfSwgCi0J
CXsgIDYsIDMyLCAgNiB9LCAKLQkJeyAgNywgIDIsIDMyIH0gfSwgCi0JeyAvKiA3OiAqLwotCQl7
ICAyLCAgMiwgIDYgfSwgCi0JCXsgMzIsICAxLCAzMiB9LCAKLQkJeyAzMiwgIDYsIDMyIH0sIAot
CQl7IDMyLCAgMCwgMzIgfSB9LCAKLQl7IC8qIDg6ICovCi0JCXsgIDEsICAyLCAgMyB9LCAKLQkJ
eyAgNCwgIDUsICAwIH0sIAotCQl7ICA2LCAzMiwgIDYgfSwgCi0JCXsgIDcsICAyLCAzMiB9IH0s
IAotCXsgLyogOTogKi8KLQkJeyAgMSwgIDIsICAzIH0sIAotCQl7ICA0LCAgMywgIDYgfSwgCi0J
CXsgMzIsICAxLCAzMiB9LCAKLQkJeyAgNywgMzIsIDMyIH0gfSwgCi0JeyAvKiBjb2xvbjogKG9u
bHkgMXN0IGNvbHVtbiB1c2VkKSAqLwotCQl7IDMyLCAzMiwgMzIgfSwKLQkJeyAgNywgMzIsIDMy
IH0sCi0JCXsgIDcsIDMyLCAzMiB9LAotCQl7IDMyLCAzMiwgMzIgfSB9Ci0JfTsKKwlpbnQgZG9f
aW5pdD0wLCBjdXN0b21jaGFycz04OworCVByaXZhdGVEYXRhICpwID0gZHJ2dGhpcy0+cHJpdmF0
ZV9kYXRhOwogCi0JaWYgKChudW0gPCAwKSB8fCAobnVtID4gMTApKQotCQlyZXR1cm47CiAKLQlp
ZiAocC0+aGVpZ2h0ID49IDQpIHsKLQkJaW50IHkgPSAocC0+aGVpZ2h0IC0gMikgLyAyOwotCQlp
bnQgeDIsIHkyOwotCi0JCUhENDQ3ODBfaW5pdF9udW0oZHJ2dGhpcyk7Ci0KLQkJZm9yICh4MiA9
IDA7IHgyIDwgMzsgeDIrKykgewotCQkJZm9yICh5MiA9IDA7IHkyIDwgNDsgeTIrKykgewotCQkJ
CUhENDQ3ODBfY2hyKCBkcnZ0aGlzLCB4K3gyLCB5K3kyLCBiaWdudW1fbWFwW251bV1beTJdW3gy
XSApOwotCQkJfQotCQkJaWYgKG51bSA9PSAxMCkKLQkJCQl4MiA9IDI7IC8qID1icmVhaywgZm9y
IGNvbG9uIG9ubHkgKi8KLQkJfQorCWlmIChwLT5jY21vZGUgIT0gQ0NNT0RFX0JJR05VTSkgLy8g
QXJlIHRoZSBjdXN0b21jaGFyYWN0ZXJzIHNldCB1cCBjb3JyZWN0bHk/IElmIG5vdDoKKwl7CisJ
CWRvX2luaXQ9MTsJLy8gTGliX2Fkdl9iaWdudW0gaGFzIHRvIHNldCB0aGUgY3VzdG9tY2hhcmFj
dGVycy4KKwkJcC0+Y2Ntb2RlID0gQ0NNT0RFX0JJR05VTTsgLy8gU3dpdGNoIGN1c3RvbWNoYXJh
Y3Rlcm1vZGUgdG8gYmlnbnVtLgogCX0KLQllbHNlCi0JCUhENDQ3ODBfY2hyKGRydnRoaXMsIHgs
IDEgKyAocC0+aGVpZ2h0IC0gMSkgLyAyLAotCQkJICAgIChudW0gPT0gMTApID8gJzonIDogKG51
bSArICcwJykpOworCS8vIExpYl9hZHZfYmlnbnVtIGRvZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8g
c2hvdyB0aGUgYmlnbnVtYmVycy4KKwlsaWJfYWR2X2JpZ251bShkcnZ0aGlzLCB4LCBudW0sIHAt
PmhlaWdodCwgZG9faW5pdCwgY3VzdG9tY2hhcnMpOwogfQogCiAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo=
------=_20060615210535_83630--