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 08378C9833E for ; Mon, 28 Sep 2026 05:19:43 +0000 (UTC) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id A91AE3E4C1E for ; Mon, 28 Sep 2026 07:19:41 +0200 (CEST) Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [217.194.8.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 545883CB860 for ; Mon, 28 Sep 2026 07:19:13 +0200 (CEST) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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-4.smtp.seeweb.it (Postfix) with ESMTPS id 9BA0D10006C5 for ; Mon, 28 Sep 2026 07:19:11 +0200 (CEST) Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68RHXNgW264923; Mon, 28 Sep 2026 05:19:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=mhRDT0 Xfw8rKSQncPeIwXxYI+N1sLutu8sZ9RJSTjzQ=; b=lom/YY66KtofhAXNXGb/Xj CjB+xrgyfEzuFUnxdRk7/DuPfrzsmSUS1s9UHIVOZfTSjF2Oi3YfG8h3y6oF9sXB nHJ3WleUS50uTKTSPy5fFODMv3XeCD3Ykuw+9qBGr1gOeAZetmA1Dlc4uRJWCqTf 8W+qWmP6qmF1RJK0q5F2RF7S1VnXLoBati9l2Ku7yxO1JEy5SWq/ZqQWyOs1B70K PdxmobPA1mVkww7KJwSQYCFqZclDIdJsRMO64QA1IH8XuMkvCJKja+fuZyZEX2wv v/Ov6yeCwLiVbEdWboAGAnlYqzXuoS+i5CN8dLuYBNGVTm6Oijswv+CP4EcydBhQ == Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gx5j4ygme-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 28 Sep 2026 05:19:08 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68S3vZSQ2157270; Mon, 28 Sep 2026 05:19:07 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gxsvhbpx3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 28 Sep 2026 05:19:07 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68S5J3Aa34865502 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Sep 2026 05:19:03 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B15CA20049; Mon, 28 Sep 2026 05:19:03 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CD29420040; Mon, 28 Sep 2026 05:19:02 +0000 (GMT) Received: from ltcden9-lp6.ltc.tadn.ibm.com (unknown [9.5.7.39]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 28 Sep 2026 05:19:02 +0000 (GMT) From: Samir Mulani To: ltp@lists.linux.it Date: Mon, 28 Sep 2026 07:17:34 +0200 Message-ID: <20260928051740.591819-2-samir@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260928051740.591819-1-samir@linux.ibm.com> References: <20260928051740.591819-1-samir@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI4MDAyMCBTYWx0ZWRfX9Vzo3fJqr5Te kxuWzf8Som/2xg17g2bJrNpqMSfy6znUJMbrSFJ51rPiDY8G8sOLAEufR9OBQ4f7F/S8AY/4ueI 6bRZBalkrFXfb0f9eBlKHwMPm4NuSQs= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI4MDAyMCBTYWx0ZWRfX88cOAnR/pAfv YEz7P0WV5qfTyvjRyw4ma4asiZC+XFwIFoGFIuN5aCTO53tvT6sEPQkNVCwMqHLJbCKBKW+iMaA EEU3vb762SQKsAI6tqE6WFQa+LzULnbAFMEWHTa+QYoh+shyf0JEYoN0hoDmbhEal5Q+CSCGG/s HAuyiXhgglmAuDhAJ1GQgQEVoUhAIIKs4eCtofOVQoR86wDK5p0X0CUIJjrgNUcSdaVZ0AwfdNt ZLXuLk32CH2siLH/DmpfMRQ+58WgusBp7qhwZAdezi4FXq5p3WPG9PdCc0ikDEYLibg3JIGAbvd xmP1J4JGj6Nd/1VTQymupbc/22amQVB71UTF0Jn/+4As8DJOwI4+ot5kLW3zs7Nzu7oS2Zt8hc0 4C9m3EzOL7vL/kPIedBze7QkjSIUWXFEgJzKE6KU/kUmJ+RK3QfBMH7YGMmvqLMdHTT2Fy6QENI eGe/Mmd/iDwBXP38Adg== X-Proofpoint-GUID: W1Ob2sa2s-eS3FIPHCLIYTmjbbGNBmXs X-Authority-Analysis: v=2.4 cv=RKcmjIi+ c=1 sm=1 tr=0 ts=6ab9f8cc cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=eG8SOkIyK4oF5cmLaN8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: W1Ob2sa2s-eS3FIPHCLIYTmjbbGNBmXs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-26_05,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609280020 X-Virus-Scanned: clamav-milter 1.0.9 at in-4.smtp.seeweb.it X-Virus-Status: Clean Subject: [LTP] [PATCH 1/2] cgroup: Add cgroup_burst01 test 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: , Cc: Samir Mulani Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" SSBhZGRlZCBjcHVfbWF4X2J1cnN0MDEgdG8gdGVzdCB0aGUgY3B1Lm1heC5idXJzdCBpbnRlcmZh Y2UgaW4KY2dyb3VwdjIuIFRoaXMgaW50ZXJmYWNlIGNvbnRyb2xzIHRoZSBidXJzdCBidWRnZXQg Zm9yIENGUyBiYW5kd2lkdGgKdGhyb3R0bGluZy4gV2hlbiBhIGNncm91cCB1c2VzIGxlc3MgdGhh biBpdHMgcXVvdGEgaW4gYSBwZXJpb2QsIHRoZQprZXJuZWwgc2F2ZXMgdXAgdG8gKHF1b3RhICsg YnVyc3QpIG1pY3Jvc2Vjb25kczsgYSBsYXRlciBidXN5IHBlcmlvZApjYW4gdXNlIHRoYXQgc2F2 ZWQgY3JlZGl0IHRvIHJ1biBiZXlvbmQgdGhlIG5vcm1hbCBxdW90YS4KClRlc3Qgc2NlbmFyaW9z OgogIFRDMSAtIGNwdS5tYXguYnVyc3QgZGVmYXVsdHMgdG8gMDsgd3JpdGluZyBhIG5vbi16ZXJv IHZhbHVlIGFuZAogICAgICAgIHRoZW4gY2xlYXJpbmcgaXQgYmFjayB0byAwIHdvcmtzIGNvcnJl Y3RseS4KICBUQzIgLSBXcml0aW5nIGJ1cnN0ID0gcXVvdGEvMiBhbmQgYnVyc3QgPSBxdW90YSBi b3RoIHJlYWQgYmFjayB0aGUKICAgICAgICBjb3JyZWN0IHZhbHVlLgogIFRDMyAtIEEgd29ya2Vy IHVuZGVycnVucyB0byBidWlsZCB1cCBidXJzdCBjcmVkaXQsIHRoZW4gb3ZlcmxvYWRzCiAgICAg ICAgdG8gY29uc3VtZSBpdDsgY3B1LnN0YXQgbnJfYnVyc3RzIGFuZCBidXJzdF91c2VjIGNvdW50 ZXJzCiAgICAgICAgbXVzdCBpbmNyZWFzZS4gQWxzbyBjaGVja3MgdGhhdCBidXJzdCBjYW4gYmUg dXBkYXRlZCB3aGlsZQogICAgICAgIHRhc2tzIGFyZSBydW5uaW5nLgogIFRDNCAtIFRoZSBidXJz dCB2YWx1ZSBpcyBwcmVzZXJ2ZWQgYWZ0ZXIgcXVvdGEgaXMgcmVtb3ZlZAogICAgICAgIChjcHUu bWF4IHNldCB0byAibWF4IikuCiAgVEM1IC0gVGhlIGJ1cnN0IHZhbHVlIGlzIHByZXNlcnZlZCBh ZnRlciB0aGUgcGVyaW9kIGlzIGNoYW5nZWQuCgpSZXF1aXJlcyBDT05GSUdfQ0ZTX0JBTkRXSURU SD15IGFuZCBjZ3JvdXB2MiBjcHUgY29udHJvbGxlci4KClNpZ25lZC1vZmYtYnk6IFNhbWlyIE11 bGFuaSA8c2FtaXJAbGludXguaWJtLmNvbT4KLS0tCiBydW50ZXN0L2NvbnRyb2xsZXJzICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2tlcm5lbC9jb250cm9sbGVycy9jZ3Jv dXAvLmdpdGlnbm9yZSAgICAgIHwgICAxICsKIC4uLi9jb250cm9sbGVycy9jZ3JvdXAvY3B1X21h eF9idXJzdDAxLmMgICAgICB8IDY1MCArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgNjUyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0Y2FzZXMva2VybmVs L2NvbnRyb2xsZXJzL2Nncm91cC9jcHVfbWF4X2J1cnN0MDEuYwoKZGlmZiAtLWdpdCBhL3J1bnRl c3QvY29udHJvbGxlcnMgYi9ydW50ZXN0L2NvbnRyb2xsZXJzCmluZGV4IDkzYzUyYzQzOS4uYWE5 M2VhNWFmIDEwMDY0NAotLS0gYS9ydW50ZXN0L2NvbnRyb2xsZXJzCisrKyBiL3J1bnRlc3QvY29u dHJvbGxlcnMKQEAgLTMsNiArMyw3IEBAIGNncm91cF9jb3JlMDEJY2dyb3VwX2NvcmUwMQogY2dy b3VwX2NvcmUwMgljZ3JvdXBfY29yZTAyCiBjZ3JvdXBfY29yZTAzCWNncm91cF9jb3JlMDMKIGNn cm91cAkJY2dyb3VwX3JlZ3Jlc3Npb25fdGVzdC5zaAorY3B1X21heF9idXJzdDAxICBjcHVfbWF4 X2J1cnN0MDEKIG1lbWNnX3JlZ3Jlc3Npb24JbWVtY2dfcmVncmVzc2lvbl90ZXN0LnNoCiBtZW1j Z190ZXN0XzMJbWVtY2dfdGVzdF8zCiBtZW1jZ19mYWlsY250IG1lbWNnX2ZhaWxjbnQuc2gKZGlm ZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJuZWwvY29udHJvbGxlcnMvY2dyb3VwLy5naXRpZ25vcmUg Yi90ZXN0Y2FzZXMva2VybmVsL2NvbnRyb2xsZXJzL2Nncm91cC8uZ2l0aWdub3JlCmluZGV4IDlm MWQxYWRhOS4uMjUwNjM4OGZkIDEwMDY0NAotLS0gYS90ZXN0Y2FzZXMva2VybmVsL2NvbnRyb2xs ZXJzL2Nncm91cC8uZ2l0aWdub3JlCisrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvY29udHJvbGxlcnMv Y2dyb3VwLy5naXRpZ25vcmUKQEAgLTMsMyArMyw0IEBACiAvY2dyb3VwX2NvcmUwMQogL2Nncm91 cF9jb3JlMDIKIC9jZ3JvdXBfY29yZTAzCisvY3B1X21heF9idXJzdDAxCmRpZmYgLS1naXQgYS90 ZXN0Y2FzZXMva2VybmVsL2NvbnRyb2xsZXJzL2Nncm91cC9jcHVfbWF4X2J1cnN0MDEuYyBiL3Rl c3RjYXNlcy9rZXJuZWwvY29udHJvbGxlcnMvY2dyb3VwL2NwdV9tYXhfYnVyc3QwMS5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYWZiOGJlZmE2Ci0tLSAvZGV2L251bGwK KysrIGIvdGVzdGNhc2VzL2tlcm5lbC9jb250cm9sbGVycy9jZ3JvdXAvY3B1X21heF9idXJzdDAx LmMKQEAgLTAsMCArMSw2NTAgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w LW9yLWxhdGVyCisvKgorICogQ29weXJpZ2h0IChjKSAyMDI2IFNhbWlyIE11bGFuaSwgSUJNIENv cnBvcmF0aW9uLgorICovCisKKy8qXAorICogRnVuY3Rpb25hbCB0ZXN0cyBmb3IgdGhlIGNncm91 cHYyIGNwdS5tYXguYnVyc3QgaW50ZXJmYWNlLgorICoKKyAqIGNwdS5tYXguYnVyc3QgY29udHJv bHMgdGhlIGJ1cnN0IGJ1ZGdldCBmb3IgQ0ZTIGJhbmR3aWR0aCB0aHJvdHRsaW5nLgorICogV2hl biBhIGNncm91cCB1c2VzIGxlc3MgdGhhbiBpdHMgcXVvdGEgaW4gYSBwZXJpb2QsIHRoZSBrZXJu ZWwgcmV0YWlucworICogdXAgdG8gKHF1b3RhICsgYnVyc3QpIG1pY3Jvc2Vjb25kcyBpbiB0aGUg cnVudGltZSBwb29sLiAgQSBsYXRlciBidXN5CisgKiBwZXJpb2QgbWF5IGRyYXcgZnJvbSB0aGF0 IHJldGFpbmVkIGNyZWRpdCwgdGVtcG9yYXJpbHkgcnVubmluZyBiZXlvbmQKKyAqIHRoZSBub21p bmFsIHF1b3RhIHJhdGUuCisgKgorICogS2VybmVsIGFjY291bnRpbmcgKGtlcm5lbC9zY2hlZC9m YWlyLmMgX19yZWZpbGxfY2ZzX2JhbmR3aWR0aF9ydW50aW1lKToKKyAqCisgKiAgIEF0IGV2ZXJ5 IHBlcmlvZCBib3VuZGFyeToKKyAqICAgICBydW50aW1lICAgICs9IHF1b3RhCisgKiAgICAgc3Vy cGx1cyAgICAgPSBydW50aW1lX3NuYXAgLSBydW50aW1lCisgKiAgICAgaWYgKHN1cnBsdXMgPiAw KToKKyAqICAgICAgICAgYnVyc3RfdGltZSArPSBzdXJwbHVzCisgKiAgICAgICAgIG5yX2J1cnN0 KysKKyAqICAgICBydW50aW1lICAgICA9IG1pbihydW50aW1lLCBxdW90YSArIGJ1cnN0KQorICog ICAgIHJ1bnRpbWVfc25hcCA9IHJ1bnRpbWUKKyAqCisgKiBUZXN0IHNjZW5hcmlvczoKKyAqICAg VEMgMSAtIERlZmF1bHQgdmFsdWUgYW5kIHdyaXRlLXplcm86IGNwdS5tYXguYnVyc3QgZGVmYXVs dHMgdG8gMDsKKyAqICAgICAgICAgIHNldHRpbmcgYnVyc3QgdG8gbm9uLXplcm8gdGhlbiBiYWNr IHRvIDAgaXMgYWNjZXB0ZWQuCisgKiAgIFRDIDIgLSBXcml0ZS9yZWFkYmFjaywgYnVyc3QgPT0g cXVvdGEgYm91bmRhcnkgYWNjZXB0ZWQsIGFuZAorICogICAgICAgICAgYnVyc3QgPiBxdW90YSBy ZWplY3RlZCB3aXRoIEVJTlZBTC4KKyAqICAgVEMgMyAtIEZ1bmN0aW9uYWwgYnVyc3QgYWNjb3Vu dGluZzogYSB3b3JrZXIgdW5kZXJydW5zIHRvIGZpbGwgdGhlCisgKiAgICAgICAgICBwb29sLCB0 aGVuIG92ZXJsb2FkcyB0byB0cmlnZ2VyIGJ1cnN0IGFjY291bnRpbmc7IG5yX2J1cnN0cworICog ICAgICAgICAgYW5kIGJ1cnN0X3VzZWMgaW4gY3B1LnN0YXQgbXVzdCBib3RoIGluY3JlYXNlLgor ICogICBUQyA0IC0gQnVyc3QgcHJlc2VydmVkIGFmdGVyIHF1b3RhIGNsZWFyZWQgKGNwdS5tYXgg PSAibWF4IikuCisgKiAgIFRDIDUgLSBCdXJzdCBwcmVzZXJ2ZWQgYWZ0ZXIgcGVyaW9kIGNoYW5n ZS4KKyAqCisgKiBSZXF1aXJlczogQ09ORklHX0NGU19CQU5EV0lEVEg9eSwgY2dyb3VwIHYyIGNw dSBjb250cm9sbGVyLgorICovCisKKyNkZWZpbmUgX0dOVV9TT1VSQ0UKKyNpbmNsdWRlIDxsaW1p dHMuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5j bHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKworI2luY2x1ZGUgInRzdF90ZXN0LmgiCisjaW5jbHVk ZSAidHN0X3NhZmVfY2xvY2tzLmgiCisjaW5jbHVkZSAidHN0X3NhZmVfZmlsZV9hdC5oIgorCisj ZGVmaW5lIFBFUklPRF9VUwkxMDAwMDBVTEwKKyNkZWZpbmUgUVVPVEFfVVMJIDIwMDAwVUxMCisj ZGVmaW5lIEJVUlNUX1VTCSAxMDAwMFVMTAorCitzdGF0aWMgc3RydWN0IHRzdF9jZ19ncm91cCAq Y2dfY2hpbGQ7CisKK3N0YXRpYyBpbnQgY2dfZGlyZmQoY29uc3Qgc3RydWN0IHRzdF9jZ19ncm91 cCAqY2cpCit7CisJaW50IGZkID0gdHN0X2NnX2dyb3VwX3VuaWZpZWRfZGlyX2ZkKGNnKTsKKwor CWlmIChmZCA8IDApCisJCXRzdF9icmsoVEJST0ssICJ0c3RfY2dfZ3JvdXBfdW5pZmllZF9kaXJf ZmQgcmV0dXJuZWQgJWQiLCBmZCk7CisJcmV0dXJuIGZkOworfQorCitzdGF0aWMgdW5zaWduZWQg bG9uZyBsb25nIGNnX3JlYWRfdWxsKGNvbnN0IHN0cnVjdCB0c3RfY2dfZ3JvdXAgKmNnLAorCQkJ CSAgICAgIGNvbnN0IGNoYXIgKmZuYW1lKQoreworCWNoYXIgYnVmWzY0XTsKKwljaGFyICplbmRw OworCXVuc2lnbmVkIGxvbmcgbG9uZyB2YWw7CisKKwlTQUZFX0ZJTEVfUkVBREFUKGNnX2RpcmZk KGNnKSwgZm5hbWUsIGJ1Ziwgc2l6ZW9mKGJ1ZikgLSAxKTsKKworCXZhbCA9IHN0cnRvdWxsKGJ1 ZiwgJmVuZHAsIDEwKTsKKwlpZiAoZW5kcCA9PSBidWYpCisJCXRzdF9icmsoVEJST0ssICJzdHJ0 b3VsbCBmYWlsZWQgb24gJyVzJyBmcm9tICVzIiwgYnVmLCBmbmFtZSk7CisJcmV0dXJuIHZhbDsK K30KKworc3RhdGljIHZvaWQgY2dfd3JpdGVfdWxsKGNvbnN0IHN0cnVjdCB0c3RfY2dfZ3JvdXAg KmNnLAorCQkJIGNvbnN0IGNoYXIgKmZuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgdmFsKQorewor CVNBRkVfRklMRV9QUklOVEZBVChjZ19kaXJmZChjZyksIGZuYW1lLCAiJWxsdSIsIHZhbCk7Cit9 CisKK3N0YXRpYyB2b2lkIGNnX3dyaXRlX3N0cl9zYWZlKGNvbnN0IHN0cnVjdCB0c3RfY2dfZ3Jv dXAgKmNnLAorCQkJICAgICAgY29uc3QgY2hhciAqZm5hbWUsIGNvbnN0IGNoYXIgKnN0cikKK3sK KwlTQUZFX0ZJTEVfUFJJTlRGQVQoY2dfZGlyZmQoY2cpLCBmbmFtZSwgIiVzIiwgc3RyKTsKK30K KworLyoKKyAqIGNnX3dyaXRlX3N0cigpIC0gYXR0ZW1wdCBhIHdyaXRlIHRoYXQgbWF5IGxlZ2l0 aW1hdGVseSBmYWlsLgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIGVycm5vIG9uIGZhaWx1cmUu CisgKi8KK3N0YXRpYyBpbnQgY2dfd3JpdGVfc3RyKGNvbnN0IHN0cnVjdCB0c3RfY2dfZ3JvdXAg KmNnLAorCQkJY29uc3QgY2hhciAqZm5hbWUsIGNvbnN0IGNoYXIgKnN0cikKK3sKKwlpbnQgZmQs IHNhdmVkID0gMDsKKwlzc2l6ZV90IG47CisKKwlmZCA9IFNBRkVfT1BFTkFUKGNnX2RpcmZkKGNn KSwgZm5hbWUsIE9fV1JPTkxZKTsKKwluICA9IHdyaXRlKGZkLCBzdHIsIHN0cmxlbihzdHIpKTsK KwlpZiAobiA8IDApCisJCXNhdmVkID0gZXJybm87CisJU0FGRV9DTE9TRShmZCk7CisJcmV0dXJu IHNhdmVkOworfQorCitzdGF0aWMgdm9pZCBzZXRfY3B1X21heChjb25zdCBzdHJ1Y3QgdHN0X2Nn X2dyb3VwICpjZywKKwkJCXVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YV91cywKKwkJCXVuc2lnbmVk IGxvbmcgbG9uZyBwZXJpb2RfdXMpCit7CisJY2hhciBidWZbNjRdOworCisJaWYgKHF1b3RhX3Vz ID09IFVMTE9OR19NQVgpCisJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJtYXggJWxsdSIs IHBlcmlvZF91cyk7CisJZWxzZQorCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJWxsdSAl bGx1IiwgcXVvdGFfdXMsIHBlcmlvZF91cyk7CisKKwljZ193cml0ZV9zdHJfc2FmZShjZywgImNw dS5tYXgiLCBidWYpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHJlYWRfYnVyc3Qo Y29uc3Qgc3RydWN0IHRzdF9jZ19ncm91cCAqY2cpCit7CisJcmV0dXJuIGNnX3JlYWRfdWxsKGNn LCAiY3B1Lm1heC5idXJzdCIpOworfQorCitzdGF0aWMgdm9pZCB3cml0ZV9idXJzdChjb25zdCBz dHJ1Y3QgdHN0X2NnX2dyb3VwICpjZywKKwkJCXVuc2lnbmVkIGxvbmcgbG9uZyBidXJzdF91cykK K3sKKwljZ193cml0ZV91bGwoY2csICJjcHUubWF4LmJ1cnN0IiwgYnVyc3RfdXMpOworfQorCisv KgorICogdHJ5X3dyaXRlX2J1cnN0KCkgLSBhdHRlbXB0IGEgYnVyc3Qgd3JpdGUgdGhhdCBtYXkg bGVnaXRpbWF0ZWx5IGZhaWwuCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgZXJybm8gb24gZmFp bHVyZS4KKyAqLworc3RhdGljIGludCB0cnlfd3JpdGVfYnVyc3QoY29uc3Qgc3RydWN0IHRzdF9j Z19ncm91cCAqY2csCisJCQkgICB1bnNpZ25lZCBsb25nIGxvbmcgYnVyc3RfdXMpCit7CisJY2hh ciBidWZbMzJdOworCisJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsbHUiLCBidXJzdF91 cyk7CisJcmV0dXJuIGNnX3dyaXRlX3N0cihjZywgImNwdS5tYXguYnVyc3QiLCBidWYpOworfQor CitzdHJ1Y3QgYnVyc3Rfc3RhdCB7CisJdW5zaWduZWQgbG9uZyBsb25nIG5yX2J1cnN0czsKKwl1 bnNpZ25lZCBsb25nIGxvbmcgYnVyc3RfdXNlYzsKK307CisKK3N0YXRpYyBpbnQgcmVhZF9idXJz dF9zdGF0KGNvbnN0IHN0cnVjdCB0c3RfY2dfZ3JvdXAgKmNnLAorCQkJICAgc3RydWN0IGJ1cnN0 X3N0YXQgKnMpCit7CisJY2hhciBidWZbNDA5Nl07CisJY2hhciAqbGluZSwgKnNhdmU7CisJc3Np emVfdCBuOworCWludCBmZDsKKwlpbnQgZ290X2J1cnN0cyA9IDAsIGdvdF91c2VjID0gMDsKKwor CW1lbXNldChzLCAwLCBzaXplb2YoKnMpKTsKKworCWZkID0gU0FGRV9PUEVOQVQoY2dfZGlyZmQo Y2cpLCAiY3B1LnN0YXQiLCBPX1JET05MWSk7CisJbiAgPSBTQUZFX1JFQUQoMCwgZmQsIGJ1Ziwg c2l6ZW9mKGJ1ZikgLSAxKTsKKwlTQUZFX0NMT1NFKGZkKTsKKworCWlmIChuIDw9IDApCisJCXJl dHVybiAtMTsKKwlidWZbbl0gPSAnXDAnOworCisJZm9yIChsaW5lID0gc3RydG9rX3IoYnVmLCAi XG4iLCAmc2F2ZSk7IGxpbmU7CisJICAgICBsaW5lID0gc3RydG9rX3IoTlVMTCwgIlxuIiwgJnNh dmUpKSB7CisJCWlmIChzc2NhbmYobGluZSwgIm5yX2J1cnN0cyAlbGx1IiwgICZzLT5ucl9idXJz dHMpID09IDEpCisJCQlnb3RfYnVyc3RzID0gMTsKKwkJaWYgKHNzY2FuZihsaW5lLCAiYnVyc3Rf dXNlYyAlbGx1IiwgJnMtPmJ1cnN0X3VzZWMpID09IDEpCisJCQlnb3RfdXNlYyA9IDE7CisJfQor CisJcmV0dXJuIChnb3RfYnVyc3RzICYmIGdvdF91c2VjKSA/IDAgOiAtMTsKK30KKworZW51bSB3 b3JrZXJfY21kIHsKKwlDTURfVU5ERVJSVU4sCisJQ01EX09WRVJMT0FELAorCUNNRF9FWElULAor fTsKKworZW51bSB3b3JrZXJfYWNrIHsgQUNLX0RPTkUgfTsKKworc3RhdGljIGludCAgIGNtZF9w aXBlWzJdID0geyAtMSwgLTEgfTsKK3N0YXRpYyBpbnQgICBhY2tfcGlwZVsyXSA9IHsgLTEsIC0x IH07CitzdGF0aWMgcGlkX3Qgd29ya2VyX3BpZCAgPSAtMTsKKworc3RhdGljIGxvbmcgbG9uZyBt b25vdG9uaWNfdXModm9pZCkKK3sKKwlzdHJ1Y3QgdGltZXNwZWMgdHM7CisKKwlTQUZFX0NMT0NL X0dFVFRJTUUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpOworCXJldHVybiAobG9uZyBsb25nKXRzLnR2 X3NlYyAqIDEwMDAwMDBMTCArIHRzLnR2X25zZWMgLyAxMDAwTEw7Cit9CisKK3N0YXRpYyBsb25n IGxvbmcgcHJvY2Vzc19jcHVfdXModm9pZCkKK3sKKwlzdHJ1Y3QgdGltZXNwZWMgdHM7CisKKwlT QUZFX0NMT0NLX0dFVFRJTUUoQ0xPQ0tfUFJPQ0VTU19DUFVUSU1FX0lELCAmdHMpOworCXJldHVy biAobG9uZyBsb25nKXRzLnR2X3NlYyAqIDEwMDAwMDBMTCArIHRzLnR2X25zZWMgLyAxMDAwTEw7 Cit9CisKK3N0YXRpYyB2b2lkIGJ1cm5fY3B1X2Zvcihsb25nIGxvbmcgZHVyX3VzKQoreworCWxv bmcgbG9uZyBzdGFydCA9IHByb2Nlc3NfY3B1X3VzKCk7CisJdm9sYXRpbGUgdW5zaWduZWQgbG9u ZyB2ID0gMTsKKworCXdoaWxlIChwcm9jZXNzX2NwdV91cygpIC0gc3RhcnQgPCBkdXJfdXMpCisJ CXYgPSB2ICogMTEwMzUxNTI0NVVMICsgMTIzNDVVTDsKK30KKworLyoKKyAqIHdvcmtlcl9tYWlu KCkgLSBjb21tYW5kIGxvb3AgcnVuIGJ5IHRoZSBmb3JrZWQgY2hpbGQgaW5zaWRlIHRoZSBjZ3Jv dXAuCisgKgorICogQ01EX1VOREVSUlVOOgorICogICBSdW5zIDUgcGVyaW9kcy4gIEluIGVhY2gg cGVyaW9kIHRoZSB3b3JrZXIgYnVybnMgMSBtcyBvZiBDUFUgdGltZSB0aGVuCisgKiAgIHNsZWVw cyBmb3IgdGhlIHJlbWFpbmRlciBvZiB0aGUgcGVyaW9kIHZpYSBjbG9ja19uYW5vc2xlZXAoQ0xP Q0tfTU9OT1RPTklDKS4KKyAqICAgY2xvY2tfbmFub3NsZWVwKCkgZ2VudWluZWx5IGJsb2NrcyDi gJQgdGhlIHByb2Nlc3MgZ29lcyBvZmYtQ1BVIGFuZCBjb25zdW1lcworICogICBubyBxdW90YSB3 aGlsZSBzbGVlcGluZyDigJQgc28gdGhlIGNncm91cCB1c2VzIH4xIG1zIG91dCBvZiAyMCBtcyBx dW90YSBlYWNoCisgKiAgIHBlcmlvZC4gIEFmdGVyIDIgcGVyaW9kcyB0aGUgcnVudGltZSBwb29s IHJlYWNoZXMgdGhlIChxdW90YSArIGJ1cnN0ID0gMzAgbXMpCisgKiAgIGNlaWxpbmcuICBucl9i dXJzdHMgc3RheXMgMCBkdXJpbmcgdGhpcyBwaGFzZSBiZWNhdXNlIHRoZSBwb29sIGlzIG5ldmVy CisgKiAgIGZ1bGx5IGRyYWluZWQuCisgKgorICogQ01EX09WRVJMT0FEOgorICogICBCdXJucyA0 IHggUVVPVEFfVVMgPSA4MCBtcyBvZiBwcm9jZXNzIENQVSB0aW1lIHRvIGRyYWluIHRoZSBwb29s CisgKiAgIGFjcm9zcyBtdWx0aXBsZSBwZXJpb2QgYm91bmRhcmllcyBhbmQgdHJpZ2dlciBidXJz dCBhY2NvdW50aW5nLgorICovCitzdGF0aWMgdm9pZCB3b3JrZXJfbWFpbih2b2lkKQoreworCWVu dW0gd29ya2VyX2NtZCBjbWQ7CisJZW51bSB3b3JrZXJfYWNrIGFjayA9IEFDS19ET05FOworCXNz aXplX3QgbjsKKworCVNBRkVfQ0xPU0UoY21kX3BpcGVbMV0pOworCVNBRkVfQ0xPU0UoYWNrX3Bp cGVbMF0pOworCisJZm9yICg7OykgeworCQluID0gU0FGRV9SRUFEKDEsIGNtZF9waXBlWzBdLCAm Y21kLCBzaXplb2YoY21kKSk7CisJCWlmIChuICE9IChzc2l6ZV90KXNpemVvZihjbWQpKQorCQkJ YnJlYWs7CisKKwkJc3dpdGNoIChjbWQpIHsKKwkJY2FzZSBDTURfVU5ERVJSVU46CisJCQl7CisJ CQkJaW50IGk7CisKKwkJCQlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7CisJCQkJCXN0cnVjdCB0 aW1lc3BlYyBkZWFkbGluZTsKKwkJCQkJbG9uZyBsb25nIG5vd191czsKKworCQkJCQkvKgorCQkJ CQkgKiBCdXJuIDEgbXMgb2YgQ1BVIHF1b3RhLCB0aGVuCisJCQkJCSAqIGdlbnVpbmVseSBzbGVl cCBmb3IgdGhlIHJlc3Qgb2YgdGhlCisJCQkJCSAqIHBlcmlvZC4gIGNsb2NrX25hbm9zbGVlcCgp IGJsb2NrcyB0aGUKKwkJCQkJICogcHJvY2VzcyBvZmYtQ1BVIHNvIG5vIHF1b3RhIGlzIHVzZWQK KwkJCQkJICogd2hpbGUgd2FpdGluZy4KKwkJCQkJICovCisJCQkJCWJ1cm5fY3B1X2ZvcigxMDAw TEwpOworCisJCQkJCW5vd191cyA9IG1vbm90b25pY191cygpOworCQkJCQlkZWFkbGluZS50dl9z ZWMgID0KKwkJCQkJCShub3dfdXMgKyAobG9uZyBsb25nKVBFUklPRF9VUykKKwkJCQkJCS8gMTAw MDAwMExMOworCQkJCQlkZWFkbGluZS50dl9uc2VjID0KKwkJCQkJCSgobm93X3VzICsgKGxvbmcg bG9uZylQRVJJT0RfVVMpCisJCQkJCQklIDEwMDAwMDBMTCkgKiAxMDAwTEw7CisJCQkJCXdoaWxl IChjbG9ja19uYW5vc2xlZXAoQ0xPQ0tfTU9OT1RPTklDLAorCQkJCQkJVElNRVJfQUJTVElNRSwg JmRlYWRsaW5lLAorCQkJCQkJTlVMTCkgPT0gRUlOVFIpCisJCQkJCQk7CisJCQkJfQorCQkJfQor CQkJYnJlYWs7CisKKwkJY2FzZSBDTURfT1ZFUkxPQUQ6CisJCQlidXJuX2NwdV9mb3IoNExMICog KGxvbmcgbG9uZylRVU9UQV9VUyk7CisJCQlicmVhazsKKworCQljYXNlIENNRF9FWElUOgorCQkJ U0FGRV9DTE9TRShjbWRfcGlwZVswXSk7CisJCQlTQUZFX0NMT1NFKGFja19waXBlWzFdKTsKKwkJ CWV4aXQoMCk7CisKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisKKwkJU0FGRV9XUklURSgx LCBhY2tfcGlwZVsxXSwgJmFjaywgc2l6ZW9mKGFjaykpOworCX0KKworCWV4aXQoMSk7Cit9CisK K3N0YXRpYyB2b2lkIHdvcmtlcl9zdGFydChjb25zdCBzdHJ1Y3QgdHN0X2NnX2dyb3VwICpjZykK K3sKKwlTQUZFX1BJUEUoY21kX3BpcGUpOworCVNBRkVfUElQRShhY2tfcGlwZSk7CisKKwl3b3Jr ZXJfcGlkID0gU0FGRV9GT1JLKCk7CisJaWYgKCF3b3JrZXJfcGlkKSB7CisJCVNBRkVfQ0dfUFJJ TlRGKGNnLCAiY2dyb3VwLnByb2NzIiwgIiVkIiwgZ2V0cGlkKCkpOworCQl3b3JrZXJfbWFpbigp OworCQlleGl0KDEpOworCX0KKworCVNBRkVfQ0xPU0UoY21kX3BpcGVbMF0pOworCVNBRkVfQ0xP U0UoYWNrX3BpcGVbMV0pOworfQorCitzdGF0aWMgdm9pZCB3b3JrZXJfc2VuZChlbnVtIHdvcmtl cl9jbWQgY21kKQoreworCWVudW0gd29ya2VyX2FjayBhY2s7CisKKwlTQUZFX1dSSVRFKDEsIGNt ZF9waXBlWzFdLCAmY21kLCBzaXplb2YoY21kKSk7CisJaWYgKGNtZCAhPSBDTURfRVhJVCkKKwkJ U0FGRV9SRUFEKDEsIGFja19waXBlWzBdLCAmYWNrLCBzaXplb2YoYWNrKSk7Cit9CisKK3N0YXRp YyB2b2lkIHdvcmtlcl9zdG9wKHZvaWQpCit7CisJaWYgKHdvcmtlcl9waWQgPCAwKQorCQlyZXR1 cm47CisKKwl3b3JrZXJfc2VuZChDTURfRVhJVCk7CisJU0FGRV9XQUlUUElEKHdvcmtlcl9waWQs IE5VTEwsIDApOworCXdvcmtlcl9waWQgPSAtMTsKKworCWlmIChjbWRfcGlwZVsxXSA+PSAwKSB7 CisJCVNBRkVfQ0xPU0UoY21kX3BpcGVbMV0pOworCQljbWRfcGlwZVsxXSA9IC0xOworCX0KKwlp ZiAoYWNrX3BpcGVbMF0gPj0gMCkgeworCQlTQUZFX0NMT1NFKGFja19waXBlWzBdKTsKKwkJYWNr X3BpcGVbMF0gPSAtMTsKKwl9Cit9CisKKy8qCisgKiB0YzFfZGVmYXVsdF9hbmRfemVybyAtIGRl ZmF1bHQgdmFsdWUgaXMgMDsgY2xlYXJpbmcgYmFjayB0byAwIHdvcmtzLgorICoKKyAqIEEgZnJl c2hseSBjcmVhdGVkIGNncm91cCBtdXN0IHJlYWQgMCBmcm9tIGNwdS5tYXguYnVyc3QuICBBZnRl ciB3cml0aW5nCisgKiBhIG5vbi16ZXJvIHZhbHVlLCB3cml0aW5nIDAgbXVzdCByZXN0b3JlIGl0 IHRvIDAuCisgKi8KK3N0YXRpYyB2b2lkIHRjMV9kZWZhdWx0X2FuZF96ZXJvKHZvaWQpCit7CisJ dW5zaWduZWQgbG9uZyBsb25nIGJ1cnN0OworCisJY2dfY2hpbGQgPSB0c3RfY2dfZ3JvdXBfbWso dHN0X2NnLCAiYnVyc3RfdGMxIik7CisKKwlidXJzdCA9IHJlYWRfYnVyc3QoY2dfY2hpbGQpOwor CWlmIChidXJzdCAhPSAwKQorCQl0c3RfcmVzKFRGQUlMLCAiJXM6IGV4cGVjdGVkIGRlZmF1bHQg MCwgZ290ICVsbHUiLCBfX2Z1bmNfXywgYnVyc3QpOworCWVsc2UKKwkJdHN0X3JlcyhUUEFTUywg IiVzOiBjcHUubWF4LmJ1cnN0IGRlZmF1bHRzIHRvIDAiLCBfX2Z1bmNfXyk7CisKKwlzZXRfY3B1 X21heChjZ19jaGlsZCwgUVVPVEFfVVMsIFBFUklPRF9VUyk7CisJd3JpdGVfYnVyc3QoY2dfY2hp bGQsIEJVUlNUX1VTKTsKKwl3cml0ZV9idXJzdChjZ19jaGlsZCwgMCk7CisKKwlidXJzdCA9IHJl YWRfYnVyc3QoY2dfY2hpbGQpOworCWlmIChidXJzdCA9PSAwKQorCQl0c3RfcmVzKFRQQVNTLCAi JXM6IGJ1cnN0IGNsZWFyZWQgYmFjayB0byAwIiwgX19mdW5jX18pOworCWVsc2UKKwkJdHN0X3Jl cyhURkFJTCwgIiVzOiBleHBlY3RlZCAwIGFmdGVyIGNsZWFyLCBnb3QgJWxsdSB1cyIsIF9fZnVu Y19fLCBidXJzdCk7CisKKwljZ19jaGlsZCA9IHRzdF9jZ19ncm91cF9ybShjZ19jaGlsZCk7Cit9 CisKKy8qCisgKiB0YzJfd3JpdGVfcmVhZGJhY2tfYW5kX2JvdW5kYXJ5IC0gdmFsaWQgcmVhZGJh Y2ssIGJ1cnN0ID09IHF1b3RhIGFjY2VwdGVkLAorICogYnVyc3QgPiBxdW90YSByZWplY3RlZC4K KyAqCisgKiBWZXJpZmllcyB3cml0ZS9yZWFkYmFjayBjb3JyZWN0bmVzcyBmb3IgYnVyc3QgPSBx dW90YS8yLCBjb25maXJtcworICogYnVyc3QgPT0gcXVvdGEgaXMgdGhlIHVwcGVyIHZhbGlkIGJv dW5kYXJ5LCBhbmQgY29uZmlybXMgYnVyc3QgPiBxdW90YQorICogaXMgcmVqZWN0ZWQgd2l0aCBF SU5WQUwgd2l0aG91dCBjb3JydXB0aW5nIHRoZSBzdG9yZWQgdmFsdWUuCisgKi8KK3N0YXRpYyB2 b2lkIHRjMl93cml0ZV9yZWFkYmFja19hbmRfYm91bmRhcnkodm9pZCkKK3sKKwljb25zdCB1bnNp Z25lZCBsb25nIGxvbmcgYmFkX2J1cnN0ID0gUVVPVEFfVVMgKyAxOworCXVuc2lnbmVkIGxvbmcg bG9uZyBidXJzdDsKKwlpbnQgZXJyOworCisJY2dfY2hpbGQgPSB0c3RfY2dfZ3JvdXBfbWsodHN0 X2NnLCAiYnVyc3RfdGMyIik7CisKKwlzZXRfY3B1X21heChjZ19jaGlsZCwgUVVPVEFfVVMsIFBF UklPRF9VUyk7CisJd3JpdGVfYnVyc3QoY2dfY2hpbGQsIEJVUlNUX1VTKTsKKworCWJ1cnN0ID0g cmVhZF9idXJzdChjZ19jaGlsZCk7CisJaWYgKGJ1cnN0ID09IEJVUlNUX1VTKQorCQl0c3RfcmVz KFRQQVNTLCAidGMyX3dyaXRlX3JlYWRiYWNrOiBjcHUubWF4LmJ1cnN0IHdyaXRlL3JlYWRiYWNr ICVsbHUgdXMiLCBidXJzdCk7CisJZWxzZQorCQl0c3RfcmVzKFRGQUlMLCAidGMyX3dyaXRlX3Jl YWRiYWNrOiBleHBlY3RlZCAlbGx1IHVzLCBnb3QgJWxsdSB1cyIsCisJCQlCVVJTVF9VUywgYnVy c3QpOworCisJd3JpdGVfYnVyc3QoY2dfY2hpbGQsIFFVT1RBX1VTKTsKKworCWJ1cnN0ID0gcmVh ZF9idXJzdChjZ19jaGlsZCk7CisJaWYgKGJ1cnN0ID09IFFVT1RBX1VTKQorCQl0c3RfcmVzKFRQ QVNTLCAidGMyX2J1cnN0X2VxdWFsc19xdW90YTogYnVyc3QgPT0gcXVvdGEgKCVsbHUgdXMpIGFj Y2VwdGVkIiwgYnVyc3QpOworCWVsc2UKKwkJdHN0X3JlcyhURkFJTCwgInRjMl9idXJzdF9lcXVh bHNfcXVvdGE6IGV4cGVjdGVkICVsbHUgdXMsIGdvdCAlbGx1IHVzIiwKKwkJCVFVT1RBX1VTLCBi dXJzdCk7CisKKwkvKgorCSAqIFJlc3RvcmUgYSBrbm93biBwcmUtc2VlZCB2YWx1ZSBiZWZvcmUg dGhlIHJlamVjdGlvbiB0ZXN0IHNvIHRoYXQKKwkgKiBzaWxlbnQgY29ycnVwdGlvbiBvZiB0aGUg c3RvcmVkIGJ1cnN0IGlzIGRldGVjdGFibGUuCisJICovCisJd3JpdGVfYnVyc3QoY2dfY2hpbGQs IEJVUlNUX1VTKTsKKworCWVyciA9IHRyeV93cml0ZV9idXJzdChjZ19jaGlsZCwgYmFkX2J1cnN0 KTsKKwlidXJzdCA9IHJlYWRfYnVyc3QoY2dfY2hpbGQpOworCisJaWYgKCFlcnIpIHsKKwkJdHN0 X3JlcyhURkFJTCwKKwkJCSJ0YzJfYnVyc3RfZXhjZWVkc19xdW90YTogYnVyc3Q9JWxsdSAocXVv dGErMSkgd3JpdGUgc3VjY2VlZGVkLCBleHBlY3RlZCBFSU5WQUwiLAorCQkJYmFkX2J1cnN0KTsK Kwl9IGVsc2UgeworCQlpZiAoZXJyICE9IEVJTlZBTCkgeworCQkJdHN0X3JlcyhUV0FSTiwKKwkJ CQkidGMyX2J1cnN0X2V4Y2VlZHNfcXVvdGE6IGdvdCBlcnJubz0lZCAoJXMpLCBleHBlY3RlZCBF SU5WQUwiLAorCQkJCWVyciwgdHN0X3N0cmVycm5vKGVycikpOworCQl9CisKKwkJaWYgKGJ1cnN0 ICE9IEJVUlNUX1VTKSB7CisJCQl0c3RfcmVzKFRGQUlMLAorCQkJCSJ0YzJfYnVyc3RfZXhjZWVk c19xdW90YTogYnVyc3QgY29ycnVwdGVkIGFmdGVyIHJlamVjdGVkIHdyaXRlIChleHBlY3RlZCAl bGx1IHVzLCBnb3QgJWxsdSB1cykiLAorCQkJCUJVUlNUX1VTLCBidXJzdCk7CisJCX0gZWxzZSB7 CisJCQl0c3RfcmVzKFRQQVNTLAorCQkJCSJ0YzJfYnVyc3RfZXhjZWVkc19xdW90YTogYnVyc3Q9 JWxsdSByZWplY3RlZCAoZXJybm89JWQpLCBzdG9yZWQgdmFsdWUgdW5jaGFuZ2VkICglbGx1IHVz KSIsCisJCQkJYmFkX2J1cnN0LCBlcnIsIGJ1cnN0KTsKKwkJfQorCX0KKworCWNnX2NoaWxkID0g dHN0X2NnX2dyb3VwX3JtKGNnX2NoaWxkKTsKK30KKworLyoKKyAqIHRjM19mdW5jdGlvbmFsX2J1 cnN0X2FjY291bnRpbmcgLSB2ZXJpZnkgbnJfYnVyc3RzIGFuZCBidXJzdF91c2VjIGluY3JlYXNl LgorICoKKyAqIENvbmZpZ3VyYXRpb246IHF1b3RhPTIwbXMgIGJ1cnN0PTEwbXMgIHBlcmlvZD0x MDBtcworICogUG9vbCBjZWlsaW5nOiAgcXVvdGEgKyBidXJzdCA9IDMwbXMKKyAqCisgKiBQaGFz ZSBBICh1bmRlcnJ1bikgLSB3b3JrZXIgYnVybnMgfjEgbXMgQ1BVIHBlciBwZXJpb2Qgb3ZlciA1 IHBlcmlvZHM6CisgKiAgIENQVSB1c2FnZSB+MSBtcy9wZXJpb2QgPDwgMjAgbXMgcXVvdGEuICBB ZnRlciAyIHBlcmlvZHMgdGhlIHBvb2wgcmVhY2hlcworICogICB0aGUgMzAgbXMgY2VpbGluZy4g IG5yX2J1cnN0cyBzdGF5cyAwOiB0aGUgcG9vbCBmaWxscyBidXQgaXMgbmV2ZXIgZHJhaW5lZAor ICogICBiZWxvdyBydW50aW1lX3NuYXAsIHNvIHRoZSBzdXJwbHVzIGF0IHJlZmlsbCBpcyBuZXZl ciBwb3NpdGl2ZS4KKyAqCisgKiBQaGFzZSBCIChvdmVybG9hZCkgLSB3b3JrZXIgYnVybnMgNCB4 IFFVT1RBX1VTID0gODAgbXMgcHJvY2VzcyBDUFUgdGltZToKKyAqICAgVW5kZXIgMjAgbXMgcXVv dGEgdGhpcyBzcGFucyA+PSA0IHdhbGwtY2xvY2sgcGVyaW9kcy4KKyAqICAgUGVyaW9kIEIxOiBw b29sPTMwbXMsIHRhc2sgY29uc3VtZXMgMzBtcyAtPiBwb29sLT4wLCB0aHJvdHRsZWQuCisgKiAg IFBlcmlvZCBCMiByZWZpbGw6CisgKiAgICAgcnVudGltZSAgICs9IDIwbXMgICAgICAgICAtPiAy MG1zCisgKiAgICAgc3VycGx1cyAgICA9IHNuYXAoMzApIC0gMjAgPSArMTBtcyA+IDAKKyAqICAg ICBucl9idXJzdCsrICwgYnVyc3RfdGltZSAgKz0gMTBtcworICogICAgIHJ1bnRpbWUgICAgPSBt aW4oMjAsIDMwKSAgPSAyMG1zCisgKgorICogVGhlICdiZWZvcmUnIHNuYXBzaG90IGlzIHRha2Vu IGFmdGVyIHNldHVwIGJ1dCBCRUZPUkUgdGhlIHdvcmtlciBzdGFydHMsCisgKiBzbyBpdCBjYXB0 dXJlcyB0aGUgemVybyBiYXNlbGluZS4gIEFueSBidXJzdCBhY3Rpdml0eSBmcm9tIHRoZSB1bmRl cnJ1bgorICogcGhhc2UgKHRoZXJlIHNob3VsZCBiZSBub25lKSBpcyBhbHJlYWR5IGNvdW50ZWQg aW4gJ2JlZm9yZScuICBBZnRlciB0aGUKKyAqIG92ZXJsb2FkIHBoYXNlIGJvdGggY291bnRlcnMg bXVzdCBiZSBzdHJpY3RseSBncmVhdGVyIHRoYW4gJ2JlZm9yZScuCisgKi8KK3N0YXRpYyB2b2lk IHRjM19mdW5jdGlvbmFsX2J1cnN0X2FjY291bnRpbmcodm9pZCkKK3sKKwlzdHJ1Y3QgYnVyc3Rf c3RhdCBiZWZvcmUsIGFmdGVyOworCWludCBzdGF0X29rOworCisJY2dfY2hpbGQgPSB0c3RfY2df Z3JvdXBfbWsodHN0X2NnLCAiYnVyc3RfdGMzIik7CisKKwlzZXRfY3B1X21heChjZ19jaGlsZCwg UVVPVEFfVVMsIFBFUklPRF9VUyk7CisJd3JpdGVfYnVyc3QoY2dfY2hpbGQsIEJVUlNUX1VTKTsK KworCS8qCisJICogU25hcHNob3QgQkVGT1JFIHRoZSB3b3JrZXIgc3RhcnRzLiAgY3B1LnN0YXQg Y291bnRlcnMgc3RhcnQgYXQgMAorCSAqIG9uIGEgZnJlc2hseSBjcmVhdGVkIGNncm91cDsgY2Fw dHVyaW5nIGhlcmUgZ2l2ZXMgYSBjbGVhbiBiYXNlbGluZQorCSAqIHRoYXQgaXMgdW5hZmZlY3Rl ZCBieSBhbnkgc2NoZWR1bGluZyBhY3Rpdml0eSBpbnNpZGUgdGhlIHdvcmtlci4KKwkgKi8KKwlz dGF0X29rID0gcmVhZF9idXJzdF9zdGF0KGNnX2NoaWxkLCAmYmVmb3JlKTsKKwlpZiAoc3RhdF9v ayA8IDApIHsKKwkJdHN0X3JlcyhUQ09ORiwKKwkJCSIlczogbnJfYnVyc3RzL2J1cnN0X3VzZWMg YWJzZW50IGZyb20gY3B1LnN0YXQgLS0ga2VybmVsIG1heSBsYWNrIENPTkZJR19DRlNfQkFORFdJ RFRIIiwKKwkJCV9fZnVuY19fKTsKKwkJY2dfY2hpbGQgPSB0c3RfY2dfZ3JvdXBfcm0oY2dfY2hp bGQpOworCQlyZXR1cm47CisJfQorCisJd29ya2VyX3N0YXJ0KGNnX2NoaWxkKTsKKwl3b3JrZXJf c2VuZChDTURfVU5ERVJSVU4pOworCXdvcmtlcl9zZW5kKENNRF9PVkVSTE9BRCk7CisJd29ya2Vy X3N0b3AoKTsKKworCXJlYWRfYnVyc3Rfc3RhdChjZ19jaGlsZCwgJmFmdGVyKTsKKworCXRzdF9y ZXMoVElORk8sICIlczogbnJfYnVyc3RzICVsbHUtPiVsbHUgIGJ1cnN0X3VzZWMgJWxsdS0+JWxs dSIsCisJCV9fZnVuY19fLAorCQliZWZvcmUubnJfYnVyc3RzLCBhZnRlci5ucl9idXJzdHMsCisJ CWJlZm9yZS5idXJzdF91c2VjLCBhZnRlci5idXJzdF91c2VjKTsKKworCWlmIChhZnRlci5ucl9i dXJzdHMgPiBiZWZvcmUubnJfYnVyc3RzICYmCisJICAgIGFmdGVyLmJ1cnN0X3VzZWMgPiBiZWZv cmUuYnVyc3RfdXNlYykgeworCQl0c3RfcmVzKFRQQVNTLAorCQkJIiVzOiBucl9idXJzdHMgKyVs bHUgIGJ1cnN0X3VzZWMgKyVsbHUgdXMiLAorCQkJX19mdW5jX18sCisJCQlhZnRlci5ucl9idXJz dHMgIC0gYmVmb3JlLm5yX2J1cnN0cywKKwkJCWFmdGVyLmJ1cnN0X3VzZWMgLSBiZWZvcmUuYnVy c3RfdXNlYyk7CisJfSBlbHNlIHsKKwkJdHN0X3JlcyhURkFJTCwKKwkJCSIlczogYnVyc3QgYWNj b3VudGluZyBkaWQgbm90IGluY3JlYXNlIChucl9idXJzdHMgJWxsdS0+JWxsdSAgYnVyc3RfdXNl YyAlbGx1LT4lbGx1KSIsCisJCQlfX2Z1bmNfXywKKwkJCWJlZm9yZS5ucl9idXJzdHMsIGFmdGVy Lm5yX2J1cnN0cywKKwkJCWJlZm9yZS5idXJzdF91c2VjLCBhZnRlci5idXJzdF91c2VjKTsKKwl9 CisKKwljZ19jaGlsZCA9IHRzdF9jZ19ncm91cF9ybShjZ19jaGlsZCk7Cit9CisKKy8qCisgKiB0 YzRfcHJlc2VydmVkX2FmdGVyX3F1b3RhX2NsZWFyIC0gYnVyc3QgdmFsdWUgc3Vydml2ZXMgcXVv dGEgcmVtb3ZhbC4KKyAqCisgKiBTZXR0aW5nIGNwdS5tYXggdG8gIm1heCA8cGVyaW9kPiIgKG5v IHF1b3RhKSBtdXN0IG5vdCByZXNldCB0aGUgc3RvcmVkCisgKiBidXJzdCB2YWx1ZS4KKyAqLwor c3RhdGljIHZvaWQgdGM0X3ByZXNlcnZlZF9hZnRlcl9xdW90YV9jbGVhcih2b2lkKQoreworCXVu c2lnbmVkIGxvbmcgbG9uZyBidXJzdF9hZnRlcjsKKworCWNnX2NoaWxkID0gdHN0X2NnX2dyb3Vw X21rKHRzdF9jZywgImJ1cnN0X3RjNCIpOworCisJc2V0X2NwdV9tYXgoY2dfY2hpbGQsIFFVT1RB X1VTLCBQRVJJT0RfVVMpOworCXdyaXRlX2J1cnN0KGNnX2NoaWxkLCBCVVJTVF9VUyk7CisJc2V0 X2NwdV9tYXgoY2dfY2hpbGQsIFVMTE9OR19NQVgsIFBFUklPRF9VUyk7CisKKwlidXJzdF9hZnRl ciA9IHJlYWRfYnVyc3QoY2dfY2hpbGQpOworCWlmIChidXJzdF9hZnRlciA9PSBCVVJTVF9VUykK KwkJdHN0X3JlcyhUUEFTUywgIiVzOiBidXJzdCBwcmVzZXJ2ZWQgKCVsbHUgdXMpIGFmdGVyIHF1 b3RhIGNsZWFyZWQiLAorCQkJX19mdW5jX18sIGJ1cnN0X2FmdGVyKTsKKwllbHNlCisJCXRzdF9y ZXMoVEZBSUwsICIlczogZXhwZWN0ZWQgJWxsdSB1cyBhZnRlciBxdW90YSBjbGVhciwgZ290ICVs bHUgdXMiLAorCQkJX19mdW5jX18sIEJVUlNUX1VTLCBidXJzdF9hZnRlcik7CisKKwljZ19jaGls ZCA9IHRzdF9jZ19ncm91cF9ybShjZ19jaGlsZCk7Cit9CisKKy8qCisgKiB0YzVfcHJlc2VydmVk X2FmdGVyX3BlcmlvZF9jaGFuZ2UgLSBidXJzdCB2YWx1ZSBzdXJ2aXZlcyBwZXJpb2QgdXBkYXRl LgorICoKKyAqIFVwZGF0aW5nIG9ubHkgdGhlIHBlcmlvZCBpbiBjcHUubWF4IG11c3Qgbm90IHNp bGVudGx5IGNsZWFyIHRoZSBidXJzdCB2YWx1ZS4KKyAqLworc3RhdGljIHZvaWQgdGM1X3ByZXNl cnZlZF9hZnRlcl9wZXJpb2RfY2hhbmdlKHZvaWQpCit7CisJY29uc3QgdW5zaWduZWQgbG9uZyBs b25nIG5ld19wZXJpb2QgPSAyMDAwMDBVTEw7CisJdW5zaWduZWQgbG9uZyBsb25nIGJ1cnN0X2Fm dGVyOworCisJY2dfY2hpbGQgPSB0c3RfY2dfZ3JvdXBfbWsodHN0X2NnLCAiYnVyc3RfdGM1Iik7 CisKKwlzZXRfY3B1X21heChjZ19jaGlsZCwgUVVPVEFfVVMsIFBFUklPRF9VUyk7CisJd3JpdGVf YnVyc3QoY2dfY2hpbGQsIEJVUlNUX1VTKTsKKwlzZXRfY3B1X21heChjZ19jaGlsZCwgUVVPVEFf VVMsIG5ld19wZXJpb2QpOworCisJYnVyc3RfYWZ0ZXIgPSByZWFkX2J1cnN0KGNnX2NoaWxkKTsK KwlpZiAoYnVyc3RfYWZ0ZXIgPT0gQlVSU1RfVVMpCisJCXRzdF9yZXMoVFBBU1MsICIlczogYnVy c3QgcHJlc2VydmVkICglbGx1IHVzKSBhZnRlciBwZXJpb2QgY2hhbmdlZCB0byAlbGx1IHVzIiwK KwkJCV9fZnVuY19fLCBidXJzdF9hZnRlciwgbmV3X3BlcmlvZCk7CisJZWxzZQorCQl0c3RfcmVz KFRGQUlMLCAiJXM6IGV4cGVjdGVkICVsbHUgdXMgYWZ0ZXIgcGVyaW9kIGNoYW5nZSwgZ290ICVs bHUgdXMiLAorCQkJX19mdW5jX18sIEJVUlNUX1VTLCBidXJzdF9hZnRlcik7CisKKwljZ19jaGls ZCA9IHRzdF9jZ19ncm91cF9ybShjZ19jaGlsZCk7Cit9CisKK3N0YXRpYyB2b2lkICgqY29uc3Qg dGNfZnVuY3NbXSkodm9pZCkgPSB7CisJdGMxX2RlZmF1bHRfYW5kX3plcm8sCisJdGMyX3dyaXRl X3JlYWRiYWNrX2FuZF9ib3VuZGFyeSwKKwl0YzNfZnVuY3Rpb25hbF9idXJzdF9hY2NvdW50aW5n LAorCXRjNF9wcmVzZXJ2ZWRfYWZ0ZXJfcXVvdGFfY2xlYXIsCisJdGM1X3ByZXNlcnZlZF9hZnRl cl9wZXJpb2RfY2hhbmdlLAorfTsKKworc3RhdGljIHZvaWQgcnVuX3Rlc3QodW5zaWduZWQgaW50 IG4pCit7CisJdGNfZnVuY3Nbbl0oKTsKK30KKworc3RhdGljIHZvaWQgc2V0dXAodm9pZCkKK3sK KwlpbnQgZGlyZmQ7CisKKwlkaXJmZCA9IHRzdF9jZ19ncm91cF91bmlmaWVkX2Rpcl9mZCh0c3Rf Y2cpOworCWlmIChkaXJmZCA8IDApCisJCXRzdF9icmsoVEJST0ssICJ0c3RfY2dfZ3JvdXBfdW5p ZmllZF9kaXJfZmQgZmFpbGVkIik7CisKKwlpZiAoZmFjY2Vzc2F0KGRpcmZkLCAiY3B1Lm1heC5i dXJzdCIsIEZfT0ssIDApICE9IDApCisJCXRzdF9icmsoVENPTkYsCisJCQkiY3B1Lm1heC5idXJz dCBub3QgcHJlc2VudCAtLSBrZXJuZWwgcmVxdWlyZXMgQ09ORklHX0NGU19CQU5EV0lEVEg9eSIp OworCisJaWYgKGZhY2Nlc3NhdChkaXJmZCwgImNwdS5zdGF0IiwgRl9PSywgMCkgIT0gMCkKKwkJ dHN0X2JyayhUQ09ORiwgImNwdS5zdGF0IG5vdCBwcmVzZW50Iik7CisKKwl0c3RfcmVzKFRJTkZP LCAicXVvdGE9JWxsdSB1cyAgYnVyc3Q9JWxsdSB1cyAgcGVyaW9kPSVsbHUgdXMiLAorCQlRVU9U QV9VUywgQlVSU1RfVVMsIFBFUklPRF9VUyk7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFudXAodm9p ZCkKK3sKKwlpZiAod29ya2VyX3BpZCA+PSAwKQorCQl3b3JrZXJfc3RvcCgpOworCisJaWYgKGNt ZF9waXBlWzFdID49IDApIHsKKwkJU0FGRV9DTE9TRShjbWRfcGlwZVsxXSk7CisJCWNtZF9waXBl WzFdID0gLTE7CisJfQorCWlmIChhY2tfcGlwZVswXSA+PSAwKSB7CisJCVNBRkVfQ0xPU0UoYWNr X3BpcGVbMF0pOworCQlhY2tfcGlwZVswXSA9IC0xOworCX0KKworCWlmIChjZ19jaGlsZCkKKwkJ Y2dfY2hpbGQgPSB0c3RfY2dfZ3JvdXBfcm0oY2dfY2hpbGQpOworfQorCitzdGF0aWMgc3RydWN0 IHRzdF90ZXN0IHRlc3QgPSB7CisJLnRjbnQJCT0gQVJSQVlfU0laRSh0Y19mdW5jcyksCisJLnRl c3QJCT0gcnVuX3Rlc3QsCisJLnNldHVwCQk9IHNldHVwLAorCS5jbGVhbnVwCT0gY2xlYW51cCwK KwkubmVlZHNfcm9vdAk9IDEsCisJLmZvcmtzX2NoaWxkCT0gMSwKKwkudGltZW91dAk9IDYwLAor CS50YWludF9jaGVjawk9IFRTVF9UQUlOVF9XIHwgVFNUX1RBSU5UX0QsCisJLm5lZWRzX2tjb25m aWdzID0gKGNvbnN0IGNoYXIgKltdKSB7CisJCSJDT05GSUdfQ0ZTX0JBTkRXSURUSCIsCisJCU5V TEwKKwl9LAorCS5uZWVkc19jZ3JvdXBfdmVyICAgID0gVFNUX0NHX1YyLAorCS5uZWVkc19jZ3Jv dXBfY3RybHMgID0gKGNvbnN0IGNoYXIgKmNvbnN0IFtdKSB7ICJjcHUiLCBOVUxMIH0sCit9Owot LSAKMi41My4wCgoKLS0gCk1haWxpbmcgbGlzdCBpbmZvOiBodHRwczovL2xpc3RzLmxpbnV4Lml0 L2xpc3RpbmZvL2x0cAo=