X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com Subject: Re: Make 4.3 crash when compiling 86duino example under WXP-NTVDM To: djgpp AT delorie DOT com References: <5EAC2EBC DOT 2060204 AT gmx DOT de> <6ee3479d-fa5d-4c39-8ee1-18ce5f339e46 AT googlegroups DOT com> <5EC6C1BC DOT 9070301 AT gmx DOT de> <4d29fcde-0ac5-45d8-9be3-ec9593575795 AT googlegroups DOT com> From: "Andris Pavenis (andris DOT pavenis AT iki DOT fi) [via djgpp AT delorie DOT com]" Message-ID: Date: Fri, 22 May 2020 06:30:02 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <4d29fcde-0ac5-45d8-9be3-ec9593575795@googlegroups.com> Content-Type: multipart/mixed; boundary="------------FFFDF2DAB4C86EC1545B08EF" Content-Language: en-US-large Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk This is a multi-part message in MIME format. --------------FFFDF2DAB4C86EC1545B08EF Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 5/22/20 2:52 AM, RayeR (rayer314 AT gmail DOT com) [via djgpp AT delorie DOT com] wrote: > Aha, I didn't know you're behind big chinese (fire)wall to protect from all bad :) I'm afraid we all be shortly. As I have seen written somewhere some years ago: Orwell was optimist. > Yes, it's DuinOS by DMP - SDK for a tiny Vortex86 based mini PC module that use DJGPP. I didn't know this github page, on their official site is ony big ISO image with whole DuinOS. > > OK, so bug reproduced. > Does it mean that nmalloc in make returned NULL and wa not handled properly or that nmalloc in current libc is broken? Is there same problem with make 4.1 when recompiled with current libc? From the other side gcc-10 with -fanalyzer option added is rather loud about nmalloc.c. Using -fanaylyzer causes GCC-10 to use fuge amount of memory: I have seen it using 12GB. So it is perhaps not good idea to use it for native DJGPP compiler. So I'm attaching the result (from https://aur.archlinux.org/packages/djgpp-djcrx/: DJGPP v2.05 with GCC compatibility and some other patches applied). I Have not have time to study it in detail. Andris --------------FFFDF2DAB4C86EC1545B08EF Content-Type: text/plain; charset=UTF-8; name="nmalloc-fanalyzer.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nmalloc-fanalyzer.txt" aTY4Ni1wYy1tc2Rvc2RqZ3BwLWdjYyAtcGlwZSAuLi4gLWZuby1idWlsdGluLW1hbGxvYyAt ZmFuYWx5emVyIC1jIG5tYWxsb2MuYwpubWFsbG9jLmM6IEZ1bmt0aW8g4oCdbWFsbG9j4oCd OgpubWFsbG9jLmM6MzgwOjE2OiB2YXJvaXR1czogbGVhayBvZiDigJ08dHVudGVtYXRvbj7i gJ0gW0NXRS00MDFdIFstV2FuYWx5emVyLW1hbGxvYy1sZWFrXQogIDM4MCB8ICAgIHNpemUg PSAoKHN6ICsgQUxJR05NQVNLKSAmIH5BTElHTk1BU0spICsgREFUQU9GRlNFVDsKICAgICAg fCAgICAgICAgICAgIH5+fn5efn5+fn5+fn5+fn4KICDigJ1tZW1hbGlnbuKAnTogZXZlbnQg MQogICAgfAogICAgfC4uLy4uLy4uLy4uL2luY2x1ZGUvbWFsbG9jLmg6MjM6NzoKICAgIHwg ICAyMyB8IHZvaWQgKm1lbWFsaWduKHNpemVfdCBfYWxpZ24sIHNpemVfdCBfYW10KTsKICAg IHwgICAgICB8ICAgICAgIF5+fn5+fn5+CiAgICB8ICAgICAgfCAgICAgICB8CiAgICB8ICAg ICAgfCAgICAgICAoMSkgZW50cnkgdG8g4oCdbWVtYWxpZ27igJ0KICAgIHwKICDigJ1tZW1h bGlnbuKAnTogZXZlbnRzIDItOAogICAgfAogICAgfG5tYWxsb2MuYzoxMTQwOjc6CiAgICB8 IDExMDcgfCAgICBpZiAoYWxpZ25tZW50ICYmIChhbGlnbm1lbnQgPD0gNjU1MzYpKQogICAg fCAgICAgIHwgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAg fCAgICAgIHwgICAgICAgfCAgICAgICAgICB8CiAgICB8ICAgICAgfCAgICAgICB8ICAgICAg ICAgICgzKSAuLi50byBoZXJlCiAgICB8ICAgICAgfCAgICAgICAoNCkgZm9sbG93aW5nIOKA nXRydWXigJ0gYnJhbmNoLi4uCiAgICB8IDExMDggfCAgICAgICByZXR1cm4gKGFsaWdubWVu dCAmIChhbGlnbm1lbnQgLSAxKSk7CiAgICB8ICAgICAgfCAgICAgICAgICAgICAgfn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgIHwKICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICg1KSAuLi50 byBoZXJlCiAgICB8Li4uLi4uCiAgICB8IDExNDAgfCAgICBpZiAoc2l6ZSA8ICgodWxvbmcp KElOVF9NQVggLSA2NTUzNikpICYmCiAgICB8ICAgICAgfCAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICB8ICAgICAgfCAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgIHwgICAgICB8ICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDYpIGZvbGxvd2luZyDigJ10cnVl4oCdIGJy YW5jaC4uLgogICAgfCAgICAgIHwgICAgICAgKDIpIGZvbGxvd2luZyDigJ10cnVl4oCdIGJy YW5jaCAod2hlbiDigJ1zaXplIDw9IDIxNDc0MTgxMTDigJ0pLi4uCiAgICB8IDExNDEgfCAg ICAgICAgIWludmFsaWQoYWxpZ25tZW50KSkgewogICAgfCAgICAgIHwgICAgICAgIH5+fn5+ fn5+fn5+fn5+fn5+fn4KICAgIHwgMTE0MiB8ICAgICAgIC8qIHBhcmFtZXRlcnMgc2VlbSB0 byBiZSB2YWxpZCAqLwogICAgfCAxMTQzIHwgICAgICAgaWYgKGFsaWdubWVudCA8PSBBTElH TikgewogICAgfCAgICAgIHwgICAgICAgICAgfgogICAgfCAgICAgIHwgICAgICAgICAgfAog ICAgfCAgICAgIHwgICAgICAgICAgKDcpIC4uLnRvIGhlcmUKICAgIHwgICAgICB8ICAgICAg ICAgICg4KSBmb2xsb3dpbmcg4oCddHJ1ZeKAnSBicmFuY2ggKHdoZW4g4oCdYWxpZ25tZW50 IDw9IDjigJ0pLi4uCiAgICB8CiAg4oCdbWVtYWxpZ27igJ06IGV2ZW50IDkKICAgIHwKICAg IHwgICA1OCB8ICMgICAgIGRlZmluZSBubWFsbG9jICBtYWxsb2MKICAgIHwgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICBeCiAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgfAogICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICg5KSAuLi50byBoZXJl Cm5tYWxsb2MuYzoxMTQ1OjE3OiBodW9tOiDigJ1ubWFsbG9j4oCdLW1ha3JvbiBsYXZlbm51 a3Nlc3NhCiAgICB8IDExNDUgfCAgICAgICAgICByZXR1cm4gbm1hbGxvYyhzem5lZWQpOyAg ICAgICAgICAgICAgICAgICAgICAvKiBFWElUICovCiAgICB8ICAgICAgfCAgICAgICAgICAg ICAgICAgXn5+fn5+fgogICAgfAogIOKAnW1lbWFsaWdu4oCdOiBldmVudCAxMAogICAgfAog ICAgfCAgIDU4IHwgIyAgICAgZGVmaW5lIG5tYWxsb2MgIG1hbGxvYwogICAgfCAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgIF4KICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8CiAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgKDEwKSBhbGxvY2F0 ZWQgaGVyZQpubWFsbG9jLmM6MTE0NToxNzogaHVvbTog4oCdbm1hbGxvY+KAnS1tYWtyb24g bGF2ZW5udWtzZXNzYQogICAgfCAxMTQ1IHwgICAgICAgICAgcmV0dXJuIG5tYWxsb2Moc3pu ZWVkKTsgICAgICAgICAgICAgICAgICAgICAgLyogRVhJVCAqLwogICAgfCAgICAgIHwgICAg ICAgICAgICAgICAgIF5+fn5+fn4KICAgIHwKICDigJ1tZW1hbGlnbuKAnTogZXZlbnQgMTEK ICAgIHwKICAgIHwgICA1OCB8ICMgICAgIGRlZmluZSBubWFsbG9jICBtYWxsb2MKICAgIHwg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBeCiAgICB8ICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgfAogICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICgxMSkg Y2FsbGluZyDigJ1tYWxsb2PigJ0gZnJvbSDigJ1tZW1hbGlnbuKAnQpubWFsbG9jLmM6MTE0 NToxNzogaHVvbTog4oCdbm1hbGxvY+KAnS1tYWtyb24gbGF2ZW5udWtzZXNzYQogICAgfCAx MTQ1IHwgICAgICAgICAgcmV0dXJuIG5tYWxsb2Moc3puZWVkKTsgICAgICAgICAgICAgICAg ICAgICAgLyogRVhJVCAqLwogICAgfCAgICAgIHwgICAgICAgICAgICAgICAgIF5+fn5+fn4K ICAgIHwKICAgICstLT4g4oCdbWFsbG9j4oCdOiBldmVudCAxMgogICAgICAgICAgIHwKICAg ICAgICAgICB8Li4vLi4vLi4vLi4vaW5jbHVkZS9zdGRsaWIuaDo3NDo4OgogICAgICAgICAg IHwgICA3NCB8IHZvaWQgKiBtYWxsb2Moc2l6ZV90IF9zaXplKTsKICAgICAgICAgICB8ICAg ICAgfCAgICAgICAgXn5+fn5+CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgIHwKICAgICAg ICAgICB8ICAgICAgfCAgICAgICAgKDEyKSBlbnRyeSB0byDigJ1tYWxsb2PigJ0KICAgICAg ICAgICB8CiAgICAgICAgIOKAnW1hbGxvY+KAnTogZXZlbnRzIDEzLTIxCiAgICAgICAgICAg fAogICAgICAgICAgIHxubWFsbG9jLmM6NzU0Ojc6CiAgICAgICAgICAgfCAgMzgwIHwgICAg c2l6ZSA9ICgoc3ogKyBBTElHTk1BU0spICYgfkFMSUdOTUFTSykgKyBEQVRBT0ZGU0VUOwog ICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fgogICAgICAg ICAgIHwgICAgICB8ICAgICAgICAgICAgICAgIHwKICAgICAgICAgICB8ICAgICAgfCAgICAg ICAgICAgICAgICAoMjEpIOKAnTx0dW50ZW1hdG9uPuKAnSBsZWFrcyBoZXJlOyB3YXMgYWxs b2NhdGVkIGF0ICgxMCkKICAgICAgICAgICB8Li4uLi4uCiAgICAgICAgICAgfCAgNzU0IHwg ICAgaWYgKHN6bmVlZCA8ICgodWxvbmcpKElOVF9NQVggLSA2NTUzNikpKSB7CiAgICAgICAg ICAgfCAgICAgIHwgICAgICAgXgogICAgICAgICAgIHwgICAgICB8ICAgICAgIHwKICAgICAg ICAgICB8ICAgICAgfCAgICAgICAoMTMpIGZvbGxvd2luZyDigJ1mYWxzZeKAnSBicmFuY2gg KHdoZW4g4oCdc2l6ZSA+IDIxNDc0MTgxMTDigJ0pLi4uCiAgICAgICAgICAgfC4uLi4uLgog ICAgICAgICAgIHwgIDc5OSB8ICAgIGlmIChob29rcHRyW21hbGxvY19IS10pIGhvb2twdHJb bWFsbG9jX0hLXShzaXplLCBwKTsKICAgICAgICAgICB8ICAgICAgfCAgICAgICB+fn5+fn5+ fn5+fn5+fn5+fn5+CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgfCAgICAgICB8CiAgICAg ICAgICAgfCAgICAgIHwgICAgICAgfCAgICAgICAoMTQpIC4uLnRvIGhlcmUKICAgICAgICAg ICB8ICAgICAgfCAgICAgICAoMTUpIGZvbGxvd2luZyDigJ1mYWxzZeKAnSBicmFuY2guLi4K ICAgICAgICAgICB8ICA4MDAgfCAgICBpZiAoIXAgJiYgaG9va3B0clttYWxsb2NfZmFpbF9I S10pCiAgICAgICAgICAgfCAgICAgIHwgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgfCAgIHwgICAgICAgICB8CiAgICAg ICAgICAgfCAgICAgIHwgICAgICAgfCAgIHwgICAgICAgICAoMTgpIC4uLnRvIGhlcmUKICAg ICAgICAgICB8ICAgICAgfCAgICAgICB8ICAgKDE5KSBmb2xsb3dpbmcg4oCdZmFsc2XigJ0g YnJhbmNoLi4uCiAgICAgICAgICAgfCAgICAgIHwgICAgICAgKDE2KSAuLi50byBoZXJlCiAg ICAgICAgICAgfCAgICAgIHwgICAgICAgKDE3KSBmb2xsb3dpbmcg4oCddHJ1ZeKAnSBicmFu Y2ggKHdoZW4g4oCdcOKAnSBpcyBOVUxMKS4uLgogICAgICAgICAgIHwuLi4uLi4KICAgICAg ICAgICB8ICA4MDMgfCAgICByZXR1cm4gcDsKICAgICAgICAgICB8ICAgICAgfCAgICAgICAg ICAgfgogICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICB8CiAgICAgICAgICAgfCAgICAg IHwgICAgICAgICAgICgyMCkgLi4udG8gaGVyZQogICAgICAgICAgIHwKbm1hbGxvYy5jOjgw MzoxMTogdmFyb2l0dXM6IGxlYWsgb2Yg4oCdbWluaXTigJ0gW0NXRS00MDFdIFstV2FuYWx5 emVyLW1hbGxvYy1sZWFrXQogIDgwMyB8ICAgIHJldHVybiBwOwogICAgICB8ICAgICAgICAg ICBeCiAg4oCdbWVtYWxpZ27igJ06IGV2ZW50IDEKICAgIHwKICAgIHwuLi8uLi8uLi8uLi9p bmNsdWRlL21hbGxvYy5oOjIzOjc6CiAgICB8ICAgMjMgfCB2b2lkICptZW1hbGlnbihzaXpl X3QgX2FsaWduLCBzaXplX3QgX2FtdCk7CiAgICB8ICAgICAgfCAgICAgICBefn5+fn5+fgog ICAgfCAgICAgIHwgICAgICAgfAogICAgfCAgICAgIHwgICAgICAgKDEpIGVudHJ5IHRvIOKA nW1lbWFsaWdu4oCdCiAgICB8CiAg4oCdbWVtYWxpZ27igJ06IGV2ZW50cyAyLTgKICAgIHwK ICAgIHxubWFsbG9jLmM6MTE0MDo3OgogICAgfCAxMTA3IHwgICAgaWYgKGFsaWdubWVudCAm JiAoYWxpZ25tZW50IDw9IDY1NTM2KSkKICAgIHwgICAgICB8ICAgICAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgIHwgICAgICB8ICAgICAgIHwgICAgICAgICAg fAogICAgfCAgICAgIHwgICAgICAgfCAgICAgICAgICAoMykgLi4udG8gaGVyZQogICAgfCAg ICAgIHwgICAgICAgKDQpIGZvbGxvd2luZyDigJ10cnVl4oCdIGJyYW5jaC4uLgogICAgfCAx MTA4IHwgICAgICAgcmV0dXJuIChhbGlnbm1lbnQgJiAoYWxpZ25tZW50IC0gMSkpOwogICAg fCAgICAgIHwgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAg ICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAoNSkgLi4udG8gaGVyZQogICAgfC4uLi4uLgogICAgfCAx MTQwIHwgICAgaWYgKHNpemUgPCAoKHVsb25nKShJTlRfTUFYIC0gNjU1MzYpKSAmJgogICAg fCAgICAgIHwgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgog ICAgfCAgICAgIHwgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 CiAgICB8ICAgICAgfCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg2KSBmb2xsb3dpbmcg4oCddHJ1ZeKAnSBicmFuY2guLi4KICAgIHwgICAgICB8ICAgICAg ICgyKSBmb2xsb3dpbmcg4oCddHJ1ZeKAnSBicmFuY2ggKHdoZW4g4oCdc2l6ZSA8PSAyMTQ3 NDE4MTEw4oCdKS4uLgogICAgfCAxMTQxIHwgICAgICAgICFpbnZhbGlkKGFsaWdubWVudCkp IHsKICAgIHwgICAgICB8ICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICB8IDExNDIg fCAgICAgICAvKiBwYXJhbWV0ZXJzIHNlZW0gdG8gYmUgdmFsaWQgKi8KICAgIHwgMTE0MyB8 ICAgICAgIGlmIChhbGlnbm1lbnQgPD0gQUxJR04pIHsKICAgIHwgICAgICB8ICAgICAgICAg IH4KICAgIHwgICAgICB8ICAgICAgICAgIHwKICAgIHwgICAgICB8ICAgICAgICAgICg3KSAu Li50byBoZXJlCiAgICB8ICAgICAgfCAgICAgICAgICAoOCkgZm9sbG93aW5nIOKAnWZhbHNl 4oCdIGJyYW5jaCAod2hlbiDigJ1hbGlnbm1lbnQgPiA44oCdKS4uLgogICAgfAogIOKAnW1l bWFsaWdu4oCdOiBldmVudCA5CiAgICB8CiAgICB8IDExNDcgfCAgICAgICBlbHNlIGlmICgo bWluaXQgPSBubWFsbG9jKHN6bmVlZCArIFhUUkEpKSkgewogICAgfCAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogICAgfCAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDkpIC4uLnRvIGhlcmUKICAgIHwK ICDigJ1tZW1hbGlnbuKAnTogZXZlbnQgMTAKICAgIHwKICAgIHwKICDigJ1tZW1hbGlnbuKA nTogZXZlbnQgMTEKICAgIHwKICAgIHwgICA1OCB8ICMgICAgIGRlZmluZSBubWFsbG9jICBt YWxsb2MKICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBeCiAgICB8ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICgxMSkgY2FsbGluZyDigJ1tYWxsb2PigJ0gZnJvbSDigJ1tZW1hbGlnbuKAnQpu bWFsbG9jLmM6MTE0NzoyNTogaHVvbTog4oCdbm1hbGxvY+KAnS1tYWtyb24gbGF2ZW5udWtz ZXNzYQogICAgfCAxMTQ3IHwgICAgICAgZWxzZSBpZiAoKG1pbml0ID0gbm1hbGxvYyhzem5l ZWQgKyBYVFJBKSkpIHsKICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn4KICAgIHwKICAgICstLT4g4oCdbWFsbG9j4oCdOiBldmVudCAxMgogICAgICAgICAg IHwKICAgICAgICAgICB8Li4vLi4vLi4vLi4vaW5jbHVkZS9zdGRsaWIuaDo3NDo4OgogICAg ICAgICAgIHwgICA3NCB8IHZvaWQgKiBtYWxsb2Moc2l6ZV90IF9zaXplKTsKICAgICAgICAg ICB8ICAgICAgfCAgICAgICAgXn5+fn5+CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgIHwK ICAgICAgICAgICB8ICAgICAgfCAgICAgICAgKDEyKSBlbnRyeSB0byDigJ1tYWxsb2PigJ0K ICAgICAgICAgICB8CiAgICAgICAgIOKAnW1hbGxvY+KAnTogZXZlbnRzIDEzLTIxCiAgICAg ICAgICAgfAogICAgICAgICAgIHxubWFsbG9jLmM6NzU0Ojc6CiAgICAgICAgICAgfCAgNzU0 IHwgICAgaWYgKHN6bmVlZCA8ICgodWxvbmcpKElOVF9NQVggLSA2NTUzNikpKSB7CiAgICAg ICAgICAgfCAgICAgIHwgICAgICAgXgogICAgICAgICAgIHwgICAgICB8ICAgICAgIHwKICAg ICAgICAgICB8ICAgICAgfCAgICAgICAoMTMpIGZvbGxvd2luZyDigJ1mYWxzZeKAnSBicmFu Y2ggKHdoZW4g4oCdc2l6ZSA+IDIxNDc0MTgxMTDigJ0pLi4uCiAgICAgICAgICAgfC4uLi4u LgogICAgICAgICAgIHwgIDc5OSB8ICAgIGlmIChob29rcHRyW21hbGxvY19IS10pIGhvb2tw dHJbbWFsbG9jX0hLXShzaXplLCBwKTsKICAgICAgICAgICB8ICAgICAgfCAgICAgICB+fn5+ fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgfCAgICAgICB8CiAg ICAgICAgICAgfCAgICAgIHwgICAgICAgfCAgICAgICAoMTQpIC4uLnRvIGhlcmUKICAgICAg ICAgICB8ICAgICAgfCAgICAgICAoMTUpIGZvbGxvd2luZyDigJ1mYWxzZeKAnSBicmFuY2gu Li4KICAgICAgICAgICB8ICA4MDAgfCAgICBpZiAoIXAgJiYgaG9va3B0clttYWxsb2NfZmFp bF9IS10pCiAgICAgICAgICAgfCAgICAgIHwgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgfCAgIHwgICAgICAgICB8CiAg ICAgICAgICAgfCAgICAgIHwgICAgICAgfCAgIHwgICAgICAgICAoMTgpIC4uLnRvIGhlcmUK ICAgICAgICAgICB8ICAgICAgfCAgICAgICB8ICAgKDE5KSBmb2xsb3dpbmcg4oCdZmFsc2Xi gJ0gYnJhbmNoLi4uCiAgICAgICAgICAgfCAgICAgIHwgICAgICAgKDE2KSAuLi50byBoZXJl CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgKDE3KSBmb2xsb3dpbmcg4oCddHJ1ZeKAnSBi cmFuY2ggKHdoZW4g4oCdcOKAnSBpcyBOVUxMKS4uLgogICAgICAgICAgIHwuLi4uLi4KICAg ICAgICAgICB8ICA4MDMgfCAgICByZXR1cm4gcDsKICAgICAgICAgICB8ICAgICAgfCAgICAg ICAgICAgfgogICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICB8CiAgICAgICAgICAgfCAg ICAgIHwgICAgICAgICAgICgyMCkgLi4udG8gaGVyZQogICAgICAgICAgIHwgICAgICB8ICAg ICAgICAgICAoMjEpIOKAnW1pbml04oCdIGxlYWtzIGhlcmU7IHdhcyBhbGxvY2F0ZWQgYXQg KDEwKQogICAgICAgICAgIHwKbm1hbGxvYy5jOjgwMzoxMTogdmFyb2l0dXM6IGxlYWsgb2Yg 4oCdcOKAnSBbQ1dFLTQwMV0gWy1XYW5hbHl6ZXItbWFsbG9jLWxlYWtdCiAgODAzIHwgICAg cmV0dXJuIHA7CiAgICAgIHwgICAgICAgICAgIF4KICDigJ1yZWFsbG9j4oCdOiBldmVudCAx CiAgICB8CiAgICB8Li4vLi4vLi4vLi4vaW5jbHVkZS9zdGRsaWIuaDo4MTo4OgogICAgfCAg IDgxIHwgdm9pZCAqIHJlYWxsb2Modm9pZCAqX3B0ciwgc2l6ZV90IF9zaXplKTsKICAgIHwg ICAgICB8ICAgICAgICBefn5+fn5+CiAgICB8ICAgICAgfCAgICAgICAgfAogICAgfCAgICAg IHwgICAgICAgICgxKSBlbnRyeSB0byDigJ1yZWFsbG9j4oCdCiAgICB8CiAg4oCdcmVhbGxv Y+KAnTogZXZlbnRzIDItNAogICAgfAogICAgfG5tYWxsb2MuYzo4NzM6NzoKICAgIHwgIDg3 MyB8ICAgIGlmIChob29rcHRyW3JlYWxsb2NfSEtdKSBob29rcHRyW3JlYWxsb2NfSEtdKHN6 LCBwdHIpOwogICAgfCAgICAgIHwgICAgICAgXgogICAgfCAgICAgIHwgICAgICAgfAogICAg fCAgICAgIHwgICAgICAgKDIpIGZvbGxvd2luZyDigJ1mYWxzZeKAnSBicmFuY2guLi4KICAg IHwgIDg3NCB8IAogICAgfCAgODc1IHwgICAgaWYgKCFwdHIpIHsKICAgIHwgICAgICB8ICAg ICAgIH4KICAgIHwgICAgICB8ICAgICAgIHwKICAgIHwgICAgICB8ICAgICAgICgzKSAuLi50 byBoZXJlCiAgICB8ICAgICAgfCAgICAgICAoNCkgZm9sbG93aW5nIOKAnXRydWXigJ0gYnJh bmNoICh3aGVuIOKAnXB0cuKAnSBpcyBOVUxMKS4uLgogICAgfAogIOKAnXJlYWxsb2PigJ06 IGV2ZW50IDUKICAgIHwKICAgIHwgICA1OCB8ICMgICAgIGRlZmluZSBubWFsbG9jICBtYWxs b2MKICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBeCiAgICB8ICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICg1KSAuLi50byBoZXJlCm5tYWxsb2MuYzo4NzY6MTE6IGh1b206IOKAnW5tYWxsb2Pi gJ0tbWFrcm9uIGxhdmVubnVrc2Vzc2EKICAgIHwgIDg3NiB8ICAgICAgIHAgPSBubWFsbG9j KHN6KTsKICAgIHwgICAgICB8ICAgICAgICAgICBefn5+fn5+CiAgICB8CiAg4oCdcmVhbGxv Y+KAnTogZXZlbnQgNgogICAgfAogICAgfCAgIDU4IHwgIyAgICAgZGVmaW5lIG5tYWxsb2Mg IG1hbGxvYwogICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIF4KICAgIHwgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgKDYpIGFsbG9jYXRlZCBoZXJlCm5tYWxsb2MuYzo4NzY6MTE6IGh1b206IOKA nW5tYWxsb2PigJ0tbWFrcm9uIGxhdmVubnVrc2Vzc2EKICAgIHwgIDg3NiB8ICAgICAgIHAg PSBubWFsbG9jKHN6KTsKICAgIHwgICAgICB8ICAgICAgICAgICBefn5+fn5+CiAgICB8CiAg 4oCdcmVhbGxvY+KAnTogZXZlbnQgNwogICAgfAogICAgfCAgIDU4IHwgIyAgICAgZGVmaW5l IG5tYWxsb2MgIG1hbGxvYwogICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIF4K ICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgKDcpIGNhbGxpbmcg4oCdbWFsbG9j4oCdIGZyb20g4oCdcmVh bGxvY+KAnQpubWFsbG9jLmM6ODc2OjExOiBodW9tOiDigJ1ubWFsbG9j4oCdLW1ha3JvbiBs YXZlbm51a3Nlc3NhCiAgICB8ICA4NzYgfCAgICAgICBwID0gbm1hbGxvYyhzeik7CiAgICB8 ICAgICAgfCAgICAgICAgICAgXn5+fn5+fgogICAgfAogICAgKy0tPiDigJ1tYWxsb2PigJ06 IGV2ZW50IDgKICAgICAgICAgICB8CiAgICAgICAgICAgfC4uLy4uLy4uLy4uL2luY2x1ZGUv c3RkbGliLmg6NzQ6ODoKICAgICAgICAgICB8ICAgNzQgfCB2b2lkICogbWFsbG9jKHNpemVf dCBfc2l6ZSk7CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgIF5+fn5+fgogICAgICAgICAg IHwgICAgICB8ICAgICAgICB8CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgICg4KSBlbnRy eSB0byDigJ1tYWxsb2PigJ0KICAgICAgICAgICB8CiAgICAgICAgIOKAnW1hbGxvY+KAnTog ZXZlbnRzIDktMTcKICAgICAgICAgICB8CiAgICAgICAgICAgfG5tYWxsb2MuYzo3NTQ6NzoK ICAgICAgICAgICB8ICA3NTQgfCAgICBpZiAoc3puZWVkIDwgKCh1bG9uZykoSU5UX01BWCAt IDY1NTM2KSkpIHsKICAgICAgICAgICB8ICAgICAgfCAgICAgICBeCiAgICAgICAgICAgfCAg ICAgIHwgICAgICAgfAogICAgICAgICAgIHwgICAgICB8ICAgICAgICg5KSBmb2xsb3dpbmcg 4oCdZmFsc2XigJ0gYnJhbmNoICh3aGVuIOKAnXNpemUgPiAyMTQ3NDE4MTEw4oCdKS4uLgog ICAgICAgICAgIHwuLi4uLi4KICAgICAgICAgICB8ICA3OTkgfCAgICBpZiAoaG9va3B0cltt YWxsb2NfSEtdKSBob29rcHRyW21hbGxvY19IS10oc2l6ZSwgcCk7CiAgICAgICAgICAgfCAg ICAgIHwgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgIHwgICAgICB8ICAg ICAgIHwgICAgICAgfAogICAgICAgICAgIHwgICAgICB8ICAgICAgIHwgICAgICAgKDEwKSAu Li50byBoZXJlCiAgICAgICAgICAgfCAgICAgIHwgICAgICAgKDExKSBmb2xsb3dpbmcg4oCd ZmFsc2XigJ0gYnJhbmNoLi4uCiAgICAgICAgICAgfCAgODAwIHwgICAgaWYgKCFwICYmIGhv b2twdHJbbWFsbG9jX2ZhaWxfSEtdKQogICAgICAgICAgIHwgICAgICB8ICAgICAgIH5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgIHwgICAgICB8ICAgICAgIHwg ICB8ICAgICAgICAgfAogICAgICAgICAgIHwgICAgICB8ICAgICAgIHwgICB8ICAgICAgICAg KDE0KSAuLi50byBoZXJlCiAgICAgICAgICAgfCAgICAgIHwgICAgICAgfCAgICgxNSkgZm9s bG93aW5nIOKAnWZhbHNl4oCdIGJyYW5jaC4uLgogICAgICAgICAgIHwgICAgICB8ICAgICAg ICgxMikgLi4udG8gaGVyZQogICAgICAgICAgIHwgICAgICB8ICAgICAgICgxMykgZm9sbG93 aW5nIOKAnXRydWXigJ0gYnJhbmNoICh3aGVuIOKAnXDigJ0gaXMgTlVMTCkuLi4KICAgICAg ICAgICB8Li4uLi4uCiAgICAgICAgICAgfCAgODAzIHwgICAgcmV0dXJuIHA7CiAgICAgICAg ICAgfCAgICAgIHwgICAgICAgICAgIH4KICAgICAgICAgICB8ICAgICAgfCAgICAgICAgICAg fAogICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAoMTYpIC4uLnRvIGhlcmUKICAgICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgKDE3KSDigJ1w4oCdIGxlYWtzIGhlcmU7IHdhcyBh bGxvY2F0ZWQgYXQgKDYpCiAgICAgICAgICAgfApubWFsbG9jLmM6ODAzOjExOiB2YXJvaXR1 czogbGVhayBvZiDigJ1yZXN1bHTigJ0gW0NXRS00MDFdIFstV2FuYWx5emVyLW1hbGxvYy1s ZWFrXQogIDgwMyB8ICAgIHJldHVybiBwOwogICAgICB8ICAgICAgICAgICBeCiAg4oCdY2Fs bG9j4oCdOiBldmVudCAxCiAgICB8CiAgICB8Li4vLi4vLi4vLi4vaW5jbHVkZS9zdGRsaWIu aDo2Nzo4OgogICAgfCAgIDY3IHwgdm9pZCAqIGNhbGxvYyhzaXplX3QgX25lbGVtLCBzaXpl X3QgX3NpemUpOwogICAgfCAgICAgIHwgICAgICAgIF5+fn5+fgogICAgfCAgICAgIHwgICAg ICAgIHwKICAgIHwgICAgICB8ICAgICAgICAoMSkgZW50cnkgdG8g4oCdY2FsbG9j4oCdCiAg ICB8CiAg4oCdY2FsbG9j4oCdOiBldmVudCAyCiAgICB8CiAgICB8bm1hbGxvYy5jOjEwMjU6 MTA6CiAgICB8IDEwMjUgfCAgICAgICBzeiA9IG4gKiBzOwogICAgfCAgICAgIHwgICAgICAg fn5+Xn5+fn5+fgogICAgfCAgICAgIHwgICAgICAgICAgfAogICAgfCAgICAgIHwgICAgICAg ICAgKDIpIGFsbG9jYXRlZCBoZXJlCiAgICB8CiAg4oCdY2FsbG9j4oCdOiBldmVudCAzCiAg ICB8CiAgICB8ICAgNTggfCAjICAgICBkZWZpbmUgbm1hbGxvYyAgbWFsbG9jCiAgICB8ICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgXgogICAgfCAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwKICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAoMykgY2Fs bGluZyDigJ1tYWxsb2PigJ0gZnJvbSDigJ1jYWxsb2PigJ0Kbm1hbGxvYy5jOjEwMjY6MjE6 IGh1b206IOKAnW5tYWxsb2PigJ0tbWFrcm9uIGxhdmVubnVrc2Vzc2EKICAgIHwgMTAyNiB8 ICAgICAgIGlmICgocmVzdWx0ID0gbm1hbGxvYyhzeikpKSBtZW1zZXQocmVzdWx0LCAwLCBz eik7CiAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KICAgIHwKICAg ICstLT4g4oCdbWFsbG9j4oCdOiBldmVudCA0CiAgICAgICAgICAgfAogICAgICAgICAgIHwu Li8uLi8uLi8uLi9pbmNsdWRlL3N0ZGxpYi5oOjc0Ojg6CiAgICAgICAgICAgfCAgIDc0IHwg dm9pZCAqIG1hbGxvYyhzaXplX3QgX3NpemUpOwogICAgICAgICAgIHwgICAgICB8ICAgICAg ICBefn5+fn4KICAgICAgICAgICB8ICAgICAgfCAgICAgICAgfAogICAgICAgICAgIHwgICAg ICB8ICAgICAgICAoNCkgZW50cnkgdG8g4oCdbWFsbG9j4oCdCiAgICAgICAgICAgfAogICAg ICAgICDigJ1tYWxsb2PigJ06IGV2ZW50cyA1LTEzCiAgICAgICAgICAgfAogICAgICAgICAg IHxubWFsbG9jLmM6NzU0Ojc6CiAgICAgICAgICAgfCAgNzU0IHwgICAgaWYgKHN6bmVlZCA8 ICgodWxvbmcpKElOVF9NQVggLSA2NTUzNikpKSB7CiAgICAgICAgICAgfCAgICAgIHwgICAg ICAgXgogICAgICAgICAgIHwgICAgICB8ICAgICAgIHwKICAgICAgICAgICB8ICAgICAgfCAg ICAgICAoNSkgZm9sbG93aW5nIOKAnWZhbHNl4oCdIGJyYW5jaCAod2hlbiDigJ1zaXplID4g MjE0NzQxODExMOKAnSkuLi4KICAgICAgICAgICB8Li4uLi4uCiAgICAgICAgICAgfCAgNzk5 IHwgICAgaWYgKGhvb2twdHJbbWFsbG9jX0hLXSkgaG9va3B0clttYWxsb2NfSEtdKHNpemUs IHApOwogICAgICAgICAgIHwgICAgICB8ICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn4KICAg ICAgICAgICB8ICAgICAgfCAgICAgICB8ICAgICAgIHwKICAgICAgICAgICB8ICAgICAgfCAg ICAgICB8ICAgICAgICg2KSAuLi50byBoZXJlCiAgICAgICAgICAgfCAgICAgIHwgICAgICAg KDcpIGZvbGxvd2luZyDigJ1mYWxzZeKAnSBicmFuY2guLi4KICAgICAgICAgICB8ICA4MDAg fCAgICBpZiAoIXAgJiYgaG9va3B0clttYWxsb2NfZmFpbF9IS10pCiAgICAgICAgICAgfCAg ICAgIHwgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAg fCAgICAgIHwgICAgICAgfCAgIHwgICAgICAgICB8CiAgICAgICAgICAgfCAgICAgIHwgICAg ICAgfCAgIHwgICAgICAgICAoMTApIC4uLnRvIGhlcmUKICAgICAgICAgICB8ICAgICAgfCAg ICAgICB8ICAgKDExKSBmb2xsb3dpbmcg4oCdZmFsc2XigJ0gYnJhbmNoLi4uCiAgICAgICAg ICAgfCAgICAgIHwgICAgICAgKDgpIC4uLnRvIGhlcmUKICAgICAgICAgICB8ICAgICAgfCAg ICAgICAoOSkgZm9sbG93aW5nIOKAnXRydWXigJ0gYnJhbmNoICh3aGVuIOKAnXDigJ0gaXMg TlVMTCkuLi4KICAgICAgICAgICB8Li4uLi4uCiAgICAgICAgICAgfCAgODAzIHwgICAgcmV0 dXJuIHA7CiAgICAgICAgICAgfCAgICAgIHwgICAgICAgICAgIH4KICAgICAgICAgICB8ICAg ICAgfCAgICAgICAgICAgfAogICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAoMTIpIC4u LnRvIGhlcmUKICAgICAgICAgICB8ICAgICAgfCAgICAgICAgICAgKDEzKSDigJ1yZXN1bHTi gJ0gbGVha3MgaGVyZTsgd2FzIGFsbG9jYXRlZCBhdCAoMikKICAgICAgICAgICB8CiAK --------------FFFDF2DAB4C86EC1545B08EF--