[Insight-developers] Bug Report: VNL configure on cygwin/gcc 3.2

Lydia Ng lng@insightful.com
Tue, 11 Feb 2003 10:52:05 -0800


This is a multi-part message in MIME format.

------_=_NextPart_001_01C2D1FE.AC00068F
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Sorry attached the wrong file - Lydia

> -----Original Message-----
> From: Lydia Ng
> Sent: Tuesday, February 11, 2003 10:45 AM
> To: insight-developers@public.kitware.com
> Subject: [Insight-developers] Bug Report: VNL configure on cygwin/gcc
3.2
>=20
>=20
> Problem: Cygwin/gcc3.2 fails when trying to build VXLNumerics
>=20
> I think I've track down to problem to when VCL does configure.
> It tries to test if the compiler "needs explicit instantiation" and I
> think it gets it wrong. Consequently in vcl_config_compiler.h,
> VCL_NEEDS_INLINE_INSTANTION is defined to be "1". With the previous
> version of gcc it was defined to "0". In fact, if you edit the header
> file and change it to "0", ITK compiles ok.
>=20
> Does anyone know how to fix the configure process so that it would get
> the right results?
>=20
> I have attached vxl\vcl\config.log and vcl_config_compiler.h which
might
> help with debugging.
>=20
> The actual error message you get when you try to compile ITK is below.
>=20
> - Lydia
>=20
> -------------------------------------------------------------
> c++ -ftemplate-depth-50 -D_PTHREADS -DNOMINMAX
> -I/cygdrive/d/lng/Insight/Insigh
> t/Code/Numerics/vxl -I/cygdrive/d/lng/Insight/Insight/Code/Algorithms
> -I/cygdriv
> e/d/lng/Insight/Insight/Code/BasicFilters
> -I/cygdrive/d/lng/Insight/Insight/Code
> /Common -I/cygdrive/d/lng/Insight/Insight/Code/Numerics
> -I/cygdrive/d/lng/Insigh
> t/Insight/Code/IO -I/cygdrive/d/lng/Insight/Insight/Code/Numerics/FEM
> -I/cygdriv
> e/d/lng/Insight/Insight/Code/Numerics/Statistics
> -I/cygdrive/d/lng/Insight/Insig
> ht-Cygwin/Code/Numerics/vxl
> -I/cygdrive/d/lng/Insight/Insight/Code/Numerics/vxl
> -I/cygdrive/d/lng/Insight/Insight-Cygwin/Code/Numerics/vxl/vcl
> -I/cygdrive/d/lng
> /Insight/Insight/Code/Numerics/vxl/vcl
> -I/cygdrive/d/lng/Insight/Insight/Code/Sp
> atialObject -I/cygdrive/d/lng/Insight/Insight/Utilities/png
> -I/cygdrive/d/lng/In
> sight/Insight/Utilities/zlib
> -I/cygdrive/d/lng/Insight/Insight/Utilities/MetaIO
> -I/cygdrive/d/lng/Insight/Insight/Utilities/MetaIO/SpatialObject
> -I/cygdrive/d/l
> ng/Insight/Insight/Utilities/DICOMParser
> -I/cygdrive/d/lng/Insight/Insight-Cygwi
> n   -c
>
/cygdrive/d/lng/Insight/Insight/Code/Numerics/vxl/vnl/Templates/vnl_matr
> i
> x+double-.cxx -o vnl/Templates/vnl_matrix+double-.o
>
/cygdrive/d/lng/Insight/Insight/Code/Numerics/vxl/vnl/Templates/vnl_matr
> ix+doubl
> e-.cxx:2: non-template
>    used as template
> make[7]: *** [vnl/Templates/vnl_matrix+double-.o] Error 1
> make[6]: *** [default_target] Error 2
> make[5]: *** [default_target_vxl] Error 2
> make[4]: *** [default_target] Error 2
> make[3]: *** [default_target_Numerics] Error 2
> make[2]: *** [default_target] Error 2
> make[1]: *** [default_target_Code] Error 2
> make: *** [default_target] Error 2


------_=_NextPart_001_01C2D1FE.AC00068F
Content-Type: application/octet-stream;
	name="config.log"
Content-Transfer-Encoding: base64
Content-Description: config.log
Content-Disposition: attachment;
	filename="config.log"

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUNCnJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtl
cyBhIG1pc3Rha2UuDQoNCmNvbmZpZ3VyZTo1NTI6IGNoZWNraW5nIGZvciBnY2MNCmNvbmZpZ3Vy
ZTo2NjU6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKGdjYyAgKSB3b3Jrcw0KY29u
ZmlndXJlOjY4MTogZ2NjIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0ZXN0LmMgIDE+JjUNCmNvbmZpZ3Vy
ZTo3MDc6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKGdjYyAgKSBpcyBhIGNyb3Nz
LWNvbXBpbGVyDQpjb25maWd1cmU6NzEyOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyBH
TlUgQw0KY29uZmlndXJlOjcyMTogZ2NjIC1FIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZTo3NDA6IGNo
ZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcNCmNvbmZpZ3VyZTo3ODE6IGNoZWNraW5nIGZv
ciBjKysNCmNvbmZpZ3VyZTo4MTM6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciAo
YysrICApIHdvcmtzDQpjb25maWd1cmU6ODI5OiBjKysgLW8gY29uZnRlc3QgICAgY29uZnRlc3Qu
QyAgMT4mNQ0KY29uZmlndXJlOjg1NTogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVy
IChjKysgICkgaXMgYSBjcm9zcy1jb21waWxlcg0KY29uZmlndXJlOjg2MDogY2hlY2tpbmcgd2hl
dGhlciB3ZSBhcmUgdXNpbmcgR05VIEMrKw0KY29uZmlndXJlOjg2OTogYysrIC1FIGNvbmZ0ZXN0
LkMNCmNvbmZpZ3VyZTo4ODg6IGNoZWNraW5nIHdoZXRoZXIgYysrIGFjY2VwdHMgLWcNCmNvbmZp
Z3VyZTo5MjI6IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3INCmNvbmZp
Z3VyZTo5NDA6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpj
b25maWd1cmU6MTAyOTogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHN1cHBvcnRz
IHRoZSBrZXl3b3JkICdib29sJw0KY29uZmlndXJlOjEwNTc6IGMrKyAtYyAtZyAtTzIgIGNvbmZ0
ZXN0LkMgMT4mNQ0KY29uZmlndXJlOjEwODg6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21w
aWxlciBzdXBwb3J0cyB0aGUga2V5d29yZCAndHlwZW5hbWUnDQpjb25maWd1cmU6MTEyMTogYysr
IC1jIC1nIC1PMiAgY29uZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6MTE1MjogY2hlY2tpbmcgd2hl
dGhlciB0aGUgQysrIGNvbXBpbGVyIGFjY2VwdHMgdGhlIGtleXdvcmQgJ2V4cG9ydCcNCmNvbmZp
Z3VyZToxMTk2OiBjKysgLWMgLWcgLU8yICBjb25mdGVzdC5DIDE+JjUNCmNvbmZpZ3VyZToxMTc0
OiB3YXJuaW5nOiBrZXl3b3JkIGBleHBvcnQnIG5vdCBpbXBsZW1lbnRlZCwgYW5kIHdpbGwgYmUg
aWdub3JlZA0KY29uZmlndXJlOjEyMjc6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxl
ciBzdXBwb3J0cyB0aGUga2V5d29yZCAnbXV0YWJsZScNCmNvbmZpZ3VyZToxMjU5OiBjKysgLWMg
LWcgLU8yICBjb25mdGVzdC5DIDE+JjUNCmNvbmZpZ3VyZToxMjkwOiBjaGVja2luZyB3aGV0aGVy
IHRoZSBDKysgY29tcGlsZXIgc3VwcG9ydHMgdGhlIGtleXdvcmQgJ2V4cGxpY2l0Jw0KY29uZmln
dXJlOjEzMjI6IGMrKyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LkMgMT4mNQ0KY29uZmlndXJlOjEzNTM6
IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0cyB0aGUga2V5d29yZCAn
ZHluYW1pY19jYXN0Jw0KY29uZmlndXJlOjEzODQ6IGMrKyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LkMg
MT4mNQ0KY29uZmlndXJlOjE0MTU6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciBz
dXBwb3J0cyBJU08gZm9yIHNjb3BlDQpjb25maWd1cmU6MTQ0ODogYysrIC1jIC1nIC1PMiAgY29u
ZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6MTQ4NzogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNv
bXBpbGVyIG5lZWRzIGRlZmF1bHQgdmFsdWVzIGluIHNlY29uZCBkZWZpbml0aW9uDQpjb25maWd1
cmU6MTUwODogYysrIC1jIC1nIC1PMiAgY29uZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6MTUzNjog
Y2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHN1cHBvcnRzIG1lbWJlciB0ZW1wbGF0
ZXMNCmNvbmZpZ3VyZToxNTc3OiBjKysgLWMgLWcgLU8yICBjb25mdGVzdC5DIDE+JjUNCmNvbmZp
Z3VyZToxNjA4OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgc3VwcG9ydHMgcGFy
dGlhbCBzcGVjaWFsaXphdGlvbg0KY29uZmlndXJlOjE2NjY6IGMrKyAtYyAtZyAtTzIgIGNvbmZ0
ZXN0LkMgMT4mNQ0KY29uZmlndXJlOjE3MDI6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21w
aWxlciB1bmRlcnN0YW5kcyB0aGUgJ3RlbXBsYXRlIDw+JyBzcGVjaWFsaXphdGlvbiBzeW50YXgN
CmNvbmZpZ3VyZToxNzMxOiBjKysgLWMgLWcgLU8yICBjb25mdGVzdC5DIDE+JjUNCmNvbmZpZ3Vy
ZToxNzU5OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgYWxsb3dzIGV4cGxpY2l0
IGluc3RhbnRpYXRpb24gb2YgaW5saW5lIHRlbXBsYXRlcw0KY29uZmlndXJlOjE3OTE6IGMrKyAt
YyAgIGNvbmZ0ZXN0LkMgMT4mNQ0KY29uZmlndXJlOjE4MjE6IGNoZWNraW5nIHdoZXRoZXIgdGhl
IEMrKyBjb21waWxlciBuZWVkcyBleHBsaWNpdCBpbnN0YW50aWF0aW9uIG9mIGlubGluZSBmdW5j
dGlvbiB0ZW1wbGF0ZXMNCmNvbmZpZ3VyZToxODY3OiBjKysgLW8gY29uZnRlc3QgLWcgLU8yICAg
Y29uZnRlc3QuQyAgMT4mNQ0KL3Vzci9saWIvZ2NjLWxpYi9pNjg2LXBjLWN5Z3dpbi8zLjIvLi4v
Li4vLi4vbGliY3lnd2luLmEobGliY21haW4ubykoLnRleHQrMHg3Yyk6IHVuZGVmaW5lZCByZWZl
cmVuY2UgdG8gYF9XaW5NYWluQDE2Jw0KY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0
dXMNCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KI2xpbmUgMTgzOSAiY29uZmlndXJl
IgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCiNpZmRlZiBfX0dOVUNfXwojcHJhZ21hIGludGVyZmFj
ZQojZW5kaWYKdGVtcGxhdGUgPGNsYXNzIFQ+CmlubGluZQpUIGRvdChUIGNvbnN0ICphLCBUIGNv
bnN0ICpiKQp7CiAgcmV0dXJuIGFbMF0qYlswXSArIGFbMV0qYlsxXSArIGFbMl0qYlsyXTsKfQov
L3RlbXBsYXRlIGRvdWJsZSBkb3QoZG91YmxlIGNvbnN0ICosIGRvdWJsZSBjb25zdCAqKTsKaW50
IGZ1bmN0aW9uKCk7CmludCBjYWxsX3RoaXMoKSB7IGZ1bmN0aW9uKCk7IHJldHVybiAwOyB9Cmlu
dCBmdW5jdGlvbigpCnsKICBkb3VibGUgYVszXSA9IHsxLjAsIDIuMCwgMy4wfTsKICBkb3VibGUg
YlszXSA9IHs0LjAsIDUuMCwgNi4wfTsKICBkb3VibGUgYV9iID0gZG90KGEsIGIpOwogIHJldHVy
biBpbnQoYV9iKTsKfQovLyBJZiB0aGUgcHJvZ3JhbSBsaW5rcywgdGhlIGNvbXBpbGVyIGlubGlu
ZWQgdGhlIGZ1bmN0aW9uIHRlbXBsYXRlLgoKaW50IG1haW4oKSB7Cgo7IHJldHVybiAwOyB9CmNv
bmZpZ3VyZToxOTE2OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgYWxsb3dzIGlu
aXRpYWxpemF0aW9uIG9mIHN0YXRpYyBjb25zdCBpbnQNCmNvbmZpZ3VyZToxOTQwOiBjKysgLWMg
LWcgLU8yICBjb25mdGVzdC5DIDE+JjUNCmNvbmZpZ3VyZToxOTc2OiBjaGVja2luZyB3aGV0aGVy
IHRoZSBDKysgY29tcGlsZXIgYWxsb3dzIGluaXRpYWxpemF0aW9uIG9mIHN0YXRpYyBjb25zdCBm
bG9hdHMNCmNvbmZpZ3VyZToxOTk3OiBjKysgLWMgLWcgLU8yICBjb25mdGVzdC5DIDE+JjUNCmNv
bmZpZ3VyZToyMDMzOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgcmVxdWlyZXMg
aW1wbGVtZW50YXRpb24gb2Ygc3RhdGljIGNvbnN0cw0KY29uZmlndXJlOjIwNjg6IGMrKyAtbyBj
b25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5DICAxPiY1DQpjb25maWd1cmU6MjA5NjogY2hlY2tp
bmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIGFjY2VwdHMgdGVtcGxhdGVkIGRlZmluaXRpb25z
IG9mIHN0YXRpYyBjbGFzcyB0ZW1wbGF0ZSBtZW1iZXJzDQpjb25maWd1cmU6MjEyOTogYysrIC1j
IC1nIC1PMiAgY29uZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6MjE1MDogY2hlY2tpbmcgd2hldGhl
ciB0aGUgQysrIGNvbXBpbGVyIGFjY2VwdHMgbm9uLXR5cGUgdGVtcGxhdGUgcGFyYW1ldGVycyB0
byBmdW5jdGlvbiB0ZW1wbGF0ZXMNCmNvbmZpZ3VyZToyMTkwOiBjKysgLWMgLWcgLU8yICBjb25m
dGVzdC5DIDE+JjUNCmNvbmZpZ3VyZToyMjE5OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29t
cGlsZXIgbmVlZHMgZnJpZW5kIGRlY2xhcmF0aW9ucyBmb3IgcHJvcGVyIHRlbXBsYXRlIGZ1bmN0
aW9uIG92ZXJsb2FkaW5nDQpjb25maWd1cmU6MjI2NzogYysrIC1jIC1nIC1PMiAgY29uZnRlc3Qu
QyAxPiY1DQpjb25maWd1cmU6MjMwMzogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVy
IHJlcXVpcmVzIGV4cGxpY2l0IGNhc3RzIHdoZXJlIGl0IHNob3VsZCBub3QNCmNvbmZpZ3VyZToy
MzY0OiBjKysgLWMgLWcgLU8yICBjb25mdGVzdC5DIDE+JjUNCmNvbmZpZ3VyZToyNDAwOiBjaGVj
a2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgcmVxdWlyZXMgPD4gaW4gdGVtcGxhdGVkIGZv
cndhcmQvZnJpZW5kIGRlY2xhcmF0aW9ucw0KY29uZmlndXJlOjI0NDk6IGMrKyAtbyBjb25mdGVz
dCAtZyAtTzIgICBjb25mdGVzdC5DICAxPiY1DQpjb25maWd1cmU6MjQxOTogd2FybmluZzogZnJp
ZW5kIGRlY2xhcmF0aW9uIGBUIGRvdChjb25zdCB2aWN0b3I8VD4mLCBjb25zdCANCiAgIHZpY3Rv
cjxUPiYpJyBkZWNsYXJlcyBhIG5vbi10ZW1wbGF0ZSBmdW5jdGlvbg0KY29uZmlndXJlOjI0MTk6
IHdhcm5pbmc6IChpZiB0aGlzIGlzIG5vdCB3aGF0IHlvdSBpbnRlbmRlZCwgbWFrZSBzdXJlIHRo
ZSANCiAgIGZ1bmN0aW9uIHRlbXBsYXRlIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQgYW5kIGFk
ZCA8PiBhZnRlciB0aGUgZnVuY3Rpb24gDQogICBuYW1lIGhlcmUpIC1Xbm8tbm9uLXRlbXBsYXRl
LWZyaWVuZCBkaXNhYmxlcyB0aGlzIHdhcm5pbmcNCmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gYFQg
ZG90KGNvbnN0IHZpY3RvcjxUPiYsIGNvbnN0IHZpY3RvcjxUPiYpIFt3aXRoIFQgPSANCiAgIGRv
dWJsZV0nOg0KY29uZmlndXJlOjI0MzM6ICAgaW5zdGFudGlhdGVkIGZyb20gaGVyZQ0KY29uZmln
dXJlOjI0MjI6IGBkb3VibGUgdmljdG9yPGRvdWJsZT46OmRhdGFbM10nIGlzIHByaXZhdGUNCmNv
bmZpZ3VyZToyNDI3OiB3aXRoaW4gdGhpcyBjb250ZXh0DQpjb25maWd1cmU6MjQyMjogYGRvdWJs
ZSB2aWN0b3I8ZG91YmxlPjo6ZGF0YVszXScgaXMgcHJpdmF0ZQ0KY29uZmlndXJlOjI0Mjc6IHdp
dGhpbiB0aGlzIGNvbnRleHQNCmNvbmZpZ3VyZToyNDIyOiBgZG91YmxlIHZpY3Rvcjxkb3VibGU+
OjpkYXRhWzNdJyBpcyBwcml2YXRlDQpjb25maWd1cmU6MjQyNzogd2l0aGluIHRoaXMgY29udGV4
dA0KY29uZmlndXJlOjI0MjI6IGBkb3VibGUgdmljdG9yPGRvdWJsZT46OmRhdGFbM10nIGlzIHBy
aXZhdGUNCmNvbmZpZ3VyZToyNDI3OiB3aXRoaW4gdGhpcyBjb250ZXh0DQpjb25maWd1cmU6MjQy
MjogYGRvdWJsZSB2aWN0b3I8ZG91YmxlPjo6ZGF0YVszXScgaXMgcHJpdmF0ZQ0KY29uZmlndXJl
OjI0Mjc6IHdpdGhpbiB0aGlzIGNvbnRleHQNCmNvbmZpZ3VyZToyNDIyOiBgZG91YmxlIHZpY3Rv
cjxkb3VibGU+OjpkYXRhWzNdJyBpcyBwcml2YXRlDQpjb25maWd1cmU6MjQyNzogd2l0aGluIHRo
aXMgY29udGV4dA0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSAyNDA4ICJj
b25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgoKdGVtcGxhdGUgPGNsYXNzIFQ+IGNsYXNz
IHZpY3RvcjsKCnRlbXBsYXRlIDxjbGFzcyBUPiBUIGRvdCh2aWN0b3I8VD4gY29uc3QgJnUsIHZp
Y3RvcjxUPiBjb25zdCAmdik7Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gY2xhc3MgdmljdG9yIHsKcHVi
bGljOgogIC8vIFdpdGhvdXQgLWZndWlkaW5nLWRlY2xzLCBlZ2NzIGFuZCAyLjk1IHdpbGwgcmln
aHRseSB0aGluawogIC8vIHRoaXMgZGVjbGFyZXMgYSBub24tdGVtcGxhdGUgYW5kIHNvIHRoZSBw
cm9ncmFtIHdpbGwgZmFpbAogIC8vIGR1ZSB0byBhY2Nlc3MgdmlvbGF0aW9uIGJlbG93IChhbmQg
bWlzc2luZyBzeW1ib2xzIGF0IGxpbmsgdGltZSkuCiAgZnJpZW5kIFQgZG90IC8qIDw+ICovICh2
aWN0b3I8VD4gY29uc3QgJiwgdmljdG9yPFQ+IGNvbnN0ICYpOwoKcHJpdmF0ZToKICBUIGRhdGFb
M107Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gVCBkb3QodmljdG9yPFQ+IGNvbnN0ICZ1LCB2aWN0
b3I8VD4gY29uc3QgJnYpCnsKICByZXR1cm4gIC8vIGFjY2VzcyB2aW9sYXRpb24gaGVyZToKICAg
IHUuZGF0YVswXSAqIHYuZGF0YVswXSArCiAgICB1LmRhdGFbMV0gKiB2LmRhdGFbMV0gKwogICAg
dS5kYXRhWzJdICogdi5kYXRhWzJdOwp9Cgp0ZW1wbGF0ZSBkb3VibGUgZG90KHZpY3Rvcjxkb3Vi
bGU+IGNvbnN0ICYsIHZpY3Rvcjxkb3VibGU+IGNvbnN0ICYpOwoKZG91YmxlIGZ1bmN0aW9uKHZp
Y3Rvcjxkb3VibGU+IGNvbnN0ICZ1LAogICAgICAgICAgICAgICAgdmljdG9yPGRvdWJsZT4gY29u
c3QgJnYpCnsKICBkb3VibGUgdXUgPSBkb3QodSwgdSk7CiAgZG91YmxlIHV2ID0gZG90KHUsIHYp
OwogIGRvdWJsZSB2diA9IGRvdCh2LCB2KTsKICByZXR1cm4gKHV2KnV2KS8odXUqdnYpOwp9Cgpp
bnQgbWFpbigpIHsKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjI0Nzc6IGNoZWNraW5nIHdoZXRo
ZXIgdGhlIEMrKyBjb21waWxlciBhbGxvd3Mgc3RhdGljIGRhdGEgbWVtYmVycw0KY29uZmlndXJl
OjI1MDc6IGMrKyAtYyAgIGNvbmZ0ZXN0LkMgMT4mNQ0KY29uZmlndXJlOjI1NDQ6IGNoZWNraW5n
IHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciBkaXN0aW5ndWlzaGVzIHRlbXBsYXRlZCBhbmQgbm9u
LXRlbXBsYXRlZCBmdW5jdGlvbnMNCmNvbmZpZ3VyZToyNTc0OiBjKysgLW8gY29uZnRlc3QgLWcg
LU8yICAgY29uZnRlc3QuQyAgMT4mNQ0KL2N5Z2RyaXZlL2MvRE9DVU1FfjEvbG5nL0xPQ0FMU34x
L1RlbXAvY2NzeklnamoubygudGV4dCsweDE1KTogSW4gZnVuY3Rpb24gYF9aNmNhbGxlcnYnOg0K
L2N5Z2RyaXZlL2QvbG5nL0luc2lnaHQvSW5zaWdodC1DeWd3aW4vQ29kZS9OdW1lcmljcy92eGwv
dmNsL2NvbmZpZ3VyZToyNTYwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB2b2lkIGZ1bmN0aW9u
PGRvdWJsZT4oZG91YmxlKiwgaW50KScNCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3Rh
dHVzDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDI1NTIgImNvbmZpZ3Vy
ZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCgovLyBEZWNsYXJlIGEgZnVuY3Rpb24gdGVtcGxhdGUu
CnRlbXBsYXRlIDxjbGFzcyBUPiB2b2lkIGZ1bmN0aW9uKFQgKnB0ciwgaW50IG4pOwoKaW50IGNh
bGxlcigpCnsKICBkb3VibGUgYXJyYXlbM107CiAgZnVuY3Rpb24oYXJyYXksIDApOyAvLyBUaGlz
IHNob3VsZCBjYWxsIGZ1bmN0aW9uPGRvdWJsZT4oZG91YmxlICosIGludCk7CiAgcmV0dXJuIDA7
Cn0KCi8vIERlZmluZSBhIG5vbi10ZW1wbGF0ZSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUg
YW5kIHNpZ25hdHVyZS4Kdm9pZCBmdW5jdGlvbihkb3VibGUgKiwgaW50KSB7IH0KCi8vIElmIHRo
ZSBwcm9ncmFtIGxpbmtzLCB0aGUgY29tcGlsZXIgZGlkbid0IG1ha2UgYSBkaXN0aW5jdGlvbi4K
CmludCBtYWluKCkgewoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MjYwMjogY2hlY2tpbmcgd2hl
dGhlciB0aGUgQysrIGNvbXBpbGVyIGluc3RhbnRpYXRlcyB0ZW1wbGF0ZXMgaW1wbGljaXRseQ0K
Y29uZmlndXJlOjI2Njg6IGMrKyAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5DICAxPiY1
DQpjb25maWd1cmU6MjY5NjogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIGFjY2Vw
dHMgY29tcGxldGUgdHlwZXMgYXMgZGVmYXVsdCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzDQpjb25maWd1
cmU6MjczOTogYysrIC1jIC1nIC1PMiAgY29uZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6Mjc2MDog
Y2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIGFjY2VwdHMgZGVmYXVsdCB0ZW1wbGF0
ZSB0eXBlIHBhcmFtZXRlcnMgdGVtcGxhdGVkIG92ZXIgZWFybGllciBwYXJhbWV0ZXJzDQpjb25m
aWd1cmU6Mjc5MzogYysrIC1jIC1nIC1PMiAgY29uZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6Mjgx
OTogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIG5lZWRzIHRoZSBTdW5Qcm8gY2xh
c3Mgc2NvcGUgaGFjaw0KY29uZmlndXJlOjI4NzE6IGMrKyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LkMg
MT4mNQ0KY29uZmlndXJlOjI4OTk6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciBo
YXMgd29ya2luZyBleGNlcHRpb25zDQpjb25maWd1cmU6Mjk2MDogYysrIC1jIC1nIC1PMiAgY29u
ZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6Mjk5MTogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNv
bXBpbGVyIGhhcyB3b3JraW5nIG5hbWVzcGFjZXMNCmNvbmZpZ3VyZTozMDkwOiBjKysgLWMgLWcg
LU8yICBjb25mdGVzdC5DIDE+JjUNCmNvbmZpZ3VyZTozMTIxOiBjaGVja2luZyB3aGV0aGVyIHRo
ZSBDKysgY29tcGlsZXIgYWxsb3dzIHN0ZDo6IGZvciB0aGUgc3RhbmRhcmQgbGlicmFyeQ0KY29u
ZmlndXJlOjMxNTg6IGMrKyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LkMgMT4mNQ0KY29uZmlndXJlOjMx
OTA6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciBuZWVkcyBzdGQ6OiBmb3IgdGhl
IHN0YW5kYXJkIGxpYnJhcnkNCmNvbmZpZ3VyZTozMjI3OiBjKysgLWMgLWcgLU8yICBjb25mdGVz
dC5DIDE+JjUNCmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gYHZvaWQgZnVuY3Rpb24oKSc6DQpjb25m
aWd1cmU6MzIxNjogYHZlY3RvcicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIHRoaXMgZnVuY3Rpb24p
DQpjb25maWd1cmU6MzIxNjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVk
IG9ubHkgb25jZSBmb3IgZWFjaCANCiAgIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQ0KY29uZmln
dXJlOjMyMTY6IHBhcnNlIGVycm9yIGJlZm9yZSBgPicgdG9rZW4NCmNvbmZpZ3VyZTozMjE3OiBg
ZmxheicgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIHRoaXMgZnVuY3Rpb24pDQpjb25maWd1cmU6IGZh
aWxlZCBwcm9ncmFtIHdhczoNCiNsaW5lIDMyMTAgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZk
ZWZzLmgiCgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx2ZWN0b3I+Ci8vI2luY2x1ZGUgPGlv
c3RyZWFtPgp2b2lkIGZ1bmN0aW9uKCkgewogIHZlY3Rvcjxkb3VibGU+IGZsYXo7CiAgZmxhei5w
dXNoX2JhY2soc3FydCgyLjApKTsKICBmbGF6LnB1c2hfYmFjayhmYWJzKDEuMGYpKTsKICAvL2Nl
cnIgPDwgImhlbGxvLCB3b3JsZCIgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7Cgo7IHJldHVybiAw
OyB9CmNvbmZpZ3VyZTozMjYyOiBjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmln
ZW5kaWFuDQpjb25maWd1cmU6MzI4MDogYysrIC1jIC1nIC1PMiAgY29uZnRlc3QuQyAxPiY1DQpj
b25maWd1cmU6MzI5NTogYysrIC1jIC1nIC1PMiAgY29uZnRlc3QuQyAxPiY1DQpjb25maWd1cmU6
IEluIGZ1bmN0aW9uIGBpbnQgbWFpbigpJzoNCmNvbmZpZ3VyZTozMjkwOiBgYmlnJyB1bmRlY2xh
cmVkIChmaXJzdCB1c2UgdGhpcyBmdW5jdGlvbikNCmNvbmZpZ3VyZTozMjkwOiAoRWFjaCB1bmRl
Y2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIA0KICAgZnVu
Y3Rpb24gaXQgYXBwZWFycyBpbi4pDQpjb25maWd1cmU6MzI5MDogcGFyc2UgZXJyb3IgYmVmb3Jl
IGA7JyB0b2tlbg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSAzMjg0ICJj
b25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNp
bmNsdWRlIDxzeXMvcGFyYW0uaD4KaW50IG1haW4oKSB7CgojaWYgQllURV9PUkRFUiAhPSBCSUdf
RU5ESUFOCiBub3QgYmlnIGVuZGlhbgojZW5kaWYKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MzM4
MDogY2hlY2tpbmcgZm9yIGNhc3NlcnQNCmNvbmZpZ3VyZTozMzkwOiBjKysgLUUgIGNvbmZ0ZXN0
LkMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29uZmlndXJlOjM0MzE6IGNoZWNraW5nIGZv
ciBjaXNvNjQ2DQpjb25maWd1cmU6MzQ0MTogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwg
Mj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTozNDgyOiBjaGVja2luZyBmb3IgY3NldGptcA0KY29u
ZmlndXJlOjM0OTI6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0
DQpjb25maWd1cmU6MzUzMzogY2hlY2tpbmcgZm9yIGNzdGRpbw0KY29uZmlndXJlOjM1NDM6IGMr
KyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6MzU4
NDogY2hlY2tpbmcgZm9yIGN0aW1lDQpjb25maWd1cmU6MzU5NDogYysrIC1FICBjb25mdGVzdC5D
ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTozNjM1OiBjaGVja2luZyBmb3Ig
Y2N0eXBlDQpjb25maWd1cmU6MzY0NTogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5j
b25mdGVzdC5vdXQNCmNvbmZpZ3VyZTozNjg2OiBjaGVja2luZyBmb3IgY2xpbWl0cw0KY29uZmln
dXJlOjM2OTY6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpj
b25maWd1cmU6MzczNzogY2hlY2tpbmcgZm9yIGNzaWduYWwNCmNvbmZpZ3VyZTozNzQ3OiBjKysg
LUUgIGNvbmZ0ZXN0LkMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29uZmlndXJlOjM3ODg6
IGNoZWNraW5nIGZvciBjc3RkbGliDQpjb25maWd1cmU6Mzc5ODogYysrIC1FICBjb25mdGVzdC5D
ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTozODM5OiBjaGVja2luZyBmb3Ig
Y3djaGFyDQpjb25maWd1cmU6Mzg0OTogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5j
b25mdGVzdC5vdXQNCmNvbmZpZ3VyZTozODkwOiBjaGVja2luZyBmb3IgY2Vycm5vDQpjb25maWd1
cmU6MzkwMDogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNv
bmZpZ3VyZTozOTQxOiBjaGVja2luZyBmb3IgY2xvY2FsZQ0KY29uZmlndXJlOjM5NTE6IGMrKyAt
RSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6Mzk5Mjog
Y2hlY2tpbmcgZm9yIGNzdGRhcmcNCmNvbmZpZ3VyZTo0MDAyOiBjKysgLUUgIGNvbmZ0ZXN0LkMg
Pi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29uZmlndXJlOjQwNDM6IGNoZWNraW5nIGZvciBj
c3RyaW5nDQpjb25maWd1cmU6NDA1MzogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5j
b25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo0MDk0OiBjaGVja2luZyBmb3IgY3djdHlwZQ0KY29uZmln
dXJlOjQxMDQ6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpj
b25maWd1cmU6NDE0NTogY2hlY2tpbmcgZm9yIGNmbG9hdA0KY29uZmlndXJlOjQxNTU6IGMrKyAt
RSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NDE5Njog
Y2hlY2tpbmcgZm9yIGNtYXRoDQpjb25maWd1cmU6NDIwNjogYysrIC1FICBjb25mdGVzdC5DID4v
ZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo0MjQ3OiBjaGVja2luZyBmb3IgY3N0
ZGRlZg0KY29uZmlndXJlOjQyNTc6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29u
ZnRlc3Qub3V0DQpjb25maWd1cmU6NDI5ODogY2hlY2tpbmcgZm9yIGFsZ29yaXRobQ0KY29uZmln
dXJlOjQzMDg6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpj
b25maWd1cmU6NDM0OTogY2hlY2tpbmcgZm9yIGlvbWFuaXANCmNvbmZpZ3VyZTo0MzU5OiBjKysg
LUUgIGNvbmZ0ZXN0LkMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29uZmlndXJlOjQ0MDA6
IGNoZWNraW5nIGZvciBsaXN0DQpjb25maWd1cmU6NDQxMDogYysrIC1FICBjb25mdGVzdC5DID4v
ZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo0NDUxOiBjaGVja2luZyBmb3Igb3N0
cmVhbQ0KY29uZmlndXJlOjQ0NjE6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29u
ZnRlc3Qub3V0DQpjb25maWd1cmU6NDUwMjogY2hlY2tpbmcgZm9yIHN0cmVhbWJ1Zg0KY29uZmln
dXJlOjQ1MTI6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpj
b25maWd1cmU6NDU1MzogY2hlY2tpbmcgZm9yIGJpdHNldA0KY29uZmlndXJlOjQ1NjM6IGMrKyAt
RSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NDYwNDog
Y2hlY2tpbmcgZm9yIGlvcw0KY29uZmlndXJlOjQ2MTQ6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rl
di9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NDY1NTogY2hlY2tpbmcgZm9yIGxvY2Fs
ZQ0KY29uZmlndXJlOjQ2NjU6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRl
c3Qub3V0DQpjb25maWd1cmU6NDcwNjogY2hlY2tpbmcgZm9yIHF1ZXVlDQpjb25maWd1cmU6NDcx
NjogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3Vy
ZTo0NzU3OiBjaGVja2luZyBmb3Igc3RyaW5nDQpjb25maWd1cmU6NDc2NzogYysrIC1FICBjb25m
dGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo0ODA4OiBjaGVja2lu
ZyBmb3IgY29tcGxleA0KY29uZmlndXJlOjQ4MTg6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9u
dWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NDg1OTogY2hlY2tpbmcgZm9yIGlvc2Z3ZA0K
Y29uZmlndXJlOjQ4Njk6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu
b3V0DQpjb25maWd1cmU6NDkxMDogY2hlY2tpbmcgZm9yIG1hcA0KY29uZmlndXJlOjQ5MjA6IGMr
KyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NDk2
MTogY2hlY2tpbmcgZm9yIHNldA0KY29uZmlndXJlOjQ5NzE6IGMrKyAtRSAgY29uZnRlc3QuQyA+
L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NTAxMjogY2hlY2tpbmcgZm9yIHR5
cGVpbmZvDQpjb25maWd1cmU6NTAyMjogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5j
b25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo1MDYzOiBjaGVja2luZyBmb3IgZGVxdWUNCmNvbmZpZ3Vy
ZTo1MDczOiBjKysgLUUgIGNvbmZ0ZXN0LkMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29u
ZmlndXJlOjUxMTQ6IGNoZWNraW5nIGZvciBpb3N0cmVhbQ0KY29uZmlndXJlOjUxMjQ6IGMrKyAt
RSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NTE2NTog
Y2hlY2tpbmcgZm9yIG1lbW9yeQ0KY29uZmlndXJlOjUxNzU6IGMrKyAtRSAgY29uZnRlc3QuQyA+
L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NTIxNjogY2hlY2tpbmcgZm9yIHNz
dHJlYW0NCmNvbmZpZ3VyZTo1MjI2OiBjKysgLUUgIGNvbmZ0ZXN0LkMgPi9kZXYvbnVsbCAyPmNv
bmZ0ZXN0Lm91dA0KY29uZmlndXJlOjUyNjc6IGNoZWNraW5nIGZvciB1dGlsaXR5DQpjb25maWd1
cmU6NTI3NzogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNv
bmZpZ3VyZTo1MzE4OiBjaGVja2luZyBmb3IgZXhjZXB0aW9uDQpjb25maWd1cmU6NTMyODogYysr
IC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo1MzY5
OiBjaGVja2luZyBmb3IgaXN0cmVhbQ0KY29uZmlndXJlOjUzNzk6IGMrKyAtRSAgY29uZnRlc3Qu
QyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NTQyMDogY2hlY2tpbmcgZm9y
IG5ldw0KY29uZmlndXJlOjU0MzA6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29u
ZnRlc3Qub3V0DQpjb25maWd1cmU6NTQ3MTogY2hlY2tpbmcgZm9yIHN0YWNrDQpjb25maWd1cmU6
NTQ4MTogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZp
Z3VyZTo1NTIyOiBjaGVja2luZyBmb3IgdmFsYXJyYXkNCmNvbmZpZ3VyZTo1NTMyOiBjKysgLUUg
IGNvbmZ0ZXN0LkMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dA0KY29uZmlndXJlOjU1NzM6IGNo
ZWNraW5nIGZvciBmc3RyZWFtDQpjb25maWd1cmU6NTU4MzogYysrIC1FICBjb25mdGVzdC5DID4v
ZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo1NjI0OiBjaGVja2luZyBmb3IgaXRl
cmF0b3INCmNvbmZpZ3VyZTo1NjM0OiBjKysgLUUgIGNvbmZ0ZXN0LkMgPi9kZXYvbnVsbCAyPmNv
bmZ0ZXN0Lm91dA0KY29uZmlndXJlOjU2NzU6IGNoZWNraW5nIGZvciBudW1lcmljDQpjb25maWd1
cmU6NTY4NTogYysrIC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNv
bmZpZ3VyZTo1NzI2OiBjaGVja2luZyBmb3Igc3RkZXhjZXB0DQpjb25maWd1cmU6NTczNjogYysr
IC1FICBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo1Nzc3
OiBjaGVja2luZyBmb3IgdmVjdG9yDQpjb25maWd1cmU6NTc4NzogYysrIC1FICBjb25mdGVzdC5D
ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQNCmNvbmZpZ3VyZTo1ODI4OiBjaGVja2luZyBmb3Ig
ZnVuY3Rpb25hbA0KY29uZmlndXJlOjU4Mzg6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxs
IDI+Y29uZnRlc3Qub3V0DQpjb25maWd1cmU6NTg3OTogY2hlY2tpbmcgZm9yIGxpbWl0cw0KY29u
ZmlndXJlOjU4ODk6IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0
DQpjb25maWd1cmU6NTkzMDogY2hlY2tpbmcgZm9yIHN0cnN0cmVhbQ0KY29uZmlndXJlOjU5NDA6
IGMrKyAtRSAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0DQpJbiBmaWxlIGlu
Y2x1ZGVkIGZyb20gL3Vzci9pbmNsdWRlL2MrKy8zLjIvYmFja3dhcmQvc3Ryc3RyZWFtOjUxLA0K
ICAgICAgICAgICAgICAgICBmcm9tIGNvbmZpZ3VyZTo1OTM2Og0KL3Vzci9pbmNsdWRlL2MrKy8z
LjIvYmFja3dhcmQvYmFja3dhcmRfd2FybmluZy5oOjMyOjI6IHdhcm5pbmc6ICN3YXJuaW5nIFRo
aXMgZmlsZSBpbmNsdWRlcyBhdCBsZWFzdCBvbmUgZGVwcmVjYXRlZCBvciBhbnRpcXVhdGVkIGhl
YWRlci4gUGxlYXNlIGNvbnNpZGVyIHVzaW5nIG9uZSBvZiB0aGUgMzIgaGVhZGVycyBmb3VuZCBp
biBzZWN0aW9uIDE3LjQuMS4yIG9mIHRoZSBDKysgc3RhbmRhcmQuIEV4YW1wbGVzIGluY2x1ZGUg
c3Vic3RpdHV0aW5nIHRoZSA8WD4gaGVhZGVyIGZvciB0aGUgPFguaD4gaGVhZGVyIGZvciBDKysg
aW5jbHVkZXMsIG9yIDxzc3RyZWFtPiBpbnN0ZWFkIG9mIHRoZSBkZXByZWNhdGVkIGhlYWRlciA8
c3Ryc3RyZWFtLmg+LiBUbyBkaXNhYmxlIHRoaXMgd2FybmluZyB1c2UgLVduby1kZXByZWNhdGVk
Lg0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQojbGluZSA1OTM1ICJjb25maWd1cmUi
CiNpbmNsdWRlICJjb25mZGVmcy5oIgojaW5jbHVkZSA8c3Ryc3RyZWFtPgo=

------_=_NextPart_001_01C2D1FE.AC00068F--