From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2CF77CD54B0 for ; Tue, 19 Sep 2023 10:25:29 +0000 (UTC) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 809533CE46A for ; Tue, 19 Sep 2023 12:25:27 +0200 (CEST) Received: from in-2.smtp.seeweb.it (in-2.smtp.seeweb.it [IPv6:2001:4b78:1:20::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id A63C93CA8C7 for ; Tue, 19 Sep 2023 12:24:49 +0200 (CEST) Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-2.smtp.seeweb.it (Postfix) with ESMTPS id DBAF86009D5 for ; Tue, 19 Sep 2023 12:24:48 +0200 (CEST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id F16151FE31; Tue, 19 Sep 2023 10:24:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1695119087; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VzUYGCH3gzOO7qTbiIbi3HwKD8vo7YR20s6EP0BGu5o=; b=TVLth0eX/bDYI5V7ezDcwSodmX+DmXOqgY600dU7mKzCqgeTIlUSYQTYvN6sZrib8A/I2b sIpmkFNtDhIU9BKgVEEYIlDrx9HeaZOYrVDb1akibCJw/oIDWlNYcWILuST2hRY5ufxjvK F7b9UMnGg4qkyJR21Ww7j7HNfeXn3BI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1695119087; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VzUYGCH3gzOO7qTbiIbi3HwKD8vo7YR20s6EP0BGu5o=; b=/R8tqwIBnvtwIV5gQTR/OaZOXlfsE33jdtqQ3Ilz9lvN3dfNRXLKmaks2ZNiBDnS0X/v65 jwezTQCvyRJbERAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id DC1BB13A49; Tue, 19 Sep 2023 10:24:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id qPy3NO92CWXOSAAAMHmgww (envelope-from ); Tue, 19 Sep 2023 10:24:47 +0000 From: Marius Kittler To: ltp@lists.linux.it Date: Tue, 19 Sep 2023 12:24:42 +0200 Message-ID: <20230919102445.23934-2-mkittler@suse.de> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230919102445.23934-1-mkittler@suse.de> References: <20230919102445.23934-1-mkittler@suse.de> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 1.0.1 at in-2.smtp.seeweb.it X-Virus-Status: Clean Subject: [LTP] [PATCH v5 1/4] Refactor ioctl02.c to use the new test API X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" KiBVc2UgY2hlY2twb2ludCBBUEkgaW5zdGVhZCBvZiBzaWduYWxzCiogVXNlIFNBRkVf4oCmLW1h Y3JvcyBpbnN0ZWFkIG9mIG1hbnVhbCBlcnJvciBoYW5kbGluZwoqIFNlZSBodHRwczovL2dpdGh1 Yi5jb20vbGludXgtdGVzdC1wcm9qZWN0L2x0cC9pc3N1ZXMvNjM3CiAgZm9yIHJlbGF0ZWQgZGlz Y3Vzc2lvbi4KClNpZ25lZC1vZmYtYnk6IE1hcml1cyBLaXR0bGVyIDxta2l0dGxlckBzdXNlLmRl PgotLS0KIHRlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvaW9jdGwvaW9jdGwwMi5jIHwgMzgyICsr KysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAy OTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9p b2N0bC9pb2N0bDAyLmMgYi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL2lvY3RsL2lvY3RsMDIu YwppbmRleCBiNGQ0YTM1OTQuLmQ5NDI3ZGJlNCAxMDA2NDQKLS0tIGEvdGVzdGNhc2VzL2tlcm5l bC9zeXNjYWxscy9pb2N0bC9pb2N0bDAyLmMKKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxs cy9pb2N0bC9pb2N0bDAyLmMKQEAgLTEsMTk1ICsxLDg3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgogLyoKLSAqICAgQ29weXJpZ2h0IChjKSBJbnRlcm5h dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzICBDb3JwLiwgMjAwMQotICogICBDb3B5cmlnaHQgKGMp IDIwMjAgUGV0ciBWb3JlbCA8cHZvcmVsQHN1c2UuY3o+Ci0gKgotICogICBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgIHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK LSAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKLSAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqICAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7ICB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlCi0g KiAgIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK LSAqICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLSAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07ICBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqIENv cHlyaWdodCAoYykgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyAgQ29ycC4sIDIwMDEK KyAqIENvcHlyaWdodCAoYykgMjAyMCBQZXRyIFZvcmVsIDxwdm9yZWxAc3VzZS5jej4KKyAqIENv cHlyaWdodCAoYykgMjAyMyBNYXJpdXMgS2l0dGxlciA8bWtpdHRsZXJAc3VzZS5kZT4KICAqLwog Ci0vKgotICogTkFNRQotICoJaW9jdGwwMi5jCi0gKgotICogREVTQ1JJUFRJT04KLSAqCVRlc3Rj YXNlIHRvIHRlc3QgdGhlIFRDR0VUQSwgYW5kIFRDU0VUQSBpb2N0bCBpbXBsZW1lbnRhdGlvbnMg Zm9yCi0gKgl0aGUgdHR5IGRyaXZlcgorLypcCisgKiBbRGVzY3JpcHRpb25dCiAgKgotICogQUxH T1JJVEhNCi0gKglJbiB0aGlzIHRlc3QsIHRoZSBwYXJlbnQgYW5kIGNoaWxkIG9wZW4gdGhlIHBh cmVudHR5IGFuZCB0aGUgY2hpbGR0dHkKLSAqCXJlc3BlY3RpdmVseS4gIEFmdGVyIG9wZW5pbmcg dGhlIGNoaWxkdHR5IHRoZSBjaGlsZCBmbHVzaGVzIHRoZSBzdHJlYW0KLSAqCWFuZCBzZW5kcyBh IFNJR1VTUjEgdG8gdGhlIHBhcmVudCAodGhlcmVieSBhc2tpbmcgaXQgdG8gY29udGludWUgaXRz Ci0gKgl0ZXN0aW5nKS4gVGhlIHBhcmVudCwgd2hpY2ggd2FzIHdhaXRpbmcgZm9yIHRoaXMgc2ln bmFsIHRvIGFycml2ZSwgbm93Ci0gKglzdGFydHMgdGhlIHRlc3RpbmcuIEl0IGlzc3VlcyBhIFRD R0VUQSBpb2N0bCB0byBnZXQgYWxsIHRoZSB0dHkKLSAqCXBhcmFtZXRlcnMuIEl0IHRoZW4gY2hh bmdlcyB0aGVtIHRvIGtub3duIHZhbHVlcyBieSBpc3N1aW5nIGEgVENTRVRBCi0gKglpb2N0bC4g IFRoZW4gdGhlIHBhcmVudCBpc3N1ZXMgYSBUQ0dFVEEgaW9jdGwgYWdhaW4gYW5kIGNvbXBhcmVz IHRoZQotICoJcmVjZWl2ZWQgdmFsdWVzIHdpdGggd2hhdCBpdCBoYWQgc2V0IGVhcmxpZXIuIFRo ZSB0ZXN0IGZhaWxzIGlmIFRDR0VUQQotICoJb3IgVENTRVRBIGZhaWxzLCBvciBpZiB0aGUgcmVj ZWl2ZWQgdmFsdWVzIGRvbid0IG1hdGNoIHRob3NlIHRoYXQgd2VyZQotICoJc2V0LiBUaGUgcGFy ZW50IGRvZXMgYWxsIHRoZSB0ZXN0aW5nLCB0aGUgcmVxdWlyZW1lbnQgb2YgdGhlIGNoaWxkCi0g Kglwcm9jZXNzIGlzIHRvIG1vbml0ZXIgdGhlIHRlc3RpbmcgZG9uZSBieSB0aGUgcGFyZW50LCBh bmQgaGVuY2UgdGhlCi0gKgljaGlsZCBqdXN0IHdhaXRzIGZvciB0aGUgcGFyZW50LgorICogVGVz dGNhc2UgdG8gdGVzdCB0aGUgVENHRVRBLCBhbmQgVENTRVRBIGlvY3RsIGltcGxlbWVudGF0aW9u cyBmb3IKKyAqIHRoZSB0dHkgZHJpdmVyCiAgKgotICogVVNBR0U6ICA8Zm9yIGNvbW1hbmQtbGlu ZT4KLSAqICBpb2N0bDAyIC1EIC9kZXYvdHR5WzAtOV0gWy1jIG5dIFstZl0gWy1pIG5dIFstSSB4 XSBbLVAgeF0gWy10XQotICogICAgIHdoZXJlLCAgLWMgbiA6IFJ1biBuIGNvcGllcyBjb25jdXJy ZW50bHkuCi0gKiAgICAgICAgICAgICAtZiAgIDogVHVybiBvZmYgZnVuY3Rpb25hbGl0eSBUZXN0 aW5nLgotICogICAgICAgICAgICAgLWkgbiA6IEV4ZWN1dGUgdGVzdCBuIHRpbWVzLgotICogICAg ICAgICAgICAgLUkgeCA6IEV4ZWN1dGUgdGVzdCBmb3IgeCBzZWNvbmRzLgotICogICAgICAgICAg ICAgLVAgeCA6IFBhdXNlIGZvciB4IHNlY29uZHMgYmV0d2VlbiBpdGVyYXRpb25zLgotICogICAg ICAgICAgICAgLXQgICA6IFR1cm4gb24gc3lzY2FsbCB0aW1pbmcuCi0gKgotICogSElTVE9SWQot ICoJMDcvMjAwMSBQb3J0ZWQgYnkgV2F5bmUgQm95ZXIKLSAqCi0gKiBSRVNUUklDVElPTlMKLSAq CXRlc3QgbXVzdCBiZSBydW4gd2l0aCB0aGUgLUQgb3B0aW9uCi0gKgl0ZXN0IG1heSBoYXZlIHRv IGJlIHJ1biBhcyByb290IGRlcGVuZGluZyBvbiB0aGUgdHR5IHBlcm1pc3Npb25zCisgKiBJbiB0 aGlzIHRlc3QsIHRoZSBwYXJlbnQgYW5kIGNoaWxkIG9wZW4gdGhlIHBhcmVudHR5IGFuZCB0aGUg Y2hpbGR0dHkKKyAqIHJlc3BlY3RpdmVseS4gIEFmdGVyIG9wZW5pbmcgdGhlIGNoaWxkdHR5IHRo ZSBjaGlsZCBmbHVzaGVzIHRoZSBzdHJlYW0KKyAqIGFuZCB3YWtlcyB0aGUgcGFyZW50ICh0aGVy ZWJ5IGFza2luZyBpdCB0byBjb250aW51ZSBpdHMgdGVzdGluZykuIFRoZQorICogcGFyZW50LCB0 aGVuIHN0YXJ0cyB0aGUgdGVzdGluZy4gSXQgaXNzdWVzIGEgVENHRVRBIGlvY3RsIHRvIGdldCBh bGwKKyAqIHRoZSB0dHkgcGFyYW1ldGVycy4gSXQgdGhlbiBjaGFuZ2VzIHRoZW0gdG8ga25vd24g dmFsdWVzIGJ5IGlzc3VpbmcgYQorICogVENTRVRBIGlvY3RsLiBUaGVuIHRoZSBwYXJlbnQgaXNz dWVzIGEgVENHRVRBIGlvY3RsIGFnYWluIGFuZCBjb21wYXJlcworICogdGhlIHJlY2VpdmVkIHZh bHVlcyB3aXRoIHdoYXQgaXQgaGFkIHNldCBlYXJsaWVyLiBUaGUgdGVzdCBmYWlscyBpZgorICog VENHRVRBIG9yIFRDU0VUQSBmYWlscywgb3IgaWYgdGhlIHJlY2VpdmVkIHZhbHVlcyBkb24ndCBt YXRjaCB0aG9zZQorICogdGhhdCB3ZXJlIHNldC4gVGhlIHBhcmVudCBkb2VzIGFsbCB0aGUgdGVz dGluZywgdGhlIHJlcXVpcmVtZW50IG9mIHRoZQorICogY2hpbGQgcHJvY2VzcyBpcyB0byBtb25p dGVyIHRoZSB0ZXN0aW5nIGRvbmUgYnkgdGhlIHBhcmVudCwgYW5kIGhlbmNlCisgKiB0aGUgY2hp bGQganVzdCB3YWl0cyBmb3IgdGhlIHBhcmVudC4KICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4K ICNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPGVycm5v Lmg+CiAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNpbmNsdWRlIDxzeXMvdHR5ZGVmYXVsdHMuaD4K ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUg PHRlcm1pb3MuaD4KLSNpbmNsdWRlICJ0ZXN0LmgiCi0jaW5jbHVkZSAic2FmZV9tYWNyb3MuaCIK LSNpbmNsdWRlICJsYXBpL2lvY3RsLmgiCi0KLSNkZWZpbmUJQ05VTAkwCiAKLWNoYXIgKlRDSUQg PSAiaW9jdGwwMiI7Ci1pbnQgVFNUX1RPVEFMID0gMTsKKyNpbmNsdWRlICJ0c3RfY2hlY2twb2lu dC5oIgorI2luY2x1ZGUgInRzdF90ZXN0LmgiCisjaW5jbHVkZSAidHN0X3NhZmVfbWFjcm9zLmgi CiAKIHN0YXRpYyBzdHJ1Y3QgdGVybWlvIHRlcm1pbywgc2F2ZV9pbzsKIAogc3RhdGljIGNoYXIg KnBhcmVudHR0eSwgKmNoaWxkdHR5Owotc3RhdGljIGludCBwYXJlbnRmZCwgY2hpbGRmZDsKK3N0 YXRpYyBpbnQgcGFyZW50ZmQgPSAtMSwgY2hpbGRmZCA9IC0xOwogc3RhdGljIGludCBwYXJlbnRw aWQsIGNoaWxkcGlkOwotc3RhdGljIHZvbGF0aWxlIGludCBzaWd0ZXJtLCBzaWd1c3IxLCBzaWd1 c3IyOwotc3RhdGljIGludCBjbG9zZWQgPSAxOwogCiBzdGF0aWMgaW50IGRvX2NoaWxkX3NldHVw KHZvaWQpOwotc3RhdGljIGludCBkb19wYXJlbnRfc2V0dXAodm9pZCk7CiBzdGF0aWMgaW50IHJ1 bl9wdGVzdCh2b2lkKTsKIHN0YXRpYyBpbnQgcnVuX2N0ZXN0KHZvaWQpOwotc3RhdGljIGludCBj aGtfdHR5X3Bhcm1zKCk7CitzdGF0aWMgaW50IGNoa190dHlfcGFybXModm9pZCk7CiBzdGF0aWMg dm9pZCBzZXR1cCh2b2lkKTsKIHN0YXRpYyB2b2lkIGNsZWFudXAodm9pZCk7Ci1zdGF0aWMgdm9p ZCBoZWxwKHZvaWQpOwogc3RhdGljIHZvaWQgZG9fY2hpbGQodm9pZCk7Ci12b2lkIGRvX2NoaWxk X3VjbGludXgodm9pZCk7Ci1zdGF0aWMgdm9pZCBzaWd0ZXJtX2hhbmRsZXIodm9pZCk7CiAKLXN0 YXRpYyBpbnQgRGV2ZmxhZzsKLXN0YXRpYyBjaGFyICpkZXZuYW1lOworc3RhdGljIGNoYXIgKmRl dmljZTsKIAotc3RhdGljIG9wdGlvbl90IG9wdGlvbnNbXSA9IHsKLQl7IkQ6IiwgJkRldmZsYWcs ICZkZXZuYW1lfSwKLQl7TlVMTCwgTlVMTCwgTlVMTH0KLX07CitzdGF0aWMgY29uc3QgaW50IGNo ZWNrcG9pbnRfY2hpbGRfcmVhZHkgPSAxOworc3RhdGljIGNvbnN0IGludCBjaGVja3BvaW50X3Bh cmVudF9kb25lX3Rlc3RpbmcgPSAyOwogCi1pbnQgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKK3N0 YXRpYyB2b2lkIHZlcmlmeV9pb2N0bCh2b2lkKQogewotCWludCBsYzsKLQlpbnQgcnZhbDsKKwlw YXJlbnR0dHkgPSBkZXZpY2U7CisJY2hpbGR0dHkgPSBkZXZpY2U7CiAKLQl0c3RfcGFyc2Vfb3B0 cyhhYywgYXYsIG9wdGlvbnMsICZoZWxwKTsKLQotI2lmZGVmIFVDTElOVVgKLQltYXliZV9ydW5f Y2hpbGQoJmRvX2NoaWxkX3VjbGludXgsICJkUyIsICZwYXJlbnRwaWQsICZjaGlsZHR0eSk7Ci0j ZW5kaWYKKwlwYXJlbnRwaWQgPSBnZXRwaWQoKTsKKwljaGlsZHBpZCA9IFNBRkVfRk9SSygpOwor CWlmIChjaGlsZHBpZCA9PSAwKQorCQlkb19jaGlsZCgpOwogCi0JaWYgKCFEZXZmbGFnKQotCQl0 c3RfYnJrbShUQlJPSywgTlVMTCwgIllvdSBtdXN0IHNwZWNpZnkgYSB0dHkgZGV2aWNlIHdpdGgg IgotCQkJICJ0aGUgLUQgb3B0aW9uLiIpOworCVRTVF9DSEVDS1BPSU5UX1dBSVQyKGNoZWNrcG9p bnRfY2hpbGRfcmVhZHksIDUwMDApOwogCi0JdHN0X3JlcXVpcmVfcm9vdCgpOwotCi0Jc2V0dXAo KTsKLQotCWZvciAobGMgPSAwOyBURVNUX0xPT1BJTkcobGMpOyBsYysrKSB7Ci0KLQkJdHN0X2Nv dW50ID0gMDsKLQotCQlwYXJlbnR0dHkgPSBkZXZuYW1lOwotCQljaGlsZHR0eSA9IGRldm5hbWU7 Ci0KLQkJcGFyZW50cGlkID0gZ2V0cGlkKCk7Ci0KLQkJY2hpbGRwaWQgPSBGT1JLX09SX1ZGT1JL KCk7Ci0JCWlmIChjaGlsZHBpZCA8IDApCi0JCQl0c3RfYnJrbShUQlJPSywgY2xlYW51cCwgImZv cmsgZmFpbGVkIik7Ci0KLQkJaWYgKGNoaWxkcGlkID09IDApIHsJLyogY2hpbGQgKi8KLSNpZmRl ZiBVQ0xJTlVYCi0JCQlpZiAoc2VsZl9leGVjKGF2WzBdLCAiZFMiLCBwYXJlbnRwaWQsIGNoaWxk dHR5KSA8IDApCi0JCQkJdHN0X2Jya20oVEJST0ssIGNsZWFudXAsICJzZWxmX2V4ZWMgZmFpbGVk Iik7Ci0jZWxzZQotCQkJZG9fY2hpbGQoKTsKLSNlbmRpZgotCQl9Ci0KLQkJd2hpbGUgKCFzaWd1 c3IxKQotCQkJc2xlZXAoMSk7CisJcGFyZW50ZmQgPSBTQUZFX09QRU4ocGFyZW50dHR5LCBPX1JE V1IsIDA3NzcpOworCS8qIGZsdXNoIHR0eSBxdWV1ZXMgdG8gcmVtb3ZlIG9sZCBvdXRwdXQgKi8K KwlTQUZFX0lPQ1RMKHBhcmVudGZkLCBUQ0ZMU0gsIDIpOwogCi0JCXNpZ3VzcjEgPSAwOworCS8q IHJ1biB0aGUgcGFyZW50IHRlc3QgKi8KKwlpbnQgcnZhbCA9IHJ1bl9wdGVzdCgpOwogCi0JCXBh cmVudGZkID0gZG9fcGFyZW50X3NldHVwKCk7Ci0JCWlmIChwYXJlbnRmZCA8IDApIHsKLQkJCWtp bGwoY2hpbGRwaWQsIFNJR1RFUk0pOwotCQkJd2FpdHBpZChjaGlsZHBpZCwgTlVMTCwgMCk7Ci0J CQljbGVhbnVwKCk7Ci0JCX0KLQotCQkvKiBydW4gdGhlIHBhcmVudCB0ZXN0ICovCi0JCXJ2YWwg PSBydW5fcHRlc3QoKTsKLQkJaWYgKHJ2YWwgPT0gLTEpIHsKLQkJCS8qCi0JCQkgKiBQYXJlbnQg Y2Fubm90IHNldC9nZXQgaW9jdGwgcGFyYW1ldGVycy4KLQkJCSAqIFNJR1RFUk0gdGhlIGNoaWxk IGFuZCBjbGVhbnVwLgotCQkJICovCi0JCQlraWxsKGNoaWxkcGlkLCBTSUdURVJNKTsKLQkJCXdh aXRwaWQoY2hpbGRwaWQsIE5VTEwsIDApOwotCQkJY2xlYW51cCgpOwotCQl9CisJaWYgKHJ2YWwg IT0gMCkKKwkJdHN0X3JlcyhURkFJTCwgIlRDR0VUQS9UQ1NFVEEgdGVzdHMgRkFJTEVEIHdpdGgg IgorCQkJCSIlZCAlcyIsIHJ2YWwsIHJ2YWwgPiAxID8gImVycm9ycyIgOiAiZXJyb3IiKTsKKwll bHNlCisJCXRzdF9yZXMoVFBBU1MsICJUQ0dFVEEvVENTRVRBIHRlc3RzIFNVQ0NFRURFRCIpOwog Ci0JCWlmIChydmFsICE9IDApCi0JCQl0c3RfcmVzbShURkFJTCwgIlRDR0VUQS9UQ1NFVEEgdGVz dHMgRkFJTEVEIHdpdGggIgotCQkJCSAiJWQgJXMiLCBydmFsLCBydmFsID4gMSA/ICJlcnJvcnMi IDogImVycm9yIik7Ci0JCWVsc2UKLQkJCXRzdF9yZXNtKFRQQVNTLCAiVENHRVRBL1RDU0VUQSB0 ZXN0cyBTVUNDRUVERUQiKTsKLQotCQkvKiBGSVhNRTogY2hlY2sgcmV0dXJuIGNvZGVzLiAqLwot CQkodm9pZClraWxsKGNoaWxkcGlkLCBTSUdURVJNKTsKLQkJKHZvaWQpd2FpdHBpZChjaGlsZHBp ZCwgTlVMTCwgMCk7Ci0KLQkJLyoKLQkJICogQ2xlYW4gdXAgdGhpbmdzIGZyb20gdGhlIHBhcmVu dCBieSByZXN0b3JpbmcgdGhlCi0JCSAqIHR0eSBkZXZpY2UgaW5mb3JtYXRpb24gdGhhdCB3YXMg c2F2ZWQgaW4gc2V0dXAoKQotCQkgKiBhbmQgY2xvc2luZyB0aGUgdHR5IGZpbGUgZGVzY3JpcHRv ci4KLQkJICovCi0JCWlmIChpb2N0bChwYXJlbnRmZCwgVENTRVRBLCAmc2F2ZV9pbykgPT0gLTEp Ci0JCQl0c3RfcmVzbShUSU5GTywgImlvY3RsIHJlc3RvcmUgZmFpbGVkIGluIG1haW4iKTsKLQkJ U0FGRV9DTE9TRShjbGVhbnVwLCBwYXJlbnRmZCk7Ci0KLQkJY2xvc2VkID0gMTsKLQl9Ci0JY2xl YW51cCgpOwotCi0JdHN0X2V4aXQoKTsKKwlUU1RfQ0hFQ0tQT0lOVF9XQUtFKGNoZWNrcG9pbnRf cGFyZW50X2RvbmVfdGVzdGluZyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRvX2NoaWxkKHZvaWQpCkBA IC0yMDEsMjggKzkzLDEyIEBAIHN0YXRpYyB2b2lkIGRvX2NoaWxkKHZvaWQpCiAJX2V4aXQoMCk7 CiB9CiAKLXZvaWQgZG9fY2hpbGRfdWNsaW51eCh2b2lkKQotewotCXN0cnVjdCBzaWdhY3Rpb24g YWN0OwotCi0JLyogU2V0IHVwIHRoZSBzaWduYWwgaGFuZGxlcnMgYWdhaW4gKi8KLQlhY3Quc2Ff aGFuZGxlciA9ICh2b2lkICopc2lndGVybV9oYW5kbGVyOwotCWFjdC5zYV9mbGFncyA9IDA7Ci0J c2lnZW1wdHlzZXQoJmFjdC5zYV9tYXNrKTsKLQkodm9pZClzaWdhY3Rpb24oU0lHVEVSTSwgJmFj dCwgMCk7Ci0KLQkvKiBSdW4gdGhlIG5vcm1hbCBjaGlsZCAqLwotCWRvX2NoaWxkKCk7Ci19Ci0K IC8qCiAgKiBydW5fcHRlc3QoKSAtIHNldHVwIHRoZSB2YXJpb3VzIHRlcm1pbyBzdHJ1Y3R1cmUg dmFsdWVzIGFuZCBpc3N1ZQogICoJCSB0aGUgVENTRVRBIGlvY3RsIGNhbGwgd2l0aCB0aGUgVEVT VCBtYWNyby4KICAqLwogc3RhdGljIGludCBydW5fcHRlc3Qodm9pZCkKIHsKLQlpbnQgaSwgcnZh bDsKLQogCS8qIFVzZSAib2xkIiBsaW5lIGRpc2NpcGxpbmUgKi8KIAl0ZXJtaW8uY19saW5lID0g MDsKIApAQCAtMjMwLDcgKzEwNiw3IEBAIHN0YXRpYyBpbnQgcnVuX3B0ZXN0KHZvaWQpCiAJdGVy bWlvLmNfY2ZsYWcgPSBCNTAgfCBDUzcgfCBDUkVBRCB8IFBBUkVOQiB8IFBBUk9ERCB8IENMT0NB TDsKIAogCS8qIFNldCBjb250cm9sIGNoYXJzLiAqLwotCWZvciAoaSA9IDA7IGkgPCBOQ0M7IGkr KykgeworCWZvciAoaW50IGkgPSAwOyBpIDwgTkNDOyBpKyspIHsKIAkJaWYgKGkgPT0gVkVPTDIp CiAJCQljb250aW51ZTsKIAkJdGVybWlvLmNfY2NbaV0gPSBDU1RBUlQ7CkBAIC0yNDgsMzggKzEy NCwxOCBAQCBzdGF0aWMgaW50IHJ1bl9wdGVzdCh2b2lkKQogCS8qIFNldCBvdXRwdXQgbW9kZXMu ICovCiAJdGVybWlvLmNfb2ZsYWcgPSBPUE9TVCB8IE9MQ1VDIHwgT05MQ1IgfCBPTk9DUjsKIAot CVRFU1QoaW9jdGwocGFyZW50ZmQsIFRDU0VUQSwgJnRlcm1pbykpOwotCi0JaWYgKFRFU1RfUkVU VVJOIDwgMCkgewotCQl0c3RfcmVzbShURkFJTCwgImlvY3RsIFRDU0VUQSBmYWlsZWQgOiAiCi0J CQkgImVycm5vID0gJWQiLCBURVNUX0VSUk5PKTsKLQkJcmV0dXJuIC0xOwotCX0KKwlTQUZFX0lP Q1RMKHBhcmVudGZkLCBUQ1NFVEEsICZ0ZXJtaW8pOwogCiAJLyogR2V0IHRlcm1pbyBhbmQgc2Vl IGlmIGFsbCBwYXJhbWV0ZXJzIGFjdHVhbGx5IGdvdCBzZXQgKi8KLQlydmFsID0gaW9jdGwocGFy ZW50ZmQsIFRDR0VUQSwgJnRlcm1pbyk7Ci0JaWYgKHJ2YWwgPCAwKSB7Ci0JCXRzdF9yZXNtKFRG QUlMLCAiaW9jdGwgVENHRVRBIGZhaWxlZC4gIEVuZGluZyB0ZXN0LiIpOwotCQlyZXR1cm4gLTE7 Ci0JfQotCisJU0FGRV9JT0NUTChwYXJlbnRmZCwgVENHRVRBLCAmdGVybWlvKTsKIAlyZXR1cm4g Y2hrX3R0eV9wYXJtcygpOwogfQogCiBzdGF0aWMgaW50IHJ1bl9jdGVzdCh2b2lkKQogewotCS8q Ci0JICogV2FpdCB0aWxsIHRoZSBwYXJlbnQgaGFzIGZpbmlzaGVkIHRlc3RpbmcuCi0JICovCi0J d2hpbGUgKCFzaWd0ZXJtKQotCQlzbGVlcCgxKTsKLQotCXNpZ3Rlcm0gPSAwOwotCi0JdHN0X3Jl c20oVElORk8sICJjaGlsZDogR290IFNJR1RFUk0gZnJvbSBwYXJlbnQuIik7Ci0KLQlpZiAoY2xv c2UoY2hpbGRmZCkgPT0gLTEpCi0JCXRzdF9yZXNtKFRJTkZPLCAiY2xvc2UoKSBpbiBydW5fY3Rl c3QoKSBmYWlsZWQiKTsKKwlUU1RfQ0hFQ0tQT0lOVF9XQUlUKGNoZWNrcG9pbnRfcGFyZW50X2Rv bmVfdGVzdGluZyk7CisJdHN0X3JlcyhUSU5GTywgImNoaWxkOiBwYXJlbnQgaGFzIGZpbmlzaGVk IHRlc3RpbmciKTsKKwlTQUZFX0NMT1NFKGNoaWxkZmQpOwogCXJldHVybiAwOwogfQogCkBAIC0y ODgsNyArMTQ0LDcgQEAgc3RhdGljIGludCBjaGtfdHR5X3Bhcm1zKHZvaWQpCiAJaW50IGksIGZs YWcgPSAwOwogCiAJaWYgKHRlcm1pby5jX2xpbmUgIT0gMCkgewotCQl0c3RfcmVzbShUSU5GTywg ImxpbmUgZGlzY2lwbGluZSBoYXMgaW5jb3JyZWN0IHZhbHVlICVvIiwKKwkJdHN0X3JlcyhUSU5G TywgImxpbmUgZGlzY2lwbGluZSBoYXMgaW5jb3JyZWN0IHZhbHVlICVvIiwKIAkJCSB0ZXJtaW8u Y19saW5lKTsKIAkJZmxhZysrOwogCX0KQEAgLTMwMSw3ICsxNTcsNyBAQCBzdGF0aWMgaW50IGNo a190dHlfcGFybXModm9pZCkKIAkgKi8KICNpZiAwCiAJaWYgKHRlcm1pby5jX2NmbGFnICE9IChC NTAgfCBDUzcgfCBDUkVBRCB8IFBBUkVOQiB8IFBBUk9ERCB8IENMT0NBTCkpIHsKLQkJdHN0X3Jl c20oVElORk8sICJjZmxhZyBoYXMgaW5jb3JyZWN0IHZhbHVlLiAlbyIsCisJCXRzdF9yZXMoVElO Rk8sICJjZmxhZyBoYXMgaW5jb3JyZWN0IHZhbHVlLiAlbyIsCiAJCQkgdGVybWlvLmNfY2ZsYWcp OwogCQlmbGFnKys7CiAJfQpAQCAtMzA5LDE5ICsxNjUsMTggQEAgc3RhdGljIGludCBjaGtfdHR5 X3Bhcm1zKHZvaWQpCiAKIAlmb3IgKGkgPSAwOyBpIDwgTkNDOyBpKyspIHsKIAkJaWYgKGkgPT0g VkVPTDIpIHsKLQkJCWlmICh0ZXJtaW8uY19jY1tWRU9MMl0gPT0gQ05VTCkgeworCQkJaWYgKCF0 ZXJtaW8uY19jY1tpXSkgewogCQkJCWNvbnRpbnVlOwogCQkJfSBlbHNlIHsKLQkJCQl0c3RfcmVz bShUSU5GTywgImNvbnRyb2wgY2hhciAlZCBoYXMgIgotCQkJCQkgImluY29ycmVjdCB2YWx1ZSAl ZCAlZCIsIGksCi0JCQkJCSB0ZXJtaW8uY19jY1tpXSwgQ05VTCk7CisJCQkJdHN0X3JlcyhUSU5G TywgImNvbnRyb2wgY2hhciAlZCBoYXMgIgorCQkJCQkgImluY29ycmVjdCB2YWx1ZSAlZCIsIGks IHRlcm1pby5jX2NjW2ldKTsKIAkJCQlmbGFnKys7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCX0K IAogCQlpZiAodGVybWlvLmNfY2NbaV0gIT0gQ1NUQVJUKSB7Ci0JCQl0c3RfcmVzbShUSU5GTywg ImNvbnRyb2wgY2hhciAlZCBoYXMgaW5jb3JyZWN0ICIKKwkJCXRzdF9yZXMoVElORk8sICJjb250 cm9sIGNoYXIgJWQgaGFzIGluY29ycmVjdCAiCiAJCQkJICJ2YWx1ZSAlZC4iLCBpLCB0ZXJtaW8u Y19jY1tpXSk7CiAJCQlmbGFnKys7CiAJCX0KQEAgLTMzMCw3ICsxODUsNyBAQCBzdGF0aWMgaW50 IGNoa190dHlfcGFybXModm9pZCkKIAlpZiAoIQogCSAgICAodGVybWlvLmNfbGZsYWcKIAkgICAg ICYmIChJU0lHIHwgSUNBTk9OIHwgWENBU0UgfCBFQ0hPIHwgRUNIT0UgfCBOT0ZMU0gpKSkgewot CQl0c3RfcmVzbShUSU5GTywgImxmbGFnIGhhcyBpbmNvcnJlY3QgdmFsdWUuICVvIiwKKwkJdHN0 X3JlcyhUSU5GTywgImxmbGFnIGhhcyBpbmNvcnJlY3QgdmFsdWUuICVvIiwKIAkJCSB0ZXJtaW8u Y19sZmxhZyk7CiAJCWZsYWcrKzsKIAl9CkBAIC0zMzksMTMwICsxOTQsNjcgQEAgc3RhdGljIGlu dCBjaGtfdHR5X3Bhcm1zKHZvaWQpCiAJICAgICh0ZXJtaW8uY19pZmxhZwogCSAgICAgJiYgKEJS S0lOVCB8IElHTlBBUiB8IElOUENLIHwgSVNUUklQIHwgSUNSTkwgfCBJVUNMQyB8IElYT04gfCBJ WEFOWQogCQkgfCBJWE9GRikpKSB7Ci0JCXRzdF9yZXNtKFRJTkZPLCAiaWZsYWcgaGFzIGluY29y cmVjdCB2YWx1ZS4gJW8iLAorCQl0c3RfcmVzKFRJTkZPLCAiaWZsYWcgaGFzIGluY29ycmVjdCB2 YWx1ZS4gJW8iLAogCQkJIHRlcm1pby5jX2lmbGFnKTsKIAkJZmxhZysrOwogCX0KIAogCWlmICgh KHRlcm1pby5jX29mbGFnICYmIChPUE9TVCB8IE9MQ1VDIHwgT05MQ1IgfCBPTk9DUikpKSB7Ci0J CXRzdF9yZXNtKFRJTkZPLCAib2ZsYWcgaGFzIGluY29ycmVjdCB2YWx1ZS4gJW8iLAorCQl0c3Rf cmVzKFRJTkZPLCAib2ZsYWcgaGFzIGluY29ycmVjdCB2YWx1ZS4gJW8iLAogCQkJIHRlcm1pby5j X29mbGFnKTsKIAkJZmxhZysrOwogCX0KIAogCWlmICghZmxhZykKLQkJdHN0X3Jlc20oVElORk8s ICJ0ZXJtaW8gdmFsdWVzIGFyZSBzZXQgYXMgZXhwZWN0ZWQiKTsKKwkJdHN0X3JlcyhUSU5GTywg InRlcm1pbyB2YWx1ZXMgYXJlIHNldCBhcyBleHBlY3RlZCIpOwogCiAJcmV0dXJuIGZsYWc7CiB9 CiAKLXN0YXRpYyBpbnQgZG9fcGFyZW50X3NldHVwKHZvaWQpCi17Ci0JaW50IHBmZDsKLQotCXBm ZCA9IFNBRkVfT1BFTihjbGVhbnVwLCBwYXJlbnR0dHksIE9fUkRXUiwgMDc3Nyk7Ci0KLQkvKiB1 bnNldCB0aGUgY2xvc2VkIGZsYWcgKi8KLQljbG9zZWQgPSAwOwotCi0JLyogZmx1c2ggdHR5IHF1 ZXVlcyB0byByZW1vdmUgb2xkIG91dHB1dCAqLwotCVNBRkVfSU9DVEwoY2xlYW51cCwgcGZkLCBU Q0ZMU0gsIDIpOwotCXJldHVybiBwZmQ7Ci19Ci0KIHN0YXRpYyBpbnQgZG9fY2hpbGRfc2V0dXAo dm9pZCkKIHsKLQlpbnQgY2ZkOwotCi0JY2ZkID0gb3BlbihjaGlsZHR0eSwgT19SRFdSLCAwNzc3 KTsKLQlpZiAoY2ZkIDwgMCkgewotCQl0c3RfcmVzbShUSU5GTywgIkNvdWxkIG5vdCBvcGVuICVz IGluIGRvX2NoaWxkX3NldHVwKCksIGVycm5vICIKLQkJCSAiPSAlZCIsIGNoaWxkdHR5LCBlcnJu byk7Ci0JCS8qIHNpZ25hbCB0aGUgcGFyZW50IHNvIHdlIGRvbid0IGhhbmcgdGhlIHRlc3QgKi8K LQkJa2lsbChwYXJlbnRwaWQsIFNJR1VTUjEpOwotCQlyZXR1cm4gLTE7Ci0JfQorCWludCBjZmQg PSBTQUZFX09QRU4oY2hpbGR0dHksIE9fUkRXUiwgMDc3Nyk7CiAKIAkvKiBmbHVzaCB0dHkgcXVl dWVzIHRvIHJlbW92ZSBvbGQgb3V0cHV0ICovCi0JaWYgKGlvY3RsKGNmZCwgVENGTFNILCAyKSA8 IDApIHsKLQkJdHN0X3Jlc20oVElORk8sICJpb2N0bCBUQ0ZMU0ggZmFpbGVkLiA6IGVycm5vID0g JWQiLCBlcnJubyk7Ci0JCS8qIHNpZ25hbCB0aGUgcGFyZW50IHNvIHdlIGRvbid0IGhhbmcgdGhl IHRlc3QgKi8KLQkJa2lsbChwYXJlbnRwaWQsIFNJR1VTUjEpOwotCQlyZXR1cm4gLTE7Ci0JfQor CVNBRkVfSU9DVEwoY2ZkLCBUQ0ZMU0gsIDIpOwogCiAJLyogdGVsbCB0aGUgcGFyZW50IHRoYXQg d2UncmUgZG9uZSAqLwotCWtpbGwocGFyZW50cGlkLCBTSUdVU1IxKTsKLQorCVRTVF9DSEVDS1BP SU5UX1dBS0UoY2hlY2twb2ludF9jaGlsZF9yZWFkeSk7CiAJcmV0dXJuIGNmZDsKIH0KIAotLyoK LSAqIERlZmluZSB0aGUgc2lnbmFscyBoYW5kbGVycyBoZXJlLgotICovCi1zdGF0aWMgdm9pZCBz aWd0ZXJtX2hhbmRsZXIodm9pZCkKLXsKLQlzaWd0ZXJtID0gMTsKLX0KLQotc3RhdGljIHZvaWQg c2lndXNyMV9oYW5kbGVyKHZvaWQpCi17Ci0Jc2lndXNyMSA9IDE7Ci19Ci0KLXN0YXRpYyB2b2lk IHNpZ3VzcjJfaGFuZGxlcih2b2lkKQotewotCXNpZ3VzcjIgPSAxOwotfQotCi1zdGF0aWMgdm9p ZCBoZWxwKHZvaWQpCi17Ci0JcHJpbnRmKCIgIC1EIDx0dHkgZGV2aWNlPiA6IGZvciBleGFtcGxl LCAvZGV2L3R0eVswLTldXG4iKTsKLX0KLQogc3RhdGljIHZvaWQgc2V0dXAodm9pZCkKIHsKLQlp bnQgZmQ7Ci0Jc3RydWN0IHNpZ2FjdGlvbiBhY3Q7CisJaWYgKCFkZXZpY2UpCisJCXRzdF9icmso VEJST0ssICJZb3UgbXVzdCBzcGVjaWZ5IGEgdHR5IGRldmljZSB3aXRoIC1EIG9wdGlvbiIpOwog CiAJLyogWFhYOiBURVJSTk8gcmVxdWlyZWQgYWxsIG92ZXIgdGhlIHBsYWNlICovCi0JZmQgPSBT QUZFX09QRU4oTlVMTCwgZGV2bmFtZSwgT19SRFdSLCAwNzc3KTsKKwlpbnQgZmQgPSBTQUZFX09Q RU4oZGV2aWNlLCBPX1JEV1IsIDA3NzcpOwogCiAJLyogU2F2ZSB0aGUgY3VycmVudCBkZXZpY2Ug aW5mb3JtYXRpb24gLSB0byBiZSByZXN0b3JlZCBpbiBjbGVhbnVwKCkgKi8KLQlTQUZFX0lPQ1RM KGNsZWFudXAsIGZkLCBUQ0dFVEEsICZzYXZlX2lvKTsKKwlTQUZFX0lPQ1RMKGZkLCBUQ0dFVEEs ICZzYXZlX2lvKTsKIAogCS8qIENsb3NlIHRoZSBkZXZpY2UgKi8KLQlTQUZFX0NMT1NFKGNsZWFu dXAsIGZkKTsKLQotCS8qIFNldCB1cCB0aGUgc2lnbmFsIGhhbmRsZXJzICovCi0JYWN0LnNhX2hh bmRsZXIgPSAodm9pZCAqKXNpZ3Rlcm1faGFuZGxlcjsKLQlhY3Quc2FfZmxhZ3MgPSAwOwotCXNp Z2VtcHR5c2V0KCZhY3Quc2FfbWFzayk7Ci0JKHZvaWQpc2lnYWN0aW9uKFNJR1RFUk0sICZhY3Qs IDApOwotCi0JYWN0LnNhX2hhbmRsZXIgPSAodm9pZCAqKXNpZ3VzcjFfaGFuZGxlcjsKLQlhY3Qu c2FfZmxhZ3MgPSAwOwotCSh2b2lkKXNpZ2FjdGlvbihTSUdVU1IxLCAmYWN0LCAwKTsKLQotCWFj dC5zYV9oYW5kbGVyID0gKHZvaWQgKilzaWd1c3IyX2hhbmRsZXI7Ci0JYWN0LnNhX2ZsYWdzID0g MDsKLQkodm9pZClzaWdhY3Rpb24oU0lHVVNSMiwgJmFjdCwgMCk7Ci0KLQlhY3Quc2FfaGFuZGxl ciA9IFNJR19JR047Ci0JYWN0LnNhX2ZsYWdzID0gMDsKLQkodm9pZClzaWdhY3Rpb24oU0lHVFRP VSwgJmFjdCwgMCk7Ci0KLQlzaWd0ZXJtID0gc2lndXNyMSA9IHNpZ3VzcjIgPSAwOwotCi0JVEVT VF9QQVVTRTsKKwlTQUZFX0NMT1NFKGZkKTsKIH0KIAogc3RhdGljIHZvaWQgY2xlYW51cCh2b2lk KQogewotCWlmICghY2xvc2VkKSB7Ci0JCWlmIChpb2N0bChwYXJlbnRmZCwgVENTRVRBLCAmc2F2 ZV9pbykgPT0gLTEpCi0JCQl0c3RfcmVzbShUSU5GTywgImlvY3RsIHJlc3RvcmUgZmFpbGVkIGlu IGNsZWFudXAoKSIpOwotCQlpZiAoY2xvc2UocGFyZW50ZmQpID09IC0xKQotCQkJdHN0X3Jlc20o VElORk8sICJjbG9zZSgpIGZhaWxlZCBpbiBjbGVhbnVwKCkiKTsKKwlpZiAocGFyZW50ZmQgPj0g MCkgeworCQlTQUZFX0lPQ1RMKHBhcmVudGZkLCBUQ1NFVEEsICZzYXZlX2lvKTsKKwkJU0FGRV9D TE9TRShwYXJlbnRmZCk7CiAJfQogfQorCitzdGF0aWMgc3RydWN0IHRzdF90ZXN0IHRlc3QgPSB7 CisJLm5lZWRzX3Jvb3QgPSAxLAorCS5uZWVkc19jaGVja3BvaW50cyA9IDEsCisJLmZvcmtzX2No aWxkID0gMSwKKwkuc2V0dXAgPSBzZXR1cCwKKwkuY2xlYW51cCA9IGNsZWFudXAsCisJLnRlc3Rf YWxsID0gdmVyaWZ5X2lvY3RsLAorCS5vcHRpb25zID0gKHN0cnVjdCB0c3Rfb3B0aW9uW10pIHsK KwkJeyJEOiIsICZkZXZpY2UsICJUdHkgZGV2aWNlLiBGb3IgZXhhbXBsZSwgL2Rldi90dHlbMC05 XSJ9LAorCQl7fQorCX0KK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi40Mi4w CgoKLS0gCk1haWxpbmcgbGlzdCBpbmZvOiBodHRwczovL2xpc3RzLmxpbnV4Lml0L2xpc3RpbmZv L2x0cAo=