Subject: Re: libg++-2.6.2 doesn't build
To: Arthur Hoffmann <hoffmann@it.ntu.edu.au>
From: Mark Steven deSagun Tamola <buckwild@u.washington.edu>
List: current-users
Date: 04/22/1995 18:12:57
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-338501147-798599577=:3534
Content-Type: TEXT/PLAIN; charset=US-ASCII


On Sat, 22 Apr 1995, Arthur Hoffmann wrote:

> Hi, I was just wondering if anyone got libg++-2.6.2 to compile on a
> NetBSD1.0A box? I'm running NetBSD1.0A on an Amiga.
> I first built gcc-2.6.3 which went without any problems, I installed
> the following patch to it: (this was posted here earlier)

[patch follows...]

> Does anyone have any hints about what I should do?
> 
> 
> Thanks.
> 
> Arthur.
> 
> __
> Arthur Hoffmann					hoffmann@it.ntu.edu.au

i've attached some patches that i saved from a couple of months ago or 
something like that concerning this (they can also be found in the 
archives).  they allow libg++-2.6.2 to compile, although the things that 
had problems will still fail all tests, and you should probably not use 
them.  i don't know if these will be fixed for netbsd in the future.

-m


--0-338501147-798599577=:3534
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=g++-fix
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.OSF.3.91i.950422181257.3534B@saul4.u.washington.edu>
Content-Description: patches for libg++-2.6.2 (a number of them)

RnJvbSBnaHVkc29uQE1JVC5FRFUgU2F0IEFwciAyMiAxODowMTozMCAxOTk1
DQpEYXRlOiBTYXQsIDE4IEZlYiAxOTk1IDE1OjI1OjEwIEVTVA0KRnJvbTog
R3JlZyBIdWRzb24gPGdodWRzb25ATUlULkVEVT4NClRvOiBSb2IgSGVhbGV5
IDxyaGVhbGV5QGthcy5oZWxpb3MubW4ub3JnPg0KQ2M6IGN1cnJlbnQtdXNl
cnNATmV0QlNELk9SRw0KU3ViamVjdDogUmU6IHByb2JsZW1zIGluIGxpYmcr
Ky0yLjYuMiBjb21waWxlIA0KDQoNCkkndmUgaW5jbHVkZWQgdGhlIHBhdGNo
ZXMgSSBuZWVkZWQgdG8gZ2V0IGxpYmcrKy0yLjYuMSB0byBidWlsZCB1bmRl
cg0KTmV0QlNELiAgSSBhbHNvIGhhdmUgaW4gbXkgTk9URVMgZmlsZSBmb3Ig
bGliZysrLTIuNi4xOg0KDQoJVGhlIGdlbmVyYXRvciBmb3IgX0dfY29uZmln
LmggZmFpbHMgb24gZnBvc190IHVuZGVyIE5ldEJTRCwNCgliZWNhdXNlIGl0
IGdlbmVyYXRlcyBhICJ0eXBlZGVmIHF1YWRfdCBfR19mcG9zX3QiLiAgVGhp
cyBuZWVkcw0KCXRvIGJlIGZpeGVkIGJ5IGhhbmQgZm9yIG5vdy4NCg0KImZp
eGVkIGJ5IGFobmQgZm9yIG5vdyIgbWVhbnQgZWRpdGluZyBfR19jb25maWcu
aCB0byBkbyAidHlwZWRlZiBsb25nDQpsb25nIF9HX2Zwb3NfdCIgaW5zdGVh
ZCBvZiAidHlwZWRlZiBxdWFkX3QgX0dfZnBvc190Ii4gIFRoZXJlIG1pZ2h0
DQpoYXZlIGJlZW4gYSBwcm9ibGVtIHdpdGggYW5vdGhlciB0eXBlIGFzIHdl
bGwuDQoNClRoZSBmb2xsb3dpbmcgcGF0Y2hlcyB3ZXJlIHN1Ym1pdHRlZCB0
byBidWctbGliZysrLCBzbyB0aGV5IG1heSBiZQ0KdW5uZWNlc3NhcnkgZm9y
IGxpYmcrKy0yLjYuMi4gIChJJ20gdW5hYmxlIHRvIGdldCB0aHJvdWdoIHRv
IHByZXAuYWkNCnJpZ2h0IG5vdywgc28gSSBjYW4ndCBldmVuIGNoZWNrIHdo
ZXRoZXIgdGhlcmUgaXMgYSBsaWJnKystMi42LjI7IEkNCmhhZCB0aG91Z2h0
IDIuNi4xIHdhcyB0aGUgbGF0ZXN0IHZlcnNpb24uKQ0KDQoqKiogbGliZysr
L3NyYy9GaXguY2Mub3JpZyAgICAgIEZyaSBEZWMgMTYgMTQ6MzQ6MDEgMTk5
NA0KLS0tIGxpYmcrKy9zcmMvRml4LmNjICAgRnJpIERlYyAxNiAxNDozNToy
MSAxOTk0DQoqKioqKioqKioqKioqKioNCioqKiAyOTgsMzA0ICoqKioNCiAg
ICAgIHIgPSBuZXdfRml4KHgtPmxlbiArIHktPmxlbik7DQogICAgaW50IHhz
aWduID0geC0+c1swXSAmIDB4ODAwMCwNCiAgICAgIHlzaWduID0geS0+c1sw
XSAmIDB4ODAwMDsNCiEgICBGaXggWCh4LT5sZW4pLCBZKHktPmxlbik7DQog
ICAgaWYgKCB4c2lnbiApDQogICAgICB4ID0gbmVnYXRlKHgsWC5yZXApOw0K
ICAgIGlmICggeXNpZ24gKQ0KLS0tIDI5OCwzMDQgLS0tLQ0KICAgICAgciA9
IG5ld19GaXgoeC0+bGVuICsgeS0+bGVuKTsNCiAgICBpbnQgeHNpZ24gPSB4
LT5zWzBdICYgMHg4MDAwLA0KICAgICAgeXNpZ24gPSB5LT5zWzBdICYgMHg4
MDAwOw0KISAgIEZpeCBYKChpbnQpeC0+bGVuKSwgWSgoaW50KXktPmxlbik7
DQogICAgaWYgKCB4c2lnbiApDQogICAgICB4ID0gbmVnYXRlKHgsWC5yZXAp
Ow0KICAgIGlmICggeXNpZ24gKQ0KKioqKioqKioqKioqKioqDQoqKiogMzY4
LDM3NCAqKioqDQogICAgICBuZWdhdGUoeCxyKTsNCiAgICBlbHNlDQogICAg
ICBjb3B5KHgscik7DQohICAgRml4IFkoeS0+bGVuKTsNCiAgICBSZXAqIHky
ID0gKCB5c2lnbiA/IG5lZ2F0ZSh5LFkucmVwKSA6IGNvcHkoeSxZLnJlcCkg
KTsNCiAgICBpZiAoICFjb21wYXJlKHkyKSApDQogICAgICByYW5nZV9lcnJv
cigiZGl2aXNpb24gLS0gZGl2aXNpb24gYnkgemVybyIpOw0KLS0tIDM2OCwz
NzQgLS0tLQ0KICAgICAgbmVnYXRlKHgscik7DQogICAgZWxzZQ0KICAgICAg
Y29weSh4LHIpOw0KISAgIEZpeCBZKChpbnQpeS0+bGVuKTsNCiAgICBSZXAq
IHkyID0gKCB5c2lnbiA/IG5lZ2F0ZSh5LFkucmVwKSA6IGNvcHkoeSxZLnJl
cCkgKTsNCiAgICBpZiAoICFjb21wYXJlKHkyKSApDQogICAgICByYW5nZV9l
cnJvcigiZGl2aXNpb24gLS0gZGl2aXNpb24gYnkgemVybyIpOw0KKioqKioq
KioqKioqKioqDQoqKiogMzgzLDM4OSAqKioqDQogICAgZWxzZQ0KICAgIHsN
CiAgICAgIFJlcCogdDsNCiEgICAgIEZpeCBTKHItPmxlbiksDQogICAgICAg
IFcocS0+bGVuLCZSZXBfcXVvdGllbnRfYnVtcCk7DQogICAgICBmb3IgKCBp
bnQgaT0xOyBpIDwgcS0+bGVuOyBpKysgKQ0KICAgICAgew0KLS0tIDM4Mywz
ODkgLS0tLQ0KICAgIGVsc2UNCiAgICB7DQogICAgICBSZXAqIHQ7DQohICAg
ICBGaXggUygoaW50KXItPmxlbiksDQogICAgICAgIFcocS0+bGVuLCZSZXBf
cXVvdGllbnRfYnVtcCk7DQogICAgICBmb3IgKCBpbnQgaT0xOyBpIDwgcS0+
bGVuOyBpKysgKQ0KICAgICAgew0KKioqIGxpYmcrKy9zcmMvQ3Vyc2VzVy5o
Lm9yaWcgICBNb24gT2N0IDI0IDE5OjA2OjQ3IDE5OTQNCi0tLSBsaWJnKysv
c3JjL0N1cnNlc1cuaCAgICAgICAgRnJpIERlYyAxNiAxNDo0NTo1OSAxOTk0
DQoqKioqKioqKioqKioqKioNCioqKiAzMSwzNiAqKioqDQotLS0gMzEsNDcg
LS0tLQ0KICAjaW5jbHVkZSAgIDxjdXJzZXMuaD4NCiAgfQ0KICANCisgLyog
TmV0QlNEIHVzZXMgZGlmZmVyZW50IGZpZWxkIG5hbWVzLiAqLw0KKyAjaWZk
ZWYgX19OZXRCU0RfXw0KKyAjZGVmaW5lIF9tYXh4IG1heHgNCisgI2RlZmlu
ZSBfbWF4eSBtYXh5DQorICNkZWZpbmUgX2N1cnggY3VyeA0KKyAjZGVmaW5l
IF9jdXJ5IGN1cnkNCisgI2RlZmluZSBfeSBsaW5lcw0KKyAjZGVmaW5lIF9i
ZWd4IGJlZ3gNCisgI2RlZmluZSBfYmVneSBiZWd5DQorICNlbmRpZg0KKyAN
CiAgLyogU0NPIDMuMnY0IGN1cnNlcy5oIGluY2x1ZGVzIHRlcm0uaCwgd2hp
Y2ggZGVmaW5lcyBsaW5lcyBhcyBhIG1hY3JvLg0KICAgICBVbmRlZmluZSBp
dCBoZXJlLCBiZWNhdXNlIEN1cnNlc1dpbmRvdyB1c2VzIGxpbmVzIGFzIGEg
bWV0aG9kLiAgKi8NCiAgI3VuZGVmIGxpbmVzDQoqKiogbGliZysrL3NyYy90
aW1lci5jLm9yaWcgICAgIEZyaSBEZWMgMTYgMTQ6NTU6MDYgMTk5NA0KLS0t
IGxpYmcrKy9zcmMvdGltZXIuYyAgRnJpIERlYyAxNiAxNDo1NTozMSAxOTk0
DQoqKioqKioqKioqKioqKioNCioqKiAzMSwzNiAqKioqDQotLS0gMzEsMzcg
LS0tLQ0KICANCiAgI2luY2x1ZGUgPF9HX2NvbmZpZy5oPg0KICAjaWYgX0df
SEFWRV9TWVNfUkVTT1VSQ0UNCisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0K
ICAjaW5jbHVkZSA8c3lzL3RpbWUuaD4NCiAgI2luY2x1ZGUgPHN5cy9yZXNv
dXJjZS5oPg0KICAjZW5kaWYNCioqKiBsaWJpby9nZW4tcGFyYW1zLm9yaWcg
ICAgICAgRnJpIERlYyAxNiAxNToxMzozNCAxOTk0DQotLS0gbGliaW8vZ2Vu
LXBhcmFtcyAgICBGcmkgRGVjIDE2IDE1OjEzOjUwIDE5OTQNCioqKioqKioq
KioqKioqKg0KKioqIDUyMCw1MjUgKioqKg0KLS0tIDUyMCw1MjYgLS0tLQ0K
ICAgZWNobyAiI2RlZmluZSAke21hY3JvX3ByZWZpeH1IQVZFX1NZU19SRVNP
VVJDRSAke0hBVkVfU1lTX1JFU09VUkNFfSINCiAgZWxzZQ0KICAgIGNhdCA+
ZHVtbXkuYyA8PCFFT0YhDQorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiAg
I2luY2x1ZGUgPHN5cy90aW1lLmg+DQogICNpbmNsdWRlIDxzeXMvcmVzb3Vy
Y2UuaD4NCiAgICBpbnQgbWFpbigpDQpGcm9tIGR0Y0BzY3Jvb2dlLmVlLnN3
aW4ub3ouYXUgU2F0IEFwciAyMiAxODowMTo1MiAxOTk1DQpEYXRlOiBGcmks
IDMgTWFyIDE5OTUgMDI6MzI6MDkgKzExMDAgKEVTVCkNCkZyb206IERvdWds
YXMgVGhvbWFzIENyb3NoZXIgPGR0Y0BzY3Jvb2dlLmVlLnN3aW4ub3ouYXU+
DQpUbzogYnVnLWxpYi1nKytAcHJlcC5haS5taXQsIGN1cnJlbnQtdXNlcnNA
TmV0QlNELk9SRw0KU3ViamVjdDogU29tZSBwcm9ibGVtcyBjb21waWxpbmcg
bGliZysrLTIuNi4yIG9uIE5ldEJTRDEuMCBpNDg2DQoNCg0KU29tZSBwcm9i
bGVtcyB3aXRoIHRoZSBjb21waWxhdGlvbiBvZiBsaWJnKystMi42LjIgd2l0
aCBnY2MtMi42LjMgb24NCk5ldEJTRDEuMCBpNDg2IGFyZSBkZXNjcmliZWQg
Ymxvdy4gU29tZSBoYWNrcyBhcmUgZGVzY3JpYmVkLg0KDQpUaGUgc2NyaXB0
IGxpYmlvL2dlbl9wYXJhbXMgZ2VuZXJhdGVzIHNvbWUgaW5jb3JyZWN0IHZh
bHVlcyBpbiB0aGUNCmZpbGUgbGliaW8vX0dfY29uZmlnLmggOg0KDQoxLg0K
CVRoZSBzY3JpcHQgc2VlbXMgdG8gYXNzdW1lIHRoZSBzeXN0ZW0gZGVmaW5l
cyB1aW50MTZfdCwNCnVpbnQzMl90IGFuZCB1aW50NjRfdC4gIEhvd2V2ZXIg
TmV0QlNEIGRvZXMgbm90IGRlZmluZSB0aGVzZSBzbyB0aGUNCnNjcmlwdCBz
Y3Jld3MgdGhlbSB1cC4gIFRob3NlIGFmZmVjdGVkIGFyZToNCg0KCUEuICBf
R191aW50MTZfdAkJc2V0IHRvOiB1bnNpZ25lZA0KCQkJCXNob3VsZCBiZTog
dW5zaWduZWQgc2hvcnQNCg0KCQkoIE5vdGU6IFRoaXMgaXMgY2F1c2VzIGVy
cm9ycyBjb21waWxpbmcgbGliZysrL3NyYy9GaXguY2M7DQoJCQlJdCBkb2Vz
IG5vdCBuZWVkIHRvIGJlIHBhdGNoZWQgYW5kIHdpbGwgY29tcGlsZQ0KCQkJ
YW5kIHBhc3MgdGhlIHRlc3QgaWYgdGhpcyBwcm9ibGVtIGlzIGZpeGVkLiAp
DQoNCglCLiBfR191aW50MzJfdAkJc2V0IHRvOiB1bnNpZ25lZA0KCQkJCXNo
b3VsZCBiZTogdW5zaWduZWQgaW50DQoNCglDLiBfR191aW50NjRfdAkJc2V0
IHRvOiB1bnNpZ25lZA0KCQkJCXNob3VsZCBiZTogdW5zaWduZWQgbG9uZyBs
b25nDQoNCg0KMi4NCglUaGUgb3RoZXIgbWFqb3IgcHJvYmxlbSBpcyB0aGF0
IHRoZSB0eXBlZGVmIGZvciBfR19mcG9zX3QgaXMNCmRlZmluZWQgaW4gdGVy
bXMgb2YgcXVhZF90IGVhcmx5IGluIF9HX2NvbmZpZy5oOyBhdCB0aGlzIHBv
aW50IHF1YWRfdA0KaXMgbm90IGRlZmluZWQgc28gdGhlIGNvbXBpbGF0aW9u
IGJyZWFrcy4gIE9uIE5ldEJTRCBpNDg2IGEgcXVhZF90IGlzDQphIGxvbmcg
bG9uZzsgYXMgYSBoYWNrIGp1c3QgcmVwbGFjZSBxdWFkX3Qgd2l0aCBsb25n
IGxvbmcuDQoNCjMuDQoJQW5vdGhlciBzbWFsbCBkaWZmZXJlbmNlIEkgbm90
aWNlZCB3YXMgaW4gdGhlIGRlZmluaXRpb24NCm9mIF9HX2ludDhfdC4gTm90
IHN1cmUgaWYgdGhpcyBpcyBhIHJlYWwgcHJvYmxlbT8NCg0KCQkJCXNldCB0
bzogc2lnbmVkIGludA0KCQkJCXBlcmhhcHMgaXQgc2hvdWxkIGJlOiBfX3Np
Z25lZCBpbnQNCg0KDQpIYWNrIHRvIHdvcmsgYXJvdW5kIHRoZXNlIHByb2Js
ZW1zOg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkxl
dCBsaWJnKysgY29tcGlsZSB1bnRpbCBpdCBnZW5lcmF0ZXMgdGhlIGVycm9u
ZW91cyBfR19jb25maWcuaCBmaWxlLA0KdGhlbiBlZGl0IHRoaXMgZmlsZSBt
YWtpbmcgdGhlIGFib3ZlIGNoYW5nZXMgYW5kIGNvbnRpbnVlIHdpdGggdGhl
DQpjb21waWxhdGlvbi4gIFRoZSBjb3JyZWN0ZWQgbGluZXMgZnJvbSBfR19j
b25maWcuaCBhcmU6DQoNCnR5cGVkZWYgbG9uZyBsb25nIF9HX2Zwb3NfdDsN
CnR5cGVkZWYgX19zaWduZWQgIGNoYXIgX0dfaW50OF90Ow0KdHlwZWRlZiB1
bnNpZ25lZCBzaG9ydCBfR191aW50MTZfdDsNCnR5cGVkZWYgdW5zaWduZWQg
aW50ICBfR191aW50MzJfdDsNCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n
IF9HX3VpbnQ2NF90Ow0KDQoNCkluZm9ybWF0aW9uIHRoYXQgbWF5IGhlbHAg
cHJvZHVjZSBhIGZpeGVkIGdlbi1wYXJhbXMuYw0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5l
dEJTRCBkZWZpbmVzICB1X2ludDE2X3QsIHVfaW50MzJfdCwgdV9pbnQ2NF90
LCBhbmQgaW50OF90DQppbiA8bWFjaGluZS90eXBlcz4uDQoNCjxzeXMvdHlw
ZXMuaD4gaW5jbHVkZXMgPG1hY2hpbmUvdHlwZXMuaD4NCg0KPHN0ZGlvLmg+
LCA8c3RkbGliLmg+IGFuZCA8dW5pc3RkLmg+IGluY2x1ZGUgPHN5cy90eXBl
cy5oPg0KDQoNClJlZ2FyZHMNCkRvdWdsYXMgQ3Jvc2hlcg0KRnJvbSBkdGNA
c2Nyb29nZS5lZS5zd2luLm96LmF1IFNhdCBBcHIgMjIgMTg6MDI6MjUgMTk5
NQ0KRGF0ZTogU2F0LCA0IE1hciAxOTk1IDAyOjQ1OjQ2ICsxMTAwIChFU1Qp
DQpGcm9tOiBEb3VnbGFzIFRob21hcyBDcm9zaGVyIDxkdGNAc2Nyb29nZS5l
ZS5zd2luLm96LmF1Pg0KVG86IGJ1Zy1saWItZysrQHByZXAuYWkubWl0LmVk
dQ0KQ2M6IGN1cnJlbnQtdXNlcnNATmV0QlNELk9SRw0KU3ViamVjdDogUmU6
IFNvbWUgcHJvYmxlbXMgY29tcGlsaW5nIGxpYmcrKy0yLjYuMiBvbiBOZXRC
U0QNCg0KDQpJIGhhdmUgcmVhZCB1cCBvbiBzaCBhbmQgc2VkLCBhbmQgdGhy
b3VnaCB0cmlhbCBhbmQgZXJyb3IgaGF2ZSBkZXZlbG9wZWQNCnBhdGNoZXMg
dG8gbGliaW8vZ2VuLXBhcmFtcyB0aGF0IGNvcnJlY3QgdGhlIHByb2JsZW1z
IEkgbWVudGlvbmVkIGZvcg0KTmV0QlNEMS4wIGk0ODYuDQoNClRoZSBwYXRj
aGVzIHNob3VsZCB3b3JrIGZvciBhbGwgcGxhdGZvcm1zIG9mIE5ldEJTRCBh
bmQgSSBoYWQgdGVzdGVkDQp0aGVtIG9uIGJvdGggTmV0QlNEMS4wIGFuZCBO
ZXRCU0QtY3VycmVudCdzIGluY2x1ZGUgZmlsZXMuICBJIGhhdmUNCmFkZGVk
IGV4dHJhIGNhc2VzIGZvciBOZXRCU0Qgd2l0aG91dCByZW1vdmluZyBhbnkg
ZXhpc3RpbmcNCmZ1bmN0aW9uYWxpdHkgc28gSSB3b3VsZCBob3BlIHRoYXQg
dGhleSB3b3VsZCBub3QgYnJlYWsgYW55IG90aGVyDQpwbGF0Zm9ybXMuDQoN
ClJlZ2FyZHMNCkRvdWdsYXMgQ3Jvc2hlcg0KDQoNCioqKiBnZW4tcGFyYW1z
Lm9yaWcJRnJpIE1hciAgMyAxMzo1OTowNiAxOTk1DQotLS0gZ2VuLXBhcmFt
cwlTYXQgTWFyICA0IDAxOjU1OjU5IDE5OTUNCioqKioqKioqKioqKioqKiBl
bHNlDQoqKiogMjU0LDI2MCAqKioqDQogIGZpDQogIHRyICcJJyAnICcgPFRN
UCA+ZHVtbXkub3V0DQogIA0KISBmb3IgVFlQRSBpbiBkZXZfdCBjbG9ja190
IGZwb3NfdCBnaWRfdCBpbm9fdCBtb2RlX3QgbmxpbmtfdCBvZmZfdCBwaWRf
dCBwdHJkaWZmX3Qgc2lnc2V0X3Qgc2l6ZV90IHNzaXplX3QgdGltZV90IHVp
ZF90IHZhX2xpc3Qgd2NoYXJfdCB3aW50X3QgaW50OF90IHVpbnQ4X3QgaW50
MTZfdCB1aW50MTZfdCBpbnQzMl90IHVpbnRfMzJfdCBpbnQ2NF90IHVpbnQ2
NF90OyBkbw0KICAgICAgSU1QT1JURUQ9YGV2YWwgJ2VjaG8gJCciJFRZUEUi
YA0KICAgICAgaWYgWyAtbiAiJHtJTVBPUlRFRH0iIF0gOyB0aGVuDQogIAll
dmFsICIkVFlQRT0nJElNUE9SVEVEIg0KLS0tIDI1NCwyNjAgLS0tLQ0KICBm
aQ0KICB0ciAnCScgJyAnIDxUTVAgPmR1bW15Lm91dA0KICANCiEgZm9yIFRZ
UEUgaW4gZGV2X3QgY2xvY2tfdCBmcG9zX3QgZ2lkX3QgaW5vX3QgbW9kZV90
IG5saW5rX3Qgb2ZmX3QgcGlkX3QgcHRyZGlmZl90IHNpZ3NldF90IHNpemVf
dCBzc2l6ZV90IHRpbWVfdCB1aWRfdCB2YV9saXN0IHdjaGFyX3Qgd2ludF90
IGludDhfdCB1aW50OF90IGludDE2X3QgdWludDE2X3QgaW50MzJfdCB1aW50
XzMyX3QgaW50NjRfdCB1aW50NjRfdCB1X2ludDhfdCB1X2ludDE2X3QgdV9p
bnQzMl90IHVfaW50NjRfdDsgZG8NCiAgICAgIElNUE9SVEVEPWBldmFsICdl
Y2hvICQnIiRUWVBFImANCiAgICAgIGlmIFsgLW4gIiR7SU1QT1JURUR9IiBd
IDsgdGhlbg0KICAJZXZhbCAiJFRZUEU9JyRJTVBPUlRFRCINCioqKioqKioq
KioqKioqKiBmb3IgVFlQRSBpbiBkZXZfdCBjbG9ja190IGZwb3NfdCBnaWRf
dCBpDQoqKiogMjY4LDI4MyAqKioqDQogICAgICAgICAgaWYgWyAtcyBUTVAg
XTsgdGhlbg0KICAJICAgICMgVkFMVUUgaXMgbm93IHRoZSB0eXBlZGVmJ2Qg
ZGVmaW5pdGlvbiBvZiAkVFlQRS4NCiAgICAgICAgICAgICAgZXZhbCAiVkFM
VUU9J2Ake1NFRH0gLWUgJ3N8ICokfHwnIC1lICcyLCRkJyA8VE1QYCciDQoh
IAkgICAgIyBVbmxlc3MgVkFMVUUgY29udGFpbnMgYSBibGFuaywgbG9vayBm
b3IgYSB0eXBlZGVmIGZvciBpdA0KISAJICAgICMgaW4gdHVybiAodGhpcyBj
b3VsZCBiZSBhIGxvb3AsIGJ1dCB0aGF0IHdvdWxkIGJlIG92ZXIta2lsbCku
DQohIAkgICAgaWYgZWNobyAkVkFMVUUgfCBncmVwICIgIiA+L2Rldi9udWxs
IDsgdGhlbiB0cnVlDQohIAkgICAgZWxzZQ0KISAJCXJtIC1mIFRNUA0KISAJ
CSR7U0VEfSAtbiAtZSAic3wuKnR5cGVkZWZbIAldWyAJXSpcKC4qW15hLXpB
LVowLTlfXVwpJHtWQUxVRX1bIAldKjsuKnxcMXx3IFRNUCIgPGR1bW15Lm91
dD4vZGV2L251bGwNCiEgCQlpZiBbIC1zIFRNUCBdOyB0aGVuDQohIAkJICAg
IGV2YWwgIlZBTFVFPSdgJHtTRUR9IC1lICcyLCRkJyAtZSAnc3xbIAldKiR8
fCcgPFRNUGAnIg0KISAJCWZpDQohIAkgICAgZmkNCiAgCSAgICBldmFsICIk
VFlQRT0nJFZBTFVFJyINCiAgCWZpDQogICAgICBmaQ0KLS0tIDI2OCwyODUg
LS0tLQ0KICAgICAgICAgIGlmIFsgLXMgVE1QIF07IHRoZW4NCiAgCSAgICAj
IFZBTFVFIGlzIG5vdyB0aGUgdHlwZWRlZidkIGRlZmluaXRpb24gb2YgJFRZ
UEUuDQogICAgICAgICAgICAgIGV2YWwgIlZBTFVFPSdgJHtTRUR9IC1lICdz
fCAqJHx8JyAtZSAnMiwkZCcgPFRNUGAnIg0KISAgICAgICAgICAgICBmb3Ig
aSBpbiAxIDIgMyA0IDsgZG8NCiEgCSAgICAgICAgIyBVbmxlc3MgVkFMVUUg
Y29udGFpbnMgYSBibGFuaywgbG9vayBmb3IgYSB0eXBlZGVmIGZvciBpdA0K
ISAJICAgICAgICAjIGluIHR1cm4gKHRoaXMgY291bGQgYmUgYSBsb29wLCBi
dXQgdGhhdCB3b3VsZCBiZSBvdmVyLWtpbGwpLg0KISAJICAgICAgICBpZiBl
Y2hvICRWQUxVRSB8IGdyZXAgIiAiID4vZGV2L251bGwgOyB0aGVuIHRydWUN
CiEgCSAgICAgICAgZWxzZQ0KISAJCSAgICBybSAtZiBUTVANCiEgCQkgICAg
JHtTRUR9IC1uIC1lICJzfC4qdHlwZWRlZlsgCV1bIAldKlwoLipbXmEtekEt
WjAtOV9dXCkke1ZBTFVFfVsgCV0qOy4qfFwxfHcgVE1QIiA8ZHVtbXkub3V0
Pi9kZXYvbnVsbA0KISAJCSAgICBpZiBbIC1zIFRNUCBdOyB0aGVuDQohIAkJ
ICAgICAgICBldmFsICJWQUxVRT0nYCR7U0VEfSAtZSAnMiwkZCcgLWUgJ3N8
WyAJXSokfHwnIDxUTVBgJyINCiEgCQkgICAgZmkNCiEgCSAgICAgICAgZmkN
CiEgICAgICAgICAgICAgZG9uZQ0KICAJICAgIGV2YWwgIiRUWVBFPSckVkFM
VUUnIg0KICAJZmkNCiAgICAgIGZpDQoqKioqKioqKioqKioqKiogZm9yIE5B
TUUgaW4gU0hSVF9NQVggSU5UX01BWCBMT05HX01BWCBMTw0KKioqIDQyOCw0
MzQgKioqKg0KICAJZXZhbCAiJE5BTUU9JyRJTVBPUlRFRCAvKiBzcGVjaWZp
ZWQgKi8iDQogICAgICBlbHNlDQogIAlybSAtZiBUTVANCiEgCSR7U0VEfSAt
biAtZSAnc3wgKjt8O3xnJyAtZSAic3xsb25nIFgke05BTUV9PSAqXChbMC05
XSpcKUwqICo7fFwxfHcgVE1QIiBcDQogIAkgIDxkdW1teS5vdXQ+L2Rldi9u
dWxsDQogIAkjIE5vdyBzZWxlY3QgdGhlIGZpcnN0IGRlZmluaXRpb24uDQog
IAlpZiBbIC1zIFRNUCBdOyB0aGVuDQotLS0gNDMwLDQzNiAtLS0tDQogIAll
dmFsICIkTkFNRT0nJElNUE9SVEVEIC8qIHNwZWNpZmllZCAqLyINCiAgICAg
IGVsc2UNCiAgCXJtIC1mIFRNUA0KISAJJHtTRUR9IC1uIC1lICdzfCAqO3w7
fGcnIC1lICJzfGxvbmcgWCR7TkFNRX09ICpcKFswLTksYS1mLHhdKlwpTCog
Kjt8XDF8dyBUTVAiICBcDQogIAkgIDxkdW1teS5vdXQ+L2Rldi9udWxsDQog
IAkjIE5vdyBzZWxlY3QgdGhlIGZpcnN0IGRlZmluaXRpb24uDQogIAlpZiBb
IC1zIFRNUCBdOyB0aGVuDQoqKioqKioqKioqKioqKiogZGVmYXVsdF9pbnQx
Nj0NCioqKiA0NDMsNDYyICoqKioNCiAgZGVmYXVsdF9pbnQzMj0NCiAgZGVm
YXVsdF9pbnQ2ND0NCiAgSU5UMTY9MzI3NjcNCiAgSU5UMzI9MjE0NzQ4MzY0
Nw0KICBJTlQ2ND05MjIzMzcyMDM2ODU0Nzc1ODA3DQogIA0KISBpZiBbICIk
e1NIUlRfTUFYfSIgPSAkSU5UMTYgXSA7IHRoZW4NCiAgICBkZWZhdWx0X2lu
dDE2PXNob3J0DQohICAgaWYgWyAiJHtMT05HX01BWH0iID0gJElOVDMyIF0g
OyB0aGVuDQogICAgICBkZWZhdWx0X2ludDMyPWxvbmcNCiEgICAgIGlmIFsg
IiR7TE9OR19MT05HX01BWH0iID0gJElOVDY0IF0gOyB0aGVuDQogICAgICAg
ICMgTW9zdCBVbmljZXMsIERPUw0KICAgICAgICBkZWZhdWx0X2ludDY0PSJs
b25nIGxvbmciDQogICAgICBmaQ0KISAgIGVsaWYgWyAiJHtJTlRfTUFYfSIg
PSAkSU5UMzIgXSA7IHRoZW4NCiAgICAgIGRlZmF1bHRfaW50MzI9aW50DQoh
ICAgICBpZiBbICIke0xPTkdfTUFYfSIgPSAkSU5UNjQgXSA7IHRoZW4NCiAg
ICAgICAgIyBTb21lIDY0LWJpdCBVbmljZXMsIGxpa2UgT1NGLzEgb24gdGhl
IEFscGhhDQogICAgICAgIGRlZmF1bHRfaW50NjQ9bG9uZw0KICAgICAgZmkN
Ci0tLSA0NDUsNDY3IC0tLS0NCiAgZGVmYXVsdF9pbnQzMj0NCiAgZGVmYXVs
dF9pbnQ2ND0NCiAgSU5UMTY9MzI3NjcNCisgSU5UMTZoZXg9MHg3ZmZmDQog
IElOVDMyPTIxNDc0ODM2NDcNCisgSU5UMzJoZXg9MHg3ZmZmZmZmZg0KICBJ
TlQ2ND05MjIzMzcyMDM2ODU0Nzc1ODA3DQorIElOVDY0aGV4PTB4N2ZmZmZm
ZmZmZmZmZmZmZg0KICANCiEgaWYgWyAiJHtTSFJUX01BWH0iID0gJElOVDE2
IC1vICIke1NIUlRfTUFYfSIgPSAkSU5UMTZoZXggXSA7IHRoZW4NCiAgICBk
ZWZhdWx0X2ludDE2PXNob3J0DQohICAgaWYgWyAiJHtMT05HX01BWH0iID0g
JElOVDMyIC1vICIke0xPTkdfTUFYfSIgPSAkSU5UMzJoZXggXSA7IHRoZW4N
CiAgICAgIGRlZmF1bHRfaW50MzI9bG9uZw0KISAgICAgaWYgWyAiJHtMT05H
X0xPTkdfTUFYfSIgPSAkSU5UNjQgLW8gIiR7TE9OR19MT05HX01BWH0iID0g
JElOVDY0aGV4IF0gOyB0aGVuDQogICAgICAgICMgTW9zdCBVbmljZXMsIERP
Uw0KICAgICAgICBkZWZhdWx0X2ludDY0PSJsb25nIGxvbmciDQogICAgICBm
aQ0KISAgIGVsaWYgWyAiJHtJTlRfTUFYfSIgPSAkSU5UMzIgLW8gIiR7SU5U
X01BWH0iID0gJElOVDMyaGV4IF0gOyB0aGVuDQogICAgICBkZWZhdWx0X2lu
dDMyPWludA0KISAgICAgaWYgWyAiJHtMT05HX01BWH0iID0gJElOVDY0IC1v
ICIke0xPTkdfTUFYfSIgPSAkSU5UNjRoZXggXSA7IHRoZW4NCiAgICAgICAg
IyBTb21lIDY0LWJpdCBVbmljZXMsIGxpa2UgT1NGLzEgb24gdGhlIEFscGhh
DQogICAgICAgIGRlZmF1bHRfaW50NjQ9bG9uZw0KICAgICAgZmkNCioqKioq
KioqKioqKioqKiBmaQ0KKioqIDQ2Niw0NzIgKioqKg0KICBpZiBbIC1uICIk
e2ludDY0X3QtJHtkZWZhdWx0X2ludDY0fX0iIF0gOyB0aGVuDQogICAgaW50
NjRfbGluZXM9IiNkZWZpbmUgSEFWRV9JTlQ2NA0KICB0eXBlZGVmICR7aW50
NjRfdC0ke2RlZmF1bHRfaW50NjR9fSAke21hY3JvX3ByZWZpeH1pbnQ2NF90
Ow0KISB0eXBlZGVmICR7dWludDY0X3QtdW5zaWduZWQgJHtkZWZhdWx0X2lu
dDY0fX0gJHttYWNyb19wcmVmaXh9dWludDY0X3Q7Ig0KICAgIGlmIFsgIiR7
ZGVmYXVsdF9pbnQ2NH0iID0gImxvbmcgbG9uZyIgXSA7IHRoZW4NCiAgICAg
IGludDY0X2xpbmVzPSIjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmlu
ZWQoX19TVFJJQ1RfQU5TSV9fKSAmJiAhZGVmaW5lZChfTk9fTE9OR0xPTkcp
DQogICR7aW50NjRfbGluZXN9DQotLS0gNDcxLDQ3NyAtLS0tDQogIGlmIFsg
LW4gIiR7aW50NjRfdC0ke2RlZmF1bHRfaW50NjR9fSIgXSA7IHRoZW4NCiAg
ICBpbnQ2NF9saW5lcz0iI2RlZmluZSBIQVZFX0lOVDY0DQogIHR5cGVkZWYg
JHtpbnQ2NF90LSR7ZGVmYXVsdF9pbnQ2NH19ICR7bWFjcm9fcHJlZml4fWlu
dDY0X3Q7DQohIHR5cGVkZWYgJHt1aW50NjRfdC0ke3VfaW50NjRfdC11bnNp
Z25lZCAke2RlZmF1bHRfaW50NjR9fX0gJHttYWNyb19wcmVmaXh9dWludDY0
X3Q7Ig0KICAgIGlmIFsgIiR7ZGVmYXVsdF9pbnQ2NH0iID0gImxvbmcgbG9u
ZyIgXSA7IHRoZW4NCiAgICAgIGludDY0X2xpbmVzPSIjaWYgZGVmaW5lZChf
X0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSAmJiAhZGVm
aW5lZChfTk9fTE9OR0xPTkcpDQogICR7aW50NjRfbGluZXN9DQoqKioqKioq
KioqKioqKiogY2F0IDw8IUVPRiENCioqKiA0NzgsNDg4ICoqKioNCiAgI2lm
ZGVmIF9fU1REQ19fDQogIHR5cGVkZWYgJHtpbnQ4X3Qtc2lnbmVkIGNoYXJ9
ICR7bWFjcm9fcHJlZml4fWludDhfdDsNCiAgI2VuZGlmDQohIHR5cGVkZWYg
JHt1aW50OF90LXVuc2lnbmVkIGNoYXJ9ICR7bWFjcm9fcHJlZml4fXVpbnQ4
X3Q7DQogIHR5cGVkZWYgJHtpbnQxNl90LSR7ZGVmYXVsdF9pbnQxNi1zaG9y
dH19ICR7bWFjcm9fcHJlZml4fWludDE2X3Q7DQohIHR5cGVkZWYgJHt1aW50
MTZfdC11bnNpZ25lZCAke2RlZmF1bHRfaW50MTYtc2hvcnR9fSAke21hY3Jv
X3ByZWZpeH11aW50MTZfdDsNCiAgdHlwZWRlZiAke2ludDMyX3QtJHtkZWZh
dWx0X2ludDMyLWludH19ICR7bWFjcm9fcHJlZml4fWludDMyX3Q7DQohIHR5
cGVkZWYgJHt1aW50MzJfdC11bnNpZ25lZCAke2RlZmF1bHRfaW50MzItaW50
fX0gJHttYWNyb19wcmVmaXh9dWludDMyX3Q7DQogICR7aW50NjRfbGluZXN9
DQogICNkZWZpbmUgJHttYWNyb19wcmVmaXh9QlVGU0laICR7QlVGU0laLTEw
MjQgLyogZGVmYXVsdCAqL30NCiAgI2RlZmluZSAke21hY3JvX3ByZWZpeH1G
T1BFTl9NQVggJHtGT1BFTl9NQVgtMzIgLyogZGVmYXVsdCAqL30NCi0tLSA0
ODMsNDkzIC0tLS0NCiAgI2lmZGVmIF9fU1REQ19fDQogIHR5cGVkZWYgJHtp
bnQ4X3Qtc2lnbmVkIGNoYXJ9ICR7bWFjcm9fcHJlZml4fWludDhfdDsNCiAg
I2VuZGlmDQohIHR5cGVkZWYgJHt1aW50OF90LSR7dV9pbnQ4X3QtdW5zaWdu
ZWQgY2hhcn19ICR7bWFjcm9fcHJlZml4fXVpbnQ4X3Q7DQogIHR5cGVkZWYg
JHtpbnQxNl90LSR7ZGVmYXVsdF9pbnQxNi1zaG9ydH19ICR7bWFjcm9fcHJl
Zml4fWludDE2X3Q7DQohIHR5cGVkZWYgJHt1aW50MTZfdC0ke3VfaW50MTZf
dC11bnNpZ25lZCAke2RlZmF1bHRfaW50MTYtc2hvcnR9fX0gJHttYWNyb19w
cmVmaXh9dWludDE2X3Q7DQogIHR5cGVkZWYgJHtpbnQzMl90LSR7ZGVmYXVs
dF9pbnQzMi1pbnR9fSAke21hY3JvX3ByZWZpeH1pbnQzMl90Ow0KISB0eXBl
ZGVmICR7dWludDMyX3QtJHt1X2ludDMyX3QtdW5zaWduZWQgJHtkZWZhdWx0
X2ludDMyLWludH19fSAke21hY3JvX3ByZWZpeH11aW50MzJfdDsNCiAgJHtp
bnQ2NF9saW5lc30NCiAgI2RlZmluZSAke21hY3JvX3ByZWZpeH1CVUZTSVog
JHtCVUZTSVotMTAyNCAvKiBkZWZhdWx0ICovfQ0KICAjZGVmaW5lICR7bWFj
cm9fcHJlZml4fUZPUEVOX01BWCAke0ZPUEVOX01BWC0zMiAvKiBkZWZhdWx0
ICovfQ0KRnJvbSBzY290dHJAUGxleHVzLkNPTSBTYXQgQXByIDIyIDE4OjA0
OjA0IDE5OTUNCkRhdGU6IFRodSwgMTYgTWFyIDE5OTUgMTA6MzY6MzYgLTA2
MDAgKENTVCkNCkZyb206IFNjb3R0IFJleW5vbGRzIDxzY290dHJAUGxleHVz
LkNPTT4NClRvOiBPbGFmIFNlaWJlcnQgPHJoaWFsdG9AbWJmeXMua3VuLm5s
Pg0KQ2M6IGN1cnJlbnQtdXNlcnNATmV0QlNELk9SRywganRrQGF0cmlhLmNv
bSwgbmV0YnNkLXVzZXJzQE5ldEJTRC5PUkcNClN1YmplY3Q6IFJlOiBQYWNr
YWdlIGFyY2hpdmUgbmVlZHMgbW9yZSBzdHVmZi0taGVyZSdzIGFuIGludmVu
dG9yeQ0KDQpPbiBUdWUsIDE0IE1hciAxOTk1LCBPbGFmIFNlaWJlcnQgd3Jv
dGU6DQoNCj4gSSBpbnN0YWxsZWQgZ2NjIDIuNi4zIGZyb20gdGhlIGJpbmFy
eSBwYWNrYWdlIGF0IGZ0cC5uZXRic2Qub3JnLA0KPiBhbmQgd2l0aCBnKysg
SSdtIGhhdmluZyB0cm91YmxlIHdpdGggdGVtcGxhdGUgZnVuY3Rpb25zIGJl
aW5nDQo+IG11bHRpcGx5IGRlZmluZWQuDQo+IA0KPiAvdmFyL3RtcC9jYzAw
MDQwMjEubzogRGVmaW5pdGlvbiBvZiBzeW1ib2wgYF9zcGxpdF9fdDEwRG91
YmxlTGlzdDFaaScgKG11bHRpcGx5IGRlZmluZWQpDQo+IC92YXIvdG1wL2Nj
MDAwNDAyMi5vOiBEZWZpbml0aW9uIG9mIHN5bWJvbCBgX3NwbGl0X190MTBE
b3VibGVMaXN0MVppJyAobXVsdGlwbHkgZGVmaW5lZCkNCg0KSSBleHRyYWN0
ZWQgdGhlIHNvdXJjZXMgb3V0IG9mIHlvdXIgZXhhbXBsZSBhbmQgdHJpZWQg
d2l0aCBteSANCnNsaWdodGx5LXBhdGNoZWQgdmVyc2lvbiBvZiBnY2MtMi42
LjMuICBJIGhhZCBubyBwcm9ibGVtcy4gIChJdCdzIHRoaXMgDQpzYW1lIHBh
dGNoIHRoYXQgYWxsb3dzIGdjYy0yLjYuMyB0byBzdWNjZXNzZnVsbHkgY29t
cGlsZSBsaWJnKystMi42LjIgb24gDQpOZXRCU0QuKSAgUGVyaGFwcyBpdCBj
b3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgYmluYXJ5IHBhY2thZ2U/DQoNCltm
b3J3YXJkZWQgbWVzc2FnZSBmb2xsb3dzXQ0KDQpUaGlzIHBhdGNoIGZpeGVz
IHRoZSBtdWx0aXBseSBkZWZpbmVkIHRlbXBsYXRlIGZ1bmN0aW9ucyBidWcN
CndoaWNoIHdhcyBpbnRyb2R1Y2VkIGluIDIuNi4xLg0KDQpKYXNvbg0KDQoq
KiogLi4vLi4vZ2NjLTIuNi4zL2NwL3B0LmMgICAgIE1vbiBOb3YgMTQgMjM6
MzQ6MjkgMTk5NA0KLS0tIHB0LmMgICAgICAgIE1vbiBEZWMgMTIgMjE6MTA6
MDYgMTk5NA0KKioqKioqKioqKioqKioqDQoqKiogMjMwMiwyMzA3ICoqKioN
Ci0tLSAyMzAyLDIzMTEgLS0tLQ0KICAgICAgICBlbHNlIGlmICghIGZsYWdf
aW1wbGljaXRfdGVtcGxhdGVzKQ0KICAgICAgICBERUNJREUgKDApOw0KICAN
CisgICAgICAgaWYgKGktPmludGVyZmFjZSA9PSAxKQ0KKyAgICAgICAvKiBP
SywgaXQgd2FzIGFuIGltcGxpY2l0IGluc3RhbnRpYXRpb24uICAqLw0KKyAg
ICAgICBUUkVFX1BVQkxJQyAodCkgPSAwOw0KKyANCiAgICAgICAgLyogSWYg
aXQncyBhIG1ldGhvZCwgbGV0IHRoZSBjbGFzcyB0eXBlIGRlY2lkZSBpdC4N
CiAgICAgICAgIEBAIFdoYXQgaWYgdGhlIG1ldGhvZCB0ZW1wbGF0ZSBpcyBp
biBhIHNlcGFyYXRlIGZpbGU/DQogICAgICAgICBNYXliZSBib3RoIGZpbGUg
Y29udGV4dHMgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudD8NCg0KU2Nv
dHQgUmV5bm9sZHMNClN5c3RlbSBBZG1pbmlzdHJhdG9yDQpUZWNobm9sb2d5
IEdyb3VwLCBJbmMuDQojaW5jbHVkZSA8c3RkL2Rpc2NsYWltZXIuaD4NCg==
--0-338501147-798599577=:3534--