Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Jan 2010 12:54:28 -0800 (PST)
From:      "Pedro F. Giffuni" <giffunip@tutopia.com>
To:        FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org
Subject:   Re: bin/142526: Cleanups and updates to newfs_msdos
Message-ID:  <482772.91781.qm@web113509.mail.gq1.yahoo.com>

next in thread | raw e-mail | index | archive | help
--0-96800579-1263761668=:91781
Content-Type: text/plain; charset=us-ascii

Yet another update:
- Remove the MAXBPS warning, I have been convinced the limitation is a
tactic to move people to other filesystems.
- Update names in fields for directory access so we can use the same
terminology and headers from the msdosfs.

(I don't expect to add any new feature) 


      
--0-96800579-1263761668=:91781
Content-Type: application/octet-stream; name=patch-newfs_msdos
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=patch-newfs_msdos

ZGlmZiAtcnUgbmV3ZnNfbXNkb3Mub3JpZy9uZXdmc19tc2Rvcy44IG5ld2Zz
X21zZG9zL25ld2ZzX21zZG9zLjgKLS0tIG5ld2ZzX21zZG9zLm9yaWcvbmV3
ZnNfbXNkb3MuOAkyMDEwLTAxLTA2IDExOjA2OjAyLjAwMDAwMDAwMCArMDAw
MAorKysgbmV3ZnNfbXNkb3MvbmV3ZnNfbXNkb3MuOAkyMDEwLTAxLTE2IDEw
OjMxOjAwLjAwMDAwMDAwMCArMDAwMApAQCAtMzgsMTQgKzM4LDE0IEBACiAu
T3AgRmwgQiBBciBib290CiAuT3AgRmwgQyBBciBjcmVhdGUtc2l6ZQogLk9w
IEZsIEYgQXIgRkFULXR5cGUKLS5PcCBGbCBJIEFyIHZvbGlkCisuT3AgRmwg
SSBBciBWb2x1bWVJZAogLk9wIEZsIEwgQXIgbGFiZWwKIC5PcCBGbCBPIEFy
IE9FTQogLk9wIEZsIFMgQXIgc2VjdG9yLXNpemUKIC5PcCBGbCBhIEFyIEZB
VC1zaXplCiAuT3AgRmwgYiBBciBibG9jay1zaXplCiAuT3AgRmwgYyBBciBj
bHVzdGVyLXNpemUKLS5PcCBGbCBlIEFyIGRpcmVudHMKKy5PcCBGbCBlIEFy
IERpckVudHMKIC5PcCBGbCBmIEFyIGZvcm1hdAogLk9wIEZsIGggQXIgaGVh
ZHMKIC5PcCBGbCBpIEFyIGluZm8KQEAgLTEwMyw3ICsxMDMsNyBAQAogc21h
bGxlciB0aGFuIHRoZSBzaXplIHNwZWNpZmllZCBhcyBwYXJhbWV0ZXIuCiAu
SXQgRmwgRiBBciBGQVQtdHlwZQogRkFUIHR5cGUgKG9uZSBvZiAxMiwgMTYs
IG9yIDMyKS4KLS5JdCBGbCBJIEFyIHZvbGlkCisuSXQgRmwgSSBBciBWb2x1
bWVJRAogVm9sdW1lIElELCBhIDMyIGJpdCBudW1iZXIgaW4gZGVjaW1hbCBv
ciBoZXhhZGVjaW1hbCAoMHguLi4pIGZvcm1hdC4KIC5JdCBGbCBMIEFyIGxh
YmVsCiBWb2x1bWUgbGFiZWwgKHVwIHRvIDExIGNoYXJhY3RlcnMpLgpAQCAt
MTE2LDcgKzExNiw3IEBACiAuSXQgRmwgUyBBciBzZWN0b3Itc2l6ZQogTnVt
YmVyIG9mIGJ5dGVzIHBlciBzZWN0b3IuCiBBY2NlcHRhYmxlIHZhbHVlcyBh
cmUgcG93ZXJzIG9mIDIKLWluIHRoZSByYW5nZSAxMjggdGhyb3VnaCAzMjc2
OC4KK2luIHRoZSByYW5nZSA1MTIgdGhyb3VnaCAzMjc2OC4KIC5JdCBGbCBh
IEFyIEZBVC1zaXplCiBOdW1iZXIgb2Ygc2VjdG9ycyBwZXIgRkFULgogLkl0
IEZsIGIgQXIgYmxvY2stc2l6ZQpAQCAtMTMwLDcgKzEzMCw3IEBACiBJZiB0
aGUgYmxvY2sgb3IgY2x1c3RlciBzaXplIGFyZSBub3Qgc3BlY2lmaWVkLCB0
aGUgY29kZQogdXNlcyBhIGNsdXN0ZXIgYmV0d2VlbiA1MTIgYnl0ZXMgYW5k
IDMySyBkZXBlbmRpbmcgb24KIHRoZSBmaWxlc3lzdGVtIHNpemUuCi0uSXQg
RmwgZSBBciBkaXJlbnRzCisuSXQgRmwgZSBBciBEaXJFbnRzCiBOdW1iZXIg
b2Ygcm9vdCBkaXJlY3RvcnkgZW50cmllcyAoRkFUMTIgYW5kIEZBVDE2IG9u
bHkpLgogLkl0IEZsIGYgQXIgZm9ybWF0CiBTcGVjaWZ5IGEgc3RhbmRhcmQg
KGZsb3BweSBkaXNrKSBmb3JtYXQuCmRpZmYgLXJ1IG5ld2ZzX21zZG9zLm9y
aWcvbmV3ZnNfbXNkb3MuYyBuZXdmc19tc2Rvcy9uZXdmc19tc2Rvcy5jCi0t
LSBuZXdmc19tc2Rvcy5vcmlnL25ld2ZzX21zZG9zLmMJMjAxMC0wMS0wNiAx
MTowNjowMi4wMDAwMDAwMDAgKzAwMDAKKysrIG5ld2ZzX21zZG9zL25ld2Zz
X21zZG9zLmMJMjAxMC0wMS0xNiAxMDoyMjowNy4wMDAwMDAwMDAgKzAwMDAK
QEAgLTYyLDEyICs2MiwxMiBAQAogI2RlZmluZSBERUZCTEsxNiAgMjA0OAkJ
LyogZGVmYXVsdCBibG9jayBzaXplIEZBVDE2ICovCiAjZGVmaW5lIERFRlJE
RQkgIDUxMgkJLyogZGVmYXVsdCByb290IGRpcmVjdG9yeSBlbnRyaWVzICov
CiAjZGVmaW5lIFJFU0ZURQkgIDIJCS8qIHJlc2VydmVkIEZBVCBlbnRyaWVz
ICovCi0jZGVmaW5lIE1JTkNMUzEyICAxCQkvKiBtaW5pbXVtIEZBVDEyIGNs
dXN0ZXJzICovCi0jZGVmaW5lIE1JTkNMUzE2ICAweDEwMDAJLyogbWluaW11
bSBGQVQxNiBjbHVzdGVycyAqLwotI2RlZmluZSBNSU5DTFMzMiAgMgkJLyog
bWluaW11bSBGQVQzMiBjbHVzdGVycyAqLwotI2RlZmluZSBNQVhDTFMxMiAg
MHhmZWQgCS8qIG1heGltdW0gRkFUMTIgY2x1c3RlcnMgKi8KLSNkZWZpbmUg
TUFYQ0xTMTYgIDB4ZmZmNQkvKiBtYXhpbXVtIEZBVDE2IGNsdXN0ZXJzICov
Ci0jZGVmaW5lIE1BWENMUzMyICAweGZmZmZmZjUJLyogbWF4aW11bSBGQVQz
MiBjbHVzdGVycyAqLworI2RlZmluZSBNSU5DTFMxMiAgMXUJCS8qIG1pbmlt
dW0gRkFUMTIgY2x1c3RlcnMgKi8KKyNkZWZpbmUgTUlOQ0xTMTYgIDB4MTAw
MHUJLyogbWluaW11bSBGQVQxNiBjbHVzdGVycyAqLworI2RlZmluZSBNSU5D
TFMzMiAgMnUJCS8qIG1pbmltdW0gRkFUMzIgY2x1c3RlcnMgKi8KKyNkZWZp
bmUgTUFYQ0xTMTIgIDB4ZmVkdSAJLyogbWF4aW11bSBGQVQxMiBjbHVzdGVy
cyAqLworI2RlZmluZSBNQVhDTFMxNiAgMHhmZmY1dQkvKiBtYXhpbXVtIEZB
VDE2IGNsdXN0ZXJzICovCisjZGVmaW5lIE1BWENMUzMyICAweGZmZmZmZjV1
CS8qIG1heGltdW0gRkFUMzIgY2x1c3RlcnMgKi8KIAogI2RlZmluZSBtaW5j
bHMoZmF0KSAgKChmYXQpID09IDEyID8gTUlOQ0xTMTIgOglcCiAJCSAgICAg
IChmYXQpID09IDE2ID8gTUlOQ0xTMTYgOglcCkBAIC05NiwyMyArOTYsMjMg
QEAKICNkZWZpbmUgYXJndG94KGFyZywgbG8sIG1zZykgIGFyZ3RvdShhcmcs
IGxvLCBVSU5UX01BWCwgbXNnKQogCiBzdHJ1Y3QgYnMgewotICAgIHVfaW50
OF90IGptcFszXTsJCS8qIGJvb3RzdHJhcCBlbnRyeSBwb2ludCAqLwotICAg
IHVfaW50OF90IG9lbVs4XTsJCS8qIE9FTSBuYW1lIGFuZCB2ZXJzaW9uICov
CisgICAgdV9pbnQ4X3QgYnNKdW1wWzNdOwkJLyogYm9vdHN0cmFwIGVudHJ5
IHBvaW50ICovCisgICAgdV9pbnQ4X3QgYnNPZW1OYW1lWzhdOwkJLyogT0VN
IG5hbWUgYW5kIHZlcnNpb24gKi8KIH07CiAKIHN0cnVjdCBic2JwYiB7Ci0g
ICAgdV9pbnQ4X3QgYnBzWzJdOwkJLyogYnl0ZXMgcGVyIHNlY3RvciAqLwot
ICAgIHVfaW50OF90IHNwYzsJCS8qIHNlY3RvcnMgcGVyIGNsdXN0ZXIgKi8K
LSAgICB1X2ludDhfdCByZXNbMl07CQkvKiByZXNlcnZlZCBzZWN0b3JzICov
Ci0gICAgdV9pbnQ4X3QgbmZ0OwkJLyogbnVtYmVyIG9mIEZBVHMgKi8KLSAg
ICB1X2ludDhfdCByZGVbMl07CQkvKiByb290IGRpcmVjdG9yeSBlbnRyaWVz
ICovCi0gICAgdV9pbnQ4X3Qgc2VjWzJdOwkJLyogdG90YWwgc2VjdG9ycyAq
LwotICAgIHVfaW50OF90IG1pZDsJCS8qIG1lZGlhIGRlc2NyaXB0b3IgKi8K
LSAgICB1X2ludDhfdCBzcGZbMl07CQkvKiBzZWN0b3JzIHBlciBGQVQgKi8K
LSAgICB1X2ludDhfdCBzcHRbMl07CQkvKiBzZWN0b3JzIHBlciB0cmFjayAq
LwotICAgIHVfaW50OF90IGhkc1syXTsJCS8qIGRyaXZlIGhlYWRzICovCi0g
ICAgdV9pbnQ4X3QgaGlkWzRdOwkJLyogaGlkZGVuIHNlY3RvcnMgKi8KLSAg
ICB1X2ludDhfdCBic2VjWzRdOwkJLyogYmlnIHRvdGFsIHNlY3RvcnMgKi8K
KyAgICB1X2ludDhfdCBicGJCeXRlc1BlclNlY1syXTsJCS8qIGJ5dGVzIHBl
ciBzZWN0b3IgKi8KKyAgICB1X2ludDhfdCBicGJTZWNQZXJDbHVzdDsJCS8q
IHNlY3RvcnMgcGVyIGNsdXN0ZXIgKi8KKyAgICB1X2ludDhfdCBicGJSZXNT
ZWN0b3JzWzJdOwkJLyogcmVzZXJ2ZWQgc2VjdG9ycyAqLworICAgIHVfaW50
OF90IGJwYkZBVHM7CQkJLyogbnVtYmVyIG9mIEZBVHMgKi8KKyAgICB1X2lu
dDhfdCBicGJSb290RGlyRW50c1syXTsJCS8qIHJvb3QgZGlyZWN0b3J5IGVu
dHJpZXMgKi8KKyAgICB1X2ludDhfdCBicGJTZWN0b3JzWzJdOwkJLyogdG90
YWwgc2VjdG9ycyAqLworICAgIHVfaW50OF90IGJwYk1lZGlhOwkJCS8qIG1l
ZGlhIGRlc2NyaXB0b3IgKi8KKyAgICB1X2ludDhfdCBicGJGQVRzZWNzWzJd
OwkJLyogc2VjdG9ycyBwZXIgRkFUICovCisgICAgdV9pbnQ4X3QgYnBiU2Vj
UGVyVHJhY2tbMl07CQkvKiBzZWN0b3JzIHBlciB0cmFjayAqLworICAgIHVf
aW50OF90IGJwYkhlYWRzWzJdOwkJLyogZHJpdmUgaGVhZHMgKi8KKyAgICB1
X2ludDhfdCBicGJIaWRkZW5TZWNzWzRdOwkJLyogaGlkZGVuIHNlY3RvcnMg
Ki8KKyAgICB1X2ludDhfdCBicGJIdWdlU2VjdG9yc1s0XTsJCS8qIGJpZyB0
b3RhbCBzZWN0b3JzICovCiB9OwogCiBzdHJ1Y3QgYnN4YnBiIHsKQEAgLTEy
Miw2MyArMTIyLDY3IEBACiAgICAgdV9pbnQ4X3QgcmRjbFs0XTsJCS8qIHJv
b3QgZGlyZWN0b3J5IHN0YXJ0IGNsdXN0ZXIgKi8KICAgICB1X2ludDhfdCBp
bmZzWzJdOwkJLyogZmlsZSBzeXN0ZW0gaW5mbyBzZWN0b3IgKi8KICAgICB1
X2ludDhfdCBia2JzWzJdOwkJLyogYmFja3VwIGJvb3Qgc2VjdG9yICovCi0g
ICAgdV9pbnQ4X3QgcnN2ZFsxMl07CQkvKiByZXNlcnZlZCAqLworICAgIHVf
aW50OF90IHJzdmRbMTJdOwkJCS8qIHJlc2VydmVkICovCiB9OwogCiBzdHJ1
Y3QgYnN4IHsKLSAgICB1X2ludDhfdCBkcnY7CQkvKiBkcml2ZSBudW1iZXIg
Ki8KLSAgICB1X2ludDhfdCByc3ZkOwkJLyogcmVzZXJ2ZWQgKi8KLSAgICB1
X2ludDhfdCBzaWc7CQkvKiBleHRlbmRlZCBib290IHNpZ25hdHVyZSAqLwot
ICAgIHVfaW50OF90IHZvbGlkWzRdOwkJLyogdm9sdW1lIElEIG51bWJlciAq
LwotICAgIHVfaW50OF90IGxhYmVsWzExXTsgCS8qIHZvbHVtZSBsYWJlbCAq
LwotICAgIHVfaW50OF90IHR5cGVbOF07CQkvKiBmaWxlIHN5c3RlbSB0eXBl
ICovCisgICAgdV9pbnQ4X3QgZXhEcml2ZU51bWJlcjsJCS8qIGRyaXZlIG51
bWJlciAqLworICAgIHVfaW50OF90IGV4UmVzZXJ2ZWQxOwkJLyogcmVzZXJ2
ZWQgKi8KKyAgICB1X2ludDhfdCBleEJvb3RTaWduYXR1cmU7CQkvKiBleHRl
bmRlZCBib290IHNpZ25hdHVyZSAqLworICAgIHVfaW50OF90IGV4Vm9sdW1l
SURbNF07CQkvKiB2b2x1bWUgSUQgbnVtYmVyICovCisgICAgdV9pbnQ4X3Qg
ZXhWb2x1bWVMYWJlbFsxMV07IAkvKiB2b2x1bWUgbGFiZWwgKi8KKyAgICB1
X2ludDhfdCBleEZpbGVTeXNUeXBlWzhdOwkJLyogZmlsZSBzeXN0ZW0gdHlw
ZSAqLwogfTsKIAogc3RydWN0IGRlIHsKLSAgICB1X2ludDhfdCBuYW1leHRb
MTFdOwkvKiBuYW1lIGFuZCBleHRlbnNpb24gKi8KLSAgICB1X2ludDhfdCBh
dHRyOwkJLyogYXR0cmlidXRlcyAqLworICAgIHVfaW50OF90IGRlTmFtZVsx
MV07CS8qIG5hbWUgYW5kIGV4dGVuc2lvbiAqLworICAgIHVfaW50OF90IGRl
QXR0cmlidXRlczsJLyogYXR0cmlidXRlcyAqLwogICAgIHVfaW50OF90IHJz
dmRbMTBdOwkJLyogcmVzZXJ2ZWQgKi8KLSAgICB1X2ludDhfdCB0aW1lWzJd
OwkJLyogY3JlYXRpb24gdGltZSAqLwotICAgIHVfaW50OF90IGRhdGVbMl07
CQkvKiBjcmVhdGlvbiBkYXRlICovCi0gICAgdV9pbnQ4X3QgY2x1c1syXTsJ
CS8qIHN0YXJ0aW5nIGNsdXN0ZXIgKi8KLSAgICB1X2ludDhfdCBzaXplWzRd
OwkJLyogc2l6ZSAqLworICAgIHVfaW50OF90IGRlQ1RpbWVbMl07CS8qIGNy
ZWF0aW9uIHRpbWUgKi8KKyAgICB1X2ludDhfdCBkZUNEYXRlWzJdOwkvKiBj
cmVhdGlvbiBkYXRlICovCisgICAgdV9pbnQ4X3QgZGVTdGFydENsdXN0ZXJb
Ml07CS8qIHN0YXJ0aW5nIGNsdXN0ZXIgKi8KKyAgICB1X2ludDhfdCBkZUZp
bGVTaXplWzRdOwkvKiBzaXplICovCiB9OwogCiBzdHJ1Y3QgYnBiIHsKLSAg
ICB1X2ludCBicHM7CQkJLyogYnl0ZXMgcGVyIHNlY3RvciAqLwotICAgIHVf
aW50IHNwYzsJCQkvKiBzZWN0b3JzIHBlciBjbHVzdGVyICovCi0gICAgdV9p
bnQgcmVzOwkJCS8qIHJlc2VydmVkIHNlY3RvcnMgKi8KLSAgICB1X2ludCBu
ZnQ7CQkJLyogbnVtYmVyIG9mIEZBVHMgKi8KLSAgICB1X2ludCByZGU7CQkJ
Lyogcm9vdCBkaXJlY3RvcnkgZW50cmllcyAqLwotICAgIHVfaW50IHNlYzsJ
CQkvKiB0b3RhbCBzZWN0b3JzICovCi0gICAgdV9pbnQgbWlkOwkJCS8qIG1l
ZGlhIGRlc2NyaXB0b3IgKi8KLSAgICB1X2ludCBzcGY7CQkJLyogc2VjdG9y
cyBwZXIgRkFUICovCi0gICAgdV9pbnQgc3B0OwkJCS8qIHNlY3RvcnMgcGVy
IHRyYWNrICovCi0gICAgdV9pbnQgaGRzOwkJCS8qIGRyaXZlIGhlYWRzICov
Ci0gICAgdV9pbnQgaGlkOwkJCS8qIGhpZGRlbiBzZWN0b3JzICovCi0gICAg
dV9pbnQgYnNlYzsgCQkvKiBiaWcgdG90YWwgc2VjdG9ycyAqLwotICAgIHVf
aW50IGJzcGY7IAkJLyogYmlnIHNlY3RvcnMgcGVyIEZBVCAqLwotICAgIHVf
aW50IHJkY2w7IAkJLyogcm9vdCBkaXJlY3Rvcnkgc3RhcnQgY2x1c3RlciAq
LwotICAgIHVfaW50IGluZnM7IAkJLyogZmlsZSBzeXN0ZW0gaW5mbyBzZWN0
b3IgKi8KLSAgICB1X2ludCBia2JzOyAJCS8qIGJhY2t1cCBib290IHNlY3Rv
ciAqLworICAgIHVfaW50IGJwYkJ5dGVzUGVyU2VjOwkJLyogYnl0ZXMgcGVy
IHNlY3RvciAqLworICAgIHVfaW50IGJwYlNlY1BlckNsdXN0OwkJLyogc2Vj
dG9ycyBwZXIgY2x1c3RlciAqLworICAgIHVfaW50IGJwYlJlc1NlY3RvcnM7
CQkvKiByZXNlcnZlZCBzZWN0b3JzICovCisgICAgdV9pbnQgYnBiRkFUczsJ
CQkvKiBudW1iZXIgb2YgRkFUcyAqLworICAgIHVfaW50IGJwYlJvb3REaXJF
bnRzOwkJLyogcm9vdCBkaXJlY3RvcnkgZW50cmllcyAqLworICAgIHVfaW50
IGJwYlNlY3RvcnM7CQkJLyogdG90YWwgc2VjdG9ycyAqLworICAgIHVfaW50
IGJwYk1lZGlhOwkJCS8qIG1lZGlhIGRlc2NyaXB0b3IgKi8KKyAgICB1X2lu
dCBicGJGQVRzZWNzOwkJCS8qIHNlY3RvcnMgcGVyIEZBVCAqLworICAgIHVf
aW50IGJwYlNlY1BlclRyYWNrOwkJLyogc2VjdG9ycyBwZXIgdHJhY2sgKi8K
KyAgICB1X2ludCBicGJIZWFkczsJCQkvKiBkcml2ZSBoZWFkcyAqLworICAg
IHVfaW50IGJwYkhpZGRlblNlY3M7CQkvKiBoaWRkZW4gc2VjdG9ycyAqLwor
ICAgIHVfaW50IGJwYkh1Z2VTZWN0b3JzOyAJCS8qIGJpZyB0b3RhbCBzZWN0
b3JzICovCisgICAgdV9pbnQgYnBiQmlnRkFUc2VjczsgCQkvKiBiaWcgc2Vj
dG9ycyBwZXIgRkFUICovCisvKiBYWFg6IE1pc3NpbmcgRVhURmxhZ3MgRlNW
ZXJzICovCisgICAgdV9pbnQgYnBiUm9vdENsdXN0OyAJCS8qIHJvb3QgZGly
ZWN0b3J5IHN0YXJ0IGNsdXN0ZXIgKi8KKyAgICB1X2ludCBicGJGU0luZm87
IAkJLyogZmlsZSBzeXN0ZW0gaW5mbyBzZWN0b3IgKi8KKyAgICB1X2ludCBi
cGJCYWNrdXA7IAkJLyogYmFja3VwIGJvb3Qgc2VjdG9yICovCiB9OwogCiAj
ZGVmaW5lIEJQQkdBUCAwLCAwLCAwLCAwLCAwLCAwCiAKKyNkZWZpbmUgSU5J
VChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKSBcCisgICAgeyAuYnBi
Qnl0ZXNQZXJTZWMgPSBhLCAuYnBiU2VjUGVyQ2x1c3QgPSBiLCAuYnBiUmVz
U2VjdG9ycyA9IGMsIC5icGJGQVRzID0gZCwgLmJwYlJvb3REaXJFbnRzID0g
ZSwgXAorICAgICAgLmJwYlNlY3RvcnMgPSBmLCAuYnBiTWVkaWEgPSBnLCAu
YnBiRkFUc2VjcyA9IGgsIC5icGJTZWNQZXJUcmFjayA9IGksIC5icGJIZWFk
cyA9IGosIH0KIHN0YXRpYyBzdHJ1Y3QgewogICAgIGNvbnN0IGNoYXIgKm5h
bWU7CiAgICAgc3RydWN0IGJwYiBicGI7CiB9IGNvbnN0IHN0ZGZtdFtdID0g
ewotICAgIHsiMTYwIiwgIHs1MTIsIDEsIDEsIDIsICA2NCwgIDMyMCwgMHhm
ZSwgMSwgIDgsIDEsIEJQQkdBUH19LAotICAgIHsiMTgwIiwgIHs1MTIsIDEs
IDEsIDIsICA2NCwgIDM2MCwgMHhmYywgMiwgIDksIDEsIEJQQkdBUH19LAot
ICAgIHsiMzIwIiwgIHs1MTIsIDIsIDEsIDIsIDExMiwgIDY0MCwgMHhmZiwg
MSwgIDgsIDIsIEJQQkdBUH19LAotICAgIHsiMzYwIiwgIHs1MTIsIDIsIDEs
IDIsIDExMiwgIDcyMCwgMHhmZCwgMiwgIDksIDIsIEJQQkdBUH19LAotICAg
IHsiNjQwIiwgIHs1MTIsIDIsIDEsIDIsIDExMiwgMTI4MCwgMHhmYiwgMiwg
IDgsIDIsIEJQQkdBUH19LCAgICAKLSAgICB7IjcyMCIsICB7NTEyLCAyLCAx
LCAyLCAxMTIsIDE0NDAsIDB4ZjksIDMsICA5LCAyLCBCUEJHQVB9fSwKLSAg
ICB7IjEyMDAiLCB7NTEyLCAxLCAxLCAyLCAyMjQsIDI0MDAsIDB4ZjksIDcs
IDE1LCAyLCBCUEJHQVB9fSwKLSAgICB7IjEyMzIiLCB7MTAyNCwxLCAxLCAy
LCAxOTIsIDEyMzIsIDB4ZmUsIDIsICA4LCAyLCBCUEJHQVB9fSwgICAgCi0g
ICAgeyIxNDQwIiwgezUxMiwgMSwgMSwgMiwgMjI0LCAyODgwLCAweGYwLCA5
LCAxOCwgMiwgQlBCR0FQfX0sCi0gICAgeyIyODgwIiwgezUxMiwgMiwgMSwg
MiwgMjQwLCA1NzYwLCAweGYwLCA5LCAzNiwgMiwgQlBCR0FQfX0KKyAgICB7
IjE2MCIsICBJTklUKDUxMiwgMSwgMSwgMiwgIDY0LCAgMzIwLCAweGZlLCAx
LCAgOCwgMSl9LAorICAgIHsiMTgwIiwgIElOSVQoNTEyLCAxLCAxLCAyLCAg
NjQsICAzNjAsIDB4ZmMsIDIsICA5LCAxKX0sCisgICAgeyIzMjAiLCAgSU5J
VCg1MTIsIDIsIDEsIDIsIDExMiwgIDY0MCwgMHhmZiwgMSwgIDgsIDIpfSwK
KyAgICB7IjM2MCIsICBJTklUKDUxMiwgMiwgMSwgMiwgMTEyLCAgNzIwLCAw
eGZkLCAyLCAgOSwgMil9LAorICAgIHsiNjQwIiwgIElOSVQoNTEyLCAyLCAx
LCAyLCAxMTIsIDEyODAsIDB4ZmIsIDIsICA4LCAyKX0sICAgIAorICAgIHsi
NzIwIiwgIElOSVQoNTEyLCAyLCAxLCAyLCAxMTIsIDE0NDAsIDB4ZjksIDMs
ICA5LCAyKX0sCisgICAgeyIxMjAwIiwgSU5JVCg1MTIsIDEsIDEsIDIsIDIy
NCwgMjQwMCwgMHhmOSwgNywgMTUsIDIpfSwKKyAgICB7IjEyMzIiLCBJTklU
KDEwMjQsMSwgMSwgMiwgMTkyLCAxMjMyLCAweGZlLCAyLCAgOCwgMil9LCAg
ICAKKyAgICB7IjE0NDAiLCBJTklUKDUxMiwgMSwgMSwgMiwgMjI0LCAyODgw
LCAweGYwLCA5LCAxOCwgMil9LAorICAgIHsiMjg4MCIsIElOSVQoNTEyLCAy
LCAxLCAyLCAyNDAsIDU3NjAsIDB4ZjAsIDksIDM2LCAyKX0KIH07CiAKIHN0
YXRpYyBjb25zdCB1X2ludDhfdCBib290Y29kZVtdID0gewpAQCAtMzgxLDQ5
ICszODUsNDkgQEAKICAgICBtZW1zZXQoJmJwYiwgMCwgc2l6ZW9mKGJwYikp
OwogICAgIGlmIChvcHRfZikgewogCWdldHN0ZGZtdChvcHRfZiwgJmJwYik7
Ci0JYnBiLmJzZWMgPSBicGIuc2VjOwotCWJwYi5zZWMgPSAwOwotCWJwYi5i
c3BmID0gYnBiLnNwZjsKLQlicGIuc3BmID0gMDsKKwlicGIuYnBiSHVnZVNl
Y3RvcnMgPSBicGIuYnBiU2VjdG9yczsKKwlicGIuYnBiU2VjdG9ycyA9IDA7
CisJYnBiLmJwYkJpZ0ZBVHNlY3MgPSBicGIuYnBiRkFUc2VjczsKKwlicGIu
YnBiRkFUc2VjcyA9IDA7CiAgICAgfQogICAgIGlmIChvcHRfaCkKLQlicGIu
aGRzID0gb3B0X2g7CisJYnBiLmJwYkhlYWRzID0gb3B0X2g7CiAgICAgaWYg
KG9wdF91KQotCWJwYi5zcHQgPSBvcHRfdTsKKwlicGIuYnBiU2VjUGVyVHJh
Y2sgPSBvcHRfdTsKICAgICBpZiAob3B0X1MpCi0JYnBiLmJwcyA9IG9wdF9T
OworCWJwYi5icGJCeXRlc1BlclNlYyA9IG9wdF9TOwogICAgIGlmIChvcHRf
cykKLQlicGIuYnNlYyA9IG9wdF9zOworCWJwYi5icGJIdWdlU2VjdG9ycyA9
IG9wdF9zOwogICAgIGlmIChvZmxhZykKLQlicGIuaGlkID0gb3B0X287CisJ
YnBiLmJwYkhpZGRlblNlY3MgPSBvcHRfbzsKICAgICBpZiAoIShvcHRfZiB8
fCAob3B0X2ggJiYgb3B0X3UgJiYgb3B0X1MgJiYgb3B0X3MgJiYgb2ZsYWcp
KSkgewogCW9mZl90IGRlbHRhOwogCWdldGRpc2tpbmZvKGZkLCBmbmFtZSwg
ZHR5cGUsIG9mbGFnLCAmYnBiKTsKLQlicGIuYnNlYyAtPSAob3B0X29mcyAv
IGJwYi5icHMpOwotCWRlbHRhID0gYnBiLmJzZWMgJSBicGIuc3B0OworCWJw
Yi5icGJIdWdlU2VjdG9ycyAtPSAob3B0X29mcyAvIGJwYi5icGJCeXRlc1Bl
clNlYyk7CisJZGVsdGEgPSBicGIuYnBiSHVnZVNlY3RvcnMgJSBicGIuYnBi
U2VjUGVyVHJhY2s7CiAJaWYgKGRlbHRhICE9IDApIHsKIAkgICAgd2Fybngo
InRyaW0gJWQgc2VjdG9ycyB0byBhZGp1c3QgdG8gYSBtdWx0aXBsZSBvZiAl
ZCIsCi0JCShpbnQpZGVsdGEsIGJwYi5zcHQpOwotCSAgICBicGIuYnNlYyAt
PSBkZWx0YTsKKwkJKGludClkZWx0YSwgYnBiLmJwYlNlY1BlclRyYWNrKTsK
KwkgICAgYnBiLmJwYkh1Z2VTZWN0b3JzIC09IGRlbHRhOwogCX0KLQlpZiAo
YnBiLnNwYyA9PSAwKSB7CS8qIHNldCBkZWZhdWx0cyAqLwotCSAgICBpZiAo
YnBiLmJzZWMgPD0gNjAwMCkJLyogYWJvdXQgM01CIC0+IDUxMiBieXRlcyAq
LwotCQlicGIuc3BjID0gMTsKLQkgICAgZWxzZSBpZiAoYnBiLmJzZWMgPD0g
KDE8PDE3KSkgLyogNjRNIC0+IDRrICovCi0JCWJwYi5zcGMgPSA4OwotCSAg
ICBlbHNlIGlmIChicGIuYnNlYyA8PSAoMTw8MTkpKSAvKiAyNTZNIC0+IDhr
ICovCi0JCWJwYi5zcGMgPSAxNjsKLQkgICAgZWxzZSBpZiAoYnBiLmJzZWMg
PD0gKDE8PDIxKSkgLyogMUcgLT4gMTZrICovCi0JCWJwYi5zcGMgPSAzMjsK
KwlpZiAoYnBiLmJwYlNlY1BlckNsdXN0ID09IDApIHsJLyogc2V0IGRlZmF1
bHRzICovCisJICAgIGlmIChicGIuYnBiSHVnZVNlY3RvcnMgPD0gNjAwMCkJ
LyogYWJvdXQgM01CIC0+IDUxMiBieXRlcyAqLworCQlicGIuYnBiU2VjUGVy
Q2x1c3QgPSAxOworCSAgICBlbHNlIGlmIChicGIuYnBiSHVnZVNlY3RvcnMg
PD0gKDE8PDE3KSkgLyogNjRNIC0+IDRrICovCisJCWJwYi5icGJTZWNQZXJD
bHVzdCA9IDg7CisJICAgIGVsc2UgaWYgKGJwYi5icGJIdWdlU2VjdG9ycyA8
PSAoMTw8MTkpKSAvKiAyNTZNIC0+IDhrICovCisJCWJwYi5icGJTZWNQZXJD
bHVzdCA9IDE2OworCSAgICBlbHNlIGlmIChicGIuYnBiSHVnZVNlY3RvcnMg
PD0gKDE8PDIxKSkgLyogMUcgLT4gMTZrICovCisJCWJwYi5icGJTZWNQZXJD
bHVzdCA9IDMyOwogCSAgICBlbHNlCi0JCWJwYi5zcGMgPSA2NDsJCS8qIG90
aGVyd2lzZSAzMmsgKi8KKwkJYnBiLmJwYlNlY1BlckNsdXN0ID0gNjQ7CQkv
KiBvdGhlcndpc2UgMzJrICovCiAJfQogICAgIH0KLSAgICBpZiAoIXBvd2Vy
b2YyKGJwYi5icHMpKQotCWVycngoMSwgImJ5dGVzL3NlY3RvciAoJXUpIGlz
IG5vdCBhIHBvd2VyIG9mIDIiLCBicGIuYnBzKTsKLSAgICBpZiAoYnBiLmJw
cyA8IE1JTkJQUykKKyAgICBpZiAoIXBvd2Vyb2YyKGJwYi5icGJCeXRlc1Bl
clNlYykpCisJZXJyeCgxLCAiYnl0ZXMvc2VjdG9yICgldSkgaXMgbm90IGEg
cG93ZXIgb2YgMiIsIGJwYi5icGJCeXRlc1BlclNlYyk7CisgICAgaWYgKGJw
Yi5icGJCeXRlc1BlclNlYyA8IE1JTkJQUykKIAllcnJ4KDEsICJieXRlcy9z
ZWN0b3IgKCV1KSBpcyB0b28gc21hbGw7IG1pbmltdW0gaXMgJXUiLAotCSAg
ICAgYnBiLmJwcywgTUlOQlBTKTsKKwkgICAgIGJwYi5icGJCeXRlc1BlclNl
YywgTUlOQlBTKTsKICAgICBpZiAoIShmYXQgPSBvcHRfRikpIHsKIAlpZiAo
b3B0X2YpCiAJICAgIGZhdCA9IDEyOwpAQCAtNDM1LDQ0ICs0MzksNDQgQEAK
IAkgICAgIGZhdCA9PSAzMiA/ICdlJyA6IG9wdF9pID8gJ2knIDogJ2snLAog
CSAgICAgZmF0ID09IDMyID8gIjMyIiA6ICIxMi8xNiIpOwogICAgIGlmIChv
cHRfZiAmJiBmYXQgPT0gMzIpCi0JYnBiLnJkZSA9IDA7CisJYnBiLmJwYlJv
b3REaXJFbnRzID0gMDsKICAgICBpZiAob3B0X2IpIHsKIAlpZiAoIXBvd2Vy
b2YyKG9wdF9iKSkKIAkgICAgZXJyeCgxLCAiYmxvY2sgc2l6ZSAoJXUpIGlz
IG5vdCBhIHBvd2VyIG9mIDIiLCBvcHRfYik7Ci0JaWYgKG9wdF9iIDwgYnBi
LmJwcykKKwlpZiAob3B0X2IgPCBicGIuYnBiQnl0ZXNQZXJTZWMpCiAJICAg
IGVycngoMSwgImJsb2NrIHNpemUgKCV1KSBpcyB0b28gc21hbGw7IG1pbmlt
dW0gaXMgJXUiLAotCQkgb3B0X2IsIGJwYi5icHMpOwotCWlmIChvcHRfYiA+
IGJwYi5icHMgKiBNQVhTUEMpCisJCSBvcHRfYiwgYnBiLmJwYkJ5dGVzUGVy
U2VjKTsKKwlpZiAob3B0X2IgPiBicGIuYnBiQnl0ZXNQZXJTZWMgKiBNQVhT
UEMpCiAJICAgIGVycngoMSwgImJsb2NrIHNpemUgKCV1KSBpcyB0b28gbGFy
Z2U7IG1heGltdW0gaXMgJXUiLAotCQkgb3B0X2IsIGJwYi5icHMgKiBNQVhT
UEMpOwotCWJwYi5zcGMgPSBvcHRfYiAvIGJwYi5icHM7CisJCSBvcHRfYiwg
YnBiLmJwYkJ5dGVzUGVyU2VjICogTUFYU1BDKTsKKwlicGIuYnBiU2VjUGVy
Q2x1c3QgPSBvcHRfYiAvIGJwYi5icGJCeXRlc1BlclNlYzsKICAgICB9CiAg
ICAgaWYgKG9wdF9jKSB7CiAJaWYgKCFwb3dlcm9mMihvcHRfYykpCiAJICAg
IGVycngoMSwgInNlY3RvcnMvY2x1c3RlciAoJXUpIGlzIG5vdCBhIHBvd2Vy
IG9mIDIiLCBvcHRfYyk7Ci0JYnBiLnNwYyA9IG9wdF9jOworCWJwYi5icGJT
ZWNQZXJDbHVzdCA9IG9wdF9jOwogICAgIH0KICAgICBpZiAob3B0X3IpCi0J
YnBiLnJlcyA9IG9wdF9yOworCWJwYi5icGJSZXNTZWN0b3JzID0gb3B0X3I7
CiAgICAgaWYgKG9wdF9uKSB7CiAJaWYgKG9wdF9uID4gTUFYTkZUKQogCSAg
ICBlcnJ4KDEsICJudW1iZXIgb2YgRkFUcyAoJXUpIGlzIHRvbyBsYXJnZTsg
bWF4aW11bSBpcyAldSIsCiAJCSBvcHRfbiwgTUFYTkZUKTsKLQlicGIubmZ0
ID0gb3B0X247CisJYnBiLmJwYkZBVHMgPSBvcHRfbjsKICAgICB9CiAgICAg
aWYgKG9wdF9lKQotCWJwYi5yZGUgPSBvcHRfZTsKKwlicGIuYnBiUm9vdERp
ckVudHMgPSBvcHRfZTsKICAgICBpZiAobWZsYWcpIHsKIAlpZiAob3B0X20g
PCAweGYwKQogCSAgICBlcnJ4KDEsICJpbGxlZ2FsIG1lZGlhIGRlc2NyaXB0
b3IgKCUjeCkiLCBvcHRfbSk7Ci0JYnBiLm1pZCA9IG9wdF9tOworCWJwYi5i
cGJNZWRpYSA9IG9wdF9tOwogICAgIH0KICAgICBpZiAob3B0X2EpCi0JYnBi
LmJzcGYgPSBvcHRfYTsKKwlicGIuYnBiQmlnRkFUc2VjcyA9IG9wdF9hOwog
ICAgIGlmIChvcHRfaSkKLQlicGIuaW5mcyA9IG9wdF9pOworCWJwYi5icGJG
U0luZm8gPSBvcHRfaTsKICAgICBpZiAob3B0X2spCi0JYnBiLmJrYnMgPSBv
cHRfazsKKwlicGIuYnBiQmFja3VwID0gb3B0X2s7CiAgICAgYnNzID0gMTsK
ICAgICBibmFtZSA9IE5VTEw7CiAgICAgZmQxID0gLTE7CkBAIC00ODUsODcg
KzQ4OSw4NyBAQAogCX0KIAlpZiAoKGZkMSA9IG9wZW4oYm5hbWUsIE9fUkRP
TkxZKSkgPT0gLTEgfHwgZnN0YXQoZmQxLCAmc2IpKQogCSAgICBlcnIoMSwg
IiVzIiwgYm5hbWUpOwotCWlmICghU19JU1JFRyhzYi5zdF9tb2RlKSB8fCBz
Yi5zdF9zaXplICUgYnBiLmJwcyB8fAotCSAgICBzYi5zdF9zaXplIDwgYnBi
LmJwcyB8fCBzYi5zdF9zaXplID4gYnBiLmJwcyAqIE1BWFUxNikKKwlpZiAo
IVNfSVNSRUcoc2Iuc3RfbW9kZSkgfHwgc2Iuc3Rfc2l6ZSAlIGJwYi5icGJC
eXRlc1BlclNlYyB8fAorCSAgICBzYi5zdF9zaXplIDwgYnBiLmJwYkJ5dGVz
UGVyU2VjIHx8IHNiLnN0X3NpemUgPiBicGIuYnBiQnl0ZXNQZXJTZWMgKiBN
QVhVMTYpCiAJICAgIGVycngoMSwgIiVzOiBpbmFwcHJvcHJpYXRlIGZpbGUg
dHlwZSBvciBmb3JtYXQiLCBibmFtZSk7Ci0JYnNzID0gc2Iuc3Rfc2l6ZSAv
IGJwYi5icHM7CisJYnNzID0gc2Iuc3Rfc2l6ZSAvIGJwYi5icGJCeXRlc1Bl
clNlYzsKICAgICB9Ci0gICAgaWYgKCFicGIubmZ0KQotCWJwYi5uZnQgPSAy
OworICAgIGlmICghYnBiLmJwYkZBVHMpCisJYnBiLmJwYkZBVHMgPSAyOwog
ICAgIGlmICghZmF0KSB7Ci0JaWYgKGJwYi5ic2VjIDwgKGJwYi5yZXMgPyBi
cGIucmVzIDogYnNzKSArCi0JICAgIGhvd21hbnkoKFJFU0ZURSArIChicGIu
c3BjID8gTUlOQ0xTMTYgOiBNQVhDTFMxMiArIDEpKSAqCi0JCSAgICAoKGJw
Yi5zcGMgPyAxNiA6IDEyKSAvIEJQTiksIGJwYi5icHMgKiBOUEIpICoKLQkg
ICAgYnBiLm5mdCArCi0JICAgIGhvd21hbnkoYnBiLnJkZSA/IGJwYi5yZGUg
OiBERUZSREUsCi0JCSAgICBicGIuYnBzIC8gc2l6ZW9mKHN0cnVjdCBkZSkp
ICsKLQkgICAgKGJwYi5zcGMgPyBNSU5DTFMxNiA6IE1BWENMUzEyICsgMSkg
KgotCSAgICAoYnBiLnNwYyA/IGJwYi5zcGMgOiBob3dtYW55KERFRkJMSywg
YnBiLmJwcykpKQorCWlmIChicGIuYnBiSHVnZVNlY3RvcnMgPCAoYnBiLmJw
YlJlc1NlY3RvcnMgPyBicGIuYnBiUmVzU2VjdG9ycyA6IGJzcykgKworCSAg
ICBob3dtYW55KChSRVNGVEUgKyAoYnBiLmJwYlNlY1BlckNsdXN0ID8gTUlO
Q0xTMTYgOiBNQVhDTFMxMiArIDEpKSAqCisJCSAgICAoKGJwYi5icGJTZWNQ
ZXJDbHVzdCA/IDE2IDogMTIpIC8gQlBOKSwgYnBiLmJwYkJ5dGVzUGVyU2Vj
ICogTlBCKSAqCisJICAgIGJwYi5icGJGQVRzICsKKwkgICAgaG93bWFueShi
cGIuYnBiUm9vdERpckVudHMgPyBicGIuYnBiUm9vdERpckVudHMgOiBERUZS
REUsCisJCSAgICBicGIuYnBiQnl0ZXNQZXJTZWMgLyBzaXplb2Yoc3RydWN0
IGRlKSkgKworCSAgICAoYnBiLmJwYlNlY1BlckNsdXN0ID8gTUlOQ0xTMTYg
OiBNQVhDTFMxMiArIDEpICoKKwkgICAgKGJwYi5icGJTZWNQZXJDbHVzdCA/
IGJwYi5icGJTZWNQZXJDbHVzdCA6IGhvd21hbnkoREVGQkxLLCBicGIuYnBi
Qnl0ZXNQZXJTZWMpKSkKIAkgICAgZmF0ID0gMTI7Ci0JZWxzZSBpZiAoYnBi
LnJkZSB8fCBicGIuYnNlYyA8Ci0JCSAoYnBiLnJlcyA/IGJwYi5yZXMgOiBi
c3MpICsKLQkJIGhvd21hbnkoKFJFU0ZURSArIE1BWENMUzE2KSAqIDIsIGJw
Yi5icHMpICogYnBiLm5mdCArCi0JCSBob3dtYW55KERFRlJERSwgYnBiLmJw
cyAvIHNpemVvZihzdHJ1Y3QgZGUpKSArCisJZWxzZSBpZiAoYnBiLmJwYlJv
b3REaXJFbnRzIHx8IGJwYi5icGJIdWdlU2VjdG9ycyA8CisJCSAoYnBiLmJw
YlJlc1NlY3RvcnMgPyBicGIuYnBiUmVzU2VjdG9ycyA6IGJzcykgKworCQkg
aG93bWFueSgoUkVTRlRFICsgTUFYQ0xTMTYpICogMiwgYnBiLmJwYkJ5dGVz
UGVyU2VjKSAqIGJwYi5icGJGQVRzICsKKwkJIGhvd21hbnkoREVGUkRFLCBi
cGIuYnBiQnl0ZXNQZXJTZWMgLyBzaXplb2Yoc3RydWN0IGRlKSkgKwogCQkg
KE1BWENMUzE2ICsgMSkgKgotCQkgKGJwYi5zcGMgPyBicGIuc3BjIDogaG93
bWFueSg4MTkyLCBicGIuYnBzKSkpCisJCSAoYnBiLmJwYlNlY1BlckNsdXN0
ID8gYnBiLmJwYlNlY1BlckNsdXN0IDogaG93bWFueSg4MTkyLCBicGIuYnBi
Qnl0ZXNQZXJTZWMpKSkKIAkgICAgZmF0ID0gMTY7CiAJZWxzZQogCSAgICBm
YXQgPSAzMjsKICAgICB9CiAgICAgeCA9IGJzczsKICAgICBpZiAoZmF0ID09
IDMyKSB7Ci0JaWYgKCFicGIuaW5mcykgewotCSAgICBpZiAoeCA9PSBNQVhV
MTYgfHwgeCA9PSBicGIuYmticykKKwlpZiAoIWJwYi5icGJGU0luZm8pIHsK
KwkgICAgaWYgKHggPT0gTUFYVTE2IHx8IHggPT0gYnBiLmJwYkJhY2t1cCkK
IAkJZXJyeCgxLCAibm8gcm9vbSBmb3IgaW5mbyBzZWN0b3IiKTsKLQkgICAg
YnBiLmluZnMgPSB4OworCSAgICBicGIuYnBiRlNJbmZvID0geDsKIAl9Ci0J
aWYgKGJwYi5pbmZzICE9IE1BWFUxNiAmJiB4IDw9IGJwYi5pbmZzKQotCSAg
ICB4ID0gYnBiLmluZnMgKyAxOwotCWlmICghYnBiLmJrYnMpIHsKKwlpZiAo
YnBiLmJwYkZTSW5mbyAhPSBNQVhVMTYgJiYgeCA8PSBicGIuYnBiRlNJbmZv
KQorCSAgICB4ID0gYnBiLmJwYkZTSW5mbyArIDE7CisJaWYgKCFicGIuYnBi
QmFja3VwKSB7CiAJICAgIGlmICh4ID09IE1BWFUxNikKIAkJZXJyeCgxLCAi
bm8gcm9vbSBmb3IgYmFja3VwIHNlY3RvciIpOwotCSAgICBicGIuYmticyA9
IHg7Ci0JfSBlbHNlIGlmIChicGIuYmticyAhPSBNQVhVMTYgJiYgYnBiLmJr
YnMgPT0gYnBiLmluZnMpCisJICAgIGJwYi5icGJCYWNrdXAgPSB4OworCX0g
ZWxzZSBpZiAoYnBiLmJwYkJhY2t1cCAhPSBNQVhVMTYgJiYgYnBiLmJwYkJh
Y2t1cCA9PSBicGIuYnBiRlNJbmZvKQogCSAgICBlcnJ4KDEsICJiYWNrdXAg
c2VjdG9yIHdvdWxkIG92ZXJ3cml0ZSBpbmZvIHNlY3RvciIpOwotCWlmIChi
cGIuYmticyAhPSBNQVhVMTYgJiYgeCA8PSBicGIuYmticykKLQkgICAgeCA9
IGJwYi5ia2JzICsgMTsKKwlpZiAoYnBiLmJwYkJhY2t1cCAhPSBNQVhVMTYg
JiYgeCA8PSBicGIuYnBiQmFja3VwKQorCSAgICB4ID0gYnBiLmJwYkJhY2t1
cCArIDE7CiAgICAgfQotICAgIGlmICghYnBiLnJlcykKLQlicGIucmVzID0g
ZmF0ID09IDMyID8gTUFYKHgsIE1BWCgxNjM4NCAvIGJwYi5icHMsIDQpKSA6
IHg7Ci0gICAgZWxzZSBpZiAoYnBiLnJlcyA8IHgpCi0JZXJyeCgxLCAidG9v
IGZldyByZXNlcnZlZCBzZWN0b3JzIik7Ci0gICAgaWYgKGZhdCAhPSAzMiAm
JiAhYnBiLnJkZSkKLQlicGIucmRlID0gREVGUkRFOwotICAgIHJkcyA9IGhv
d21hbnkoYnBiLnJkZSwgYnBiLmJwcyAvIHNpemVvZihzdHJ1Y3QgZGUpKTsK
LSAgICBpZiAoIWJwYi5zcGMpCi0JZm9yIChicGIuc3BjID0gaG93bWFueShm
YXQgPT0gMTYgPyBERUZCTEsxNiA6IERFRkJMSywgYnBiLmJwcyk7Ci0JICAg
ICBicGIuc3BjIDwgTUFYU1BDICYmCi0JICAgICBicGIucmVzICsKKyAgICBp
ZiAoIWJwYi5icGJSZXNTZWN0b3JzKQorCWJwYi5icGJSZXNTZWN0b3JzID0g
ZmF0ID09IDMyID8gTUFYKHgsIE1BWCgxNjM4NCAvIGJwYi5icGJCeXRlc1Bl
clNlYywgNCkpIDogeDsKKyAgICBlbHNlIGlmIChicGIuYnBiUmVzU2VjdG9y
cyA8IHgpCisJZXJyeCgxLCAidG9vIGZldyByZXNlcnZlZCBzZWN0b3JzIChu
ZWVkICVkIGhhdmUgJWQpIiwgeCwgYnBiLmJwYlJlc1NlY3RvcnMpOworICAg
IGlmIChmYXQgIT0gMzIgJiYgIWJwYi5icGJSb290RGlyRW50cykKKwlicGIu
YnBiUm9vdERpckVudHMgPSBERUZSREU7CisgICAgcmRzID0gaG93bWFueShi
cGIuYnBiUm9vdERpckVudHMsIGJwYi5icGJCeXRlc1BlclNlYyAvIHNpemVv
ZihzdHJ1Y3QgZGUpKTsKKyAgICBpZiAoIWJwYi5icGJTZWNQZXJDbHVzdCkK
Kwlmb3IgKGJwYi5icGJTZWNQZXJDbHVzdCA9IGhvd21hbnkoZmF0ID09IDE2
ID8gREVGQkxLMTYgOiBERUZCTEssIGJwYi5icGJCeXRlc1BlclNlYyk7CisJ
ICAgICBicGIuYnBiU2VjUGVyQ2x1c3QgPCBNQVhTUEMgJiYKKwkgICAgIGJw
Yi5icGJSZXNTZWN0b3JzICsKIAkgICAgIGhvd21hbnkoKFJFU0ZURSArIG1h
eGNscyhmYXQpKSAqIChmYXQgLyBCUE4pLAotCQkgICAgIGJwYi5icHMgKiBO
UEIpICogYnBiLm5mdCArCisJCSAgICAgYnBiLmJwYkJ5dGVzUGVyU2VjICog
TlBCKSAqIGJwYi5icGJGQVRzICsKIAkgICAgIHJkcyArCi0JICAgICAodV9p
bnQ2NF90KShtYXhjbHMoZmF0KSArIDEpICogYnBiLnNwYyA8PSBicGIuYnNl
YzsKLQkgICAgIGJwYi5zcGMgPDw9IDEpOwotICAgIGlmIChmYXQgIT0gMzIg
JiYgYnBiLmJzcGYgPiBNQVhVMTYpCisJICAgICAodV9pbnQ2NF90KShtYXhj
bHMoZmF0KSArIDEpICogYnBiLmJwYlNlY1BlckNsdXN0IDw9IGJwYi5icGJI
dWdlU2VjdG9yczsKKwkgICAgIGJwYi5icGJTZWNQZXJDbHVzdCA8PD0gMSk7
CisgICAgaWYgKGZhdCAhPSAzMiAmJiBicGIuYnBiQmlnRkFUc2VjcyA+IE1B
WFUxNikKIAllcnJ4KDEsICJ0b28gbWFueSBzZWN0b3JzL0ZBVCBmb3IgRkFU
MTIvMTYiKTsKLSAgICB4MSA9IGJwYi5yZXMgKyByZHM7Ci0gICAgeCA9IGJw
Yi5ic3BmID8gYnBiLmJzcGYgOiAxOwotICAgIGlmICh4MSArICh1X2ludDY0
X3QpeCAqIGJwYi5uZnQgPiBicGIuYnNlYykKKyAgICB4MSA9IGJwYi5icGJS
ZXNTZWN0b3JzICsgcmRzOworICAgIHggPSBicGIuYnBiQmlnRkFUc2VjcyA/
IGJwYi5icGJCaWdGQVRzZWNzIDogMTsKKyAgICBpZiAoeDEgKyAodV9pbnQ2
NF90KXggKiBicGIuYnBiRkFUcyA+IGJwYi5icGJIdWdlU2VjdG9ycykKIAll
cnJ4KDEsICJtZXRhIGRhdGEgZXhjZWVkcyBmaWxlIHN5c3RlbSBzaXplIik7
Ci0gICAgeDEgKz0geCAqIGJwYi5uZnQ7Ci0gICAgeCA9ICh1X2ludDY0X3Qp
KGJwYi5ic2VjIC0geDEpICogYnBiLmJwcyAqIE5QQiAvCi0JKGJwYi5zcGMg
KiBicGIuYnBzICogTlBCICsgZmF0IC8gQlBOICogYnBiLm5mdCk7CisgICAg
eDEgKz0geCAqIGJwYi5icGJGQVRzOworICAgIHggPSAodV9pbnQ2NF90KShi
cGIuYnBiSHVnZVNlY3RvcnMgLSB4MSkgKiBicGIuYnBiQnl0ZXNQZXJTZWMg
KiBOUEIgLworCShicGIuYnBiU2VjUGVyQ2x1c3QgKiBicGIuYnBiQnl0ZXNQ
ZXJTZWMgKiBOUEIgKyBmYXQgLyBCUE4gKiBicGIuYnBiRkFUcyk7CiAgICAg
eDIgPSBob3dtYW55KChSRVNGVEUgKyBNSU4oeCwgbWF4Y2xzKGZhdCkpKSAq
IChmYXQgLyBCUE4pLAotCQkgYnBiLmJwcyAqIE5QQik7Ci0gICAgaWYgKCFi
cGIuYnNwZikgewotCWJwYi5ic3BmID0geDI7Ci0JeDEgKz0gKGJwYi5ic3Bm
IC0gMSkgKiBicGIubmZ0OworCQkgYnBiLmJwYkJ5dGVzUGVyU2VjICogTlBC
KTsKKyAgICBpZiAoIWJwYi5icGJCaWdGQVRzZWNzKSB7CisJYnBiLmJwYkJp
Z0ZBVHNlY3MgPSB4MjsKKwl4MSArPSAoYnBiLmJwYkJpZ0ZBVHNlY3MgLSAx
KSAqIGJwYi5icGJGQVRzOwogICAgIH0KLSAgICBjbHMgPSAoYnBiLmJzZWMg
LSB4MSkgLyBicGIuc3BjOwotICAgIHggPSAodV9pbnQ2NF90KWJwYi5ic3Bm
ICogYnBiLmJwcyAqIE5QQiAvIChmYXQgLyBCUE4pIC0gUkVTRlRFOworICAg
IGNscyA9IChicGIuYnBiSHVnZVNlY3RvcnMgLSB4MSkgLyBicGIuYnBiU2Vj
UGVyQ2x1c3Q7CisgICAgeCA9ICh1X2ludDY0X3QpYnBiLmJwYkJpZ0ZBVHNl
Y3MgKiBicGIuYnBiQnl0ZXNQZXJTZWMgKiBOUEIgLyAoZmF0IC8gQlBOKSAt
IFJFU0ZURTsKICAgICBpZiAoY2xzID4geCkKIAljbHMgPSB4OwotICAgIGlm
IChicGIuYnNwZiA8IHgyKQorICAgIGlmIChicGIuYnBiQmlnRkFUc2VjcyA8
IHgyKQogCXdhcm54KCJ3YXJuaW5nOiBzZWN0b3JzL0ZBVCBsaW1pdHMgZmls
ZSBzeXN0ZW0gdG8gJXUgY2x1c3RlcnMiLAogCSAgICAgIGNscyk7CiAgICAg
aWYgKGNscyA8IG1pbmNscyhmYXQpKQpAQCAtNTczLDc5ICs1NzcsNzkgQEAK
IAkgICAgbWluY2xzKGZhdCkpOwogICAgIGlmIChjbHMgPiBtYXhjbHMoZmF0
KSkgewogCWNscyA9IG1heGNscyhmYXQpOwotCWJwYi5ic2VjID0geDEgKyAo
Y2xzICsgMSkgKiBicGIuc3BjIC0gMTsKKwlicGIuYnBiSHVnZVNlY3RvcnMg
PSB4MSArIChjbHMgKyAxKSAqIGJwYi5icGJTZWNQZXJDbHVzdCAtIDE7CiAJ
d2FybngoIndhcm5pbmc6IEZBVCB0eXBlIGxpbWl0cyBmaWxlIHN5c3RlbSB0
byAldSBzZWN0b3JzIiwKLQkgICAgICBicGIuYnNlYyk7CisJICAgICAgYnBi
LmJwYkh1Z2VTZWN0b3JzKTsKICAgICB9CiAgICAgcHJpbnRmKCIlczogJXUg
c2VjdG9yJXMgaW4gJXUgRkFUJXUgY2x1c3RlciVzICIKLQkgICAiKCV1IGJ5
dGVzL2NsdXN0ZXIpXG4iLCBmbmFtZSwgY2xzICogYnBiLnNwYywKLQkgICBj
bHMgKiBicGIuc3BjID09IDEgPyAiIiA6ICJzIiwgY2xzLCBmYXQsCi0JICAg
Y2xzID09IDEgPyAiIiA6ICJzIiwgYnBiLmJwcyAqIGJwYi5zcGMpOwotICAg
IGlmICghYnBiLm1pZCkKLQlicGIubWlkID0gIWJwYi5oaWQgPyAweGYwIDog
MHhmODsKKwkgICAiKCV1IGJ5dGVzL2NsdXN0ZXIpXG4iLCBmbmFtZSwgY2xz
ICogYnBiLmJwYlNlY1BlckNsdXN0LAorCSAgIGNscyAqIGJwYi5icGJTZWNQ
ZXJDbHVzdCA9PSAxID8gIiIgOiAicyIsIGNscywgZmF0LAorCSAgIGNscyA9
PSAxID8gIiIgOiAicyIsIGJwYi5icGJCeXRlc1BlclNlYyAqIGJwYi5icGJT
ZWNQZXJDbHVzdCk7CisgICAgaWYgKCFicGIuYnBiTWVkaWEpCisJYnBiLmJw
Yk1lZGlhID0gIWJwYi5icGJIaWRkZW5TZWNzID8gMHhmMCA6IDB4Zjg7CiAg
ICAgaWYgKGZhdCA9PSAzMikKLQlicGIucmRjbCA9IFJFU0ZURTsKLSAgICBp
ZiAoYnBiLmhpZCArIGJwYi5ic2VjIDw9IE1BWFUxNikgewotCWJwYi5zZWMg
PSBicGIuYnNlYzsKLQlicGIuYnNlYyA9IDA7CisJYnBiLmJwYlJvb3RDbHVz
dCA9IFJFU0ZURTsKKyAgICBpZiAoYnBiLmJwYkhpZGRlblNlY3MgKyBicGIu
YnBiSHVnZVNlY3RvcnMgPD0gTUFYVTE2KSB7CisJYnBiLmJwYlNlY3RvcnMg
PSBicGIuYnBiSHVnZVNlY3RvcnM7CisJYnBiLmJwYkh1Z2VTZWN0b3JzID0g
MDsKICAgICB9CiAgICAgaWYgKGZhdCAhPSAzMikgewotCWJwYi5zcGYgPSBi
cGIuYnNwZjsKLQlicGIuYnNwZiA9IDA7CisJYnBiLmJwYkZBVHNlY3MgPSBi
cGIuYnBiQmlnRkFUc2VjczsKKwlicGIuYnBiQmlnRkFUc2VjcyA9IDA7CiAg
ICAgfQogICAgIHByaW50X2JwYigmYnBiKTsKICAgICBpZiAoIW9wdF9OKSB7
CiAJZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CiAJbm93ID0gdHYudHZfc2Vj
OwogCXRtID0gbG9jYWx0aW1lKCZub3cpOwotCWlmICghKGltZyA9IG1hbGxv
YyhicGIuYnBzKSkpCisJaWYgKCEoaW1nID0gbWFsbG9jKGJwYi5icGJCeXRl
c1BlclNlYykpKQogCSAgICBlcnIoMSwgTlVMTCk7Ci0JZGlyID0gYnBiLnJl
cyArIChicGIuc3BmID8gYnBiLnNwZiA6IGJwYi5ic3BmKSAqIGJwYi5uZnQ7
Ci0JZm9yIChsc24gPSAwOyBsc24gPCBkaXIgKyAoZmF0ID09IDMyID8gYnBi
LnNwYyA6IHJkcyk7IGxzbisrKSB7CisJZGlyID0gYnBiLmJwYlJlc1NlY3Rv
cnMgKyAoYnBiLmJwYkZBVHNlY3MgPyBicGIuYnBiRkFUc2VjcyA6IGJwYi5i
cGJCaWdGQVRzZWNzKSAqIGJwYi5icGJGQVRzOworCWZvciAobHNuID0gMDsg
bHNuIDwgZGlyICsgKGZhdCA9PSAzMiA/IGJwYi5icGJTZWNQZXJDbHVzdCA6
IHJkcyk7IGxzbisrKSB7CiAJICAgIHggPSBsc247CiAJICAgIGlmIChvcHRf
QiAmJgotCQlmYXQgPT0gMzIgJiYgYnBiLmJrYnMgIT0gTUFYVTE2ICYmCi0J
CWJzcyA8PSBicGIuYmticyAmJiB4ID49IGJwYi5ia2JzKSB7Ci0JCXggLT0g
YnBiLmJrYnM7CisJCWZhdCA9PSAzMiAmJiBicGIuYnBiQmFja3VwICE9IE1B
WFUxNiAmJgorCQlic3MgPD0gYnBiLmJwYkJhY2t1cCAmJiB4ID49IGJwYi5i
cGJCYWNrdXApIHsKKwkJeCAtPSBicGIuYnBiQmFja3VwOwogCQlpZiAoIXgg
JiYgbHNlZWsoZmQxLCBvcHRfb2ZzLCBTRUVLX1NFVCkpCiAJCSAgICBlcnIo
MSwgIiVzIiwgYm5hbWUpOwogCSAgICB9CiAJICAgIGlmIChvcHRfQiAmJiB4
IDwgYnNzKSB7Ci0JCWlmICgobiA9IHJlYWQoZmQxLCBpbWcsIGJwYi5icHMp
KSA9PSAtMSkKKwkJaWYgKChuID0gcmVhZChmZDEsIGltZywgYnBiLmJwYkJ5
dGVzUGVyU2VjKSkgPT0gLTEpCiAJCSAgICBlcnIoMSwgIiVzIiwgYm5hbWUp
OwotCQlpZiAoKHVuc2lnbmVkKW4gIT0gYnBiLmJwcykKKwkJaWYgKCh1bnNp
Z25lZCluICE9IGJwYi5icGJCeXRlc1BlclNlYykKIAkJICAgIGVycngoMSwg
IiVzOiBjYW4ndCByZWFkIHNlY3RvciAldSIsIGJuYW1lLCB4KTsKIAkgICAg
fSBlbHNlCi0JCW1lbXNldChpbWcsIDAsIGJwYi5icHMpOworCQltZW1zZXQo
aW1nLCAwLCBicGIuYnBiQnl0ZXNQZXJTZWMpOwogCSAgICBpZiAoIWxzbiB8
fAotCSAgICAgIChmYXQgPT0gMzIgJiYgYnBiLmJrYnMgIT0gTUFYVTE2ICYm
IGxzbiA9PSBicGIuYmticykpIHsKKwkgICAgICAoZmF0ID09IDMyICYmIGJw
Yi5icGJCYWNrdXAgIT0gTUFYVTE2ICYmIGxzbiA9PSBicGIuYnBiQmFja3Vw
KSkgewogCQl4MSA9IHNpemVvZihzdHJ1Y3QgYnMpOwogCQlic2JwYiA9IChz
dHJ1Y3QgYnNicGIgKikoaW1nICsgeDEpOwotCQltazIoYnNicGItPmJwcywg
YnBiLmJwcyk7Ci0JCW1rMShic2JwYi0+c3BjLCBicGIuc3BjKTsKLQkJbWsy
KGJzYnBiLT5yZXMsIGJwYi5yZXMpOwotCQltazEoYnNicGItPm5mdCwgYnBi
Lm5mdCk7Ci0JCW1rMihic2JwYi0+cmRlLCBicGIucmRlKTsKLQkJbWsyKGJz
YnBiLT5zZWMsIGJwYi5zZWMpOwotCQltazEoYnNicGItPm1pZCwgYnBiLm1p
ZCk7Ci0JCW1rMihic2JwYi0+c3BmLCBicGIuc3BmKTsKLQkJbWsyKGJzYnBi
LT5zcHQsIGJwYi5zcHQpOwotCQltazIoYnNicGItPmhkcywgYnBiLmhkcyk7
Ci0JCW1rNChic2JwYi0+aGlkLCBicGIuaGlkKTsKLQkJbWs0KGJzYnBiLT5i
c2VjLCBicGIuYnNlYyk7CisJCW1rMihic2JwYi0+YnBiQnl0ZXNQZXJTZWMs
IGJwYi5icGJCeXRlc1BlclNlYyk7CisJCW1rMShic2JwYi0+YnBiU2VjUGVy
Q2x1c3QsIGJwYi5icGJTZWNQZXJDbHVzdCk7CisJCW1rMihic2JwYi0+YnBi
UmVzU2VjdG9ycywgYnBiLmJwYlJlc1NlY3RvcnMpOworCQltazEoYnNicGIt
PmJwYkZBVHMsIGJwYi5icGJGQVRzKTsKKwkJbWsyKGJzYnBiLT5icGJSb290
RGlyRW50cywgYnBiLmJwYlJvb3REaXJFbnRzKTsKKwkJbWsyKGJzYnBiLT5i
cGJTZWN0b3JzLCBicGIuYnBiU2VjdG9ycyk7CisJCW1rMShic2JwYi0+YnBi
TWVkaWEsIGJwYi5icGJNZWRpYSk7CisJCW1rMihic2JwYi0+YnBiRkFUc2Vj
cywgYnBiLmJwYkZBVHNlY3MpOworCQltazIoYnNicGItPmJwYlNlY1BlclRy
YWNrLCBicGIuYnBiU2VjUGVyVHJhY2spOworCQltazIoYnNicGItPmJwYkhl
YWRzLCBicGIuYnBiSGVhZHMpOworCQltazQoYnNicGItPmJwYkhpZGRlblNl
Y3MsIGJwYi5icGJIaWRkZW5TZWNzKTsKKwkJbWs0KGJzYnBiLT5icGJIdWdl
U2VjdG9ycywgYnBiLmJwYkh1Z2VTZWN0b3JzKTsKIAkJeDEgKz0gc2l6ZW9m
KHN0cnVjdCBic2JwYik7CiAJCWlmIChmYXQgPT0gMzIpIHsKIAkJICAgIGJz
eGJwYiA9IChzdHJ1Y3QgYnN4YnBiICopKGltZyArIHgxKTsKLQkJICAgIG1r
NChic3hicGItPmJzcGYsIGJwYi5ic3BmKTsKKwkJICAgIG1rNChic3hicGIt
PmJzcGYsIGJwYi5icGJCaWdGQVRzZWNzKTsKIAkJICAgIG1rMihic3hicGIt
PnhmbGcsIDApOwogCQkgICAgbWsyKGJzeGJwYi0+dmVycywgMCk7Ci0JCSAg
ICBtazQoYnN4YnBiLT5yZGNsLCBicGIucmRjbCk7Ci0JCSAgICBtazIoYnN4
YnBiLT5pbmZzLCBicGIuaW5mcyk7Ci0JCSAgICBtazIoYnN4YnBiLT5ia2Jz
LCBicGIuYmticyk7CisJCSAgICBtazQoYnN4YnBiLT5yZGNsLCBicGIuYnBi
Um9vdENsdXN0KTsKKwkJICAgIG1rMihic3hicGItPmluZnMsIGJwYi5icGJG
U0luZm8pOworCQkgICAgbWsyKGJzeGJwYi0+YmticywgYnBiLmJwYkJhY2t1
cCk7CiAJCSAgICB4MSArPSBzaXplb2Yoc3RydWN0IGJzeGJwYik7CiAJCX0K
IAkJYnN4ID0gKHN0cnVjdCBic3ggKikoaW1nICsgeDEpOwotCQltazEoYnN4
LT5zaWcsIDB4MjkpOworCQltazEoYnN4LT5leEJvb3RTaWduYXR1cmUsIDB4
MjkpOwogCQlpZiAoSWZsYWcpCiAJCSAgICB4ID0gb3B0X0k7CiAJCWVsc2UK
QEAgLTY1Niw1MiArNjYwLDUyIEBACiAJCQkoKHVfaW50KSgxOTAwICsgdG0t
PnRtX3llYXIpICsKIAkJCSAoKHVfaW50KXRtLT50bV9ob3VyIDw8IDggfAog
CQkJICAodV9pbnQpdG0tPnRtX21pbikpOwotCQltazQoYnN4LT52b2xpZCwg
eCk7Ci0JCW1rbGFiZWwoYnN4LT5sYWJlbCwgb3B0X0wgPyBvcHRfTCA6ICJO
TyBOQU1FIik7Ci0JCXNwcmludGYoYnVmLCAiRkFUJXUiLCBmYXQpOwotCQlz
ZXRzdHIoYnN4LT50eXBlLCBidWYsIHNpemVvZihic3gtPnR5cGUpKTsKKwkJ
bWs0KGJzeC0+ZXhWb2x1bWVJRCwgeCk7CisJCW1rbGFiZWwoYnN4LT5leFZv
bHVtZUxhYmVsLCBvcHRfTCA/IG9wdF9MIDogIk5PX05BTUUiKTsKKwkJc25w
cmludGYoYnVmLCBzaXplb2YoYnVmKSwgIkZBVCV1IiwgZmF0KTsKKwkJc2V0
c3RyKGJzeC0+ZXhGaWxlU3lzVHlwZSwgYnVmLCBzaXplb2YoYnN4LT5leEZp
bGVTeXNUeXBlKSk7CiAJCWlmICghb3B0X0IpIHsKIAkJICAgIHgxICs9IHNp
emVvZihzdHJ1Y3QgYnN4KTsKIAkJICAgIGJzID0gKHN0cnVjdCBicyAqKWlt
ZzsKLQkJICAgIG1rMShicy0+am1wWzBdLCAweGViKTsKLQkJICAgIG1rMShi
cy0+am1wWzFdLCB4MSAtIDIpOwotCQkgICAgbWsxKGJzLT5qbXBbMl0sIDB4
OTApOwotCQkgICAgc2V0c3RyKGJzLT5vZW0sIG9wdF9PID8gb3B0X08gOiAi
QlNEICA0LjQiLAotCQkJICAgc2l6ZW9mKGJzLT5vZW0pKTsKKwkJICAgIG1r
MShicy0+YnNKdW1wWzBdLCAweGViKTsKKwkJICAgIG1rMShicy0+YnNKdW1w
WzFdLCB4MSAtIDIpOworCQkgICAgbWsxKGJzLT5ic0p1bXBbMl0sIDB4OTAp
OworCQkgICAgc2V0c3RyKGJzLT5ic09lbU5hbWUsIG9wdF9PID8gb3B0X08g
OiAiQlNENC40ICAiLAorCQkJICAgc2l6ZW9mKGJzLT5ic09lbU5hbWUpKTsK
IAkJICAgIG1lbWNweShpbWcgKyB4MSwgYm9vdGNvZGUsIHNpemVvZihib290
Y29kZSkpOwogCQkgICAgbWsyKGltZyArIE1JTkJQUyAtIDIsIERPU01BR0lD
KTsKIAkJfQotCSAgICB9IGVsc2UgaWYgKGZhdCA9PSAzMiAmJiBicGIuaW5m
cyAhPSBNQVhVMTYgJiYKLQkJICAgICAgIChsc24gPT0gYnBiLmluZnMgfHwK
LQkJCShicGIuYmticyAhPSBNQVhVMTYgJiYKLQkJCSBsc24gPT0gYnBiLmJr
YnMgKyBicGIuaW5mcykpKSB7CisJICAgIH0gZWxzZSBpZiAoZmF0ID09IDMy
ICYmIGJwYi5icGJGU0luZm8gIT0gTUFYVTE2ICYmCisJCSAgICAgICAobHNu
ID09IGJwYi5icGJGU0luZm8gfHwKKwkJCShicGIuYnBiQmFja3VwICE9IE1B
WFUxNiAmJgorCQkJIGxzbiA9PSBicGIuYnBiQmFja3VwICsgYnBiLmJwYkZT
SW5mbykpKSB7CiAJCW1rNChpbWcsIDB4NDE2MTUyNTIpOwogCQltazQoaW1n
ICsgTUlOQlBTIC0gMjgsIDB4NjE0MTcyNzIpOwogCQltazQoaW1nICsgTUlO
QlBTIC0gMjQsIDB4ZmZmZmZmZmYpOwotCQltazQoaW1nICsgTUlOQlBTIC0g
MjAsIGJwYi5yZGNsKTsKKwkJbWs0KGltZyArIE1JTkJQUyAtIDIwLCBicGIu
YnBiUm9vdENsdXN0KTsKIAkJbWsyKGltZyArIE1JTkJQUyAtIDIsIERPU01B
R0lDKTsKLQkgICAgfSBlbHNlIGlmIChsc24gPj0gYnBiLnJlcyAmJiBsc24g
PCBkaXIgJiYKLQkJICAgICAgICEoKGxzbiAtIGJwYi5yZXMpICUKLQkJCSAo
YnBiLnNwZiA/IGJwYi5zcGYgOiBicGIuYnNwZikpKSB7Ci0JCW1rMShpbWdb
MF0sIGJwYi5taWQpOworCSAgICB9IGVsc2UgaWYgKGxzbiA+PSBicGIuYnBi
UmVzU2VjdG9ycyAmJiBsc24gPCBkaXIgJiYKKwkJICAgICAgICEoKGxzbiAt
IGJwYi5icGJSZXNTZWN0b3JzKSAlCisJCQkgKGJwYi5icGJGQVRzZWNzID8g
YnBiLmJwYkZBVHNlY3MgOiBicGIuYnBiQmlnRkFUc2VjcykpKSB7CisJCW1r
MShpbWdbMF0sIGJwYi5icGJNZWRpYSk7CiAJCWZvciAoeCA9IDE7IHggPCBm
YXQgKiAoZmF0ID09IDMyID8gMyA6IDIpIC8gODsgeCsrKQogCQkgICAgbWsx
KGltZ1t4XSwgZmF0ID09IDMyICYmIHggJSA0ID09IDMgPyAweDBmIDogMHhm
Zik7CiAJICAgIH0gZWxzZSBpZiAobHNuID09IGRpciAmJiBvcHRfTCkgewog
CQlkZSA9IChzdHJ1Y3QgZGUgKilpbWc7Ci0JCW1rbGFiZWwoZGUtPm5hbWV4
dCwgb3B0X0wpOwotCQltazEoZGUtPmF0dHIsIDA1MCk7CisJCW1rbGFiZWwo
ZGUtPmRlTmFtZSwgb3B0X0wpOworCQltazEoZGUtPmRlQXR0cmlidXRlcywg
MDUwKTsKIAkJeCA9ICh1X2ludCl0bS0+dG1faG91ciA8PCAxMSB8CiAJCSAg
ICAodV9pbnQpdG0tPnRtX21pbiA8PCA1IHwKIAkJICAgICh1X2ludCl0bS0+
dG1fc2VjID4+IDE7Ci0JCW1rMihkZS0+dGltZSwgeCk7CisJCW1rMihkZS0+
ZGVDVGltZSwgeCk7CiAJCXggPSAodV9pbnQpKHRtLT50bV95ZWFyIC0gODAp
IDw8IDkgfAogCQkgICAgKHVfaW50KSh0bS0+dG1fbW9uICsgMSkgPDwgNSB8
CiAJCSAgICAodV9pbnQpdG0tPnRtX21kYXk7Ci0JCW1rMihkZS0+ZGF0ZSwg
eCk7CisJCW1rMihkZS0+ZGVDRGF0ZSwgeCk7CiAJICAgIH0KLQkgICAgaWYg
KChuID0gd3JpdGUoZmQsIGltZywgYnBiLmJwcykpID09IC0xKQorCSAgICBp
ZiAoKG4gPSB3cml0ZShmZCwgaW1nLCBicGIuYnBiQnl0ZXNQZXJTZWMpKSA9
PSAtMSkKIAkJZXJyKDEsICIlcyIsIGZuYW1lKTsKLQkgICAgaWYgKCh1bnNp
Z25lZCluICE9IGJwYi5icHMpCisJICAgIGlmICgodW5zaWduZWQpbiAhPSBi
cGIuYnBiQnl0ZXNQZXJTZWMpCiAJCWVycngoMSwgIiVzOiBjYW4ndCB3cml0
ZSBzZWN0b3IgJXUiLCBmbmFtZSwgbHNuKTsKIAl9CiAgICAgfQpAQCAtNzk0
LDE4ICs3OTgsMTkgQEAKIAogICAgIC8qIE1heWJlIGl0J3MgYSBmaXhlZCBk
cml2ZSAqLwogICAgIGlmIChscCA9PSBOVUxMKSB7CisJaWYgKGJwYi0+YnBi
Qnl0ZXNQZXJTZWMpCisJICAgIGRscC5kX3NlY3NpemUgPSBicGItPmJwYkJ5
dGVzUGVyU2VjOwogCWlmIChpb2N0bChmZCwgRElPQ0dESU5GTywgJmRscCkg
PT0gLTEpIHsKLQkgICAgaWYgKGJwYi0+YnBzID09IDAgJiYgaW9jdGwoZmQs
IERJT0NHU0VDVE9SU0laRSwgJmRscC5kX3NlY3NpemUpID09IC0xKQorCSAg
ICBpZiAoYnBiLT5icGJCeXRlc1BlclNlYyA9PSAwICYmIGlvY3RsKGZkLCBE
SU9DR1NFQ1RPUlNJWkUsICZkbHAuZF9zZWNzaXplKSA9PSAtMSkKIAkJZXJy
eCgxLCAiQ2Fubm90IGdldCBzZWN0b3Igc2l6ZSwgJXMiLCBzdHJlcnJvcihl
cnJubykpOwogCi0JICAgIC8qIFhYWCBTaG91bGQgd2UgdXNlIGJwYi0+YnBz
IGlmIGl0J3Mgc2V0PyAqLwogCSAgICBkbHAuZF9zZWNwZXJ1bml0ID0gbXMg
LyBkbHAuZF9zZWNzaXplOwogCi0JICAgIGlmIChicGItPnNwdCA9PSAwICYm
IGlvY3RsKGZkLCBESU9DR0ZXU0VDVE9SUywgJmRscC5kX25zZWN0b3JzKSA9
PSAtMSkgeworCSAgICBpZiAoYnBiLT5icGJTZWNQZXJUcmFjayA9PSAwICYm
IGlvY3RsKGZkLCBESU9DR0ZXU0VDVE9SUywgJmRscC5kX25zZWN0b3JzKSA9
PSAtMSkgewogCQl3YXJueCgiQ2Fubm90IGdldCBudW1iZXIgb2Ygc2VjdG9y
cyBwZXIgdHJhY2ssICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKIAkJZGxwLmRf
bnNlY3RvcnMgPSA2MzsKIAkgICAgfQotCSAgICBpZiAoYnBiLT5oZHMgPT0g
MCAmJiBpb2N0bChmZCwgRElPQ0dGV0hFQURTLCAmZGxwLmRfbnRyYWNrcykg
PT0gLTEpIHsKKwkgICAgaWYgKGJwYi0+YnBiSGVhZHMgPT0gMCAmJiBpb2N0
bChmZCwgRElPQ0dGV0hFQURTLCAmZGxwLmRfbnRyYWNrcykgPT0gLTEpIHsK
IAkJd2FybngoIkNhbm5vdCBnZXQgbnVtYmVyIG9mIGhlYWRzLCAlcyIsIHN0
cmVycm9yKGVycm5vKSk7CiAJCWlmIChkbHAuZF9zZWNwZXJ1bml0IDw9IDYz
KjEqMTAyNCkKIAkJICAgIGRscC5kX250cmFja3MgPSAxOwpAQCAtODIwLDE2
ICs4MjUsMTYgQEAKIAlscCA9ICZkbHA7CiAgICAgfQogCi0gICAgaWYgKGJw
Yi0+YnBzID09IDApCi0JYnBiLT5icHMgPSBja2dlb20oZm5hbWUsIGxwLT5k
X3NlY3NpemUsICJieXRlcy9zZWN0b3IiKTsKLSAgICBpZiAoYnBiLT5zcHQg
PT0gMCkKLQlicGItPnNwdCA9IGNrZ2VvbShmbmFtZSwgbHAtPmRfbnNlY3Rv
cnMsICJzZWN0b3JzL3RyYWNrIik7Ci0gICAgaWYgKGJwYi0+aGRzID09IDAp
Ci0JYnBiLT5oZHMgPSBja2dlb20oZm5hbWUsIGxwLT5kX250cmFja3MsICJk
cml2ZSBoZWFkcyIpOwotICAgIGlmIChicGItPmJzZWMgPT0gMCkKLQlicGIt
PmJzZWMgPSBscC0+ZF9zZWNwZXJ1bml0OwotICAgIGlmIChicGItPmhpZCA9
PSAwKQotCWJwYi0+aGlkID0gaHM7CisgICAgaWYgKGJwYi0+YnBiQnl0ZXNQ
ZXJTZWMgPT0gMCkKKwlicGItPmJwYkJ5dGVzUGVyU2VjID0gY2tnZW9tKGZu
YW1lLCBscC0+ZF9zZWNzaXplLCAiYnl0ZXMvc2VjdG9yIik7CisgICAgaWYg
KGJwYi0+YnBiU2VjUGVyVHJhY2sgPT0gMCkKKwlicGItPmJwYlNlY1BlclRy
YWNrID0gY2tnZW9tKGZuYW1lLCBscC0+ZF9uc2VjdG9ycywgInNlY3RvcnMv
dHJhY2siKTsKKyAgICBpZiAoYnBiLT5icGJIZWFkcyA9PSAwKQorCWJwYi0+
YnBiSGVhZHMgPSBja2dlb20oZm5hbWUsIGxwLT5kX250cmFja3MsICJkcml2
ZSBoZWFkcyIpOworICAgIGlmIChicGItPmJwYkh1Z2VTZWN0b3JzID09IDAp
CisJYnBiLT5icGJIdWdlU2VjdG9ycyA9IGxwLT5kX3NlY3BlcnVuaXQ7Cisg
ICAgaWYgKGJwYi0+YnBiSGlkZGVuU2VjcyA9PSAwKQorCWJwYi0+YnBiSGlk
ZGVuU2VjcyA9IGhzOwogfQogCiAvKgpAQCAtODM4LDI0ICs4NDMsMjQgQEAK
IHN0YXRpYyB2b2lkCiBwcmludF9icGIoc3RydWN0IGJwYiAqYnBiKQogewot
ICAgIHByaW50ZigiYnBzPSV1IHNwYz0ldSByZXM9JXUgbmZ0PSV1IiwgYnBi
LT5icHMsIGJwYi0+c3BjLCBicGItPnJlcywKLQkgICBicGItPm5mdCk7Ci0g
ICAgaWYgKGJwYi0+cmRlKQotCXByaW50ZigiIHJkZT0ldSIsIGJwYi0+cmRl
KTsKLSAgICBpZiAoYnBiLT5zZWMpCi0JcHJpbnRmKCIgc2VjPSV1IiwgYnBi
LT5zZWMpOwotICAgIHByaW50ZigiIG1pZD0lI3giLCBicGItPm1pZCk7Ci0g
ICAgaWYgKGJwYi0+c3BmKQotCXByaW50ZigiIHNwZj0ldSIsIGJwYi0+c3Bm
KTsKLSAgICBwcmludGYoIiBzcHQ9JXUgaGRzPSV1IGhpZD0ldSIsIGJwYi0+
c3B0LCBicGItPmhkcywgYnBiLT5oaWQpOwotICAgIGlmIChicGItPmJzZWMp
Ci0JcHJpbnRmKCIgYnNlYz0ldSIsIGJwYi0+YnNlYyk7Ci0gICAgaWYgKCFi
cGItPnNwZikgewotCXByaW50ZigiIGJzcGY9JXUgcmRjbD0ldSIsIGJwYi0+
YnNwZiwgYnBiLT5yZGNsKTsKLQlwcmludGYoIiBpbmZzPSIpOwotCXByaW50
ZihicGItPmluZnMgPT0gTUFYVTE2ID8gIiUjeCIgOiAiJXUiLCBicGItPmlu
ZnMpOwotCXByaW50ZigiIGJrYnM9Iik7Ci0JcHJpbnRmKGJwYi0+YmticyA9
PSBNQVhVMTYgPyAiJSN4IiA6ICIldSIsIGJwYi0+Ymticyk7CisgICAgcHJp
bnRmKCJCeXRlc1BlclNlYz0ldSBTZWNQZXJDbHVzdD0ldSBSZXNTZWN0b3Jz
PSV1IEZBVHM9JXUiLCBicGItPmJwYkJ5dGVzUGVyU2VjLCBicGItPmJwYlNl
Y1BlckNsdXN0LCBicGItPmJwYlJlc1NlY3RvcnMsCisJICAgYnBiLT5icGJG
QVRzKTsKKyAgICBpZiAoYnBiLT5icGJSb290RGlyRW50cykKKwlwcmludGYo
IiBSb290RGlyRW50cz0ldSIsIGJwYi0+YnBiUm9vdERpckVudHMpOworICAg
IGlmIChicGItPmJwYlNlY3RvcnMpCisJcHJpbnRmKCIgU2VjdG9ycz0ldSIs
IGJwYi0+YnBiU2VjdG9ycyk7CisgICAgcHJpbnRmKCIgTWVkaWE9JSN4Iiwg
YnBiLT5icGJNZWRpYSk7CisgICAgaWYgKGJwYi0+YnBiRkFUc2VjcykKKwlw
cmludGYoIiBGQVRzZWNzPSV1IiwgYnBiLT5icGJGQVRzZWNzKTsKKyAgICBw
cmludGYoIiBTZWNQZXJUcmFjaz0ldSBIZWFkcz0ldSBIaWRkZW5TZWNzPSV1
IiwgYnBiLT5icGJTZWNQZXJUcmFjaywgYnBiLT5icGJIZWFkcywgYnBiLT5i
cGJIaWRkZW5TZWNzKTsKKyAgICBpZiAoYnBiLT5icGJIdWdlU2VjdG9ycykK
KwlwcmludGYoIiBIdWdlU2VjdG9ycz0ldSIsIGJwYi0+YnBiSHVnZVNlY3Rv
cnMpOworICAgIGlmICghYnBiLT5icGJGQVRzZWNzKSB7CisJcHJpbnRmKCIg
RkFUc2Vjcz0ldSBSb290Q2x1c3Rlcj0ldSIsIGJwYi0+YnBiQmlnRkFUc2Vj
cywgYnBiLT5icGJSb290Q2x1c3QpOworCXByaW50ZigiIEZTSW5mbz0iKTsK
KwlwcmludGYoYnBiLT5icGJGU0luZm8gPT0gTUFYVTE2ID8gIiUjeCIgOiAi
JXUiLCBicGItPmJwYkZTSW5mbyk7CisJcHJpbnRmKCIgQmFja3VwPSIpOwor
CXByaW50ZihicGItPmJwYkJhY2t1cCA9PSBNQVhVMTYgPyAiJSN4IiA6ICIl
dSIsIGJwYi0+YnBiQmFja3VwKTsKICAgICB9CiAgICAgcHJpbnRmKCJcbiIp
OwogfQo=

--0-96800579-1263761668=:91781--



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