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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39F00C433EF for ; Mon, 25 Jul 2022 07:55:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229793AbiGYHze (ORCPT ); Mon, 25 Jul 2022 03:55:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231382AbiGYHzd (ORCPT ); Mon, 25 Jul 2022 03:55:33 -0400 Received: from esa10.fujitsucc.c3s2.iphmx.com (esa10.fujitsucc.c3s2.iphmx.com [68.232.159.247]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 630F1DE9B for ; Mon, 25 Jul 2022 00:55:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1658735730; x=1690271730; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=/UbAiA72+KHlhmZ2hTEH15Y11GRoYIVEZu3sR2Yklmc=; b=dY2a34Hac6r4v8GXQCtzNnOOMpqFU2dISvWM/tM7s6+NnvLls5WTRxXk oTr347Vi01s3OSN7Gsi7Y0h7TrlV+RQathS0yIdNp23N7UfZ36ofacuYD nf32TK6ARLq5SpnxltCAeot9N4vKkJueaR4pGXFPQYy2t31FbiO6iGFfP 1RX3HCVGrJ/Tps+G/mBrID7UEQ6ampg1fDrCqP2f/soxVa38d2eU9/8FZ AYn4E12Lyi4A3cfkpcuSH1oC7OaIb04hmEODEMCmxaonC2JCac/IqwPpS P9jgJdhPETgTRGaLBZUGKMj1Ykv2OWOsWHNuaRggeVMLHkECEP/NBle+9 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10418"; a="61303054" X-IronPort-AV: E=Sophos;i="5.93,192,1654527600"; d="scan'208";a="61303054" Received: from mail-os0jpn01lp2108.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.108]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jul 2022 16:55:27 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RNC0F1/5Z7xEOia1z7DAUjEWKT4SI+6KdrJaO4HrUumY5tS9JnhDyEOsbQtK3HEpZ2vpyn3MMutkWuAaih9eu6yjO4caI10oA5DXY0djUhgjIMPiWO231HackEGwBenIXthXaSn+qYZlfX/Y+5QIeSjMQp4BTKLga95DCM4IxOZFhwnEl9/Ycz+MAOFY7cQjLwBHfkEF6FiB3GfbK4MB9acicxrYrriHr0U6GW62AhtjAfvX/aZt0aM/mdYjIQP+VEUdrCZDb5nAddnDnk+CfgdUgetTNhOr8OzahJv+Bj9ovFKNisDm20dxA5eUXiLhKqSJuQA8Cwpjl8CzlcH3Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/UbAiA72+KHlhmZ2hTEH15Y11GRoYIVEZu3sR2Yklmc=; b=m0OVwU9WoG/E1TU15AhDQKKQ3PczQjF4OCqk9zb/QDiTdq8xoNYYZEgRtJw+V4onheBHStu357gk6SJkSS3ef1uMkGMOls8ucqqmKLgVPf3iWFzLIceD95QUSaiZaSzd42OdcoxQn0dFBdOccntkkyqlT8AmczysTcuV/oE7I/mOwbkS86EsdyHbI7PM4FmT+Wrtxh1vtgnvZxU5YAV7bM85enAD1T5RPY5tEdgG4iNa0nME6egBao2dfIGMNmZH4ySu8edfQFUlx6/vqttb3giBc2qZAVPsYEG3zg8GF98tZjc8AvHrnvQftFfExaED5A+IT/YmKk3i+QsI+oqB4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from TY2PR01MB4427.jpnprd01.prod.outlook.com (2603:1096:404:10d::20) by OSBPR01MB1894.jpnprd01.prod.outlook.com (2603:1096:603:20::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.20; Mon, 25 Jul 2022 07:55:24 +0000 Received: from TY2PR01MB4427.jpnprd01.prod.outlook.com ([fe80::5092:a34:8a79:5e78]) by TY2PR01MB4427.jpnprd01.prod.outlook.com ([fe80::5092:a34:8a79:5e78%5]) with mapi id 15.20.5458.024; Mon, 25 Jul 2022 07:55:23 +0000 From: "xuyang2018.jy@fujitsu.com" To: "fstests@vger.kernel.org" CC: Christian Brauner Subject: Re: [PATCH v1 1/2] vfs: Add new setgid_create_umask test Thread-Topic: [PATCH v1 1/2] vfs: Add new setgid_create_umask test Thread-Index: AQHYbFrWZGGhBv4WLkea2dxN2KJ35K2PMA8A Date: Mon, 25 Jul 2022 07:55:23 +0000 Message-ID: <91470460-44cd-90a3-2e95-8e0fbefcd9ad@fujitsu.com> References: <1653062664-2125-1-git-send-email-xuyang2018.jy@fujitsu.com> In-Reply-To: <1653062664-2125-1-git-send-email-xuyang2018.jy@fujitsu.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f850a668-4134-41c1-5fbd-08da6e1307a9 x-ms-traffictypediagnostic: OSBPR01MB1894:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: a3f9ffNkh0SEvBltWT4tcphVhLuVk+XZMNosjAol6teRXw1v4brmlAQIy+GFCWkBE0ChSVKVU71KLJX5vjUT/gp9ws1Q6p/XYHJtiaULLgb+9cU9pfhhLYmpFLASXZnop8MBo8CdKLcGWtzwPsSLUiSAmSgt12d6HjaXqIgLzXST6rq28cmcr9jBbLLdiQdWzRSCN/m2d+gh5DQcEmknKWqtjI8AEFepx5XGN4Vtmw0QW90aYzRvxsx1OHA6K0rDHijNQWa4NT7RpKRZAFalm99QwoN2eOW/1KuaBdX9D0LLzuhHWInIDYrUw4FDGtA1cqQKEfTbThBDjU1Hra34jWUszHF2rDVNp5tAp3uEjMTdYOrkIWBrVP8zdgtCYik5EEZYerp68c2mv7K0o7mw1UdserUYf1pcjNlIWphn/eUAcEDv7PBKXrAHJlYuy4Alv6mM2WTWyOkw8ua4a4Ta8oOwdj4c4nrZy07d/0kKDPffUc1KUQ80s1WZbLWg0LtYL+aEnn8QbHE3I++q35pUdWll31ZG56dZDfh5EUDeMyZ5A6IhEIz8oXxS3/AavFfJS/omaxEIjiCcm+QKQRoo6p+Ul87Vg5i+90QoavrKaKCYH561n6uNH+jKV2kBVMLQLTfjSnuWexMi/2/r3+8sCl2yAm86gbdMzJeJoYzjr26u1kwGDjT/KmomLfJvX5X2e8m0/KHM8SSQiIn0ysHQlWBR1vBSTzRjjDgUuVdlwTPonuSu69n41iAzzpGK/ZMkQYHyve0++IDF6WEXv4kdAQ8wMajLd8vC1Tp8xCDSxMLV5HmywxiqZsigJaLmyLGvCHPncxiXLfe6iwJUVVC9fbxgzVXsCFGGa0AMgWJL3MLG7qlTT2FHfqnaA2oAazJbg1slD4t0aqOZT/f42U7tXA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR01MB4427.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(376002)(136003)(346002)(366004)(39860400002)(396003)(6512007)(71200400001)(31686004)(66446008)(8936002)(64756008)(66476007)(66556008)(66946007)(316002)(6916009)(26005)(83380400001)(76116006)(41300700001)(36756003)(85182001)(2616005)(8676002)(91956017)(186003)(4326008)(2906002)(38100700002)(122000001)(82960400001)(5660300002)(30864003)(6486002)(478600001)(6506007)(966005)(38070700005)(31696002)(86362001)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T2luN2piOVFEaUYrVkxyZGpNMEY4cmV3NGJRSVpXMXRIUDB5Z21ldm8yUUxP?= =?utf-8?B?S05sRWpTUFJBWGNFTldSQ3RmbzBZZm9xaUFUaWpjTFR2dm15U1VvUzBUczQ1?= =?utf-8?B?R25UeVBMZzM2NFY0b3RTVllDSGNqSXhrT2xFaTBuK2VuY1JGN3NLYVFIYys1?= =?utf-8?B?M3dGRkI1cmpETDJhaHhpUGZkcW8xVjhZUERDd1RrYVpWUTFWYnMwaURkQ2Uz?= =?utf-8?B?NnBVcE9IOU1DQzJzcHpBVEE4RXEzd0xCVHRNLzMxenV5YTA0SnZnSmtUOExm?= =?utf-8?B?SXVHVHN6aUVoWFRHWUtsZ2Y1VGdTcUs4SkJJWGNNQjMwU3pDRXZRL2tLY3g0?= =?utf-8?B?THUzeUVpczlyUDU1TFhwSFlPYTdTMFZuWjR0dUwvd2ZWLytycFpYUXhrVlU5?= =?utf-8?B?Wk5zQVY2Ums0aGZweHVtNWsrSW9mclg5VlZtc2dXeXdIU3o0WW9rR1B3T3Yw?= =?utf-8?B?c3hwOGlOKzVTV2xYVGdkT1ZYd1RzcWYrWVE0dk1MLzE5eVN0VjkrWWw5aEFQ?= =?utf-8?B?SU41K1U1T2gyM0R2cnpoUUVUcWRtSWh2TUIvZFNkeE9WUmszNk5INlV6QlJo?= =?utf-8?B?MUtSMmlOcE8vTnJLaXIwYXVaUkExWFVUVS9leHdVZ2xuc2M5WmkzalYzY3cr?= =?utf-8?B?UG1VT0hNUVFvN3E0ZzgrNitUNW1MMHQvdTA4Mmsxd0xsbGxhZVFCNVVlcmFp?= =?utf-8?B?VFl1dkZxYVFvcFlWN0RSM1JveWZYQm5DMGFXRXFuSEY4WklNYnFJTFBjNXhw?= =?utf-8?B?SEJhSTZ3MWkrRDRycEFvbitxMEhwdzh2NDJXbkVEZnZLTWVLUTh1bkpZKzI0?= =?utf-8?B?QjRXdWlaY1dqQVNUK2NCNm5mMUN6SDUwZm1Tak4yamRUSmZHdFB6am11RWVY?= =?utf-8?B?UGpDdUZKb1A5RkxlWkVueHUxT3BQOElQQmFCejVZRWdRaHNudEUwTitqVmVq?= =?utf-8?B?R3lORkRvZDh2ZkhlaXZKRXY4bDNUZUtDUTRldEROaGlGcHhNUnhaUDY2OVZm?= =?utf-8?B?V0wwWjNvTjZudDkwdjEvd2pobXY3MlplWTBmb1pScGtNZCtjM1dBNnlVbUdu?= =?utf-8?B?NndyeXZtWkt4OC8vWEZmc0ZhQTQ3aXBUV0lIM2NyUkJaSWsrTWZCVktBQVFN?= =?utf-8?B?YUlDTFhoTEprOWl3UENBdXFOYThZaHE0YXRDNXhhTHUxdE5Vb0dXOHBseVZs?= =?utf-8?B?aWcraW5UN1FESC9GNHMxRWN6STVlVEs5WTZmTkQ5bHRaMEFUQ3NEaFdlVXBR?= =?utf-8?B?QXZPYk40c0dBM0hNTERhZHN0c3I5ZWFndDg1ZEFTdVhZa1NkUVk1QVBSY21t?= =?utf-8?B?OFFkanI4N1EyejZHb0hRWUwrMHBORkxpM3NwZGY1VXZSaC85YUh2ME5qQ3Bx?= =?utf-8?B?MVNDSUFkVHRtdEl1MXJUUFhHckd0Q3NEbEYyeVhTaWE2VjVXb0RqOHAyTmFR?= =?utf-8?B?dmZudlEwRERmQlBFUVBBQWo4SS9lRU5mbzluc054c0doWWFSVDV3ZHlpRndU?= =?utf-8?B?alhpTFVrcDlVYU5JMnVTUGJ3V0t3enhnNjVRcUFMMk4xbU00cDJuNVhienEz?= =?utf-8?B?WS9OWGtLV3F1SXYvMGs3MVA2SXB6WXNPY1NiQUdodlB3TndRL0lzZEloeTFP?= =?utf-8?B?cTVUT3doNEI4TDJHcWFFcmlReElLNFEyWUFIS0U0S0w2T0w5MXI3eUI4K1NF?= =?utf-8?B?SDZGY0Q5SUVWNjh5SVJzK1FHdG5UQTQ4V1J4NkR5TXJabFlhbWhjcXcrVE5Y?= =?utf-8?B?YWlYNEdDSEdCYWI5eVFobGRSQ1JuUG85dy9oU3IreGo5OVZsSUF5eVNBOFlL?= =?utf-8?B?dS94TXgwMEJZZVlrSE1EODh0dHE1Wk9RUDRRZjI3WXdGb21Sb04xVkpETjJo?= =?utf-8?B?QVhBcWtzeTRJc0tkNWF2QW5HQkJrRXBOa21INjFyL0ZUS04yb1lHV3dtL3pD?= =?utf-8?B?K1E2MXNQTHR0cEFCUEw2WVFTWEsveW0rYksrd0hOSVk2NWhlUGdib1RhU3JD?= =?utf-8?B?RXdyQzV2NXFwNzdSa24zaUlKUUdRaWs4ZEswTldjQUFJcnUvVzUvaUtZQ2ll?= =?utf-8?B?eE5vc091Mm9ndXpXelFIRHgxdzFJUk5QWmozUHNOakNIcXNSU2RycDZBREh6?= =?utf-8?B?MXM2VVdBTnNTZnhnSHNDenZ5eUpXTEwwNTIyeVQzV25LRGQ5UnFXNzNwdWtN?= =?utf-8?B?SUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <43F1904431FFCC4E9DC44269CF2AA5AB@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY2PR01MB4427.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f850a668-4134-41c1-5fbd-08da6e1307a9 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2022 07:55:23.8008 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tueC1/Dqr0/Mb51jBDmRwJSRG3jOZ5XakmYqAtTGewc63utrJ060k93bpIiP+Fiv8xyWiJ/WomQ8oA84CIiv9hpfo1pjCbZohvO8JeBh+fY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSBPR01MB1894 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org DQpvbiAgMjAyMi8wNS8yMSAwOjA0LCBZYW5nIFh1IHdyb3RlOg0KPiBUaGUgY3VycmVudF91bWFz aygpIGlzIHN0cmlwcGVkIGZyb20gdGhlIG1vZGUgZGlyZWN0bHkgaW4gdGhlIHZmcyBpZiB0aGUN Cj4gZmlsZXN5c3RlbSBlaXRoZXIgZG9lc24ndCBzdXBwb3J0IGFjbHMgb3IgdGhlIGZpbGVzeXN0 ZW0gaGFzIGJlZW4NCj4gbW91bnRlZCB3aXRob3V0IHBvc2ljIGFjbCBzdXBwb3J0Lg0KPiANCj4g SWYgdGhlIGZpbGVzeXN0ZW0gZG9lcyBzdXBwb3J0IGFjbHMgdGhlbiBjdXJyZW50X3VtYXNrKCkg c3RyaXBwaW5nIGlzDQo+IGRlZmVycmVkIHRvIHBvc2l4X2FjbF9jcmVhdGUoKS4gU28gd2hlbiB0 aGUgZmlsZXN5c3RlbSBjYWxscw0KPiBwb3NpeF9hY2xfY3JlYXRlKCkgYW5kIHRoZXJlIGFyZSBu byBhY2xzIHNldCBvciBub3Qgc3VwcG9ydGVkIHRoZW4NCj4gY3VycmVudF91bWFzaygpIHdpbGwg YmUgc3RyaXBwZWQuDQo+IA0KPiBUaGlzIHBhdGNoIGlzIGFsc28gZGVzaWduZWQgdG8gdGVzdCBr ZXJuZWwgcGF0Y2hzZXQgYmVoYXZpb3VyDQo+ICJtb3ZlIFNfSVNHSUQgc3RyaXBwaW5nIGludG8g dGhlIHZmcyINCj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L2xpbnV4LWZz ZGV2ZWwvbGlzdC8/c2VyaWVzPTYzNTY5Mg0KDQpUaGUga2VybmVsIHBhdGNoIGhhcyBiZWVuIG1l cmdlZCBpbnRvIGxpbnV4LW5leHQgYnJhbmNoWzFdLg0KDQpEb2VzIGFueW9uZSByZXZpZXcgdGhp cyBmc3Rlc3RzIHBhdGNoIG9yIGdpdmUgc29tZSBjb21tZW50Pw0KDQpJIHBsYW4gdG8gcmVtb3Zl IHNldGdpZF9jcmVhdGVfdW1hc2tfaWRtYXBwZWRfaW5fdXNlcm5zIGFuZCANCnNldGdpZF9jcmVh dGVfdW1hc2tfaWRtYXBwZWQgY2FzZXMgYmVjYXVzZSB0aGV5IGRvZXNuJ3QgdHJpZ2dlciBidWcu DQoNCkp1c3QgdHJlYXQgaXQgIGFzIGEga2VybmVsIHJlZ3Jlc3Npb24gdGVzdCBpZSAzMWMwMWNl MTggKCJnZW5lcmljOiBhZGQgDQp0ZXN0IGZvciB0bXBmcyBQT1NJWCBBQ0xzIikgZm9ybWF0Lg0K DQpDQyBDaHJpc3RpYW4gdG8gY29uZmlybSB0aGF0IHdoZXRoZXIgbmVlZCB0byB0ZXN0IGlkbWFw cGVkIGFuZCANCmlkbWFwcGVkX2luX3VzZXJicyBzaXR1YXRpb24gLg0KDQpbMV1odHRwczovL2dp dC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9uZXh0L2xpbnV4LW5leHQuZ2l0 L2NvbW1pdC8/aD1uZXh0LTIwMjIwNzIyJmlkPTE2MzlhNDljY2RjZQ0KDQpwczogdGhpcyBwYXRj aCBzdGlsbCBjYW4gYmUgYXBwbGllZCBieSBjaGFuZ2Ugc2VxIG51bWJlciB0byBhbiB1bnVzZWQg DQpudW1iZXIgaWUgNjkzLg0KDQpCZXN0IFJlZ2FyZHMNCllhbmcgWHUNCg0KPiANCj4gSGVyZSB3 ZSBvbmx5IHVzZSB1bWFzayhTX0lYR1JQKSB0byBjaGVjayB3aGV0aGVyIGlub2RlIHN0cmlwDQo+ IFNfSVNHSUQgd29ya3MgY29ycmVjdGx5IGFuZCBjaGVjayB3aGV0aGVyIFNfSVhHUlAgbW9kZSBl eGlzdHMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBZYW5nIFh1IDx4dXlhbmcyMDE4Lmp5QGZ1aml0 c3UuY29tPg0KPiAtLS0NCj4gICBzcmMvdmZzL2lkbWFwcGVkLW1vdW50cy5jIHwgNDI5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAgc3JjL3Zmcy9pZG1hcHBlZC1t b3VudHMuaCB8ICAgMSArDQo+ICAgc3JjL3Zmcy91dGlscy5jICAgICAgICAgICB8ICAxNCArKw0K PiAgIHNyYy92ZnMvdXRpbHMuaCAgICAgICAgICAgfCAgIDEgKw0KPiAgIHNyYy92ZnMvdmZzdGVz dC5jICAgICAgICAgfCAyMDUgKysrKysrKysrKysrKysrKystDQo+ICAgdGVzdHMvZ2VuZXJpYy82 OTEgICAgICAgICB8ICA0MCArKysrDQo+ICAgdGVzdHMvZ2VuZXJpYy82OTEub3V0ICAgICB8ICAg MiArDQo+ICAgNyBmaWxlcyBjaGFuZ2VkLCA2OTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQ0KPiAgIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9nZW5lcmljLzY5MQ0KPiAgIGNyZWF0ZSBt b2RlIDEwMDY0NCB0ZXN0cy9nZW5lcmljLzY5MS5vdXQNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMv dmZzL2lkbWFwcGVkLW1vdW50cy5jIGIvc3JjL3Zmcy9pZG1hcHBlZC1tb3VudHMuYw0KPiBpbmRl eCA2MzI5N2Q1Zi4uNzJkZTUyY2MgMTAwNjQ0DQo+IC0tLSBhL3NyYy92ZnMvaWRtYXBwZWQtbW91 bnRzLmMNCj4gKysrIGIvc3JjL3Zmcy9pZG1hcHBlZC1tb3VudHMuYw0KPiBAQCAtNzY2NCw2ICs3 NjY0LDQyNSBAQCBvdXQ6DQo+ICAgCXJldHVybiBmcmV0Ow0KPiAgIH0NCj4gICANCj4gK3N0YXRp YyBpbnQgc2V0Z2lkX2NyZWF0ZV91bWFza19pZG1hcHBlZChjb25zdCBzdHJ1Y3QgdmZzdGVzdF9p bmZvICppbmZvKQ0KPiArew0KPiArCWludCBmcmV0ID0gLTE7DQo+ICsJaW50IGZpbGUxX2ZkID0g LUVCQURGLCBvcGVuX3RyZWVfZmQgPSAtRUJBREY7DQo+ICsJc3RydWN0IG1vdW50X2F0dHIgYXR0 ciA9IHsNCj4gKwkJLmF0dHJfc2V0ID0gTU9VTlRfQVRUUl9JRE1BUCwNCj4gKwl9Ow0KPiArCXBp ZF90IHBpZDsNCj4gKwlpbnQgdG1wZmlsZV9mZCA9IC1FQkFERjsNCj4gKwlib29sIHN1cHBvcnRl ZCA9IGZhbHNlOw0KPiArCWNoYXIgcGF0aFtQQVRIX01BWF07DQo+ICsJbW9kZV90IG1vZGU7DQo+ ICsNCj4gKwlpZiAoIWNhcHNfc3VwcG9ydGVkKCkpDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICsJ aWYgKGZjaG1vZChpbmZvLT50X2RpcjFfZmQsIFNfSVJVU1IgfA0KPiArCQkJICAgICAgU19JV1VT UiB8DQo+ICsJCQkgICAgICBTX0lSR1JQIHwNCj4gKwkJCSAgICAgIFNfSVdHUlAgfA0KPiArCQkJ ICAgICAgU19JUk9USCB8DQo+ICsJCQkgICAgICBTX0lXT1RIIHwNCj4gKwkJCSAgICAgIFNfSVhV U1IgfA0KPiArCQkJICAgICAgU19JWEdSUCB8DQo+ICsJCQkgICAgICBTX0lYT1RIIHwNCj4gKwkJ CSAgICAgIFNfSVNHSUQpLCAwKSB7DQo+ICsJCWxvZ19zdGRlcnIoImZhaWx1cmU6IGZjaG1vZCIp Ow0KPiArCQlnb3RvIG91dDsNCj4gKwl9DQo+ICsNCj4gKwkvKiBWZXJpZnkgdGhhdCB0aGUgc2lk IGJpdHMgZ290IHJhaXNlZC4gKi8NCj4gKwlpZiAoIWlzX3NldGdpZChpbmZvLT50X2RpcjFfZmQs ICIiLCBBVF9FTVBUWV9QQVRIKSkgew0KPiArCQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBpc19zZXRn aWQiKTsNCj4gKwkJZ290byBvdXQ7DQo+ICsJfQ0KPiArDQo+ICsJLyogQ2hhbmdpbmcgbW91bnQg cHJvcGVydGllcyBvbiBhIGRldGFjaGVkIG1vdW50LiAqLw0KPiArCWF0dHIudXNlcm5zX2ZkCT0g Z2V0X3VzZXJuc19mZCgwLCAxMDAwMCwgMTAwMDApOw0KPiArCWlmIChhdHRyLnVzZXJuc19mZCA8 IDApIHsNCj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogZ2V0X3VzZXJuc19mZCIpOw0KPiArCQln b3RvIG91dDsNCj4gKwl9DQo+ICsNCj4gKwlvcGVuX3RyZWVfZmQgPSBzeXNfb3Blbl90cmVlKGlu Zm8tPnRfZGlyMV9mZCwgIiIsDQo+ICsJCQkJICAgICBBVF9FTVBUWV9QQVRIIHwNCj4gKwkJCQkg ICAgIEFUX05PX0FVVE9NT1VOVCB8DQo+ICsJCQkJICAgICBBVF9TWU1MSU5LX05PRk9MTE9XIHwN Cj4gKwkJCQkgICAgIE9QRU5fVFJFRV9DTE9FWEVDIHwNCj4gKwkJCQkgICAgIE9QRU5fVFJFRV9D TE9ORSk7DQo+ICsJaWYgKG9wZW5fdHJlZV9mZCA8IDApIHsNCj4gKwkJbG9nX3N0ZGVycigiZmFp bHVyZTogc3lzX29wZW5fdHJlZSIpOw0KPiArCQlnb3RvIG91dDsNCj4gKwl9DQo+ICsNCj4gKwlp ZiAoc3lzX21vdW50X3NldGF0dHIob3Blbl90cmVlX2ZkLCAiIiwgQVRfRU1QVFlfUEFUSCwgJmF0 dHIsIHNpemVvZihhdHRyKSkpIHsNCj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogc3lzX21vdW50 X3NldGF0dHIiKTsNCj4gKwkJZ290byBvdXQ7DQo+ICsJfQ0KPiArDQo+ICsJc3VwcG9ydGVkID0g b3BlbmF0X3RtcGZpbGVfc3VwcG9ydGVkKG9wZW5fdHJlZV9mZCk7DQo+ICsNCj4gKwkvKiBPbmx5 IHVtYXNrIHdpdGggU19JWEdSUCBiZWNhdXNlIGlub2RlIHN0cmlwIFNfSVNHSUQgd2lsbCBjaGVj ayBtb2RlDQo+ICsJICogd2hldGhlciBoYXMgZ3JvdXAgZXhlY3V0ZSBvciBzZWFyY2ggcGVybWlz c2lvbi4NCj4gKwkgKi8NCj4gKwl1bWFzayhTX0lYR1JQKTsNCj4gKwltb2RlID0gdW1hc2soU19J WEdSUCk7DQo+ICsJaWYgKCEobW9kZSAmIFNfSVhHUlApKQ0KPiArCQlkaWUoImZhaWx1cmU6IHVt YXNrIik7DQo+ICsNCj4gKwkJcGlkID0gZm9yaygpOw0KPiArCWlmIChwaWQgPCAwKSB7DQo+ICsJ CWxvZ19zdGRlcnIoImZhaWx1cmU6IGZvcmsiKTsNCj4gKwkJZ290byBvdXQ7DQo+ICsJfQ0KPiAr CWlmIChwaWQgPT0gMCkgew0KPiArCQlpZiAoIXN3aXRjaF9pZHMoMTAwMDAsIDExMDAwKSkNCj4g KwkJCWRpZSgiZmFpbHVyZTogc3dpdGNoIGZzaWRzIik7DQo+ICsNCj4gKwkJLyogY3JlYXRlIHJl Z3VsYXIgZmlsZSB2aWEgb3BlbigpICovDQo+ICsJCWZpbGUxX2ZkID0gb3BlbmF0KG9wZW5fdHJl ZV9mZCwgRklMRTEsIE9fQ1JFQVQgfCBPX0VYQ0wgfCBPX0NMT0VYRUMsIFNfSVhHUlAgfCBTX0lT R0lEKTsNCj4gKwkJaWYgKGZpbGUxX2ZkIDwgMCkNCj4gKwkJCWRpZSgiZmFpbHVyZTogY3JlYXRl Iik7DQo+ICsNCj4gKwkJLyogTmVpdGhlciBpbl9ncm91cF9wKCkgbm9yIGNhcGFibGVfd3J0X2lu b2RlX3VpZGdpZCgpIHNvIHNldGdpZA0KPiArCQkgKiBiaXQgbmVlZHMgdG8gYmUgc3RyaXBwZWQu DQo+ICsJCSAqLw0KPiArCQlpZiAoaXNfc2V0Z2lkKG9wZW5fdHJlZV9mZCwgRklMRTEsIDApKQ0K PiArCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsNCj4gKw0KPiArCQlpZiAoaXNfaXhncnAo b3Blbl90cmVlX2ZkLCBGSUxFMSwgMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGlzX2l4Z3JwIik7 DQo+ICsNCj4gKwkJLyogY3JlYXRlIGRpcmVjdG9yeSAqLw0KPiArCQlpZiAobWtkaXJhdChvcGVu X3RyZWVfZmQsIERJUjEsIDAwMDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBjcmVhdGUiKTsNCj4g Kw0KPiArCQlpZiAoeGZzX2lyaXhfc2dpZF9pbmhlcml0X2VuYWJsZWQoaW5mby0+dF9mc3R5cGUp KSB7DQo+ICsJCQkvKiBXZSdyZSBub3QgaW5fZ3JvdXBfcCgpLiAqLw0KPiArCQkJaWYgKGlzX3Nl dGdpZChvcGVuX3RyZWVfZmQsIERJUjEsIDApKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogaXNfc2V0 Z2lkIik7DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQkvKiBEaXJlY3RvcmllcyBhbHdheXMgaW5oZXJp dCB0aGUgc2V0Z2lkIGJpdC4gKi8NCj4gKwkJCWlmICghaXNfc2V0Z2lkKG9wZW5fdHJlZV9mZCwg RElSMSwgMCkpDQo+ICsJCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsNCj4gKwkJfQ0KPiAr DQo+ICsJCWlmIChpc19peGdycChvcGVuX3RyZWVfZmQsIERJUjEsIDApKQ0KPiArCQkJZGllKCJm YWlsdXJlOiBpc19peGdycCIpOw0KPiArDQo+ICsJCS8qIGNyZWF0ZSBhIHNwZWNpYWwgZmlsZSB2 aWEgbWtub2RhdCgpIHZmc19jcmVhdGUgKi8NCj4gKwkJaWYgKG1rbm9kYXQob3Blbl90cmVlX2Zk LCBGSUxFMiwgU19JRlJFRyB8IFNfSVNHSUQgfCBTX0lYR1JQLCAwKSkNCj4gKwkJCWRpZSgiZmFp bHVyZTogbWtub2RhdCIpOw0KPiArDQo+ICsJCWlmIChpc19zZXRnaWQob3Blbl90cmVlX2ZkLCBG SUxFMiwgMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGlzX3NldGdpZCIpOw0KPiArDQo+ICsJCWlm IChpc19peGdycChvcGVuX3RyZWVfZmQsIEZJTEUyLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTog aXNfaXhncnAiKTsNCj4gKw0KPiArCQkvKiBjcmVhdGUgYSB3aGl0ZW91dCBkZXZpY2UgdmlhIG1r bm9kYXQoKSB2ZnNfbWtub2QgKi8NCj4gKwkJaWYgKG1rbm9kYXQob3Blbl90cmVlX2ZkLCBDSFJE RVYxLCBTX0lGQ0hSIHwgU19JU0dJRCB8IFNfSVhHUlAsIDApKQ0KPiArCQkJZGllKCJmYWlsdXJl OiBta25vZGF0Iik7DQo+ICsNCj4gKwkJaWYgKGlzX3NldGdpZChvcGVuX3RyZWVfZmQsIENIUkRF VjEsIDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsNCj4gKw0KPiArCQlpZiAo aXNfaXhncnAob3Blbl90cmVlX2ZkLCBDSFJERVYxLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTog aXNfaXhncnAiKTsNCj4gKw0KPiArCQkvKg0KPiArCQkgKiBJbiBzZXRnaWQgZGlyZWN0b3JpZXMg bmV3bHkgY3JlYXRlZCBmaWxlcyBhbHdheXMgaW5oZXJpdCB0aGUNCj4gKwkJICogZ2lkIGZyb20g dGhlIHBhcmVudCBkaXJlY3RvcnkuIFZlcmlmeSB0aGF0IHRoZSBmaWxlIGlzIG93bmVkDQo+ICsJ CSAqIGJ5IGdpZCAxMDAwMCwgbm90IGJ5IGdpZCAxMTAwMC4NCj4gKwkJICovDQo+ICsJCWlmICgh ZXhwZWN0ZWRfdWlkX2dpZChvcGVuX3RyZWVfZmQsIEZJTEUxLCAwLCAxMDAwMCwgMTAwMDApKQ0K PiArCQkJZGllKCJmYWlsdXJlOiBjaGVjayBvd25lcnNoaXAiKTsNCj4gKw0KPiArCQkvKg0KPiAr CQkgKiBJbiBzZXRnaWQgZGlyZWN0b3JpZXMgbmV3bHkgY3JlYXRlZCBkaXJlY3RvcmllcyBhbHdh eXMNCj4gKwkJICogaW5oZXJpdCB0aGUgZ2lkIGZyb20gdGhlIHBhcmVudCBkaXJlY3RvcnkuIFZl cmlmeSB0aGF0IHRoZQ0KPiArCQkgKiBkaXJlY3RvcnkgaXMgb3duZWQgYnkgZ2lkIDEwMDAwLCBu b3QgYnkgZ2lkIDExMDAwLg0KPiArCQkgKi8NCj4gKwkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKG9w ZW5fdHJlZV9mZCwgRElSMSwgMCwgMTAwMDAsIDEwMDAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTog Y2hlY2sgb3duZXJzaGlwIik7DQo+ICsNCj4gKwkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKG9wZW5f dHJlZV9mZCwgRklMRTIsIDAsIDEwMDAwLCAxMDAwMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGNo ZWNrIG93bmVyc2hpcCIpOw0KPiArDQo+ICsJCWlmICghZXhwZWN0ZWRfdWlkX2dpZChvcGVuX3Ry ZWVfZmQsIENIUkRFVjEsIDAsIDEwMDAwLCAxMDAwMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGNo ZWNrIG93bmVyc2hpcCIpOw0KPiArDQo+ICsJCWlmICh1bmxpbmthdChvcGVuX3RyZWVfZmQsIEZJ TEUxLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+ICsNCj4gKwkJaWYgKHVu bGlua2F0KG9wZW5fdHJlZV9mZCwgRElSMSwgQVRfUkVNT1ZFRElSKSkNCj4gKwkJCWRpZSgiZmFp bHVyZTogZGVsZXRlIik7DQo+ICsNCj4gKwkJaWYgKHVubGlua2F0KG9wZW5fdHJlZV9mZCwgRklM RTIsIDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBkZWxldGUiKTsNCj4gKw0KPiArCQlpZiAodW5s aW5rYXQob3Blbl90cmVlX2ZkLCBDSFJERVYxLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogZGVs ZXRlIik7DQo+ICsNCj4gKwkJLyogY3JlYXRlIHRtcGZpbGUgdmlhIGZpbGVzeXN0ZW0gdG1wZmls ZSBhcGkgKi8NCj4gKwkJaWYgKHN1cHBvcnRlZCkgew0KPiArCQkJdG1wZmlsZV9mZCA9IG9wZW5h dChvcGVuX3RyZWVfZmQsICIuIiwgT19UTVBGSUxFIHwgT19SRFdSLCBTX0lYR1JQIHwgU19JU0dJ RCk7DQo+ICsJCQlpZiAodG1wZmlsZV9mZCA8IDApDQo+ICsJCQkJZGllKCJmYWlsdXJlOiBjcmVh dGUiKTsNCj4gKwkJCS8qIGxpbmsgdGhlIHRlbXBvcmFyeSBmaWxlIGludG8gdGhlIGZpbGVzeXN0 ZW0sIG1ha2luZyBpdCBwZXJtYW5lbnQgKi8NCj4gKwkJCXNucHJpbnRmKHBhdGgsIFBBVEhfTUFY LCAgIi9wcm9jL3NlbGYvZmQvJWQiLCB0bXBmaWxlX2ZkKTsNCj4gKwkJCWlmIChsaW5rYXQoQVRf RkRDV0QsIHBhdGgsIG9wZW5fdHJlZV9mZCwgRklMRTMsIEFUX1NZTUxJTktfRk9MTE9XKSkNCj4g KwkJCQlkaWUoImZhaWx1cmU6IGxpbmthdCIpOw0KPiArCQkJaWYgKGNsb3NlKHRtcGZpbGVfZmQp KQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogY2xvc2UiKTsNCj4gKwkJCWlmIChpc19zZXRnaWQob3Bl bl90cmVlX2ZkLCBGSUxFMywgMCkpDQo+ICsJCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsN Cj4gKwkJCWlmIChpc19peGdycChvcGVuX3RyZWVfZmQsIEZJTEUzLCAwKSkNCj4gKwkJCQlkaWUo ImZhaWx1cmU6IGlzX2l4Z3JwIik7DQo+ICsJCQlpZiAoIWV4cGVjdGVkX3VpZF9naWQob3Blbl90 cmVlX2ZkLCBGSUxFMywgMCwgMTAwMDAsIDEwMDAwKSkNCj4gKwkJCQlkaWUoImZhaWx1cmU6IGNo ZWNrIG93bmVyc2hpcCIpOw0KPiArCQkJaWYgKHVubGlua2F0KG9wZW5fdHJlZV9mZCwgRklMRTMs IDApKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+ICsJCX0NCj4gKw0KPiArCQll eGl0KEVYSVRfU1VDQ0VTUyk7DQo+ICsJfQ0KPiArCWlmICh3YWl0X2Zvcl9waWQocGlkKSkNCj4g KwkJZ290byBvdXQ7DQo+ICsNCj4gKwlmcmV0ID0gMDsNCj4gKwlsb2dfZGVidWcoIlJhbiB0ZXN0 Iik7DQo+ICtvdXQ6DQo+ICsJc2FmZV9jbG9zZShhdHRyLnVzZXJuc19mZCk7DQo+ICsJc2FmZV9j bG9zZShmaWxlMV9mZCk7DQo+ICsJc2FmZV9jbG9zZShvcGVuX3RyZWVfZmQpOw0KPiArDQo+ICsJ cmV0dXJuIGZyZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgc2V0Z2lkX2NyZWF0ZV91bWFz a19pZG1hcHBlZF9pbl91c2VybnMoY29uc3Qgc3RydWN0IHZmc3Rlc3RfaW5mbyAqaW5mbykNCj4g K3sNCj4gKwlpbnQgZnJldCA9IC0xOw0KPiArCWludCBmaWxlMV9mZCA9IC1FQkFERiwgb3Blbl90 cmVlX2ZkID0gLUVCQURGOw0KPiArCXN0cnVjdCBtb3VudF9hdHRyIGF0dHIgPSB7DQo+ICsJCS5h dHRyX3NldCA9IE1PVU5UX0FUVFJfSURNQVAsDQo+ICsJfTsNCj4gKwlwaWRfdCBwaWQ7DQo+ICsJ aW50IHRtcGZpbGVfZmQgPSAtRUJBREY7DQo+ICsJYm9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsNCj4g KwljaGFyIHBhdGhbUEFUSF9NQVhdOw0KPiArCW1vZGVfdCBtb2RlOw0KPiArDQo+ICsJaWYgKCFj YXBzX3N1cHBvcnRlZCgpKQ0KPiArCQlyZXR1cm4gMDsNCj4gKw0KPiArCWlmIChmY2htb2QoaW5m by0+dF9kaXIxX2ZkLCBTX0lSVVNSIHwNCj4gKwkJCSAgICAgIFNfSVdVU1IgfA0KPiArCQkJICAg ICAgU19JUkdSUCB8DQo+ICsJCQkgICAgICBTX0lXR1JQIHwNCj4gKwkJCSAgICAgIFNfSVJPVEgg fA0KPiArCQkJICAgICAgU19JV09USCB8DQo+ICsJCQkgICAgICBTX0lYVVNSIHwNCj4gKwkJCSAg ICAgIFNfSVhHUlAgfA0KPiArCQkJICAgICAgU19JWE9USCB8DQo+ICsJCQkgICAgICBTX0lTR0lE KSwgMCkgew0KPiArCQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBmY2htb2QiKTsNCj4gKwkJZ290byBv dXQ7DQo+ICsJfQ0KPiArDQo+ICsJLyogVmVyaWZ5IHRoYXQgdGhlIHNpZCBiaXRzIGdvdCByYWlz ZWQuICovDQo+ICsJaWYgKCFpc19zZXRnaWQoaW5mby0+dF9kaXIxX2ZkLCAiIiwgQVRfRU1QVFlf UEFUSCkpIHsNCj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogaXNfc2V0Z2lkIik7DQo+ICsJCWdv dG8gb3V0Ow0KPiArCX0NCj4gKw0KPiArCS8qIENoYW5naW5nIG1vdW50IHByb3BlcnRpZXMgb24g YSBkZXRhY2hlZCBtb3VudC4gKi8NCj4gKwlhdHRyLnVzZXJuc19mZAk9IGdldF91c2VybnNfZmQo MCwgMTAwMDAsIDEwMDAwKTsNCj4gKwlpZiAoYXR0ci51c2VybnNfZmQgPCAwKSB7DQo+ICsJCWxv Z19zdGRlcnIoImZhaWx1cmU6IGdldF91c2VybnNfZmQiKTsNCj4gKwkJZ290byBvdXQ7DQo+ICsJ fQ0KPiArDQo+ICsJb3Blbl90cmVlX2ZkID0gc3lzX29wZW5fdHJlZShpbmZvLT50X2RpcjFfZmQs ICIiLA0KPiArCQkJCSAgICAgQVRfRU1QVFlfUEFUSCB8DQo+ICsJCQkJICAgICBBVF9OT19BVVRP TU9VTlQgfA0KPiArCQkJCSAgICAgQVRfU1lNTElOS19OT0ZPTExPVyB8DQo+ICsJCQkJICAgICBP UEVOX1RSRUVfQ0xPRVhFQyB8DQo+ICsJCQkJICAgICBPUEVOX1RSRUVfQ0xPTkUpOw0KPiArCWlm IChvcGVuX3RyZWVfZmQgPCAwKSB7DQo+ICsJCWxvZ19zdGRlcnIoImZhaWx1cmU6IHN5c19vcGVu X3RyZWUiKTsNCj4gKwkJZ290byBvdXQ7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKHN5c19tb3VudF9z ZXRhdHRyKG9wZW5fdHJlZV9mZCwgIiIsIEFUX0VNUFRZX1BBVEgsICZhdHRyLCBzaXplb2YoYXR0 cikpKSB7DQo+ICsJCWxvZ19zdGRlcnIoImZhaWx1cmU6IHN5c19tb3VudF9zZXRhdHRyIik7DQo+ ICsJCWdvdG8gb3V0Ow0KPiArCX0NCj4gKw0KPiArCXN1cHBvcnRlZCA9IG9wZW5hdF90bXBmaWxl X3N1cHBvcnRlZChvcGVuX3RyZWVfZmQpOw0KPiArDQo+ICsJLyogT25seSB1bWFzayB3aXRoIFNf SVhHUlAgYmVjYXVzZSBpbm9kZSBzdHJpcCBTX0lTR0lEIHdpbGwgY2hlY2sgbW9kZQ0KPiArCSAq IHdoZXRoZXIgaGFzIGdyb3VwIGV4ZWN1dGUgb3Igc2VhcmNoIHBlcm1pc3Npb24uDQo+ICsJICov DQo+ICsJdW1hc2soU19JWEdSUCk7DQo+ICsJbW9kZSA9IHVtYXNrKFNfSVhHUlApOw0KPiArCWlm ICghKG1vZGUgJiBTX0lYR1JQKSkNCj4gKwkJZGllKCJmYWlsdXJlOiB1bWFzayIpOw0KPiArDQo+ ICsJLyoNCj4gKwkgKiBCZWxvdyB3ZSB2ZXJpZnkgdGhhdCBzZXRnaWQgaW5oZXJpdGFuY2UgZm9y IGEgbmV3bHkgY3JlYXRlZCBmaWxlIG9yDQo+ICsJICogZGlyZWN0b3J5IHdvcmtzIGNvcnJlY3Rs eS4gQXMgcGFydCBvZiB0aGlzIHdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQNCj4gKwkgKiBuZXdseSBj cmVhdGVkIGZpbGVzIG9yIGRpcmVjdG9yaWVzIGluaGVyaXQgdGhlaXIgZ2lkIGZyb20gdGhlaXIN Cj4gKwkgKiBwYXJlbnQgZGlyZWN0b3J5LiBTbyB3ZSBjaGFuZ2UgdGhlIHBhcmVudCBkaXJlY3Rv cmllJ3MgZ2lkIHRvIDEwMDANCj4gKwkgKiBhbmQgY3JlYXRlIGEgZmlsZSB3aXRoIGZze2csdX1p ZCAwIGFuZCB2ZXJpZnkgdGhhdCB0aGUgbmV3bHkgY3JlYXRlZA0KPiArCSAqIGZpbGUgYW5kIGRp cmVjdG9yeSBpbmhlcml0IGdpZCAxMDAwLCBub3QgMC4NCj4gKwkgKi8NCj4gKwlpZiAoZmNob3du YXQoaW5mby0+dF9kaXIxX2ZkLCAiIiwgLTEsIDEwMDAsIEFUX1NZTUxJTktfTk9GT0xMT1cgfCBB VF9FTVBUWV9QQVRIKSkgew0KPiArCQlsb2dfc3RkZXJyKCJmYWlsdXJlOiBmY2hvd25hdCIpOw0K PiArCQlnb3RvIG91dDsNCj4gKwl9DQo+ICsNCj4gKwlwaWQgPSBmb3JrKCk7DQo+ICsJaWYgKHBp ZCA8IDApIHsNCj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogZm9yayIpOw0KPiArCQlnb3RvIG91 dDsNCj4gKwl9DQo+ICsJaWYgKHBpZCA9PSAwKSB7DQo+ICsJCWlmICghY2Fwc19zdXBwb3J0ZWQo KSkgew0KPiArCQkJbG9nX2RlYnVnKCJza2lwOiBjYXBhYmlsaXR5IGxpYnJhcnkgbm90IGluc3Rh bGxlZCIpOw0KPiArCQkJZXhpdChFWElUX1NVQ0NFU1MpOw0KPiArCQl9DQo+ICsNCj4gKwkJaWYg KCFzd2l0Y2hfdXNlcm5zKGF0dHIudXNlcm5zX2ZkLCAwLCAwLCBmYWxzZSkpDQo+ICsJCQlkaWUo ImZhaWx1cmU6IHN3aXRjaF91c2VybnMiKTsNCj4gKw0KPiArCQlpZiAoIWNhcHNfZG93bl9mc2V0 aWQoKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogY2Fwc19kb3duX2ZzZXRpZCIpOw0KPiArDQo+ICsJ CS8qIGNyZWF0ZSByZWd1bGFyIGZpbGUgdmlhIG9wZW4oKSAqLw0KPiArCQlmaWxlMV9mZCA9IG9w ZW5hdChvcGVuX3RyZWVfZmQsIEZJTEUxLCBPX0NSRUFUIHwgT19FWENMIHwgT19DTE9FWEVDLCBT X0lYR1JQIHwgU19JU0dJRCk7DQo+ICsJCWlmIChmaWxlMV9mZCA8IDApDQo+ICsJCQlkaWUoImZh aWx1cmU6IGNyZWF0ZSIpOw0KPiArDQo+ICsJCS8qIE5laXRoZXIgaW5fZ3JvdXBfcCgpIG5vciBj YXBhYmxlX3dydF9pbm9kZV91aWRnaWQoKSBzbyBzZXRnaWQNCj4gKwkJICogYml0IG5lZWRzIHRv IGJlIHN0cmlwcGVkLg0KPiArCQkgKi8NCj4gKwkJaWYgKGlzX3NldGdpZChvcGVuX3RyZWVfZmQs IEZJTEUxLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfc2V0Z2lkIik7DQo+ICsNCj4gKwkJ aWYgKGlzX2l4Z3JwKG9wZW5fdHJlZV9mZCwgRklMRTEsIDApKQ0KPiArCQkJZGllKCJmYWlsdXJl OiBpc19peGdycCIpOw0KPiArDQo+ICsJCS8qIGNyZWF0ZSBkaXJlY3RvcnkgKi8NCj4gKwkJaWYg KG1rZGlyYXQob3Blbl90cmVlX2ZkLCBESVIxLCAwMDAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTog Y3JlYXRlIik7DQo+ICsNCj4gKwkJaWYgKHhmc19pcml4X3NnaWRfaW5oZXJpdF9lbmFibGVkKGlu Zm8tPnRfZnN0eXBlKSkgew0KPiArCQkJLyogV2UncmUgbm90IGluX2dyb3VwX3AoKS4gKi8NCj4g KwkJCWlmIChpc19zZXRnaWQob3Blbl90cmVlX2ZkLCBESVIxLCAwKSkNCj4gKwkJCQlkaWUoImZh aWx1cmU6IGlzX3NldGdpZCIpOw0KPiArCQl9IGVsc2Ugew0KPiArCQkJLyogRGlyZWN0b3JpZXMg YWx3YXlzIGluaGVyaXQgdGhlIHNldGdpZCBiaXQuICovDQo+ICsJCQlpZiAoIWlzX3NldGdpZChv cGVuX3RyZWVfZmQsIERJUjEsIDApKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogaXNfc2V0Z2lkIik7 DQo+ICsJCX0NCj4gKw0KPiArCQlpZiAoaXNfaXhncnAob3Blbl90cmVlX2ZkLCBESVIxLCAwKSkN Cj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4gKw0KPiArCQkvKiBjcmVhdGUgYSBz cGVjaWFsIGZpbGUgdmlhIG1rbm9kYXQoKSB2ZnNfY3JlYXRlICovDQo+ICsJCWlmIChta25vZGF0 KG9wZW5fdHJlZV9mZCwgRklMRTIsIFNfSUZSRUcgfCBTX0lTR0lEIHwgU19JWEdSUCwgMCkpDQo+ ICsJCQlkaWUoImZhaWx1cmU6IG1rbm9kYXQiKTsNCj4gKw0KPiArCQlpZiAoaXNfc2V0Z2lkKG9w ZW5fdHJlZV9mZCwgRklMRTIsIDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsN Cj4gKw0KPiArCQlpZiAoaXNfaXhncnAob3Blbl90cmVlX2ZkLCBGSUxFMiwgMCkpDQo+ICsJCQlk aWUoImZhaWx1cmU6IGlzX2l4Z3JwIik7DQo+ICsNCj4gKwkJLyogY3JlYXRlIGEgd2hpdGVvdXQg ZGV2aWNlIHZpYSBta25vZGF0KCkgdmZzX21rbm9kICovDQo+ICsJCWlmIChta25vZGF0KG9wZW5f dHJlZV9mZCwgQ0hSREVWMSwgU19JRkNIUiB8IFNfSVNHSUQgfCBTX0lYR1JQLCAwKSkNCj4gKwkJ CWRpZSgiZmFpbHVyZTogbWtub2RhdCIpOw0KPiArDQo+ICsJCWlmIChpc19zZXRnaWQob3Blbl90 cmVlX2ZkLCBDSFJERVYxLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogaXNfc2V0Z2lkIik7DQo+ ICsNCj4gKwkJaWYgKGlzX2l4Z3JwKG9wZW5fdHJlZV9mZCwgQ0hSREVWMSwgMCkpDQo+ICsJCQlk aWUoImZhaWx1cmU6IGlzX2l4Z3JwIik7DQo+ICsNCj4gKwkJLyoNCj4gKwkJICogSW4gc2V0Z2lk IGRpcmVjdG9yaWVzIG5ld2x5IGNyZWF0ZWQgZmlsZXMgYWx3YXlzIGluaGVyaXQgdGhlDQo+ICsJ CSAqIGdpZCBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0b3J5LiBWZXJpZnkgdGhhdCB0aGUgZmlsZSBp cyBvd25lZA0KPiArCQkgKiBieSBnaWQgMTAwMCwgbm90IGJ5IGdpZCAwLg0KPiArCQkgKi8NCj4g KwkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKG9wZW5fdHJlZV9mZCwgRklMRTEsIDAsIDAsIDEwMDAp KQ0KPiArCQkJZGllKCJmYWlsdXJlOiBjaGVjayBvd25lcnNoaXAiKTsNCj4gKw0KPiArCQkvKg0K PiArCQkgKiBJbiBzZXRnaWQgZGlyZWN0b3JpZXMgbmV3bHkgY3JlYXRlZCBkaXJlY3RvcmllcyBh bHdheXMNCj4gKwkJICogaW5oZXJpdCB0aGUgZ2lkIGZyb20gdGhlIHBhcmVudCBkaXJlY3Rvcnku IFZlcmlmeSB0aGF0IHRoZQ0KPiArCQkgKiBkaXJlY3RvcnkgaXMgb3duZWQgYnkgZ2lkIDEwMDAs IG5vdCBieSBnaWQgMC4NCj4gKwkJICovDQo+ICsJCWlmICghZXhwZWN0ZWRfdWlkX2dpZChvcGVu X3RyZWVfZmQsIERJUjEsIDAsIDAsIDEwMDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBjaGVjayBv d25lcnNoaXAiKTsNCj4gKw0KPiArCQlpZiAoIWV4cGVjdGVkX3VpZF9naWQob3Blbl90cmVlX2Zk LCBGSUxFMiwgMCwgMCwgMTAwMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGNoZWNrIG93bmVyc2hp cCIpOw0KPiArDQo+ICsJCWlmICghZXhwZWN0ZWRfdWlkX2dpZChvcGVuX3RyZWVfZmQsIENIUkRF VjEsIDAsIDAsIDEwMDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBjaGVjayBvd25lcnNoaXAiKTsN Cj4gKw0KPiArCQlpZiAodW5saW5rYXQob3Blbl90cmVlX2ZkLCBGSUxFMSwgMCkpDQo+ICsJCQlk aWUoImZhaWx1cmU6IGRlbGV0ZSIpOw0KPiArDQo+ICsJCWlmICh1bmxpbmthdChvcGVuX3RyZWVf ZmQsIERJUjEsIEFUX1JFTU9WRURJUikpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGRlbGV0ZSIpOw0K PiArDQo+ICsJCWlmICh1bmxpbmthdChvcGVuX3RyZWVfZmQsIEZJTEUyLCAwKSkNCj4gKwkJCWRp ZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+ICsNCj4gKwkJaWYgKHVubGlua2F0KG9wZW5fdHJlZV9m ZCwgQ0hSREVWMSwgMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGRlbGV0ZSIpOw0KPiArDQo+ICsJ CS8qIGNyZWF0ZSB0bXBmaWxlIHZpYSBmaWxlc3lzdGVtIHRtcGZpbGUgYXBpICovDQo+ICsJCWlm IChzdXBwb3J0ZWQpIHsNCj4gKwkJCXRtcGZpbGVfZmQgPSBvcGVuYXQob3Blbl90cmVlX2ZkLCAi LiIsIE9fVE1QRklMRSB8IE9fUkRXUiwgU19JWEdSUCB8IFNfSVNHSUQpOw0KPiArCQkJaWYgKHRt cGZpbGVfZmQgPCAwKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogY3JlYXRlIik7DQo+ICsJCQkvKiBs aW5rIHRoZSB0ZW1wb3JhcnkgZmlsZSBpbnRvIHRoZSBmaWxlc3lzdGVtLCBtYWtpbmcgaXQgcGVy bWFuZW50ICovDQo+ICsJCQlzbnByaW50ZihwYXRoLCBQQVRIX01BWCwgICIvcHJvYy9zZWxmL2Zk LyVkIiwgdG1wZmlsZV9mZCk7DQo+ICsJCQlpZiAobGlua2F0KEFUX0ZEQ1dELCBwYXRoLCBvcGVu X3RyZWVfZmQsIEZJTEUzLCBBVF9TWU1MSU5LX0ZPTExPVykpDQo+ICsJCQkJZGllKCJmYWlsdXJl OiBsaW5rYXQiKTsNCj4gKwkJCWlmIChjbG9zZSh0bXBmaWxlX2ZkKSkNCj4gKwkJCQlkaWUoImZh aWx1cmU6IGNsb3NlIik7DQo+ICsJCQlpZiAoaXNfc2V0Z2lkKG9wZW5fdHJlZV9mZCwgRklMRTMs IDApKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogaXNfc2V0Z2lkIik7DQo+ICsJCQlpZiAoaXNfaXhn cnAob3Blbl90cmVlX2ZkLCBGSUxFMywgMCkpDQo+ICsJCQkJZGllKCJmYWlsdXJlOiBpc19peGdy cCIpOw0KPiArCQkJaWYgKCFleHBlY3RlZF91aWRfZ2lkKG9wZW5fdHJlZV9mZCwgRklMRTMsIDAs IDAsIDEwMDApKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogY2hlY2sgb3duZXJzaGlwIik7DQo+ICsJ CQlpZiAodW5saW5rYXQob3Blbl90cmVlX2ZkLCBGSUxFMywgMCkpDQo+ICsJCQkJZGllKCJmYWls dXJlOiBkZWxldGUiKTsNCj4gKwkJfQ0KPiArDQo+ICsJCWV4aXQoRVhJVF9TVUNDRVNTKTsNCj4g Kwl9DQo+ICsJaWYgKHdhaXRfZm9yX3BpZChwaWQpKQ0KPiArCQlnb3RvIG91dDsNCj4gKw0KPiAr CWZyZXQgPSAwOw0KPiArCWxvZ19kZWJ1ZygiUmFuIHRlc3QiKTsNCj4gK291dDoNCj4gKwlzYWZl X2Nsb3NlKGF0dHIudXNlcm5zX2ZkKTsNCj4gKwlzYWZlX2Nsb3NlKGZpbGUxX2ZkKTsNCj4gKwlz YWZlX2Nsb3NlKG9wZW5fdHJlZV9mZCk7DQo+ICsNCj4gKwlyZXR1cm4gZnJldDsNCj4gK30NCj4g Kw0KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdF9zdHJ1Y3QgdF9pZG1hcHBlZF9tb3VudHNb XSA9IHsNCj4gICAJeyBhY2xzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRydWUsICAgInBvc2l4IGFjbHMgb24gcmVndWxhciBtb3VudHMi LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSwNCj4gICAJeyBjcmVhdGVfaW5fdXNlcm5zLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsICAgImNyZWF0ZSBvcGVyYXRpb25zIGluIHVz ZXIgbmFtZXNwYWNlIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwNCj4gQEAgLTc3NDUsMyArODE2NCwxMyBAQCBjb25zdCBzdHJ1Y3Qg dGVzdF9zdWl0ZSBzX3NldHhhdHRyX2ZpeF83MDUxOTFiMDNkNTAgPSB7DQo+ICAgCS50ZXN0cyA9 IHRfc2V0eGF0dHJfZml4XzcwNTE5MWIwM2Q1MCwNCj4gICAJLm5yX3Rlc3RzID0gQVJSQVlfU0la RSh0X3NldHhhdHRyX2ZpeF83MDUxOTFiMDNkNTApLA0KPiAgIH07DQo+ICsNCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgdGVzdF9zdHJ1Y3QgdF9zZXRnaWRfY3JlYXRlX3VtYXNrX2lkbWFwcGVkW10g PSB7DQo+ICsJeyBzZXRnaWRfY3JlYXRlX3VtYXNrX2lkbWFwcGVkLAkJCQkJVF9SRVFVSVJFX0lE TUFQUEVEX01PVU5UUywJImNyZWF0ZSBvcGVyYXRpb25zIGJ5IHVzaW5nIHVtYXNrIGluIGRpcmVj dG9yaWVzIHdpdGggc2V0Z2lkIGJpdCBzZXQgb24gaWRtYXBwZWQgbW91bnQiLAkJfSwNCj4gKwl7 IHNldGdpZF9jcmVhdGVfdW1hc2tfaWRtYXBwZWRfaW5fdXNlcm5zLAkJCVRfUkVRVUlSRV9JRE1B UFBFRF9NT1VOVFMsCSJjcmVhdGUgb3BlcmF0aW9ucyBieSB1c2luZyB1bWFzayBpbiBkaXJlY3Rv cmllcyB3aXRoIHNldGdpZCBiaXQgc2V0IG9uIGlkbWFwcGVkIG1vdW50IGluc2lkZSB1c2VybnMi LAl9LA0KPiArfTsNCj4gKw0KPiArY29uc3Qgc3RydWN0IHRlc3Rfc3VpdGUgc19zZXRnaWRfY3Jl YXRlX3VtYXNrX2lkbWFwcGVkID0gew0KPiArCS50ZXN0cyA9IHRfc2V0Z2lkX2NyZWF0ZV91bWFz a19pZG1hcHBlZCwNCj4gKwkubnJfdGVzdHMgPSBBUlJBWV9TSVpFKHRfc2V0Z2lkX2NyZWF0ZV91 bWFza19pZG1hcHBlZCksDQo+ICt9Ow0KPiBkaWZmIC0tZ2l0IGEvc3JjL3Zmcy9pZG1hcHBlZC1t b3VudHMuaCBiL3NyYy92ZnMvaWRtYXBwZWQtbW91bnRzLmgNCj4gaW5kZXggZmYyMWVhMmMuLmEz MzI0MzlmIDEwMDY0NA0KPiAtLS0gYS9zcmMvdmZzL2lkbWFwcGVkLW1vdW50cy5oDQo+ICsrKyBi L3NyYy92ZnMvaWRtYXBwZWQtbW91bnRzLmgNCj4gQEAgLTE0LDUgKzE0LDYgQEAgZXh0ZXJuIGNv bnN0IHN0cnVjdCB0ZXN0X3N1aXRlIHNfZnNjYXBzX2luX2FuY2VzdG9yX3VzZXJuczsNCj4gICBl eHRlcm4gY29uc3Qgc3RydWN0IHRlc3Rfc3VpdGUgc19uZXN0ZWRfdXNlcm5zOw0KPiAgIGV4dGVy biBjb25zdCBzdHJ1Y3QgdGVzdF9zdWl0ZSBzX3NldGF0dHJfZml4Xzk2ODIxOTcwODEwODsNCj4g ICBleHRlcm4gY29uc3Qgc3RydWN0IHRlc3Rfc3VpdGUgc19zZXR4YXR0cl9maXhfNzA1MTkxYjAz ZDUwOw0KPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCB0ZXN0X3N1aXRlIHNfc2V0Z2lkX2NyZWF0ZV91 bWFza19pZG1hcHBlZDsNCj4gICANCj4gICAjZW5kaWYgLyogX19JRE1BUFBFRF9NT1VOVFNfSCAq Lw0KPiBkaWZmIC0tZ2l0IGEvc3JjL3Zmcy91dGlscy5jIGIvc3JjL3Zmcy91dGlscy5jDQo+IGlu ZGV4IDEzODhlZGRhLi42ZGI3YTExZCAxMDA2NDQNCj4gLS0tIGEvc3JjL3Zmcy91dGlscy5jDQo+ ICsrKyBiL3NyYy92ZnMvdXRpbHMuYw0KPiBAQCAtODA5LDYgKzgwOSwyMCBAQCBib29sIGlzX3N0 aWNreShpbnQgZGZkLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgZmxhZ3MpDQo+ICAgCXJldHVybiAo c3Quc3RfbW9kZSAmIFNfSVNWVFgpID4gMDsNCj4gICB9DQo+ICAgDQo+ICsvKmlzX2l4Z3JwIC0g Y2hlY2sgd2hldGhlciBmaWxlIG9yIGRpcmVjdG9yeSBpcyBTX0lYR1JQICovDQo+ICtib29sIGlz X2l4Z3JwKGludCBkZmQsIGNvbnN0IGNoYXIgKnBhdGgsIGludCBmbGFncykNCj4gK3sNCj4gKwlp bnQgcmV0Ow0KPiArCXN0cnVjdCBzdGF0IHN0Ow0KPiArDQo+ICsJcmV0ID0gZnN0YXRhdChkZmQs IHBhdGgsICZzdCwgZmxhZ3MpOw0KPiArCWlmIChyZXQgPCAwKQ0KPiArCQlyZXR1cm4gZmFsc2U7 DQo+ICsNCj4gKwllcnJubyA9IDA7IC8qIERvbid0IHJlcG9ydCBtaXNsZWFkaW5nIGVycm5vLiAq Lw0KPiArCXJldHVybiAoc3Quc3RfbW9kZSAmIFNfSVhHUlApOw0KPiArfQ0KPiArDQo+ICAgYm9v bCBzd2l0Y2hfcmVzaWRzKHVpZF90IHVpZCwgZ2lkX3QgZ2lkKQ0KPiAgIHsNCj4gICAJaWYgKHNl dHJlc2dpZChnaWQsIGdpZCwgZ2lkKSkNCj4gZGlmZiAtLWdpdCBhL3NyYy92ZnMvdXRpbHMuaCBi L3NyYy92ZnMvdXRpbHMuaA0KPiBpbmRleCA3ZmI3MDJmZC4uYzBkYmUzNzAgMTAwNjQ0DQo+IC0t LSBhL3NyYy92ZnMvdXRpbHMuaA0KPiArKysgYi9zcmMvdmZzL3V0aWxzLmgNCj4gQEAgLTM2OCw2 ICszNjgsNyBAQCBleHRlcm4gYm9vbCBleHBlY3RlZF9maWxlX3NpemUoaW50IGRmZCwgY29uc3Qg Y2hhciAqcGF0aCwgaW50IGZsYWdzLA0KPiAgIGV4dGVybiBib29sIGlzX3NldGlkKGludCBkZmQs IGNvbnN0IGNoYXIgKnBhdGgsIGludCBmbGFncyk7DQo+ICAgZXh0ZXJuIGJvb2wgaXNfc2V0Z2lk KGludCBkZmQsIGNvbnN0IGNoYXIgKnBhdGgsIGludCBmbGFncyk7DQo+ICAgZXh0ZXJuIGJvb2wg aXNfc3RpY2t5KGludCBkZmQsIGNvbnN0IGNoYXIgKnBhdGgsIGludCBmbGFncyk7DQo+ICtleHRl cm4gYm9vbCBpc19peGdycChpbnQgZGZkLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgZmxhZ3MpOw0K PiAgIGV4dGVybiBib29sIG9wZW5hdF90bXBmaWxlX3N1cHBvcnRlZChpbnQgZGlyZmQpOw0KPiAg IA0KPiAgICNlbmRpZiAvKiBfX0lETUFQX1VUSUxTX0ggKi8NCj4gZGlmZiAtLWdpdCBhL3NyYy92 ZnMvdmZzdGVzdC5jIGIvc3JjL3Zmcy92ZnN0ZXN0LmMNCj4gaW5kZXggMjlhYzBiZWMuLjg0NDgz NjJlIDEwMDY0NA0KPiAtLS0gYS9zcmMvdmZzL3Zmc3Rlc3QuYw0KPiArKysgYi9zcmMvdmZzL3Zm c3Rlc3QuYw0KPiBAQCAtMTczMyw2ICsxNzMzLDE4NiBAQCBvdXQ6DQo+ICAgCXJldHVybiBmcmV0 Ow0KPiAgIH0NCj4gICANCj4gKy8qIFRoZSBjdXJyZW50X3VtYXNrKCkgaXMgc3RyaXBwZWQgZnJv bSB0aGUgbW9kZSBkaXJlY3RseSBpbiB0aGUgdmZzIGlmIHRoZQ0KPiArICogZmlsZXN5c3RlbSBl aXRoZXIgZG9lc24ndCBzdXBwb3J0IGFjbHMgb3IgdGhlIGZpbGVzeXN0ZW0gaGFzIGJlZW4NCj4g KyAqIG1vdW50ZWQgd2l0aG91dCBwb3NpYyBhY2wgc3VwcG9ydC4NCj4gKyAqDQo+ICsgKiBJZiB0 aGUgZmlsZXN5c3RlbSBkb2VzIHN1cHBvcnQgYWNscyB0aGVuIGN1cnJlbnRfdW1hc2soKSBzdHJp cHBpbmcgaXMNCj4gKyAqIGRlZmVycmVkIHRvIHBvc2l4X2FjbF9jcmVhdGUoKS4gU28gd2hlbiB0 aGUgZmlsZXN5c3RlbSBjYWxscw0KPiArICogcG9zaXhfYWNsX2NyZWF0ZSgpIGFuZCB0aGVyZSBh cmUgbm8gYWNscyBzZXQgb3Igbm90IHN1cHBvcnRlZCB0aGVuDQo+ICsgKiBjdXJyZW50X3VtYXNr KCkgd2lsbCBiZSBzdHJpcHBlZC4NCj4gKyAqDQo+ICsgKiBVc2UgdW1hc2soU19JWEdSUCkgdG8g Y2hlY2sgd2hldGhlciBpbm9kZSBzdHJpcCBTX0lTR0lEIHdvcmtzIGNvcnJlY3RseS4NCj4gKyAq Lw0KPiArDQo+ICtzdGF0aWMgaW50IHNldGdpZF9jcmVhdGVfdW1hc2soY29uc3Qgc3RydWN0IHZm c3Rlc3RfaW5mbyAqaW5mbykNCj4gK3sNCj4gKwlpbnQgZnJldCA9IC0xOw0KPiArCWludCBmaWxl MV9mZCA9IC1FQkFERjsNCj4gKwlpbnQgdG1wZmlsZV9mZCA9IC1FQkFERjsNCj4gKwlwaWRfdCBw aWQ7DQo+ICsJYm9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsNCj4gKwltb2RlX3QgbW9kZTsNCj4gKw0K PiArCWlmICghY2Fwc19zdXBwb3J0ZWQoKSkNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlpZiAo ZmNobW9kKGluZm8tPnRfZGlyMV9mZCwgU19JUlVTUiB8DQo+ICsJCQkgICAgICBTX0lXVVNSIHwN Cj4gKwkJCSAgICAgIFNfSVJHUlAgfA0KPiArCQkJICAgICAgU19JV0dSUCB8DQo+ICsJCQkgICAg ICBTX0lST1RIIHwNCj4gKwkJCSAgICAgIFNfSVdPVEggfA0KPiArCQkJICAgICAgU19JWFVTUiB8 DQo+ICsJCQkgICAgICBTX0lYR1JQIHwNCj4gKwkJCSAgICAgIFNfSVhPVEggfA0KPiArCQkJICAg ICAgU19JU0dJRCksIDApIHsNCj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogZmNobW9kIik7DQo+ ICsJCWdvdG8gb3V0Ow0KPiArCX0NCj4gKw0KPiArCS8qIFZlcmlmeSB0aGF0IHRoZSBzZXRnaWQg Yml0IGdvdCByYWlzZWQuICovDQo+ICsJaWYgKCFpc19zZXRnaWQoaW5mby0+dF9kaXIxX2ZkLCAi IiwgQVRfRU1QVFlfUEFUSCkpIHsNCj4gKwkJbG9nX3N0ZGVycigiZmFpbHVyZTogaXNfc2V0Z2lk Iik7DQo+ICsJCWdvdG8gb3V0Ow0KPiArCX0NCj4gKw0KPiArCXN1cHBvcnRlZCA9IG9wZW5hdF90 bXBmaWxlX3N1cHBvcnRlZChpbmZvLT50X2RpcjFfZmQpOw0KPiArDQo+ICsJLyogT25seSB1bWFz ayB3aXRoIFNfSVhHUlAgYmVjYXVzZSBpbm9kZSBzdHJpcCBTX0lTR0lEIHdpbGwgY2hlY2sgbW9k ZQ0KPiArCSAqIHdoZXRoZXIgaGFzIGdyb3VwIGV4ZWN1dGUgb3Igc2VhcmNoIHBlcm1pc3Npb24u DQo+ICsJICovDQo+ICsJdW1hc2soU19JWEdSUCk7DQo+ICsJbW9kZSA9IHVtYXNrKFNfSVhHUlAp Ow0KPiArCWlmICghKG1vZGUgJiBTX0lYR1JQKSkNCj4gKwkJZGllKCJmYWlsdXJlOiB1bWFzayIp Ow0KPiArDQo+ICsJcGlkID0gZm9yaygpOw0KPiArCWlmIChwaWQgPCAwKSB7DQo+ICsJCWxvZ19z dGRlcnIoImZhaWx1cmU6IGZvcmsiKTsNCj4gKwkJZ290byBvdXQ7DQo+ICsJfQ0KPiArCWlmIChw aWQgPT0gMCkgew0KPiArCQlpZiAoIXN3aXRjaF9pZHMoMCwgMTAwMDApKQ0KPiArCQkJZGllKCJm YWlsdXJlOiBzd2l0Y2hfaWRzIik7DQo+ICsNCj4gKwkJaWYgKCFjYXBzX2Rvd25fZnNldGlkKCkp DQo+ICsJCQlkaWUoImZhaWx1cmU6IGNhcHNfZG93bl9mc2V0aWQiKTsNCj4gKw0KPiArCQkvKiBj cmVhdGUgcmVndWxhciBmaWxlIHZpYSBvcGVuKCkgKi8NCj4gKwkJZmlsZTFfZmQgPSBvcGVuYXQo aW5mby0+dF9kaXIxX2ZkLCBGSUxFMSwgT19DUkVBVCB8IE9fRVhDTCB8IE9fQ0xPRVhFQywgU19J WEdSUCB8IFNfSVNHSUQpOw0KPiArCQlpZiAoZmlsZTFfZmQgPCAwKQ0KPiArCQkJZGllKCJmYWls dXJlOiBjcmVhdGUiKTsNCj4gKw0KPiArCQkvKiBOZWl0aGVyIGluX2dyb3VwX3AoKSBub3IgY2Fw YWJsZV93cnRfaW5vZGVfdWlkZ2lkKCkgc28gc2V0Z2lkDQo+ICsJCSAqIGJpdCBuZWVkcyB0byBi ZSBzdHJpcHBlZC4NCj4gKwkJICovDQo+ICsJCWlmIChpc19zZXRnaWQoaW5mby0+dF9kaXIxX2Zk LCBGSUxFMSwgMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGlzX3NldGdpZCIpOw0KPiArDQo+ICsJ CWlmIChpc19peGdycChpbmZvLT50X2RpcjFfZmQsIEZJTEUxLCAwKSkNCj4gKwkJCWRpZSgiZmFp bHVyZTogaXNfaXhncnAiKTsNCj4gKw0KPiArCQlpZiAobWtkaXJhdChpbmZvLT50X2RpcjFfZmQs IERJUjEsIDAwMDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBjcmVhdGUiKTsNCj4gKw0KPiArCQlp ZiAoeGZzX2lyaXhfc2dpZF9pbmhlcml0X2VuYWJsZWQoaW5mby0+dF9mc3R5cGUpKSB7DQo+ICsJ CQkvKiBXZSdyZSBub3QgaW5fZ3JvdXBfcCgpLiAqLw0KPiArCQkJaWYgKGlzX3NldGdpZChpbmZv LT50X2RpcjFfZmQsIERJUjEsIDApKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogaXNfc2V0Z2lkIik7 DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQkvKiBEaXJlY3RvcmllcyBhbHdheXMgaW5oZXJpdCB0aGUg c2V0Z2lkIGJpdC4gKi8NCj4gKwkJCWlmICghaXNfc2V0Z2lkKGluZm8tPnRfZGlyMV9mZCwgRElS MSwgMCkpDQo+ICsJCQkJZGllKCJmYWlsdXJlOiBpc19zZXRnaWQiKTsNCj4gKwkJfQ0KPiArDQo+ ICsJCWlmIChpc19peGdycChpbmZvLT50X2RpcjFfZmQsIERJUjEsIDApKQ0KPiArCQkJZGllKCJm YWlsdXJlOiBpc19peGdycCIpOw0KPiArDQo+ICsJCS8qIGNyZWF0ZSBhIHNwZWNpYWwgZmlsZSB2 aWEgbWtub2RhdCgpIHZmc19jcmVhdGUgKi8NCj4gKwkJaWYgKG1rbm9kYXQoaW5mby0+dF9kaXIx X2ZkLCBGSUxFMiwgU19JRlJFRyB8IFNfSVNHSUQgfCBTX0lYR1JQLCAwKSkNCj4gKwkJCWRpZSgi ZmFpbHVyZTogbWtub2RhdCIpOw0KPiArDQo+ICsJCWlmIChpc19zZXRnaWQoaW5mby0+dF9kaXIx X2ZkLCBGSUxFMiwgMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGlzX3NldGdpZCIpOw0KPiArDQo+ ICsJCWlmIChpc19peGdycChpbmZvLT50X2RpcjFfZmQsIEZJTEUyLCAwKSkNCj4gKwkJCWRpZSgi ZmFpbHVyZTogaXNfaXhncnAiKTsNCj4gKw0KPiArCQkvKiBjcmVhdGUgYSBjaGFyYWN0ZXIgZGV2 aWNlIHZpYSBta25vZGF0KCkgdmZzX21rbm9kICovDQo+ICsJCWlmIChta25vZGF0KGluZm8tPnRf ZGlyMV9mZCwgQ0hSREVWMSwgU19JRkNIUiB8IFNfSVNHSUQgfCBTX0lYR1JQLCBtYWtlZGV2KDUs IDEpKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogbWtub2RhdCIpOw0KPiArDQo+ICsJCWlmIChpc19z ZXRnaWQoaW5mby0+dF9kaXIxX2ZkLCBDSFJERVYxLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTog aXNfc2V0Z2lkIik7DQo+ICsNCj4gKwkJaWYgKGlzX2l4Z3JwKGluZm8tPnRfZGlyMV9mZCwgQ0hS REVWMSwgMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6IGlzX2l4Z3JwIik7DQo+ICsNCj4gKwkJLyoN Cj4gKwkJICogSW4gc2V0Z2lkIGRpcmVjdG9yaWVzIG5ld2x5IGNyZWF0ZWQgZmlsZXMgYWx3YXlz IGluaGVyaXQgdGhlDQo+ICsJCSAqIGdpZCBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0b3J5LiBWZXJp ZnkgdGhhdCB0aGUgZmlsZSBpcyBvd25lZA0KPiArCQkgKiBieSBnaWQgMCwgbm90IGJ5IGdpZCAx MDAwMC4NCj4gKwkJICovDQo+ICsJCWlmICghZXhwZWN0ZWRfdWlkX2dpZChpbmZvLT50X2RpcjFf ZmQsIEZJTEUxLCAwLCAwLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogY2hlY2sgb3duZXJzaGlw Iik7DQo+ICsNCj4gKwkJLyoNCj4gKwkJICogSW4gc2V0Z2lkIGRpcmVjdG9yaWVzIG5ld2x5IGNy ZWF0ZWQgZGlyZWN0b3JpZXMgYWx3YXlzDQo+ICsJCSAqIGluaGVyaXQgdGhlIGdpZCBmcm9tIHRo ZSBwYXJlbnQgZGlyZWN0b3J5LiBWZXJpZnkgdGhhdCB0aGUNCj4gKwkJICogZGlyZWN0b3J5IGlz IG93bmVkIGJ5IGdpZCAwLCBub3QgYnkgZ2lkIDEwMDAwLg0KPiArCQkgKi8NCj4gKwkJaWYgKCFl eHBlY3RlZF91aWRfZ2lkKGluZm8tPnRfZGlyMV9mZCwgRElSMSwgMCwgMCwgMCkpDQo+ICsJCQlk aWUoImZhaWx1cmU6IGNoZWNrIG93bmVyc2hpcCIpOw0KPiArDQo+ICsJCWlmICghZXhwZWN0ZWRf dWlkX2dpZChpbmZvLT50X2RpcjFfZmQsIEZJTEUyLCAwLCAwLCAwKSkNCj4gKwkJCWRpZSgiZmFp bHVyZTogY2hlY2sgb3duZXJzaGlwIik7DQo+ICsNCj4gKwkJaWYgKCFleHBlY3RlZF91aWRfZ2lk KGluZm8tPnRfZGlyMV9mZCwgQ0hSREVWMSwgMCwgMCwgMCkpDQo+ICsJCQlkaWUoImZhaWx1cmU6 IGNoZWNrIG93bmVyc2hpcCIpOw0KPiArDQo+ICsJCWlmICh1bmxpbmthdChpbmZvLT50X2RpcjFf ZmQsIEZJTEUxLCAwKSkNCj4gKwkJCWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+ICsNCj4gKwkJ aWYgKHVubGlua2F0KGluZm8tPnRfZGlyMV9mZCwgRElSMSwgQVRfUkVNT1ZFRElSKSkNCj4gKwkJ CWRpZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+ICsNCj4gKwkJaWYgKHVubGlua2F0KGluZm8tPnRf ZGlyMV9mZCwgRklMRTIsIDApKQ0KPiArCQkJZGllKCJmYWlsdXJlOiBkZWxldGUiKTsNCj4gKw0K PiArCQlpZiAodW5saW5rYXQoaW5mby0+dF9kaXIxX2ZkLCBDSFJERVYxLCAwKSkNCj4gKwkJCWRp ZSgiZmFpbHVyZTogZGVsZXRlIik7DQo+ICsNCj4gKwkJLyogY3JlYXRlIHRtcGZpbGUgdmlhIGZp bGVzeXN0ZW0gdG1wZmlsZSBhcGkgKi8NCj4gKwkJaWYgKHN1cHBvcnRlZCkgew0KPiArCQkJdG1w ZmlsZV9mZCA9IG9wZW5hdChpbmZvLT50X2RpcjFfZmQsICIuIiwgT19UTVBGSUxFIHwgT19SRFdS LCBTX0lYR1JQIHwgU19JU0dJRCk7DQo+ICsJCQlpZiAodG1wZmlsZV9mZCA8IDApDQo+ICsJCQkJ ZGllKCJmYWlsdXJlOiBjcmVhdGUiKTsNCj4gKwkJCS8qIGxpbmsgdGhlIHRlbXBvcmFyeSBmaWxl IGludG8gdGhlIGZpbGVzeXN0ZW0sIG1ha2luZyBpdCBwZXJtYW5lbnQgKi8NCj4gKwkJCWlmIChs aW5rYXQodG1wZmlsZV9mZCwgIiIsIGluZm8tPnRfZGlyMV9mZCwgRklMRTMsIEFUX0VNUFRZX1BB VEgpKQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogbGlua2F0Iik7DQo+ICsJCQlpZiAoY2xvc2UodG1w ZmlsZV9mZCkpDQo+ICsJCQkJZGllKCJmYWlsdXJlOiBjbG9zZSIpOw0KPiArCQkJaWYgKGlzX3Nl dGdpZChpbmZvLT50X2RpcjFfZmQsIEZJTEUzLCAwKSkNCj4gKwkJCQlkaWUoImZhaWx1cmU6IGlz X3NldGdpZCIpOw0KPiArCQkJaWYgKGlzX2l4Z3JwKGluZm8tPnRfZGlyMV9mZCwgRklMRTMsIDAp KQ0KPiArCQkJCWRpZSgiZmFpbHVyZTogaXNfaXhncnAiKTsNCj4gKwkJCWlmICh1bmxpbmthdChp bmZvLT50X2RpcjFfZmQsIEZJTEUzLCAwKSkNCj4gKwkJCQlkaWUoImZhaWx1cmU6IGRlbGV0ZSIp Ow0KPiArCQl9DQo+ICsNCj4gKwkJZXhpdChFWElUX1NVQ0NFU1MpOw0KPiArCX0NCj4gKwlpZiAo d2FpdF9mb3JfcGlkKHBpZCkpDQo+ICsJCWdvdG8gb3V0Ow0KPiArDQo+ICsJZnJldCA9IDA7DQo+ ICsJbG9nX2RlYnVnKCJSYW4gdGVzdCIpOw0KPiArb3V0Og0KPiArCXNhZmVfY2xvc2UoZmlsZTFf ZmQpOw0KPiArCXJldHVybiBmcmV0Ow0KPiArfQ0KPiArDQo+ICAgc3RhdGljIGludCBzZXRhdHRy X3RydW5jYXRlKGNvbnN0IHN0cnVjdCB2ZnN0ZXN0X2luZm8gKmluZm8pDQo+ICAgew0KPiAgIAlp bnQgZnJldCA9IC0xOw0KPiBAQCAtMTgwNyw2ICsxOTg3LDcgQEAgc3RhdGljIHZvaWQgdXNhZ2Uo dm9pZCkNCj4gICAJZnByaW50ZihzdGRlcnIsICItLXRlc3QtYnRyZnMgICAgICAgICAgICAgICAg ICAgICAgICBSdW4gYnRyZnMgc3BlY2lmaWMgaWRtYXBwZWQgbW91bnQgdGVzdHN1aXRlXG4iKTsN Cj4gICAJZnByaW50ZihzdGRlcnIsICItLXRlc3Qtc2V0YXR0ci1maXgtOTY4MjE5NzA4MTA4ICAg ICBSdW4gc2V0YXR0ciByZWdyZXNzaW9uIHRlc3RzXG4iKTsNCj4gICAJZnByaW50ZihzdGRlcnIs ICItLXRlc3Qtc2V0eGF0dHItZml4LTcwNTE5MWIwM2Q1MCAgICBSdW4gc2V0eGF0dHIgcmVncmVz c2lvbiB0ZXN0c1xuIik7DQo+ICsJZnByaW50ZihzdGRlcnIsICItLXRlc3Qtc2V0Z2lkLWNyZWF0 ZS11bWFzayAgICAgICAgICBSdW4gc2V0Z2lkIHdpdGggdW1hc2sgdGVzdHNcbiIpOw0KPiAgIA0K PiAgIAlfZXhpdChFWElUX1NVQ0NFU1MpOw0KPiAgIH0NCj4gQEAgLTE4MjUsNiArMjAwNiw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10gPSB7DQo+ICAgCXsidGVzdC1i dHJmcyIsCQkJCW5vX2FyZ3VtZW50LAkJMCwJJ2InfSwNCj4gICAJeyJ0ZXN0LXNldGF0dHItZml4 LTk2ODIxOTcwODEwOCIsCW5vX2FyZ3VtZW50LAkJMCwJJ2knfSwNCj4gICAJeyJ0ZXN0LXNldHhh dHRyLWZpeC03MDUxOTFiMDNkNTAiLAlub19hcmd1bWVudCwJCTAsCSdqJ30sDQo+ICsJeyJ0ZXN0 LXNldGdpZC1jcmVhdGUtdW1hc2siLAkJbm9fYXJndW1lbnQsCQkwLAkndSd9LA0KPiAgIAl7TlVM TCwJCQkJCTAsCQkJMCwJICAwfSwNCj4gICB9Ow0KPiAgIA0KPiBAQCAtMTg1MCw2ICsyMDMyLDE1 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdF9zdWl0ZSBzX2Jhc2ljID0gew0KPiAgIAkubnJf dGVzdHMgPSBBUlJBWV9TSVpFKHRfYmFzaWMpLA0KPiAgIH07DQo+ICAgDQo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IHRlc3Rfc3RydWN0IHRfc2V0Z2lkX2NyZWF0ZV91bWFza1tdID0gew0KPiArCXsg c2V0Z2lkX2NyZWF0ZV91bWFzaywJCQkJCQkwLAkJCSJjcmVhdGUgb3BlcmF0aW9ucyBpbiBkaXJl Y3RvcmllcyB3aXRoIHNldGdpZCBiaXQgc2V0IHVuZGVyIHVtYXNrIiwJCQkJfSwNCj4gK307DQo+ ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdF9zdWl0ZSBzX3NldGdpZF9jcmVhdGVfdW1h c2sgPSB7DQo+ICsJLnRlc3RzID0gdF9zZXRnaWRfY3JlYXRlX3VtYXNrLA0KPiArCS5ucl90ZXN0 cyA9IEFSUkFZX1NJWkUodF9zZXRnaWRfY3JlYXRlX3VtYXNrKSwNCj4gK307DQo+ICsNCj4gICBz dGF0aWMgYm9vbCBydW5fdGVzdChzdHJ1Y3QgdmZzdGVzdF9pbmZvICppbmZvLCBjb25zdCBzdHJ1 Y3QgdGVzdF9zdHJ1Y3Qgc3VpdGVbXSwgc2l6ZV90IHN1aXRlX3NpemUpDQo+ICAgew0KPiAgIAlp bnQgaTsNCj4gQEAgLTE5NDcsNyArMjEzOCw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICph cmd2W10pDQo+ICAgCWJvb2wgaWRtYXBwZWRfbW91bnRzX3N1cHBvcnRlZCA9IGZhbHNlLCB0ZXN0 X2J0cmZzID0gZmFsc2UsDQo+ICAgCSAgICAgdGVzdF9jb3JlID0gZmFsc2UsIHRlc3RfZnNjYXBz X3JlZ3Jlc3Npb24gPSBmYWxzZSwNCj4gICAJICAgICB0ZXN0X25lc3RlZF91c2VybnMgPSBmYWxz ZSwgdGVzdF9zZXRhdHRyX2ZpeF85NjgyMTk3MDgxMDggPSBmYWxzZSwNCj4gLQkgICAgIHRlc3Rf c2V0eGF0dHJfZml4XzcwNTE5MWIwM2Q1MCA9IGZhbHNlOw0KPiArCSAgICAgdGVzdF9zZXR4YXR0 cl9maXhfNzA1MTkxYjAzZDUwID0gZmFsc2UsDQo+ICsJICAgICB0ZXN0X3NldGdpZF9jcmVhdGVf dW1hc2sgPSBmYWxzZTsNCj4gICANCj4gICAJaW5pdF92ZnN0ZXN0X2luZm8oJmluZm8pOw0KPiAg IA0KPiBAQCAtMTk4OSw2ICsyMTgxLDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkNCj4gICAJCWNhc2UgJ2onOg0KPiAgIAkJCXRlc3Rfc2V0eGF0dHJfZml4XzcwNTE5MWIwM2Q1 MCA9IHRydWU7DQo+ICAgCQkJYnJlYWs7DQo+ICsJCWNhc2UgJ3UnOg0KPiArCQkJdGVzdF9zZXRn aWRfY3JlYXRlX3VtYXNrID0gdHJ1ZTsNCj4gKwkJCWJyZWFrOw0KPiAgIAkJY2FzZSAnaCc6DQo+ ICAgCQkJLyogZmFsbHRocm91Z2ggKi8NCj4gICAJCWRlZmF1bHQ6DQo+IEBAIC0yMDY2LDYgKzIy NjEsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCj4gICAJICAgICFydW5f c3VpdGUoJmluZm8sICZzX3NldHhhdHRyX2ZpeF83MDUxOTFiMDNkNTApKQ0KPiAgIAkJZ290byBv dXQ7DQo+ICAgDQo+ICsJaWYgKHRlc3Rfc2V0Z2lkX2NyZWF0ZV91bWFzaykgew0KPiArCQlpZiAo IXJ1bl9zdWl0ZSgmaW5mbywgJnNfc2V0Z2lkX2NyZWF0ZV91bWFzaykpDQo+ICsJCQlnb3RvIG91 dDsNCj4gKw0KPiArCQlpZiAoIXJ1bl9zdWl0ZSgmaW5mbywgJnNfc2V0Z2lkX2NyZWF0ZV91bWFz a19pZG1hcHBlZCkpDQo+ICsJCQlnb3RvIG91dDsNCj4gKwl9DQo+ICsNCj4gICAJZnJldCA9IEVY SVRfU1VDQ0VTUzsNCj4gICANCj4gICBvdXQ6DQo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW5lcmlj LzY5MSBiL3Rlc3RzL2dlbmVyaWMvNjkxDQo+IG5ldyBmaWxlIG1vZGUgMTAwNzU1DQo+IGluZGV4 IDAwMDAwMDAwLi5kNDg3NTg1NA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3Rlc3RzL2dlbmVy aWMvNjkxDQo+IEBAIC0wLDAgKzEsNDAgQEANCj4gKyMhIC9iaW4vYmFzaA0KPiArIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMjIgRnVqaXRz dSBMaW1pdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPiArIw0KPiArIyBGUyBRQSBUZXN0IE5v LiA2OTENCj4gKyMNCj4gKyMgVGVzdCB0aGF0IGlkbWFwcGVkIG1vdW50cyBzZXRnaWQncyBiZWhh dmUgY29ycmVjdGx5IHdoZW4gdXNpbmcNCj4gKyMgdW1hc2soU19JWEdSUCkNCj4gKyMNCj4gKy4g Li9jb21tb24vcHJlYW1ibGUNCj4gK19iZWdpbl9mc3Rlc3QgYXV0byBxdWljayBjYXAgaWRtYXBw ZWQgbW91bnQgcGVybXMgcncgdW5saW5rDQo+ICsNCj4gKyMgSW1wb3J0IGNvbW1vbiBmdW5jdGlv bnMuDQo+ICsuIC4vY29tbW9uL2ZpbHRlcg0KPiArDQo+ICsjIHJlYWwgUUEgdGVzdCBzdGFydHMg aGVyZQ0KPiArDQo+ICtfc3VwcG9ydGVkX2ZzIGdlbmVyaWMNCj4gK19yZXF1aXJlX3Rlc3QNCj4g K19yZXF1aXJlX3NjcmF0Y2gNCj4gKw0KPiArZWNobyAiU2lsZW5jZSBpcyBnb2xkZW4iDQo+ICsN Cj4gKyRoZXJlL3NyYy92ZnMvdmZzdGVzdCAtLXRlc3Qtc2V0Z2lkLWNyZWF0ZS11bWFzayBcDQo+ ICsgICAgICAgIC0tZGV2aWNlICIkVEVTVF9ERVYiIC0tbW91bnQgIiRURVNUX0RJUiIgLS1mc3R5 cGUgIiRGU1RZUCINCj4gKw0KPiArX3NjcmF0Y2hfbWtmcyA+ICIkc2VxcmVzLmZ1bGwiIDI+JjEN Cj4gK2V4cG9ydCBNT1VOVF9PUFRJT05TPSItbyBub2FjbCINCj4gKw0KPiArIyBJZiBmaWxlc3lz dGVtIHN1cHBvcnRzIG5vYWNsIG1vdW50IG9wdGlvbiwgYWxzbyB0ZXN0IHNldGdpZCBiaXQgd2hl dGhlcg0KPiArIyB3YXMgc3RyaXBwZWQgY29ycmVjdGx5Lg0KPiArIyBub2FjbCB3aWxsIGVhcnNl IGFjbCBmbGFnIGluIHN1cGVyYmxvY2ssIHNvIGtlcm5lbCB3aWxsIHVzZSBjdXJyZW50X3VtYXNr DQo+ICsjIGluIHZmcyBkaXJlY3RseSBpbnN0ZWFkIG9mIGNhbGxpbmcgcG9zaXhfYWNsX2NyZWF0 ZSBvbiB1bmRlcmZseWluZw0KPiArIyBmaWxlc3lzdGVtLg0KPiArX3RyeV9zY3JhdGNoX21vdW50 ID4+JHNlcXJlcy5mdWxsIDI+JjEgJiYgXA0KPiArCSRoZXJlL3NyYy92ZnMvdmZzdGVzdCAtLXRl c3Qtc2V0Z2lkLWNyZWF0ZS11bWFzayBcDQo+ICsgICAgICAgIC0tZGV2aWNlICIkU0NSQVRDSF9E RVYiIC0tbW91bnQgIiRTQ1JBVENIX01OVCIgLS1mc3R5cGUgIiRGU1RZUCINCj4gKw0KPiArc3Rh dHVzPTANCj4gK2V4aXQNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbmVyaWMvNjkxLm91dCBiL3Rl c3RzL2dlbmVyaWMvNjkxLm91dA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAw MDAwMC4uMDA2YWVmNDMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi90ZXN0cy9nZW5lcmljLzY5 MS5vdXQNCj4gQEAgLTAsMCArMSwyIEBADQo+ICtRQSBvdXRwdXQgY3JlYXRlZCBieSA2OTENCj4g K1NpbGVuY2UgaXMgZ29sZGVu