From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26891 invoked by alias); 21 Jan 2002 22:46:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 26862 invoked by uid 71); 21 Jan 2002 22:46:02 -0000 Resent-Date: 21 Jan 2002 22:46:02 -0000 Resent-Message-ID: <20020121224602.26861.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, ojolly@caramail.com Received:(qmail 22674 invoked by uid 61); 21 Jan 2002 22:37:23 -0000 Message-Id:<20020121223723.22673.qmail@sources.redhat.com> Date: Mon, 21 Jan 2002 14:46:00 -0000 From: ojolly@caramail.com Reply-To: ojolly@caramail.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c/5448: gcc emits internal error (unrecognized insn) X-SW-Source: 2002-01/txt/msg00734.txt.bz2 List-Id: >Number: 5448 >Category: c >Synopsis: gcc emits internal error (unrecognized insn) >Confidential: no >Severity: serious >Priority: low >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Mon Jan 21 14:46:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Olivier Jolly >Release: Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/3.0/specs Configured with: ./configure : (reconfigured) ./configure --enable-languages=c,c++ Thread model: single gcc version 3.0 >Organization: >Environment: Linux nausicaa.localdomain 2.4.13 #10 dim dec 2 17:55:18 CET 2001 i586 unknown >Description: Ice happens with gcc while this code compiles fine with tc 3.0 dos e.g. config.c: In function `init_config': config.c:106: Unrecognizable insn: (insn 188 185 190 (set (reg:SI 58) (not:SI (symbol_ref:SI ("sCfgFileLine")))) -1 (nil) (nil)) config.c:106: Internal compiler error in extract_insn, at recog.c:2210 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. >How-To-Repeat: "gcc -c config.i" will produce the error everytime. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="config.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.i" IyAxICJjb25maWcuYyIKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgt Z251LzMuMC9pbmNsdWRlL3N0ZGlvLmgiIDEgMwojIDM2ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGli L2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0ZGlvLmgiIDMKIyAxICIvdXNyL2luY2x1 ZGUvZmVhdHVyZXMuaCIgMSAzCiMgMjgzICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMwojIDEg Ii91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMSAzCiMgMjg0ICIvdXNyL2luY2x1ZGUvZmVhdHVy ZXMuaCIgMiAzCiMgMzExICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMwojIDEgIi91c3IvaW5j bHVkZS9nbnUvc3R1YnMuaCIgMSAzCiMgMzEyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAz CiMgMzcgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1 ZGUvc3RkaW8uaCIgMiAzCgoKCgoKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMt bGludXgtZ251LzMuMC9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAxOTkgIi91c3IvbG9jYWwvbGli L2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkZGVmLmgiIDMKdHlwZWRl ZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwojIDQzICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYt cGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKIyAxICIvdXNyL2luY2x1ZGUv Yml0cy90eXBlcy5oIiAxIDMKIyAyNiAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMwojIDEg Ii91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMKIyAyNyAiL3Vzci9pbmNsdWRlL2JpdHMvdHlw ZXMuaCIgMiAzCgoKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251 LzMuMC9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAzMCAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMu aCIgMiAzCgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9jaGFyOwp0eXBlZGVmIHVuc2lnbmVk IHNob3J0IF9fdV9zaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191X2ludDsKdHlwZWRlZiB1 bnNpZ25lZCBsb25nIF9fdV9sb25nOwoKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxv bmcgbG9uZyBpbnQgX191X3F1YWRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9uZyBp bnQgX19xdWFkX3Q7CiMgNDkgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMKdHlwZWRlZiBz aWduZWQgY2hhciBfX2ludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdWludDhfdDsKdHlw ZWRlZiBzaWduZWQgc2hvcnQgaW50IF9faW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBp bnQgX191aW50MTZfdDsKdHlwZWRlZiBzaWduZWQgaW50IF9faW50MzJfdDsKdHlwZWRlZiB1bnNp Z25lZCBpbnQgX191aW50MzJfdDsKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWduZWQgbG9uZyBs b25nIGludCBfX2ludDY0X3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxv bmcgaW50IF9fdWludDY0X3Q7Cgp0eXBlZGVmIF9fcXVhZF90ICpfX3FhZGRyX3Q7Cgp0eXBlZGVm IF9fdV9xdWFkX3QgX19kZXZfdDsKdHlwZWRlZiBfX3VfaW50IF9fdWlkX3Q7CnR5cGVkZWYgX191 X2ludCBfX2dpZF90Owp0eXBlZGVmIF9fdV9sb25nIF9faW5vX3Q7CnR5cGVkZWYgX191X2ludCBf X21vZGVfdDsKdHlwZWRlZiBfX3VfaW50IF9fbmxpbmtfdDsKdHlwZWRlZiBsb25nIGludCBfX29m Zl90Owp0eXBlZGVmIF9fcXVhZF90IF9fbG9mZl90Owp0eXBlZGVmIGludCBfX3BpZF90Owp0eXBl ZGVmIGludCBfX3NzaXplX3Q7CnR5cGVkZWYgX191X2xvbmcgX19ybGltX3Q7CnR5cGVkZWYgX191 X3F1YWRfdCBfX3JsaW02NF90Owp0eXBlZGVmIF9fdV9pbnQgX19pZF90OwoKdHlwZWRlZiBzdHJ1 Y3QKICB7CiAgICBpbnQgX192YWxbMl07CiAgfSBfX2ZzaWRfdDsKCgp0eXBlZGVmIGludCBfX2Rh ZGRyX3Q7CnR5cGVkZWYgY2hhciAqX19jYWRkcl90Owp0eXBlZGVmIGxvbmcgaW50IF9fdGltZV90 Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19z dXNlY29uZHNfdDsKdHlwZWRlZiBsb25nIGludCBfX3N3YmxrX3Q7Cgp0eXBlZGVmIGxvbmcgaW50 IF9fY2xvY2tfdDsKCgp0eXBlZGVmIGludCBfX2Nsb2NraWRfdDsKCgp0eXBlZGVmIGludCBfX3Rp bWVyX3Q7CgoKCgoKCnR5cGVkZWYgaW50IF9fa2V5X3Q7CgoKdHlwZWRlZiB1bnNpZ25lZCBzaG9y dCBpbnQgX19pcGNfcGlkX3Q7CgoKCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtzaXplX3Q7CgoKCgp0 eXBlZGVmIGxvbmcgaW50IF9fYmxrY250X3Q7CnR5cGVkZWYgX19xdWFkX3QgX19ibGtjbnQ2NF90 OwoKCnR5cGVkZWYgX191X2xvbmcgX19mc2Jsa2NudF90Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19m c2Jsa2NudDY0X3Q7CgoKdHlwZWRlZiBfX3VfbG9uZyBfX2ZzZmlsY250X3Q7CnR5cGVkZWYgX191 X3F1YWRfdCBfX2ZzZmlsY250NjRfdDsKCgp0eXBlZGVmIF9fdV9xdWFkX3QgX19pbm82NF90OwoK CnR5cGVkZWYgX19sb2ZmX3QgX19vZmY2NF90OwoKCnR5cGVkZWYgbG9uZyBpbnQgX190X3NjYWxh cl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fdF91c2NhbGFyX3Q7CgoKdHlwZWRlZiBp bnQgX19pbnRwdHJfdDsKCgp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3NvY2tsZW5fdDsKCgoKCiMg MSAiL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDEgMwojIDIzICIvdXNyL2luY2x1 ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NjaGVkLmgi IDEgMwojIDY4ICIvdXNyL2luY2x1ZGUvYml0cy9zY2hlZC5oIiAzCnN0cnVjdCBfX3NjaGVkX3Bh cmFtCiAgewogICAgaW50IF9fc2NoZWRfcHJpb3JpdHk7CiAgfTsKIyAyNCAiL3Vzci9pbmNsdWRl L2JpdHMvcHRocmVhZHR5cGVzLmgiIDIgMwoKCnN0cnVjdCBfcHRocmVhZF9mYXN0bG9jawp7CiAg bG9uZyBpbnQgX19zdGF0dXM7CiAgaW50IF9fc3BpbmxvY2s7Cgp9OwoKCgp0eXBlZGVmIHN0cnVj dCBfcHRocmVhZF9kZXNjcl9zdHJ1Y3QgKl9wdGhyZWFkX2Rlc2NyOwoKCgoKCnR5cGVkZWYgc3Ry dWN0IF9fcHRocmVhZF9hdHRyX3MKewogIGludCBfX2RldGFjaHN0YXRlOwogIGludCBfX3NjaGVk cG9saWN5OwogIHN0cnVjdCBfX3NjaGVkX3BhcmFtIF9fc2NoZWRwYXJhbTsKICBpbnQgX19pbmhl cml0c2NoZWQ7CiAgaW50IF9fc2NvcGU7CiAgc2l6ZV90IF9fZ3VhcmRzaXplOwogIGludCBfX3N0 YWNrYWRkcl9zZXQ7CiAgdm9pZCAqX19zdGFja2FkZHI7CiAgc2l6ZV90IF9fc3RhY2tzaXplOwp9 IHB0aHJlYWRfYXR0cl90OwoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgc3RydWN0IF9wdGhyZWFkX2Zh c3Rsb2NrIF9fY19sb2NrOwogIF9wdGhyZWFkX2Rlc2NyIF9fY193YWl0aW5nOwp9IHB0aHJlYWRf Y29uZF90OwoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fZHVtbXk7Cn0gcHRocmVhZF9jb25k YXR0cl90OwoKCnR5cGVkZWYgdW5zaWduZWQgaW50IHB0aHJlYWRfa2V5X3Q7CgoKCgoKdHlwZWRl ZiBzdHJ1Y3QKewogIGludCBfX21fcmVzZXJ2ZWQ7CiAgaW50IF9fbV9jb3VudDsKICBfcHRocmVh ZF9kZXNjciBfX21fb3duZXI7CiAgaW50IF9fbV9raW5kOwogIHN0cnVjdCBfcHRocmVhZF9mYXN0 bG9jayBfX21fbG9jazsKfSBwdGhyZWFkX211dGV4X3Q7CgoKCnR5cGVkZWYgc3RydWN0CnsKICBp bnQgX19tdXRleGtpbmQ7Cn0gcHRocmVhZF9tdXRleGF0dHJfdDsKCgoKdHlwZWRlZiBpbnQgcHRo cmVhZF9vbmNlX3Q7CiMgMTQwICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMwp0 eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHB0aHJlYWRfdDsKIyAxNDQgIi91c3IvaW5jbHVkZS9i aXRzL3R5cGVzLmgiIDIgMwojIDQ1ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGlu dXgtZ251LzMuMC9pbmNsdWRlL3N0ZGlvLmgiIDIgMwojIDUzICIvdXNyL2xvY2FsL2xpYi9nY2Mt bGliL2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1 Y3QgX0lPX0ZJTEUgRklMRTsKIyA2MyAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxp bnV4LWdudS8zLjAvaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVkZWYgc3RydWN0IF9JT19GSUxFIF9f RklMRTsKIyA3MyAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8zLjAv aW5jbHVkZS9zdGRpby5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDEgMwojIDMwICIv dXNyL2luY2x1ZGUvbGliaW8uaCIgMwojIDEgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMSAz CiMgOSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMv dHlwZXMuaCIgMSAzCiMgMTAgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzCgoKCgojIDEg Ii91c3IvbG9jYWwvbGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3Rk ZGVmLmgiIDEgMwojIDI4NyAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdu dS8zLjAvaW5jbHVkZS9zdGRkZWYuaCIgMwp0eXBlZGVmIGxvbmcgaW50IHdjaGFyX3Q7CiMgMzEy ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0 ZGRlZi5oIiAzCnR5cGVkZWYgdW5zaWduZWQgaW50IHdpbnRfdDsKIyAxNSAiL3Vzci9pbmNsdWRl L19HX2NvbmZpZy5oIiAyIDMKIyAyNCAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzCiMgMSAi L3Vzci9pbmNsdWRlL3djaGFyLmgiIDEgMwojIDQ4ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMwoj IDEgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUv c3RkZGVmLmgiIDEgMwojIDQ5ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAzCgojIDEgIi91c3Iv aW5jbHVkZS9iaXRzL3djaGFyLmgiIDEgMwojIDUxICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAz CiMgNjcgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAzCnR5cGVkZWYgc3RydWN0CnsKICBpbnQgX19j b3VudDsKICB1bmlvbgogIHsKICAgIHdpbnRfdCBfX3djaDsKICAgIGNoYXIgX193Y2hiWzRdOwog IH0gX192YWx1ZTsKfSBfX21ic3RhdGVfdDsKIyAyNSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5o IiAyIDMKCnR5cGVkZWYgc3RydWN0CnsKICBfX29mZl90IF9fcG9zOwogIF9fbWJzdGF0ZV90IF9f c3RhdGU7Cn0gX0dfZnBvc190Owp0eXBlZGVmIHN0cnVjdAp7CiAgX19vZmY2NF90IF9fcG9zOwog IF9fbWJzdGF0ZV90IF9fc3RhdGU7Cn0gX0dfZnBvczY0X3Q7CiMgNDQgIi91c3IvaW5jbHVkZS9f R19jb25maWcuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9nY29udi5oIiAxIDMKIyAyNiAiL3Vzci9p bmNsdWRlL2djb252LmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzCiMgMjcg Ii91c3IvaW5jbHVkZS9nY29udi5oIiAyIDMKCiMgMSAiL3Vzci9pbmNsdWRlL3djaGFyLmgiIDEg MwojIDQ4ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMwojIDEgIi91c3IvbG9jYWwvbGliL2djYy1s aWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDQ5ICIvdXNy L2luY2x1ZGUvd2NoYXIuaCIgMiAzCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3djaGFyLmgiIDEg MwojIDUxICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAzCiMgMjkgIi91c3IvaW5jbHVkZS9nY29u di5oIiAyIDMKCiMgMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8z LjAvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzEgIi91c3IvaW5jbHVkZS9nY29udi5oIiAyIDMK CgoKCgplbnVtCnsKICBfX0dDT05WX09LID0gMCwKICBfX0dDT05WX05PQ09OViwKICBfX0dDT05W X05PREIsCiAgX19HQ09OVl9OT01FTSwKCiAgX19HQ09OVl9FTVBUWV9JTlBVVCwKICBfX0dDT05W X0ZVTExfT1VUUFVULAogIF9fR0NPTlZfSUxMRUdBTF9JTlBVVCwKICBfX0dDT05WX0lOQ09NUExF VEVfSU5QVVQsCgogIF9fR0NPTlZfSUxMRUdBTF9ERVNDUklQVE9SLAogIF9fR0NPTlZfSU5URVJO QUxfRVJST1IKfTsKCgoKZW51bQp7CiAgX19HQ09OVl9JU19MQVNUID0gMHgwMDAxLAogIF9fR0NP TlZfSUdOT1JFX0VSUk9SUyA9IDB4MDAwMgp9OwoKCgpzdHJ1Y3QgX19nY29udl9zdGVwOwpzdHJ1 Y3QgX19nY29udl9zdGVwX2RhdGE7CnN0cnVjdCBfX2djb252X2xvYWRlZF9vYmplY3Q7CnN0cnVj dCBfX2djb252X3RyYW5zX2RhdGE7CgoKCnR5cGVkZWYgaW50ICgqX19nY29udl9mY3QpIChzdHJ1 Y3QgX19nY29udl9zdGVwICosIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0YSAqLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgX19jb25zdCB1bnNpZ25lZCBjaGFyICoqLCBfX2NvbnN0IHVuc2ln bmVkIGNoYXIgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKios IHNpemVfdCAqLCBpbnQsIGludCk7CgoKdHlwZWRlZiBpbnQgKCpfX2djb252X2luaXRfZmN0KSAo c3RydWN0IF9fZ2NvbnZfc3RlcCAqKTsKdHlwZWRlZiB2b2lkICgqX19nY29udl9lbmRfZmN0KSAo c3RydWN0IF9fZ2NvbnZfc3RlcCAqKTsKCgoKdHlwZWRlZiBpbnQgKCpfX2djb252X3RyYW5zX2Zj dCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0YSAqLCB2b2lkICosCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqKiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBj aGFyICoqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICopOwoKCnR5 cGVkZWYgaW50ICgqX19nY29udl90cmFuc19jb250ZXh0X2ZjdCkgKHZvaWQgKiwgX19jb25zdCB1 bnNpZ25lZCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9fY29uc3QgdW5zaWduZWQgY2hhciAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGNoYXIgKik7CgoKdHlwZWRlZiBp bnQgKCpfX2djb252X3RyYW5zX3F1ZXJ5X2ZjdCkgKF9fY29uc3QgY2hhciAqLCBfX2NvbnN0IGNo YXIgKioqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICop OwoKCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19pbml0X2ZjdCkgKHZvaWQgKiosIGNvbnN0 IGNoYXIgKik7CnR5cGVkZWYgdm9pZCAoKl9fZ2NvbnZfdHJhbnNfZW5kX2ZjdCkgKHZvaWQgKik7 CgpzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhCnsKCiAgX19nY29udl90cmFuc19mY3QgX190cmFu c19mY3Q7CiAgX19nY29udl90cmFuc19jb250ZXh0X2ZjdCBfX3RyYW5zX2NvbnRleHRfZmN0Owog IF9fZ2NvbnZfdHJhbnNfZW5kX2ZjdCBfX3RyYW5zX2VuZF9mY3Q7CiAgdm9pZCAqX19kYXRhOwog IHN0cnVjdCBfX2djb252X3RyYW5zX2RhdGEgKl9fbmV4dDsKfTsKCgoKc3RydWN0IF9fZ2NvbnZf c3RlcAp7CiAgc3RydWN0IF9fZ2NvbnZfbG9hZGVkX29iamVjdCAqX19zaGxpYl9oYW5kbGU7CiAg X19jb25zdCBjaGFyICpfX21vZG5hbWU7CgogIGludCBfX2NvdW50ZXI7CgogIGNoYXIgKl9fZnJv bV9uYW1lOwogIGNoYXIgKl9fdG9fbmFtZTsKCiAgX19nY29udl9mY3QgX19mY3Q7CiAgX19nY29u dl9pbml0X2ZjdCBfX2luaXRfZmN0OwogIF9fZ2NvbnZfZW5kX2ZjdCBfX2VuZF9mY3Q7CgoKCiAg aW50IF9fbWluX25lZWRlZF9mcm9tOwogIGludCBfX21heF9uZWVkZWRfZnJvbTsKICBpbnQgX19t aW5fbmVlZGVkX3RvOwogIGludCBfX21heF9uZWVkZWRfdG87CgoKICBpbnQgX19zdGF0ZWZ1bDsK CiAgdm9pZCAqX19kYXRhOwp9OwoKCgpzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEKewogIHVuc2ln bmVkIGNoYXIgKl9fb3V0YnVmOwogIHVuc2lnbmVkIGNoYXIgKl9fb3V0YnVmZW5kOwoKCgogIGlu dCBfX2ZsYWdzOwoKCgogIGludCBfX2ludm9jYXRpb25fY291bnRlcjsKCgoKICBpbnQgX19pbnRl cm5hbF91c2U7CgogIF9fbWJzdGF0ZV90ICpfX3N0YXRlcDsKICBfX21ic3RhdGVfdCBfX3N0YXRl OwoKCgogIHN0cnVjdCBfX2djb252X3RyYW5zX2RhdGEgKl9fdHJhbnM7Cn07CgoKCnR5cGVkZWYg c3RydWN0IF9fZ2NvbnZfaW5mbwp7CiAgc2l6ZV90IF9fbnN0ZXBzOwogIHN0cnVjdCBfX2djb252 X3N0ZXAgKl9fc3RlcHM7CiAgX19leHRlbnNpb25fXyBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEg X19kYXRhIFtdOwp9ICpfX2djb252X3Q7CiMgNDUgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIg MiAzCnR5cGVkZWYgdW5pb24KewogIHN0cnVjdCBfX2djb252X2luZm8gX19jZDsKICBzdHJ1Y3QK ICB7CiAgICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7CiAgICBzdHJ1Y3QgX19nY29udl9zdGVw X2RhdGEgX19kYXRhOwogIH0gX19jb21iaW5lZDsKfSBfR19pY29udl90OwoKdHlwZWRlZiBpbnQg X0dfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRlZiBp bnQgX0dfaW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKdHlwZWRl ZiB1bnNpZ25lZCBpbnQgX0dfdWludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJ X18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQzMl90IF9fYXR0cmlidXRlX18gKChf X21vZGVfXyAoX19TSV9fKSkpOwojIDMxICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMiAzCiMgNTEg Ii91c3IvaW5jbHVkZS9saWJpby5oIiAzCiMgMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2 LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRhcmcuaCIgMSAzCiMgNDMgIi91c3IvbG9jYWwv bGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkYXJnLmgiIDMKdHlw ZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyA1MiAiL3Vzci9pbmNsdWRl L2xpYmlvLmgiIDIgMwojIDE1OCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKc3RydWN0IF9JT19q dW1wX3Q7IHN0cnVjdCBfSU9fRklMRTsKIyAxNjggIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCnR5 cGVkZWYgdm9pZCBfSU9fbG9ja190OwoKCgoKCnN0cnVjdCBfSU9fbWFya2VyIHsKICBzdHJ1Y3Qg X0lPX21hcmtlciAqX25leHQ7CiAgc3RydWN0IF9JT19GSUxFICpfc2J1ZjsKCgoKICBpbnQgX3Bv czsKIyAxOTEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCn07CgoKZW51bSBfX2NvZGVjdnRfcmVz dWx0CnsKICBfX2NvZGVjdnRfb2ssCiAgX19jb2RlY3Z0X3BhcnRpYWwsCiAgX19jb2RlY3Z0X2Vy cm9yLAogIF9fY29kZWN2dF9ub2NvbnYKfTsKIyAyNTkgIi91c3IvaW5jbHVkZS9saWJpby5oIiAz CnN0cnVjdCBfSU9fRklMRSB7CiAgaW50IF9mbGFnczsKCgoKCiAgY2hhciogX0lPX3JlYWRfcHRy OwogIGNoYXIqIF9JT19yZWFkX2VuZDsKICBjaGFyKiBfSU9fcmVhZF9iYXNlOwogIGNoYXIqIF9J T193cml0ZV9iYXNlOwogIGNoYXIqIF9JT193cml0ZV9wdHI7CiAgY2hhciogX0lPX3dyaXRlX2Vu ZDsKICBjaGFyKiBfSU9fYnVmX2Jhc2U7CiAgY2hhciogX0lPX2J1Zl9lbmQ7CgogIGNoYXIgKl9J T19zYXZlX2Jhc2U7CiAgY2hhciAqX0lPX2JhY2t1cF9iYXNlOwogIGNoYXIgKl9JT19zYXZlX2Vu ZDsKCiAgc3RydWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOwoKICBzdHJ1Y3QgX0lPX0ZJTEUgKl9j aGFpbjsKCiAgaW50IF9maWxlbm87CiAgaW50IF9ibGtzaXplOwogIF9fb2ZmX3QgX29sZF9vZmZz ZXQ7CgoKCiAgdW5zaWduZWQgc2hvcnQgX2N1cl9jb2x1bW47CiAgc2lnbmVkIGNoYXIgX3Z0YWJs ZV9vZmZzZXQ7CiAgY2hhciBfc2hvcnRidWZbMV07CgoKCiAgX0lPX2xvY2tfdCAqX2xvY2s7CiMg MzAzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwogIF9fb2ZmNjRfdCBfb2Zmc2V0OwoKCgoKCiAg dm9pZCAqX19wYWQxOwogIHZvaWQgKl9fcGFkMjsKCiAgaW50IF9tb2RlOwoKICBjaGFyIF91bnVz ZWQyWzE1ICogc2l6ZW9mIChpbnQpIC0gMiAqIHNpemVvZiAodm9pZCAqKV07Cgp9OwoKCnR5cGVk ZWYgc3RydWN0IF9JT19GSUxFIF9JT19GSUxFOwoKCnN0cnVjdCBfSU9fRklMRV9wbHVzOwoKZXh0 ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3RkaW5fOwpleHRlcm4gc3RydWN0IF9J T19GSUxFX3BsdXMgX0lPXzJfMV9zdGRvdXRfOwpleHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMg X0lPXzJfMV9zdGRlcnJfOwojIDM0MiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKdHlwZWRlZiBf X3NzaXplX3QgX19pb19yZWFkX2ZuICh2b2lkICpfX2Nvb2tpZSwgY2hhciAqX19idWYsIHNpemVf dCBfX25ieXRlcyk7CgoKCgoKCgp0eXBlZGVmIF9fc3NpemVfdCBfX2lvX3dyaXRlX2ZuICh2b2lk ICpfX2Nvb2tpZSwgX19jb25zdCBjaGFyICpfX2J1ZiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZV90IF9fbik7CgoKCgoKCgp0eXBlZGVmIGludCBfX2lvX3NlZWtfZm4gKHZv aWQgKl9fY29va2llLCBfX29mZjY0X3QgKl9fcG9zLCBpbnQgX193KTsKCgp0eXBlZGVmIGludCBf X2lvX2Nsb3NlX2ZuICh2b2lkICpfX2Nvb2tpZSk7CiMgMzk0ICIvdXNyL2luY2x1ZGUvbGliaW8u aCIgMwpleHRlcm4gaW50IF9fdW5kZXJmbG93IChfSU9fRklMRSAqKSA7CmV4dGVybiBpbnQgX191 ZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRlcm4gaW50IF9fb3ZlcmZsb3cgKF9JT19GSUxFICosIGlu dCkgOwpleHRlcm4gd2ludF90IF9fd3VuZGVyZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRlcm4gd2lu dF90IF9fd3VmbG93IChfSU9fRklMRSAqKSA7CmV4dGVybiB3aW50X3QgX193b3ZlcmZsb3cgKF9J T19GSUxFICosIHdpbnRfdCkgOwojIDQyNCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKZXh0ZXJu IGludCBfSU9fZ2V0YyAoX0lPX0ZJTEUgKl9fZnApIDsKZXh0ZXJuIGludCBfSU9fcHV0YyAoaW50 IF9fYywgX0lPX0ZJTEUgKl9fZnApIDsKZXh0ZXJuIGludCBfSU9fZmVvZiAoX0lPX0ZJTEUgKl9f ZnApIDsKZXh0ZXJuIGludCBfSU9fZmVycm9yIChfSU9fRklMRSAqX19mcCkgOwoKZXh0ZXJuIGlu dCBfSU9fcGVla2NfbG9ja2VkIChfSU9fRklMRSAqX19mcCkgOwoKCgoKCmV4dGVybiB2b2lkIF9J T19mbG9ja2ZpbGUgKF9JT19GSUxFICopIDsKZXh0ZXJuIHZvaWQgX0lPX2Z1bmxvY2tmaWxlIChf SU9fRklMRSAqKSA7CmV4dGVybiBpbnQgX0lPX2Z0cnlsb2NrZmlsZSAoX0lPX0ZJTEUgKikgOwoj IDQ1NCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKZXh0ZXJuIGludCBfSU9fdmZzY2FuZiAoX0lP X0ZJTEUgKiBfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICogX19yZXN0cmljdCwKICAgICAgICAgICAg ICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QsIGludCAqX19yZXN0cmljdCkgOwpleHRlcm4gaW50 IF9JT192ZnByaW50ZiAoX0lPX0ZJTEUgKl9fcmVzdHJpY3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJp Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2dudWNfdmFfbGlzdCkgOwpleHRlcm4gX19z c2l6ZV90IF9JT19wYWRuIChfSU9fRklMRSAqLCBpbnQsIF9fc3NpemVfdCkgOwpleHRlcm4gc2l6 ZV90IF9JT19zZ2V0biAoX0lPX0ZJTEUgKiwgdm9pZCAqLCBzaXplX3QpIDsKCmV4dGVybiBfX29m ZjY0X3QgX0lPX3NlZWtvZmYgKF9JT19GSUxFICosIF9fb2ZmNjRfdCwgaW50LCBpbnQpIDsKZXh0 ZXJuIF9fb2ZmNjRfdCBfSU9fc2Vla3BvcyAoX0lPX0ZJTEUgKiwgX19vZmY2NF90LCBpbnQpIDsK CmV4dGVybiB2b2lkIF9JT19mcmVlX2JhY2t1cF9hcmVhIChfSU9fRklMRSAqKSA7CiMgNzQgIi91 c3IvbG9jYWwvbGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkaW8u aCIgMiAzCiMgODggIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4w L2luY2x1ZGUvc3RkaW8uaCIgMwp0eXBlZGVmIF9HX2Zwb3NfdCBmcG9zX3Q7CiMgMTM3ICIvdXNy L2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0ZGlvLmgi IDMKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zdGRpb19saW0uaCIgMSAzCiMgMTM4ICIvdXNyL2xv Y2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0ZGlvLmgiIDIg MwoKCgpleHRlcm4gRklMRSAqc3RkaW47CmV4dGVybiBGSUxFICpzdGRvdXQ7CmV4dGVybiBGSUxF ICpzdGRlcnI7CiMgMTUyICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251 LzMuMC9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCByZW1vdmUgKF9fY29uc3QgY2hhciAq X19maWxlbmFtZSkgOwoKZXh0ZXJuIGludCByZW5hbWUgKF9fY29uc3QgY2hhciAqX19vbGQsIF9f Y29uc3QgY2hhciAqX19uZXcpIDsKCgoKCmV4dGVybiBGSUxFICp0bXBmaWxlICh2b2lkKSA7CiMg MTcxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRl L3N0ZGlvLmgiIDMKZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hhciAqX19zKSA7CgoKCgpleHRlcm4g Y2hhciAqdG1wbmFtX3IgKGNoYXIgKl9fcykgOwojIDE4OCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxp Yi9pNTg2LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBjaGFyICp0 ZW1wbmFtIChfX2NvbnN0IGNoYXIgKl9fZGlyLCBfX2NvbnN0IGNoYXIgKl9fcGZ4KQogICAgICAg ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKCgoKCmV4dGVybiBpbnQgZmNsb3Nl IChGSUxFICpfX3N0cmVhbSkgOwoKZXh0ZXJuIGludCBmZmx1c2ggKEZJTEUgKl9fc3RyZWFtKSA7 CgoKCmV4dGVybiBpbnQgZmZsdXNoX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwojIDIxMSAi L3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRp by5oIiAzCmV4dGVybiBGSUxFICpmb3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmls ZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9k ZXMpIDsKCmV4dGVybiBGSUxFICpmcmVvcGVuIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19m aWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf X21vZGVzLAogICAgICAgICAgICAgICAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkg OwojIDI0MSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8zLjAvaW5j bHVkZS9zdGRpby5oIiAzCmV4dGVybiBGSUxFICpmZG9wZW4gKGludCBfX2ZkLCBfX2NvbnN0IGNo YXIgKl9fbW9kZXMpIDsKIyAyNjQgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTU4Ni1wYy1saW51 eC1nbnUvMy4wL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gdm9pZCBzZXRidWYgKEZJTEUgKl9f cmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYpIDsKCgoKZXh0ZXJuIGlu dCBzZXR2YnVmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9f YnVmLAogICAgICAgICAgICAgICAgICAgIGludCBfX21vZGVzLCBzaXplX3QgX19uKSA7CgoKCgpl eHRlcm4gdm9pZCBzZXRidWZmZXIgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9f cmVzdHJpY3QgX19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fc2l6ZSkgOwoK CmV4dGVybiB2b2lkIHNldGxpbmVidWYgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50 IGZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCiAgICAgICAgICAgICAgICAgICAg X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsKCmV4dGVybiBpbnQgcHJp bnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKZXh0ZXJuIGlu dCBzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgICAgICAgICAgICAgICAgICBfX2Nv bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKCmV4dGVybiBpbnQgdmZwcmlu dGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3Jt YXQsCiAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9saXN0IF9fYXJnKSA7CgpleHRlcm4g aW50IHZwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3Zh X2xpc3QgX19hcmcpCiAgICAgICAgICAgIDsKCmV4dGVybiBpbnQgdnNwcmludGYgKGNoYXIgKl9f cmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICAg ICAgICAgICAgICAgIF9fZ251Y192YV9saXN0IF9fYXJnKSA7CgoKCmV4dGVybiBpbnQgc25wcmlu dGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhsZW4sCiAgICAgICAgICAgICAg ICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKQogICAgICAgICAg ICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDMsIDQpKSk7CgpleHRl cm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwK ICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwg X19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3Jt YXRfXyAoX19wcmludGZfXywgMywgMCkpKTsKIyAzMzUgIi91c3IvbG9jYWwvbGliL2djYy1saWIv aTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZzY2Fu ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKICAgICAgICAgICAgICAgICAgIF9fY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4gaW50IHNjYW5mIChfX2Nv bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKZXh0ZXJuIGludCBzc2NhbmYg KF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAgICAgICAgICAgICAgICAgICBfX2NvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwojIDM2MSAiL3Vzci9sb2NhbC9saWIv Z2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBp bnQgZmdldGMgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgZ2V0YyAoRklMRSAqX19zdHJl YW0pIDsKCgpleHRlcm4gaW50IGdldGNoYXIgKHZvaWQpIDsKCgoKCgoKCmV4dGVybiBpbnQgZ2V0 Y191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBnZXRjaGFyX3VubG9ja2Vk ICh2b2lkKSA7CgoKCgpleHRlcm4gaW50IGZnZXRjX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkg OwoKCgoKZXh0ZXJuIGludCBmcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJu IGludCBwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgOwoKCmV4dGVybiBpbnQgcHV0Y2hh ciAoaW50IF9fYykgOwoKCgoKCgoKZXh0ZXJuIGludCBmcHV0Y191bmxvY2tlZCAoaW50IF9fYywg RklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgcHV0Y191bmxvY2tlZCAoaW50IF9fYywg RklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBwdXRjaGFyX3VubG9ja2VkIChpbnQgX19jKSA7 CgoKCgoKZXh0ZXJuIGludCBnZXR3IChGSUxFICpfX3N0cmVhbSkgOwoKCmV4dGVybiBpbnQgcHV0 dyAoaW50IF9fdywgRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBjaGFyICpmZ2V0cyAoY2hh ciAqX19yZXN0cmljdCBfX3MsIGludCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pCiAg ICAgICAgICAgIDsKIyA0MjcgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1n bnUvMy4wL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gY2hhciAqZ2V0cyAoY2hhciAqX19zKSA7 CiMgNDUxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNs dWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmcHV0cyAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0 IF9fcywgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkKICAgICAgICAgICAgOwojIDQ2MSAiL3Vz ci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRpby5o IiAzCmV4dGVybiBpbnQgcHV0cyAoX19jb25zdCBjaGFyICpfX3MpIDsKCgoKZXh0ZXJuIGludCB1 bmdldGMgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7CgoKCmV4dGVybiBzaXplX3QgZnJlYWQg KHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAgICAgICAg ICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKCmV4dGVybiBzaXpl X3QgZndyaXRlIChfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUs CiAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fcykg OwoKCgpleHRlcm4gc2l6ZV90IGZyZWFkX3VubG9ja2VkICh2b2lkICpfX3Jlc3RyaWN0IF9fcHRy LCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19u LCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CmV4dGVybiBzaXplX3QgZndyaXRlX3VubG9j a2VkIChfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9f c3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IGZzZWVrIChGSUxFICpfX3N0cmVhbSwgbG9uZyBpbnQg X19vZmYsIGludCBfX3doZW5jZSkgOwoKZXh0ZXJuIGxvbmcgaW50IGZ0ZWxsIChGSUxFICpfX3N0 cmVhbSkgOwoKZXh0ZXJuIHZvaWQgcmV3aW5kIChGSUxFICpfX3N0cmVhbSkgOwojIDUwNSAiL3Vz ci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRpby5o IiAzCmV4dGVybiBpbnQgZmdldHBvcyAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgZnBvc190 ICpfX3Jlc3RyaWN0IF9fcG9zKQogICAgICAgICAgICA7CgpleHRlcm4gaW50IGZzZXRwb3MgKEZJ TEUgKl9fc3RyZWFtLCBfX2NvbnN0IGZwb3NfdCAqX19wb3MpIDsKIyA1NDEgIi91c3IvbG9jYWwv bGliL2djYy1saWIvaTU4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRl cm4gdm9pZCBjbGVhcmVyciAoRklMRSAqX19zdHJlYW0pIDsKCmV4dGVybiBpbnQgZmVvZiAoRklM RSAqX19zdHJlYW0pIDsKCmV4dGVybiBpbnQgZmVycm9yIChGSUxFICpfX3N0cmVhbSkgOwoKCgpl eHRlcm4gdm9pZCBjbGVhcmVycl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGlu dCBmZW9mX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwpleHRlcm4gaW50IGZlcnJvcl91bmxv Y2tlZCAoRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiB2b2lkIHBlcnJvciAoX19jb25zdCBj aGFyICpfX3MpIDsKCgoKCmV4dGVybiBpbnQgc3lzX25lcnI7CmV4dGVybiBfX2NvbnN0IGNoYXIg Kl9fY29uc3Qgc3lzX2Vycmxpc3RbXTsKIyA1NzIgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTU4 Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZpbGVubyAo RklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgZmlsZW5vX3VubG9ja2VkIChGSUxFICpf X3N0cmVhbSkgOwoKCgoKCgpleHRlcm4gRklMRSAqcG9wZW4gKF9fY29uc3QgY2hhciAqX19jb21t YW5kLCBfX2NvbnN0IGNoYXIgKl9fbW9kZXMpIDsKCgpleHRlcm4gaW50IHBjbG9zZSAoRklMRSAq X19zdHJlYW0pIDsKCgoKCgpleHRlcm4gY2hhciAqY3Rlcm1pZCAoY2hhciAqX19zKSA7CiMgNjE5 ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k1ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0 ZGlvLmgiIDMKZXh0ZXJuIHZvaWQgZmxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgOwoKCgpleHRl cm4gaW50IGZ0cnlsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIDsKCgpleHRlcm4gdm9pZCBmdW5s b2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIDsKIyAyICJjb25maWcuYyIgMgoKCgpjaGFyIHNDZmdG aWxlTGluZVs4MTkyXTsKCgpjaGFyIGNvbmZpZ19maWxlWzI1Nl07CgoKdHlwZWRlZiBzdHJ1Y3Qg ewogIGNoYXIqIHNlY3Rpb247CiAgY2hhciogdmFyaWFibGU7CiAgY2hhciogdmFsdWU7CiAgfSBj b25maWdfdmFyOwoKaW50IGNvbmZpZ192YXJfY21wKGNvbnN0IHZvaWQqIGxocywKICAgICAgICAg ICAgICAgICAgIGNvbnN0IHZvaWQqIHJocykKewogIGludCBzZWN0aW9uX2NtcCA9IHN0cmNtcCgo KGNvbmZpZ192YXIqKWxocyktPnNlY3Rpb24sICgoY29uZmlnX3ZhciopcmhzKS0+c2VjdGlvbik7 CiAgaWYgKHNlY3Rpb25fY21wICE9IDApCiAgICByZXR1cm4gc2VjdGlvbl9jbXA7CiAgcmV0dXJu IHN0cmNtcCgoKGNvbmZpZ192YXIqKWxocyktPnZhcmlhYmxlLCAoKGNvbmZpZ192YXIqKXJocykt PnZhcmlhYmxlKTsKfQoKY29uc3QgaW50IGNvbmZpZ19hcl9zaXplX21heCA9IDEwMDsKaW50IGNv bmZpZ19hcl9pbmRleCA9IDA7CmNvbmZpZ192YXIgKmNvbmZpZ19hcjsKCmNoYXIKaW5pdF9jb25m aWcoKQp7CgogICBGSUxFKiBGQ2ZnRmlsZSA9ICgodm9pZCAqKTApOwogICBjaGFyKiBwV3JkID0g KCh2b2lkICopMCk7CiAgIGNoYXIqIHBSZXQ7CiAgIGNoYXIqIHBUbXA7CiAgIGNoYXIqIHNlY3Rp b24gPSAoKHZvaWQgKikwKTsKCiAgIGNvbmZpZ19hcl9pbmRleCA9IDA7CiAgIGlmICgoY29uZmln X2FyID0gKGNvbmZpZ192YXIqKW1hbGxvYyhzaXplb2YoY29uZmlnX3ZhcikgKiBjb25maWdfYXJf c2l6ZV9tYXgpKSA9PSAoKHZvaWQgKikwKSkKICAgICByZXR1cm4gMDsKCgogICBpZiAoKEZDZmdG aWxlID0gZm9wZW4oY29uZmlnX2ZpbGUsICJyIikpICE9ICgodm9pZCAqKTApKQogICB7CiAgICAg IGRvCiAgICAgIHsKICAgICAgICAgbWVtc2V0KCBzQ2ZnRmlsZUxpbmUsICdcMCcsIDgxOTIgKTsK CiAgICAgICAgIHBSZXQgPSBmZ2V0cyhzQ2ZnRmlsZUxpbmUsIDgxOTIsIEZDZmdGaWxlICk7Cgog ICAgICAgICBpZiAoc0NmZ0ZpbGVMaW5lWzBdID09ICcjJykKICAgICAgICAgICBjb250aW51ZTsK CiAgICAgICAgIGlmIChzQ2ZnRmlsZUxpbmVbMF0gPT0gJ1snKQogICAgICAgICB7CiAgICAgICAg ICAgcFdyZCA9IHN0cnJjaHIoIHNDZmdGaWxlTGluZSwgJ10nKTsKICAgICAgICAgICBpZiAocFdy ZCA9PSAoKHZvaWQgKikwKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICBpZiAo c2VjdGlvbiAhPSAoKHZvaWQgKikwKSkKICAgICAgICAgICAgIGZyZWUoc2VjdGlvbik7CgogICAg ICAgICAgIHNlY3Rpb24gPSAoY2hhciopbWFsbG9jKCBwV3JkIC0gc0NmZ0ZpbGVMaW5lICk7CiAg ICAgICAgICAgc3RybmNweSggc2VjdGlvbiwgc0NmZ0ZpbGVMaW5lICsgMSwgcFdyZCAtIHNDZmdG aWxlTGluZSAtIDEpOwogICAgICAgICAgIHNlY3Rpb25bcFdyZCAtIHNDZmdGaWxlTGluZSAtIDFd ID0gJ1wwJzsKICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQoKICAgICAgICAgcFdyZCA9 IHN0cmNociggc0NmZ0ZpbGVMaW5lLCAnPScpOwogICAgICAgICBpZiAocFdyZCA9PSAoKHZvaWQg KikwKSkKICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgIHBUbXAgPSBzdHJjaHIocFdyZCwg J1xuJyk7CiAgICAgICAgIGlmKCBwVG1wICE9ICgodm9pZCAqKTApICkKICAgICAgICAgICAqcFRt cCA9ICdcMCc7CgogICAgICAgICBpZiAoY29uZmlnX2FyX2luZGV4IDwgY29uZmlnX2FyX3NpemVf bWF4KQogICAgICAgICB7CiAgICAgICAgICAgY29uZmlnX2FyW2NvbmZpZ19hcl9pbmRleF0uc2Vj dGlvbj0oY2hhciopc3RyZHVwKHNlY3Rpb24pOwoKICAgICAgICAgICAqcFdyZCA9ICdcMCc7CiAg ICAgICAgICAgcFRtcCA9IHBXcmQgLSAxOwogICAgICAgICAgIHdoaWxlICgqcFRtcCA9PSAnXHQn IHx8ICpwVG1wID09ICcgJykKICAgICAgICAgICAgICoocFRtcCAtLSkgPSAnXDAnOwogICAgICAg ICAgIGNvbmZpZ19hcltjb25maWdfYXJfaW5kZXhdLnZhcmlhYmxlPShjaGFyKilzdHJkdXAoc0Nm Z0ZpbGVMaW5lKTsKCiAgICAgICAgICAgd2hpbGUgKCpwV3JkID09ICdcdCcgfHwgKnBXcmQgPT0g JyAnKQogICAgICAgICAgICAgcFdyZCArKzsKCiAgICAgICAgICAgY29uZmlnX2FyW2NvbmZpZ19h cl9pbmRleF0udmFsdWU9KGNoYXIqKXN0cmR1cChwV3JkKzEpOwoKICAgICAgICAgICBjb25maWdf YXJfaW5kZXggKys7CiAgICAgICAgIH0KCiAgICAgIH0gd2hpbGUgKCBwUmV0ICE9ICgodm9pZCAq KTApKTsKCiAgICAgIGZjbG9zZSggRkNmZ0ZpbGUgKTsKICAgfQoKICAgaWYgKHNlY3Rpb24gIT0g KCh2b2lkICopMCkpCiAgICAgZnJlZShzZWN0aW9uKTsKCiAgIHJldHVybiAxOwp9Cgp2b2lkIGRp c3Bvc2VfY29uZmlnKCkKewogIGludCBpbmRleDsKCiAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwg Y29uZmlnX2FyX2luZGV4OyBpbmRleCArKykKICAgIHsKICAgICAgZnJlZShjb25maWdfYXJbaW5k ZXhdLnNlY3Rpb24pOwogICAgICBmcmVlKGNvbmZpZ19hcltpbmRleF0udmFyaWFibGUpOwogICAg ICBmcmVlKGNvbmZpZ19hcltpbmRleF0udmFsdWUpOwogICAgfQoKICBmcmVlKGNvbmZpZ19hcik7 Cn0KCmNoYXIqIGdldF9jb25maWdfdmFyKGNoYXIqIHNlY3Rpb24sIGNoYXIqIHZhcmlhYmxlKQp7 CiAgaW50IGluZGV4ID0gMDsKICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBjb25maWdfYXJfaW5k ZXg7IGluZGV4KyspCiAgICBpZiAoY29uZmlnX2FyXwp9CgppbnQgbWFpbigpCnsKICBzdHJjcHko Y29uZmlnX2ZpbGUsImM6XFxwcm9nXFxodWdvXFxodS1nbyEuaW5pIik7CgogIGluaXRfY29uZmln KCk7CgoKCiAgZGlzcG9zZV9jb25maWcoKTsKfQo=