[nhc-users] Problems Compiling

Malcolm Wallace Malcolm.Wallace@cs.york.ac.uk
Fri, 29 Aug 2003 10:36:57 +0100


This is a multi-part message in MIME format.

--Multipart_Fri__29_Aug_2003_10:36:57_+0100_08215d90
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

> > In file included from longlong.h:75,
> >                  from mpz_div.c:25:
> > asmlong.h:3:12: missing terminating " character
> > asmlong.h:7:40: missing terminating " character
> > .... etc
> 
> I would guess that your machine probably has a very recent gcc compiler
> version >= 3.3 maybe?

Attached is the new file "asmlong.h", which replaces the version
distributed with nhc98 in the directory src/runtime/Integer.  If you
drop it into place and re-start the build, everything should now
go smoothly.

Regards,
    Malcolm

--Multipart_Fri__29_Aug_2003_10:36:57_+0100_08215d90
Content-Type: text/plain;
 name="asmlong.h"
Content-Disposition: attachment;
 filename="asmlong.h"
Content-Transfer-Encoding: base64

I2lmIGRlZmluZWQgKF9fYTI5a19fKSB8fCBkZWZpbmVkIChfX19BTTI5S19fKQojZGVmaW5lIGFk
ZF9zc2FhYWEoc2gsIHNsLCBhaCwgYWwsIGJoLCBibCkgXAogIF9fYXNtX18gKCJhZGQgJTEsJTQs
JTVcbiIJXAoiCWFkZGMgJTAsJTIsJTMiCQlcCgkgOiAiPXIiICgodW5zaWduZWQgbG9uZyBpbnQp
KHNoKSksICI9JnIiICgodW5zaWduZWQgbG9uZyBpbnQpKHNsKSkgXAoJIDogIiVyIiAoKHVuc2ln
bmVkIGxvbmcgaW50KShhaCkpLCAickkiICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksIFwKCSAg
ICIlciIgKCh1bnNpZ25lZCBsb25nIGludCkoYWwpKSwgInJJIiAoKHVuc2lnbmVkIGxvbmcgaW50
KShibCkpKQojZGVmaW5lIHN1Yl9kZG1tc3Moc2gsIHNsLCBhaCwgYWwsIGJoLCBibCkgXAogIF9f
YXNtX18gKCJzdWIgJTEsJTQsJTVcbiIJXAoiCXN1YmMgJTAsJTIsJTMiCQlcCgkgOiAiPXIiICgo
dW5zaWduZWQgbG9uZyBpbnQpKHNoKSksICI9JnIiICgodW5zaWduZWQgbG9uZyBpbnQpKHNsKSkg
XAoJIDogInIiICgodW5zaWduZWQgbG9uZyBpbnQpKGFoKSksICJySSIgKCh1bnNpZ25lZCBsb25n
IGludCkoYmgpKSwgXAoJICAgInIiICgodW5zaWduZWQgbG9uZyBpbnQpKGFsKSksICJySSIgKCh1
bnNpZ25lZCBsb25nIGludCkoYmwpKSkKI2RlZmluZSB1bXVsX3BwbW0oeGgsIHhsLCBtMCwgbTEp
IFwKICBkbyB7CQkJCQkJCQkJXAogICAgdW5zaWduZWQgbG9uZyBpbnQgX19tMCA9IChtMCksIF9f
bTEgPSAobTEpOwkJCQlcCiAgICBfX2FzbV9fICgibXVsdGlwbHUgJTAsJTEsJTIiIDogIj1yIiAo
KHVuc2lnbmVkIGxvbmcgaW50KSh4bCkpCVwKCSAgICAgOiAiciIgKF9fbTApLCAiciIgKF9fbTEp
KTsJCQkJCVwKICAgIF9fYXNtX18gKCJtdWx0bXUgJTAsJTEsJTIiIDogIj1yIiAoKHVuc2lnbmVk
IGxvbmcgaW50KSh4aCkpCQlcCgkgICAgIDogInIiIChfX20wKSwgInIiIChfX20xKSk7CQkJCQlc
CiAgfSB3aGlsZSAoMCkKI2RlZmluZSB1ZGl2X3Fybm5kKHEsIHIsIG4xLCBuMCwgZCkgXAogIF9f
YXNtX18gKCJkaXZpZHUgJTAsJTMsJTQiCQkJCQkJXAoJOiAiPXIiICgodW5zaWduZWQgbG9uZyBp
bnQpKHEpKSwgIj1xIiAoKHVuc2lnbmVkIGxvbmcgaW50KShyKSkJXAoJOiAiMSIgKCh1bnNpZ25l
ZCBsb25nIGludCkobjEpKSwgInIiICgodW5zaWduZWQgbG9uZyBpbnQpKG4wKSksCVwKCSAgInIi
ICgodW5zaWduZWQgbG9uZyBpbnQpKGQpKSkKI2RlZmluZSBjb3VudF9sZWFkaW5nX3plcm9zKGNv
dW50LCB4KSBcCiAgICBfX2FzbV9fICgiY2x6ICUwLCUxIiA6ICI9ciIgKCh1bnNpZ25lZCBsb25n
IGludCkoY291bnQpKQkJXAoJICAgICA6ICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KSh4KSkpCiNl
bmRpZiAvKiBfX2EyOWtfXyAqLwoKI2lmIGRlZmluZWQgKF9fYXJtX18pCiNkZWZpbmUgYWRkX3Nz
YWFhYShzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21fXyAoImFkZHMgJTEsJTQsJTVc
biIJXAoiCWFkYyAlMCwlMiwlMyIJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzaCkp
LCAiPSZyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzbCkpIFwKCTogIiVyIiAoKHVuc2lnbmVkIGxv
bmcgaW50KShhaCkpLCAickkiICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksIFwKCSAgIiVyIiAo
KHVuc2lnbmVkIGxvbmcgaW50KShhbCkpLCAickkiICgodW5zaWduZWQgbG9uZyBpbnQpKGJsKSkp
CiNkZWZpbmUgc3ViX2RkbW1zcyhzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21fXyAo
InN1YnMgJTEsJTQsJTVcbiIJXAoiCXNiYyAlMCwlMiwlMyIJCVwKCTogIj1yIiAoKHVuc2lnbmVk
IGxvbmcgaW50KShzaCkpLCAiPSZyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzbCkpIFwKCTogInIi
ICgodW5zaWduZWQgbG9uZyBpbnQpKGFoKSksICJySSIgKCh1bnNpZ25lZCBsb25nIGludCkoYmgp
KSwgXAoJICAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoYWwpKSwgInJJIiAoKHVuc2lnbmVkIGxv
bmcgaW50KShibCkpKQojZW5kaWYgLyogX19hcm1fXyAqLwoKI2lmIGRlZmluZWQgKF9fZ21pY3Jv
X18pCiNkZWZpbmUgYWRkX3NzYWFhYShzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21f
XyAoImFkZC53ICU1LCUxXG4iCVwKIglhZGR4ICUzLCUwIgkJXAogICAgICAgOiAiPWciICgodW5z
aWduZWQgbG9uZyBpbnQpKHNoKSksICI9JmciICgodW5zaWduZWQgbG9uZyBpbnQpKHNsKSlcCiAg
ICAgICA6ICIlMCIgKCh1bnNpZ25lZCBsb25nIGludCkoYWgpKSwgImciICgodW5zaWduZWQgbG9u
ZyBpbnQpKGJoKSksCVwKCSAiJTEiICgodW5zaWduZWQgbG9uZyBpbnQpKGFsKSksICJnIiAoKHVu
c2lnbmVkIGxvbmcgaW50KShibCkpKQojZGVmaW5lIHN1Yl9kZG1tc3Moc2gsIHNsLCBhaCwgYWws
IGJoLCBibCkgXAogIF9fYXNtX18gKCJzdWIudyAlNSwlMVxuIglcCiIJc3VieCAlMywlMCIJCVwK
ICAgICAgIDogIj1nIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzaCkpLCAiPSZnIiAoKHVuc2lnbmVk
IGxvbmcgaW50KShzbCkpXAogICAgICAgOiAiMCIgKCh1bnNpZ25lZCBsb25nIGludCkoYWgpKSwg
ImciICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksCVwKCSAiMSIgKCh1bnNpZ25lZCBsb25nIGlu
dCkoYWwpKSwgImciICgodW5zaWduZWQgbG9uZyBpbnQpKGJsKSkpCiNkZWZpbmUgdW11bF9wcG1t
KHBoLCBwbCwgbTAsIG0xKSBcCiAgX19hc21fXyAoIm11bHggJTMsJTAsJTEiCQkJCQkJXAoJOiAi
PWciICgodW5zaWduZWQgbG9uZyBpbnQpKHBoKSksICI9ciIgKCh1bnNpZ25lZCBsb25nIGludCko
cGwpKVwKCTogIiUwIiAoKHVuc2lnbmVkIGxvbmcgaW50KShtMCkpLCAiZyIgKCh1bnNpZ25lZCBs
b25nIGludCkobTEpKSkKI2RlZmluZSB1ZGl2X3Fybm5kKHEsIHIsIG5oLCBubCwgZCkgXAogIF9f
YXNtX18gKCJkaXZ4ICU0LCUwLCUxIgkJCQkJCVwKCTogIj1nIiAoKHVuc2lnbmVkIGxvbmcgaW50
KShxKSksICI9ciIgKCh1bnNpZ25lZCBsb25nIGludCkocikpCVwKCTogIjEiICgodW5zaWduZWQg
bG9uZyBpbnQpKG5oKSksICIwIiAoKHVuc2lnbmVkIGxvbmcgaW50KShubCkpLAlcCgkgICJnIiAo
KHVuc2lnbmVkIGxvbmcgaW50KShkKSkpCiNkZWZpbmUgY291bnRfbGVhZGluZ196ZXJvcyhjb3Vu
dCwgeCkgXAogIF9fYXNtX18gKCJic2NoLzEgJTEsJTAiCQkJCQkJXAoJOiAiPWciIChjb3VudCkJ
CQkJCQkJXAoJOiAiZyIgKCh1bnNpZ25lZCBsb25nIGludCkoeCkpLCAiMCIgKDBVTCkpCiNlbmRp
ZgoKI2lmIGRlZmluZWQgKF9faHBwYSkKI2RlZmluZSBhZGRfc3NhYWFhKHNoLCBzbCwgYWgsIGFs
LCBiaCwgYmwpIFwKICBfX2FzbV9fICgiYWRkICU0LCU1LCUxXG4iCVwKIiAgICAgICAgYWRkYyAl
MiwlMywlMCIJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzaCkpLCAiPSZyIiAoKHVu
c2lnbmVkIGxvbmcgaW50KShzbCkpXAoJOiAiJXIiICgodW5zaWduZWQgbG9uZyBpbnQpKGFoKSks
ICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShiaCkpLFwKCSAgIiVyIiAoKHVuc2lnbmVkIGxvbmcg
aW50KShhbCkpLCAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoYmwpKSkKI2RlZmluZSBzdWJfZGRt
bXNzKHNoLCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKICBfX2FzbV9fICgic3ViICU1LCU0LCUxXG4i
CVwKIiAgICAgICAgc3ViYiAlMywlMiwlMCIJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxvbmcgaW50
KShzaCkpLCAiPSZyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzbCkpXAoJOiAiciIgKCh1bnNpZ25l
ZCBsb25nIGludCkoYWgpKSwgInIiICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksCVwKCSAgInIi
ICgodW5zaWduZWQgbG9uZyBpbnQpKGFsKSksICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShibCkp
KQojZW5kaWYKCiNpZiBkZWZpbmVkIChfX2kzODZfXykgfHwgZGVmaW5lZCAoX19pNDg2X18pCiNk
ZWZpbmUgYWRkX3NzYWFhYShzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21fXyAoImFk
ZGwgJTUsJTFcbiIJXAoiCWFkY2wgJTMsJTAiCQlcCiAgICAgICA6ICI9ciIgKCh1bnNpZ25lZCBs
b25nIGludCkoc2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKICAgICAgIDog
IiUwIiAoKHVuc2lnbmVkIGxvbmcgaW50KShhaCkpLCAiZyIgKCh1bnNpZ25lZCBsb25nIGludCko
YmgpKSwJXAoJICIlMSIgKCh1bnNpZ25lZCBsb25nIGludCkoYWwpKSwgImciICgodW5zaWduZWQg
bG9uZyBpbnQpKGJsKSkpCiNkZWZpbmUgc3ViX2RkbW1zcyhzaCwgc2wsIGFoLCBhbCwgYmgsIGJs
KSBcCiAgX19hc21fXyAoInN1YmwgJTUsJTFcbiIJXAoiCXNiYmwgJTMsJTAiCQlcCiAgICAgICA6
ICI9ciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGlu
dCkoc2wpKVwKICAgICAgIDogIjAiICgodW5zaWduZWQgbG9uZyBpbnQpKGFoKSksICJnIiAoKHVu
c2lnbmVkIGxvbmcgaW50KShiaCkpLAlcCgkgIjEiICgodW5zaWduZWQgbG9uZyBpbnQpKGFsKSks
ICJnIiAoKHVuc2lnbmVkIGxvbmcgaW50KShibCkpKQojZGVmaW5lIHVtdWxfcHBtbSh3MSwgdzAs
IHUsIHYpIFwKICBfX2FzbV9fICgibXVsbCAlMyIJCQkJCQkJXAoJOiAiPWEiICgodW5zaWduZWQg
bG9uZyBpbnQpKHcwKSksICI9ZCIgKCh1bnNpZ25lZCBsb25nIGludCkodzEpKVwKCTogIiUwIiAo
KHVuc2lnbmVkIGxvbmcgaW50KSh1KSksICJybSIgKCh1bnNpZ25lZCBsb25nIGludCkodikpKQoj
ZGVmaW5lIHVkaXZfcXJubmQocSwgciwgbjEsIG4wLCBkKSBcCiAgX19hc21fXyAoImRpdmwgJTQi
CQkJCQkJCVwKCTogIj1hIiAoKHVuc2lnbmVkIGxvbmcgaW50KShxKSksICI9ZCIgKCh1bnNpZ25l
ZCBsb25nIGludCkocikpCVwKCTogIjAiICgodW5zaWduZWQgbG9uZyBpbnQpKG4wKSksICIxIiAo
KHVuc2lnbmVkIGxvbmcgaW50KShuMSkpLAlcCgkgICJybSIgKCh1bnNpZ25lZCBsb25nIGludCko
ZCkpKQojaWYgMAojZGVmaW5lIGNvdW50X2xlYWRpbmdfemVyb3MoY291bnQsIHgpIFwKICBkbyB7
CQkJCQkJCQkJXAogICAgdW5zaWduZWQgbG9uZyBpbnQgX19jYnRtcDsJCQkJCQlcCiAgICBfX2Fz
bV9fICgiYnNybCAlMSwlMCIJCQkJCQlcCgkgICAgIDogIj1yIiAoX19jYnRtcCkgOiAicm0iICgo
dW5zaWduZWQgbG9uZyBpbnQpKHgpKSk7CQlcCiAgICAoY291bnQpID0gX19jYnRtcCBeIDMxOwkJ
CQkJCVwKICB9IHdoaWxlICgwKQojZW5kaWYKI2VuZGlmIC8qIDgweDg2ICovCgojaWYgZGVmaW5l
ZCAoX19pODYwX18pCiNpZiAwCi8qIE1ha2Ugc3VyZSB0aGVzZSBwYXR0ZXJucyByZWFsbHkgaW1w
cm92ZSB0aGUgY29kZSBiZWZvcmUKICAgc3dpdGNoaW5nIHRoZW0gb24uICAqLwojZGVmaW5lIGFk
ZF9zc2FhYWEoc2gsIHNsLCBhaCwgYWwsIGJoLCBibCkgXAogIGRvIHsJCQkJCQkJCQlcCiAgICB1
bmlvbgkJCQkJCQkJXAogICAgICB7CQkJCQkJCQkJXAoJbG9uZyBsb25nIGludCBsbDsJCQkJCQlc
CglzdHJ1Y3Qge3Vuc2lnbmVkIGxvbmcgaW50IGwsIGg7fSBpOwkJCQlcCiAgICAgIH0gIF9fYSwg
X19iLCBfX3M7CQkJCQkJCVwKICAgIF9fYS5pLmwgPSAoYWwpOyBfX2EuaS5oID0gKGFoKTsJCQkJ
CVwKICAgIF9fYi5pLmwgPSAoYmwpOyBfX2IuaS5oID0gKGJoKTsJCQkJCVwKICAgIF9fYXNtX18g
KCJmaWFkZC5kZCAlMSwlMiwlMCIJCQkJCVwKCSAgICAgOiAiPWYiIChfX3MubGwpCQkJCQkJXAoJ
ICAgICA6ICIlZiIgKF9fYS5sbCksICJmIiAoX19iLmxsKSk7CQkJCVwKICAgIChzaCkgPSBfX3Mu
aS5oOyAoc2wpID0gX19zLmkubDsJCQkJCVwKICAgIH0gd2hpbGUgKDApCiNkZWZpbmUgc3ViX2Rk
bW1zcyhzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgZG8gewkJCQkJCQkJCVwKICAgIHVuaW9u
CQkJCQkJCQlcCiAgICAgIHsJCQkJCQkJCQlcCglsb25nIGxvbmcgaW50IGxsOwkJCQkJCVwKCXN0
cnVjdCB7dW5zaWduZWQgbG9uZyBpbnQgbCwgaDt9IGk7CQkJCVwKICAgICAgfSAgX19hLCBfX2Is
IF9fczsJCQkJCQkJXAogICAgX19hLmkubCA9IChhbCk7IF9fYS5pLmggPSAoYWgpOwkJCQkJXAog
ICAgX19iLmkubCA9IChibCk7IF9fYi5pLmggPSAoYmgpOwkJCQkJXAogICAgX19hc21fXyAoImZp
c3ViLmRkICUxLCUyLCUwIgkJCQkJXAoJICAgICA6ICI9ZiIgKF9fcy5sbCkJCQkJCQlcCgkgICAg
IDogIiVmIiAoX19hLmxsKSwgImYiIChfX2IubGwpKTsJCQkJXAogICAgKHNoKSA9IF9fcy5pLmg7
IChzbCkgPSBfX3MuaS5sOwkJCQkJXAogICAgfSB3aGlsZSAoMCkKI2VuZGlmCiNlbmRpZiAvKiBf
X2k4NjBfXyAqLwoKI2lmIGRlZmluZWQgKF9fX0lCTVIyX18pIC8qIElCTSBSUzYwMDAgKi8KI2Rl
ZmluZSBhZGRfc3NhYWFhKHNoLCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKICBfX2FzbV9fICgiYSAl
MSwlNCwlNVxuIglcCiIJYWUgJTAsJTIsJTMiCQlcCgk6ICI9ciIgKCh1bnNpZ25lZCBsb25nIGlu
dCkoc2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogIiVyIiAoKHVuc2ln
bmVkIGxvbmcgaW50KShhaCkpLCAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoYmgpKSxcCgkgICIl
ciIgKCh1bnNpZ25lZCBsb25nIGludCkoYWwpKSwgInIiICgodW5zaWduZWQgbG9uZyBpbnQpKGJs
KSkpCiNkZWZpbmUgc3ViX2RkbW1zcyhzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21f
XyAoInNmICUxLCU1LCU0XG4iCVwKIglzZmUgJTAsJTMsJTIiCQlcCgk6ICI9ciIgKCh1bnNpZ25l
ZCBsb25nIGludCkoc2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogInIi
ICgodW5zaWduZWQgbG9uZyBpbnQpKGFoKSksICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShiaCkp
LAlcCgkgICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShhbCkpLCAiciIgKCh1bnNpZ25lZCBsb25n
IGludCkoYmwpKSkKI2RlZmluZSB1bXVsX3BwbW0oeGgsIHhsLCBtMCwgbTEpIFwKICBkbyB7CQkJ
CQkJCQkJXAogICAgdW5zaWduZWQgbG9uZyBpbnQgX19tMCA9IChtMCksIF9fbTEgPSAobTEpOwkJ
CQlcCiAgICBfX2FzbV9fICgibXVsICUwLCUyLCUzIgkJCQkJCVwKCTogIj1yIiAoKHVuc2lnbmVk
IGxvbmcgaW50KSh4aCkpLCAiPXEiICgodW5zaWduZWQgbG9uZyBpbnQpKHhsKSlcCgk6ICJyIiAo
X19tMCksICJyIiAoX19tMSkpOwkJCQkJXAogICAgKHhoKSArPSAoKCgoc2lnbmVkIGxvbmcgaW50
KSBfX20wID4+IDMxKSAmIF9fbTEpCQkJXAoJICAgICArICgoKHNpZ25lZCBsb25nIGludCkgX19t
MSA+PiAzMSkgJiBfX20wKSk7CQlcCiAgfSB3aGlsZSAoMCkKI2RlZmluZSBVTVVMX1RJTUUgOAoj
ZGVmaW5lIHVkaXZfcXJubmQocSwgciwgbmgsIG5sLCBkKSBcCiAgZG8geyAvKiBVc2UgdGhlIHNp
Z25lZCAiZGl2IiBpbnNuLCBhbmQgYWRqdXN0IHRoZSByZXN1bHQuICovCQlcCiAgICB1bnNpZ25l
ZCBsb25nIGludCBfX3EsIF9fciwgX19uaCwgX19ubCwgX19kLCBfX3hoLCBfX3hsOwkJXAogICAg
X19uaCA9IDA7CQkJCQkJCQlcCiAgICBfX25sID0gKCgodW5zaWduZWQgbG9uZyBpbnQpKG5oKSkg
PDwgMzApIHwgKCh1bnNpZ25lZCBsb25nIGludCkobmwpID4+IDIpO1wKICAgIF9fbmggPSAodW5z
aWduZWQgbG9uZyBpbnQpKG5oKSA+PiAyOwkJCQlcCiAgICBfX2QgPSAoKHVuc2lnbmVkIGxvbmcg
aW50KShkKSA+PiAxKTsJCQkJXAogICAgX19hc21fXyAoImRpdiAlMCwlMiwlNCIJCQkJCQlcCgkg
ICAgIDogIj1yIiAoX19xKSwgIj1xIiAoX19yKQkJCQkJXAoJICAgICA6ICJyIiAoX19uaCksICIx
IiAoX19ubCksICJyIiAoX19kKSk7CQkJXAogICAgX19xIDw8PSAxOwkJCQkJCQkJXAogICAgX19h
c21fXyAoIm11bCAlMCwlMiwlMyIJCQkJCQlcCgkgICAgIDogIj1yIiAoX194aCksICI9cSIgKF9f
eGwpCQkJCQlcCgkgICAgIDogInIiIChfX3EpLCAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoZCkp
KTsJCVwKICAgIF9feGggKz0gKCgoc2lnbmVkIGxvbmcgaW50KSBfX3EgPj4gMzEpICYgKGQpKSAr
IF9fcTsJCVwKICAgIGlmICgobmgpIDwgX194aCB8fCAoKG5oKSA9PSBfX3hoICYmIChubCkgPCBf
X3hsKSkJCQlcCiAgICAgIHsJCQkJCQkJCQlcCglkbwkJCQkJCQkJXAoJICB7CQkJCQkJCQlcCgkg
ICAgc3ViX2RkbW1zcyAoX194aCwgX194bCwgX194aCwgX194bCwgMCwgKGQpKTsJCVwKCSAgICBf
X3EtLTsJCQkJCQkJXAoJICB9CQkJCQkJCQlcCgl3aGlsZSAoKG5oKSA8IF9feGggfHwgKChuaCkg
PT0gX194aCAmJiAobmwpIDwgX194bCkpOwkJXAoJX194bCA9IChubCkgLSBfX3hsOwkJCQkJCVwK
ICAgICAgfQkJCQkJCQkJCVwKICAgIGVsc2UJCQkJCQkJCVwKICAgICAgewkJCQkJCQkJCVwKCXN1
Yl9kZG1tc3MgKF9feGgsIF9feGwsIChuaCksIChubCksIF9feGgsIF9feGwpOwkJXAoJaWYgKF9f
eGggIT0gMCkJCQkJCQkJXAoJICB7CQkJCQkJCQlcCgkgICAgZG8JCQkJCQkJCVwKCSAgICAgIHsJ
CQkJCQkJCVwKCQlzdWJfZGRtbXNzIChfX3hoLCBfX3hsLCBfX3hoLCBfX3hsLCAwLCAoZCkpOwkJ
XAoJCV9fcSsrOwkJCQkJCQlcCgkgICAgICB9CQkJCQkJCQlcCgkgICAgd2hpbGUgKF9feGggIT0g
MCk7CQkJCQkJXAoJICB9CQkJCQkJCQlcCglpZiAoX194bCA+PSAoZCkpCQkJCQkJXAoJICB7CQkJ
CQkJCQlcCgkgICAgX194bCAtPSAoZCk7CQkJCQkJXAoJICAgIF9fcSsrOwkJCQkJCQlcCgkgIH0J
CQkJCQkJCVwKICAgICAgfQkJCQkJCQkJCVwKICAgIChxKSA9IF9fcTsJCQkJCQkJCVwKICAgIChy
KSA9IF9feGw7CQkJCQkJCQlcCiAgfSB3aGlsZSAoMCkKI2RlZmluZSBVRElWX1RJTUUgNDAKI2Rl
ZmluZSBVRElWX05FRURTX05PUk1BTElaQVRJT04gMQojZGVmaW5lIGNvdW50X2xlYWRpbmdfemVy
b3MoY291bnQsIHgpIFwKICBfX2FzbV9fICgiY250bHogJTAsJTEiCQkJCQkJXAoJOiAiPXIiICgo
dW5zaWduZWQgbG9uZyBpbnQpKGNvdW50KSkgOiAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoeCkp
KQojZW5kaWYgLyogX19fSUJNUjJfXyAqLwoKI2lmIGRlZmluZWQgKF9fbWM2ODAwMF9fKQojZGVm
aW5lIGFkZF9zc2FhYWEoc2gsIHNsLCBhaCwgYWwsIGJoLCBibCkgXAogIF9fYXNtX18gKCJhZGQl
LmwgJTUsJTFcblx0YWRkeCUubCAlMywlMCIJCQkJXAoJICAgOiAiPWQiICgodW5zaWduZWQgbG9u
ZyBpbnQpKHNoKSksCQkJCVwKCSAgICAgIj0mZCIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKQkJ
CQlcCgkgICA6ICIlMCIgKCh1bnNpZ25lZCBsb25nIGludCkoYWgpKSwJCQkJXAoJICAgICAiZCIg
KCh1bnNpZ25lZCBsb25nIGludCkoYmgpKSwJCQkJXAoJICAgICAiJTEiICgodW5zaWduZWQgbG9u
ZyBpbnQpKGFsKSksCQkJCVwKCSAgICAgImciICgodW5zaWduZWQgbG9uZyBpbnQpKGJsKSkpCiNk
ZWZpbmUgc3ViX2RkbW1zcyhzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21fXyAoInN1
YiUubCAlNSwlMVxuXHRzdWJ4JS5sICUzLCUwIgkJCQlcCgkgICA6ICI9ZCIgKCh1bnNpZ25lZCBs
b25nIGludCkoc2gpKSwJCQkJXAoJICAgICAiPSZkIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzbCkp
CQkJCVwKCSAgIDogIjAiICgodW5zaWduZWQgbG9uZyBpbnQpKGFoKSksCQkJCVwKCSAgICAgImQi
ICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksCQkJCVwKCSAgICAgIjEiICgodW5zaWduZWQgbG9u
ZyBpbnQpKGFsKSksCQkJCVwKCSAgICAgImciICgodW5zaWduZWQgbG9uZyBpbnQpKGJsKSkpCiNp
ZiBkZWZpbmVkIChfX21jNjgwMjBfXykgfHwgZGVmaW5lZCAoX19OZVhUX18pIHx8IGRlZmluZWQo
bWM2ODAyMCkKI2RlZmluZSB1bXVsX3BwbW0odzEsIHcwLCB1LCB2KSBcCiAgX19hc21fXyAoIm11
bHUlLmwgJTMsJTE6JTAiCQkJCQkJXAoJOiAiPWQiICgodW5zaWduZWQgbG9uZyBpbnQpKHcwKSks
ICI9ZCIgKCh1bnNpZ25lZCBsb25nIGludCkodzEpKVwKCTogIiUwIiAoKHVuc2lnbmVkIGxvbmcg
aW50KSh1KSksICJkbWkiICgodW5zaWduZWQgbG9uZyBpbnQpKHYpKSkKI2RlZmluZSB1ZGl2X3Fy
bm5kKHEsIHIsIG4xLCBuMCwgZCkgXAogIF9fYXNtX18gKCJkaXZ1JS5sICU0LCUxOiUwIgkJCQkJ
CVwKCTogIj1kIiAoKHVuc2lnbmVkIGxvbmcgaW50KShxKSksICI9ZCIgKCh1bnNpZ25lZCBsb25n
IGludCkocikpCVwKCTogIjAiICgodW5zaWduZWQgbG9uZyBpbnQpKG4wKSksICIxIiAoKHVuc2ln
bmVkIGxvbmcgaW50KShuMSkpLAlcCgkgICJkbWkiICgodW5zaWduZWQgbG9uZyBpbnQpKGQpKSkK
I2RlZmluZSBjb3VudF9sZWFkaW5nX3plcm9zKGNvdW50LCB4KSBcCiAgX19hc21fXyAoImJmZmZv
ICUxeyViMjolYjJ9LCUwIgkJCQkJXAoJOiAiPWQiICgodW5zaWduZWQgbG9uZyBpbnQpKGNvdW50
KSkJCQkJXAoJOiAib2QiICgodW5zaWduZWQgbG9uZyBpbnQpKHgpKSwgIm4iICgwKSkKI2Vsc2Ug
Lyogbm90IG1jNjgwMjAgKi8KI2RlZmluZSB1bXVsX3BwbW0oeGgsIHhsLCBhLCBiKSBcCiAgX19h
c21fXyAoInwgSW5saW5lZCB1bXVsX3BwbW1cbiIJXAoiCW1vdmVsCSUyLGQwXG4iCVwKIgltb3Zl
bAklMyxkMVxuIglcCiIJbW92ZWwJZDAsZDJcbiIJXAoiCXN3YXAJZDBcbiIJCVwKIgltb3ZlbAlk
MSxkM1xuIglcCiIJc3dhcAlkMVxuIgkJXAoiCW1vdmV3CWQyLGQ0XG4iCVwKIgltdWx1CWQzLGQ0
XG4iCVwKIgltdWx1CWQxLGQyXG4iCVwKIgltdWx1CWQwLGQzXG4iCVwKIgltdWx1CWQwLGQxXG4i
CVwKIgltb3ZlbAlkNCxkMFxuIglcCiIJZW9ydwlkMCxkMFxuIglcCiIJc3dhcAlkMFxuIgkJXAoi
CWFkZGwJZDAsZDJcbiIJXAoiCWFkZGwJZDMsZDJcbiIJXAoiCWpjYwkxZlxuIgkJXAoiCWFkZGwJ
IzY1NTM2LGQxXG4iCVwKIjE6CXN3YXAJZDJcbiIJCVwKIgltb3ZlcQkjMCxkMFxuIglcCiIJbW92
ZXcJZDIsZDBcbiIJXAoiCW1vdmV3CWQ0LGQyXG4iCVwKIgltb3ZlbAlkMiwlMVxuIglcCiIJYWRk
bAlkMSxkMFxuIglcCiIJbW92ZWwJZDAsJTAiCQlcCiAgICAgICA6ICI9ZyIgKCh1bnNpZ25lZCBs
b25nIGludCkoeGgpKSwgIj1nIiAoKHVuc2lnbmVkIGxvbmcgaW50KSh4bCkpCVwKICAgICAgIDoi
ZyIgKCh1bnNpZ25lZCBsb25nIGludCkoYSkpLCAiZyIgKCh1bnNpZ25lZCBsb25nIGludCkoYikp
CVwKICAgICAgIDogImQwIiwgImQxIiwgImQyIiwgImQzIiwgImQ0IikKI2VuZGlmIC8qIG5vdCBt
YzY4MDIwICovCiNlbmRpZiAvKiBtYzY4MDAwICovCgojaWYgZGVmaW5lZCAoX19tODgwMDBfXykK
I2RlZmluZSBhZGRfc3NhYWFhKHNoLCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKICBfX2FzbV9fICgi
YWRkdS5jbyAlMSwlcjQsJXI1XG5cdGFkZHUuY2kgJTAsJXIyLCVyMyIJCQlcCgk6ICI9ciIgKCh1
bnNpZ25lZCBsb25nIGludCkoc2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwK
CTogIiVySiIgKCh1bnNpZ25lZCBsb25nIGludCkoYWgpKSwgInJKIiAoKHVuc2lnbmVkIGxvbmcg
aW50KShiaCkpLFwKCSAgIiVySiIgKCh1bnNpZ25lZCBsb25nIGludCkoYWwpKSwgInJKIiAoKHVu
c2lnbmVkIGxvbmcgaW50KShibCkpKQojZGVmaW5lIHN1Yl9kZG1tc3Moc2gsIHNsLCBhaCwgYWws
IGJoLCBibCkgXAogIF9fYXNtX18gKCJzdWJ1LmNvICUxLCVyNCwlcjVcblx0IHN1YnUuY2kgJTAs
JXIyLCVyMyIJCQlcCgk6ICI9ciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2gpKSwgIj0mciIgKCh1
bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogInJKIiAoKHVuc2lnbmVkIGxvbmcgaW50KShhaCkp
LCAickoiICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksXAoJICAickoiICgodW5zaWduZWQgbG9u
ZyBpbnQpKGFsKSksICJySiIgKCh1bnNpZ25lZCBsb25nIGludCkoYmwpKSkKI2RlZmluZSBVTVVM
X1RJTUUgMTcKI2RlZmluZSBVRElWX1RJTUUgMTUwCiNkZWZpbmUgY291bnRfbGVhZGluZ196ZXJv
cyhjb3VudCwgeCkgXAogIGRvIHsJCQkJCQkJCQlcCiAgICB1bnNpZ25lZCBsb25nIGludCBfX2Ni
dG1wOwkJCQkJCVwKICAgIF9fYXNtX18gKCJmZjEgJTAsJTEiCQkJCQkJXAoJICAgICA6ICI9ciIg
KF9fY2J0bXApIDogInIiICgodW5zaWduZWQgbG9uZyBpbnQpKHgpKSk7CQlcCiAgICAoY291bnQp
ID0gX19jYnRtcCBeIDMxOwkJCQkJCVwKICB9IHdoaWxlICgwKQojZW5kaWYgLyogX19tODgwMDBf
XyAqLwoKI2lmIGRlZmluZWQgKF9fbWlwc19fKQojZGVmaW5lIHVtdWxfcHBtbSh3MSwgdzAsIHUs
IHYpIFwKICBfX2FzbV9fICgibXVsdHUgJTIsJTNcbiIJXAoiCW1mbG8gJTBcbiIJCVwKIgltZmhp
ICUxIgkJXAoJOiAiPXIiICgodW5zaWduZWQgbG9uZyBpbnQpKHcwKSksICI9ciIgKCh1bnNpZ25l
ZCBsb25nIGludCkodzEpKVwKCTogInIiICgodW5zaWduZWQgbG9uZyBpbnQpKHUpKSwgInIiICgo
dW5zaWduZWQgbG9uZyBpbnQpKHYpKSkKI2RlZmluZSBVTVVMX1RJTUUgNQojZGVmaW5lIFVESVZf
VElNRSAxMDAKI2VuZGlmIC8qIF9fbWlwc19fICovCgojaWYgZGVmaW5lZCAoX19uczMyMDAwX18p
CiNkZWZpbmUgX191bXVsc2lkaTModSwgdikgXAogICh7bG9uZyBsb25nIGludCBfX3c7CQkJCQkJ
CVwKICAgICAgX19hc21fXyAoIm1laWQgJTIsJTAiIDogIj1nIiAoX193KQkJCQlcCgk6ICIlMCIg
KCh1bnNpZ25lZCBsb25nIGludCkodSkpLCAiZyIgKCh1bnNpZ25lZCBsb25nIGludCkodikpKTsJ
XAogICAgICBfX3c7IH0pCiNkZWZpbmUgZGl2X3Fybm5kKHEsIHIsIG4xLCBuMCwgZCkgXAogIF9f
YXNtX18gKCJtb3ZkICUyLHIwXG4iCVwKIgltb3ZkICUzLHIxXG4iCVwKIglkZWlkICU0LHIwXG4i
CVwKIgltb3ZkIHIxLCUwXG4iCVwKIgltb3ZkIHIwLCUxIglcCgk6ICI9ZyIgKCh1bnNpZ25lZCBs
b25nIGludCkocSkpLCAiPWciICgodW5zaWduZWQgbG9uZyBpbnQpKHIpKQlcCgk6ICJnIiAoKHVu
c2lnbmVkIGxvbmcgaW50KShuMCkpLCAiZyIgKCh1bnNpZ25lZCBsb25nIGludCkobjEpKSwJXAoJ
ICAiZyIgKCh1bnNpZ25lZCBsb25nIGludCkoZCkpIDogInIwIiwgInIxIikKI2VuZGlmIC8qIF9f
bnMzMjAwMF9fICovCgojaWYgZGVmaW5lZCAoX19weXJfXykKI2RlZmluZSBhZGRfc3NhYWFhKHNo
LCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKICBfX2FzbV9fICgiYWRkdwklNSwlMVxuIglcCiIJYWRk
d2MJJTMsJTAiCQkJCQkJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzaCkpLCAiPSZy
IiAoKHVuc2lnbmVkIGxvbmcgaW50KShzbCkpXAoJOiAiJTAiICgodW5zaWduZWQgbG9uZyBpbnQp
KGFoKSksICJnIiAoKHVuc2lnbmVkIGxvbmcgaW50KShiaCkpLFwKCSAgIiUxIiAoKHVuc2lnbmVk
IGxvbmcgaW50KShhbCkpLCAiZyIgKCh1bnNpZ25lZCBsb25nIGludCkoYmwpKSkKI2RlZmluZSBz
dWJfZGRtbXNzKHNoLCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKICBfX2FzbV9fICgic3VidwklNSwl
MVxuIglcCiIJc3Vid2IJJTMsJTAiCQkJCQkJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxvbmcgaW50
KShzaCkpLCAiPSZyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShzbCkpXAoJOiAiMCIgKCh1bnNpZ25l
ZCBsb25nIGludCkoYWgpKSwgImciICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksCVwKCSAgIjEi
ICgodW5zaWduZWQgbG9uZyBpbnQpKGFsKSksICJnIiAoKHVuc2lnbmVkIGxvbmcgaW50KShibCkp
KQovKiBUaGlzIGluc24gZG9lc24ndCB3b3JrIG9uIGFuY2llbnQgcHlyYW1pZHMuICAqLwojZGVm
aW5lIHVtdWxfcHBtbSh3MSwgdzAsIHUsIHYpIFwKICBfX2FzbV9fICgibW92dyAlMix0cjExXG4i
CVwKIgl1ZW11bCAlMyx0cjEwXG4iCVwKIgltb3Z3IHRyMTAsJTBcbiIJCVwKIgltb3Z3IHRyMTEs
JTEiCQkJCQkJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxvbmcgaW50KSh3MSkpLCAiPXIiICgodW5z
aWduZWQgbG9uZyBpbnQpKHcwKSlcCgk6ICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KSh1KSksICJy
IiAoKHVuc2lnbmVkIGxvbmcgaW50KSh2KSkJXAoJOiAidHIxMCIsICJ0cjExIikKI2VuZGlmIC8q
IF9fcHlyX18gKi8KCiNpZiBkZWZpbmVkIChfX2libTAzMl9fKSAvKiBSVC9ST01QICovCiNkZWZp
bmUgYWRkX3NzYWFhYShzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21fXyAoImEgJTEs
JTVcbiIJXAoiCWFlICUwLCUzIgkJCQkJCQlcCgk6ICI9ciIgKCh1bnNpZ25lZCBsb25nIGludCko
c2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogIiUwIiAoKHVuc2lnbmVk
IGxvbmcgaW50KShhaCkpLCAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoYmgpKSxcCgkgICIlMSIg
KCh1bnNpZ25lZCBsb25nIGludCkoYWwpKSwgInIiICgodW5zaWduZWQgbG9uZyBpbnQpKGJsKSkp
CiNkZWZpbmUgc3ViX2RkbW1zcyhzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21fXyAo
InMgJTEsJTVcbiIJXAoiCXNlICUwLCUzIgkJCQkJCQlcCgk6ICI9ciIgKCh1bnNpZ25lZCBsb25n
IGludCkoc2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogIjAiICgodW5z
aWduZWQgbG9uZyBpbnQpKGFoKSksICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShiaCkpLAlcCgkg
ICIxIiAoKHVuc2lnbmVkIGxvbmcgaW50KShhbCkpLCAiciIgKCh1bnNpZ25lZCBsb25nIGludCko
YmwpKSkKI2RlZmluZSB1bXVsX3BwbW0ocGgsIHBsLCBtMCwgbTEpIFwKICBkbyB7CQkJCQkJCQkJ
XAogICAgdW5zaWduZWQgbG9uZyBpbnQgX19tMCA9IChtMCksIF9fbTEgPSAobTEpOwkJCQlcCiAg
ICBfX2FzbV9fICgJCQkJCQkJCVwKICAgICAgICJzCXIyLHIyXG4iCVwKIgltdHMJcjEwLCUyXG4i
CVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUz
XG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIy
LCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIglt
CXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwKIgltCXIyLCUzXG4iCVwK
IgltCXIyLCUzXG4iCVwKIgljYXMJJTAscjIscjBcbiIJXAoiCW1mcwlyMTAsJTEiCQkJCQkJCVwK
ICAgICAgIDogIj1yIiAoKHVuc2lnbmVkIGxvbmcgaW50KShwaCkpLCAiPXIiICgodW5zaWduZWQg
bG9uZyBpbnQpKHBsKSkJXAogICAgICAgOiAiJXIiIChfX20wKSwgInIiIChfX20xKQkJCQkJXAog
ICAgICAgOiAicjIiKTsJCQkJCQkJCVwKICAgIChwaCkgKz0gKCgoKHNpZ25lZCBsb25nIGludCkg
X19tMCA+PiAzMSkgJiBfX20xKQkJCVwKCSAgICAgKyAoKChzaWduZWQgbG9uZyBpbnQpIF9fbTEg
Pj4gMzEpICYgX19tMCkpOwkJXAogIH0gd2hpbGUgKDApCiNkZWZpbmUgY291bnRfbGVhZGluZ196
ZXJvcyhjb3VudCwgeCkgXAogIGRvIHsJCQkJCQkJCQlcCiAgICBpZiAoKHgpID49IDB4MTAwMDAp
CQkJCQkJCVwKICAgICAgX19hc21fXyAoImNsegklMCwlMSIJCQkJCQlcCgkgICAgICAgOiAiPXIi
ICgodW5zaWduZWQgbG9uZyBpbnQpKGNvdW50KSkJCQlcCgkgICAgICAgOiAiciIgKCh1bnNpZ25l
ZCBsb25nIGludCkoeCkgPj4gMTYpKTsJCQlcCiAgICBlbHNlCQkJCQkJCQlcCiAgICAgIHsJCQkJ
CQkJCQlcCglfX2FzbV9fICgiY2x6CSUwLCUxIgkJCQkJCVwKCQkgOiAiPXIiICgodW5zaWduZWQg
bG9uZyBpbnQpKGNvdW50KSkJCQlcCgkJIDogInIiICgodW5zaWduZWQgbG9uZyBpbnQpKHgpKSk7
CQkJXAoJKGNvdW50KSArPSAxNjsJCQkJCQkJXAogICAgICB9CQkJCQkJCQkJXAogIH0gd2hpbGUg
KDApCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9fc3BhcmNfXykKI2RlZmluZSBhZGRfc3NhYWFhKHNo
LCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKICBfX2FzbV9fICgiYWRkY2MgJTQsJTUsJTFcbiIJXAoi
CWFkZHggJTIsJTMsJTAiCQlcCgk6ICI9ciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2gpKSwgIj0m
ciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogIiVyIiAoKHVuc2lnbmVkIGxvbmcgaW50
KShhaCkpLCAickkiICgodW5zaWduZWQgbG9uZyBpbnQpKGJoKSksXAoJICAiJXIiICgodW5zaWdu
ZWQgbG9uZyBpbnQpKGFsKSksICJySSIgKCh1bnNpZ25lZCBsb25nIGludCkoYmwpKSkKI2RlZmlu
ZSBzdWJfZGRtbXNzKHNoLCBzbCwgYWgsIGFsLCBiaCwgYmwpIFwKICBfX2FzbV9fICgic3ViY2Mg
JTQsJTUsJTFcbiIJXAoiCXN1YnggJTIsJTMsJTAiCQlcCgk6ICI9ciIgKCh1bnNpZ25lZCBsb25n
IGludCkoc2gpKSwgIj0mciIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogInIiICgodW5z
aWduZWQgbG9uZyBpbnQpKGFoKSksICJySSIgKCh1bnNpZ25lZCBsb25nIGludCkoYmgpKSxcCgkg
ICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShhbCkpLCAickkiICgodW5zaWduZWQgbG9uZyBpbnQp
KGJsKSkpCiNpZiBkZWZpbmVkIChfX3NwYXJjOF9fKQkvKiBIb3cgZG8gd2UgcmVjb2cuIHZlcnNp
b24gOCBTUEFSQz8gICovCiNkZWZpbmUgdW11bF9wcG1tKHcxLCB3MCwgdSwgdikgXAogIF9fYXNt
X18gKCJ1bXVsICUyLCUzLCUxO3JkICUleSwlMCIJCQkJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxv
bmcgaW50KSh3MSkpLCAiPXIiICgodW5zaWduZWQgbG9uZyBpbnQpKHcwKSlcCgk6ICJyIiAoKHVu
c2lnbmVkIGxvbmcgaW50KSh1KSksICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KSh2KSkpCiNkZWZp
bmUgdWRpdl9xcm5uZChxLCByLCBuMSwgbjAsIGQpIFwKICBfX2FzbV9fICgibW92ICUyLCUleTtu
b3A7bm9wO25vcDt1ZGl2ICUzLCU0LCUwO3VtdWwgJTAsJTQsJTE7c3ViICUzLCUxLCUxIlwKCTog
Ij0mciIgKCh1bnNpZ25lZCBsb25nIGludCkocSkpLCAiPSZyIiAoKHVuc2lnbmVkIGxvbmcgaW50
KShyKSlcCgk6ICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KShuMSkpLCAiciIgKCh1bnNpZ25lZCBs
b25nIGludCkobjApKSwJXAoJICAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoZCkpKQojZWxzZQov
KiBTUEFSQyB3aXRob3V0IGludGVnZXIgbXVsdGlwbGljYXRpb24gYW5kIGRpdmlkZSBpbnN0cnVj
dGlvbnMuCiAgIChpLmUuIGF0IGxlYXN0IFN1bjQvMjAsNDAsNjAsNjUsNzUsMTEwLDI2MCwyODAs
MzMwLDM2MCwzODAsNDcwLDQ5MCkgKi8KI2RlZmluZSB1bXVsX3BwbW0odzEsIHcwLCB1LCB2KSBc
CiAgX19hc21fXyAoIiEgSW5saW5lZCB1bXVsX3BwbW1cbiIJXAoiCXdyCSUlZzAsJTIsJSV5CSEg
U1BBUkMgaGFzIDAtMyBkZWxheSBpbnNuIGFmdGVyIGEgd3JcbiIgXAoiCXNyYQklMywzMSwlJWcy
CSEgRG9uJ3QgbW92ZSB0aGlzIGluc25cbiIJXAoiCWFuZAklMiwlJWcyLCUlZzIJISBEb24ndCBt
b3ZlIHRoaXMgaW5zblxuIglcCiIJYW5kY2MJJSVnMCwwLCUlZzEJISBEb24ndCBtb3ZlIHRoaXMg
aW5zblxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVn
MVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxu
IglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglc
CiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJ
bXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVs
c2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2Nj
CSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUl
ZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEs
JTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMs
JSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVn
MVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxu
IglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglc
CiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJ
bXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVs
c2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2Nj
CSUlZzEsJTMsJSVnMVxuIglcCiIJbXVsc2NjCSUlZzEsMCwlJWcxXG4iCVwKIglhZGQJJSVnMSwl
JWcyLCUwXG4iCVwKIglyZAklJXksJTEiCQkJCQkJCVwKCTogIj1yIiAoKHVuc2lnbmVkIGxvbmcg
aW50KSh3MSkpLCAiPXIiICgodW5zaWduZWQgbG9uZyBpbnQpKHcwKSlcCgk6ICIlckkiICgodW5z
aWduZWQgbG9uZyBpbnQpKHUpKSwgInIiICgodW5zaWduZWQgbG9uZyBpbnQpKHYpKQlcCiAgICAg
ICA6ICIlZzEiLCAiJWcyIikKI2RlZmluZSBVTVVMX1RJTUUgMzkJCS8qIDM5IGluc3RydWN0aW9u
cyAqLwovKiBJdCdzIHF1aXRlIG5lY2Vzc2FyeSB0byBhZGQgdGhpcyBtdWNoIGFzc2VtYmxlciBm
b3IgdGhlIHNwYXJjLgogICBUaGUgZGVmYXVsdCB1ZGl2X3Fybm5kIChpbiBDKSBpcyBtb3JlIHRo
YW4gMTAgdGltZXMgc2xvd2VyISAgKi8KI2RlZmluZSB1ZGl2X3Fybm5kKHEsIHIsIG4xLCBuMCwg
ZCkgXAogIF9fYXNtX18gKCIhIElubGluZWQgdWRpdl9xcm5uZFxuIgkJCQkJXAoiCW1vdgkzMiwl
JWcxXG4iCQkJCQkJXAoiCXN1YmNjCSUxLCUyLCUlZzBcbiIJCQkJCQlcCiIxOgliY3MJNWZcbiIJ
CQkJCQkJXAoiCSBhZGR4Y2MgJTAsJTAsJTAJISBzaGlmdCBuMW4wIGFuZCBhIHEtYml0IGluIGxz
YlxuIglcCiIJc3ViCSUxLCUyLCUxCSEgdGhpcyBraWxscyBtc2Igb2YgblxuIgkJXAoiCWFkZHgJ
JTEsJTEsJTEJISBzbyB0aGlzIGNhbid0IGdpdmUgY2FycnlcbiIJCVwKIglzdWJjYwklJWcxLDEs
JSVnMVxuIgkJCQkJCVwKIjI6CWJuZQkxYlxuIgkJCQkJCQlcCiIJIHN1YmNjCSUxLCUyLCUlZzBc
biIJCQkJCQlcCiIJYmNzCTNmXG4iCQkJCQkJCVwKIgkgYWRkeGNjICUwLCUwLCUwCSEgc2hpZnQg
bjFuMCBhbmQgYSBxLWJpdCBpbiBsc2JcbiIJXAoiCWIJM2ZcbiIJCQkJCQkJXAoiCSBzdWIJJTEs
JTIsJTEJISB0aGlzIGtpbGxzIG1zYiBvZiBuXG4iCQlcCiI0OglzdWIJJTEsJTIsJTFcbiIJCQkJ
CQlcCiI1OglhZGR4Y2MJJTEsJTEsJTFcbiIJCQkJCQlcCiIJYmNjCTJiXG4iCQkJCQkJCVwKIgkg
c3ViY2MJJSVnMSwxLCUlZzFcbiIJCQkJCQlcCiIhIEdvdCBjYXJyeSBmcm9tIG4uICBTdWJ0cmFj
dCBuZXh0IHN0ZXAgdG8gY2FuY2VsIHRoaXMgY2FycnkuXG4iCVwKIglibmUJNGJcbiIJCQkJCQkJ
XAoiCSBhZGRjYwklMCwlMCwlMAkhIHNoaWZ0IG4xbjAgYW5kIGEgMC1iaXQgaW4gbHNiXG4iCVwK
IglzdWIJJTEsJTIsJTFcbiIJCQkJCQlcCiIzOgl4bm9yCSUwLDAsJTBcbiIJCQkJCQlcCiIJISBF
bmQgb2YgaW5saW5lIHVkaXZfcXJubmQiCQkJCQlcCgk6ICI9ciYiICgodW5zaWduZWQgbG9uZyBp
bnQpKHEpKSwgIj1yJiIgKCh1bnNpZ25lZCBsb25nIGludCkocikpXAoJOiAiciIgKCh1bnNpZ25l
ZCBsb25nIGludCkoZCkpLCAiMSIgKCh1bnNpZ25lZCBsb25nIGludCkobjEpKSwJXAoJICAiMCIg
KCh1bnNpZ25lZCBsb25nIGludCkobjApKSA6ICIlZzEiKQojZGVmaW5lIFVESVZfVElNRSAoMys3
KjMyKQkvKiA3IGluc3RydWN0aW9ucy9pdGVyYXRpb24uIDMyIGl0ZXJhdGlvbnMuICovCiNlbmRp
ZgojZW5kaWYgLyogX19zcGFyYzhfXyAqLwoKI2lmIGRlZmluZWQgKF9fdmF4X18pCiNkZWZpbmUg
YWRkX3NzYWFhYShzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21fXyAoImFkZGwyICU1
LCUxXG4iCVwKIglhZHdjICUzLCUwIgkJCQkJCQlcCgk6ICI9ZyIgKCh1bnNpZ25lZCBsb25nIGlu
dCkoc2gpKSwgIj0mZyIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTogIiUwIiAoKHVuc2ln
bmVkIGxvbmcgaW50KShhaCkpLCAiZyIgKCh1bnNpZ25lZCBsb25nIGludCkoYmgpKSxcCgkgICIl
MSIgKCh1bnNpZ25lZCBsb25nIGludCkoYWwpKSwgImciICgodW5zaWduZWQgbG9uZyBpbnQpKGJs
KSkpCiNkZWZpbmUgc3ViX2RkbW1zcyhzaCwgc2wsIGFoLCBhbCwgYmgsIGJsKSBcCiAgX19hc21f
XyAoInN1YmwyICU1LCUxXG4iCVwKIglzYndjICUzLCUwIgkJCQkJCQlcCgk6ICI9ZyIgKCh1bnNp
Z25lZCBsb25nIGludCkoc2gpKSwgIj0mZyIgKCh1bnNpZ25lZCBsb25nIGludCkoc2wpKVwKCTog
IjAiICgodW5zaWduZWQgbG9uZyBpbnQpKGFoKSksICJnIiAoKHVuc2lnbmVkIGxvbmcgaW50KShi
aCkpLAlcCgkgICIxIiAoKHVuc2lnbmVkIGxvbmcgaW50KShhbCkpLCAiZyIgKCh1bnNpZ25lZCBs
b25nIGludCkoYmwpKSkKI2RlZmluZSB1bXVsX3BwbW0oeGgsIHhsLCBtMCwgbTEpIFwKICBkbyB7
CQkJCQkJCQkJXAogICAgdW5pb24ge2xvbmcgbG9uZyBpbnQgbGw7c3RydWN0IHt1bnNpZ25lZCBs
b25nIGludCBsLCBoO30gaTt9IF9feHg7CVwKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fbTAgPSAo
bTApLCBfX20xID0gKG0xKTsJCQkJXAogICAgX19hc21fXyAoImVtdWwgJTEsJTIsJDAsJTAiCQkJ
CQkJXAoJIDogIj1yIiAoX194eC5sbCkgOiAiZyIgKF9fbTApLCAiZyIgKF9fbTEpKTsJCQlcCiAg
ICAoeGgpID0gX194eC5pLmg7ICh4bCkgPSBfX3h4LmkubDsJCQkJCVwKICAgICh4aCkgKz0gKCgo
KHNpZ25lZCBsb25nIGludCkgX19tMCA+PiAzMSkgJiBfX20xKQkJCVwKCSAgICAgKyAoKChzaWdu
ZWQgbG9uZyBpbnQpIF9fbTEgPj4gMzEpICYgX19tMCkpOwkJXAogIH0gd2hpbGUgKDApCiNlbmRp
ZiAvKiBfX3ZheF9fICovCg==

--Multipart_Fri__29_Aug_2003_10:36:57_+0100_08215d90--