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 8B120C6FA83 for ; Fri, 23 Sep 2022 20:47:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231805AbiIWUrU (ORCPT ); Fri, 23 Sep 2022 16:47:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233205AbiIWUqb (ORCPT ); Fri, 23 Sep 2022 16:46:31 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7A4E5721F for ; Fri, 23 Sep 2022 13:43:54 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 28NJEGU6012724; Fri, 23 Sep 2022 20:43:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=ZThGDxOUHR8W6zhdtmpBzlcKMDx+tl2Dc+Xsuw+48H0=; b=mpRoUJEN+FSrdporGLFTVh+JhxBhcalbaGER2FiZz2J6hp0sJNtsV9MvI2bSjrwwwtHI Wnnd0GPYZy5ZFHrXNekGuuU0mFT6jX/HaVIkgbMvAxWD70zkZ8Udy/zuHxLdB6jFZOGJ JhVIR+kSO21JSwPXwfwomzJYILAMu/KmXTazXfwVRGvRyJQ3AW7hDrL35tB3mw8P3oUK VksBYpOOdVbiVzuE/jG7WugnOe1ymsenvfv1Y5YRsWRYl4t8XyZFoPBQ3IbyTajPdNHX gNaMSEBjxz6cI2GxOKbQ5kosXVMBEsF0QnF2FqBvQiQjTRMg57b8JKd3zG5NjHx66wl9 YA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3jn69m1rj9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 23 Sep 2022 20:43:44 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 28NH3udR032383; Fri, 23 Sep 2022 20:43:43 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2169.outbound.protection.outlook.com [104.47.55.169]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3jp39hffk1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 23 Sep 2022 20:43:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RxdxEpgC7mDWZMIrsGOiQUePE8cb1ulzYq9ySBIyN/z6JN8qqFdzc8uE2VBcPOg4INDq0EvcyUPpXN9/Hx8vGGK88XolFCXBERCvZbP9hN2IExO+S3t7xbFlmXgbGLhXZWXGrZ+OR78SQMuKw+uEcl2DuW3dAc/4Uw3Z5SEok+OIk06df5E1/4YanQkZZDhVU2TJvuqbCtThdWSWaV7Q4r5ESWNCrfIvLD7xmSSp0a55qnLOMhat7VJDasJUFYiIwvn4EHUAeyHvSJffJOzgHwv/LUdhMq6mHa5bHLn/QS6JhRUKPd8uA0KGHquidHMvO1t+pvh/LdOAUBvSw9iHow== 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=ZThGDxOUHR8W6zhdtmpBzlcKMDx+tl2Dc+Xsuw+48H0=; b=g5hnAeg65xOGGeStj147Dr//ybK9el6HABVh6iW2Rh/3vcEDwXS7NqVEc3VWN2tiMQs57riR0OQM+nhFsObnJUOMG3ige3V/g0qdNG7rBSmvtqA+JLujDGuT0+gSKB+WeOzwXQSSHbdEC/QdbL9oMbn3TdDTQN9yBV/Wz3aWbqAPBvLrNxW/lVnUHeccnR9SdFqiqjxKAbj+46SIrem/Xa6PHmuM1Jiemnhplnx4Kkj8y3Nhs/FjuCoezD2ta1P2h5VV0a0WhFcGzvUalb44YvNY86SEMeOjZsAPYK2MaqrfvQYgMv16GeADDCJmsRUZLLULWz+UKnXMWUokTUtUhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZThGDxOUHR8W6zhdtmpBzlcKMDx+tl2Dc+Xsuw+48H0=; b=yQksBs1Fvk8+9n0Rz+XMjvjtPAEY68M4Nk1rRh6wEgBDYQjyLRJ9FO/BWVaGUtZMjQaFWOIfo8s8q65IFifrusRIgNobtI51UfA3FoT2BTRt2R91phBJ19Jl0r8xKbLtDv3oS4kJ38EarFLlYam10PiSgJb9P2Yz6YJ4iXBGt40= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by CY8PR10MB6804.namprd10.prod.outlook.com (2603:10b6:930:9b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.20; Fri, 23 Sep 2022 20:43:40 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::1c59:e718:73e3:f1f9]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::1c59:e718:73e3:f1f9%3]) with mapi id 15.20.5654.020; Fri, 23 Sep 2022 20:43:40 +0000 From: Allison Henderson To: "djwong@kernel.org" CC: "linux-xfs@vger.kernel.org" Subject: Re: [PATCH v3 01/26] xfs: Add new name to attri/d Thread-Topic: [PATCH v3 01/26] xfs: Add new name to attri/d Thread-Index: AQHYzkZ1q082P6vT1kO4M4KPEbbxoK3tXvcAgAAezYA= Date: Fri, 23 Sep 2022 20:43:39 +0000 Message-ID: <16d4e199b65a0c18a6dc87851652933164d02610.camel@oracle.com> References: <20220922054458.40826-1-allison.henderson@oracle.com> <20220922054458.40826-2-allison.henderson@oracle.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.1-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR10MB4306:EE_|CY8PR10MB6804:EE_ x-ms-office365-filtering-correlation-id: 98f15006-1857-4e43-8d20-08da9da44beb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OtRp993X3AFNggBAl0BRRNwhET/ZjU1edPtwbSaPVXJ76sODqTDpzkw4n1MrWu/MXQjYpGtSSajOE11P/d3S78Up93/ZF1p8cF8K65/Q3392DVqKj/iXA7QrQL4yUnzV2EIw2IAsw3DPk+PSHQYm8uqjWdz6C7rpcS0kVAuq8M+oQUyesTh/N2Tol53Fm7Q2pSSSLKdG4bQhX/qCXd2nQYd8xVn5G+Hx8h+tmtsh0wSmYcxesEP/wXn09fYw7dlHj7atWMio8HJYGuuzbWKDRGmSXOQw2zJOEUFBJSjykpuEHfhS+qP5zt5aWYOjY7sBpqDwDFcC9//2dZq0PkjOkCVv/vXhoRv9wDB6fEZtIVeo735sNRotLA3+2wsoDiz55FNhujnRK9CIIt9vKO7/2snhK9Cs/C8swIWk+/aW/rzgqB3cYoK25dGFv0//SOIFR43qc2xclUnuhcbOWDdnLY+RAy07ndds4kTCoW7Ik51lw+jHEO38RdMnAq0UbTH64kDzCbwWon0CSXuYdjTyjcCU3G0SuRAKptDrRStkEMRviVMw4VqqR4YTslXLyp56WNO/MLtpPHgC+se1Pdg5ITTWjP+mbSOui6LYWVuu/UHbaUFjcM0CkTU+w86nd6ghJeJ25Wu7GsiIQ3qWkFo6Z0WsWCrD+134vqQrEbGd2qxaDv9hqsg9HKTzMArUA+FFRwkYuxLXjS0YRkZ6FqMqvyz+wFJLJTBzKBfSfeaQ5TmitibSvIknUYEbAb+0CrUy x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(376002)(346002)(39860400002)(136003)(451199015)(38100700002)(30864003)(44832011)(71200400001)(478600001)(38070700005)(6486002)(66446008)(2616005)(64756008)(66476007)(83380400001)(66946007)(186003)(86362001)(66556008)(4326008)(26005)(6916009)(6512007)(2906002)(6506007)(76116006)(36756003)(5660300002)(8936002)(8676002)(122000001)(316002)(41300700001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?azNFYXYvUjlmSURwQ1ZnNFlIK1d3NlBIbHNMV1JsdndFV1hRM3JKZk95ZUZG?= =?utf-8?B?UkdNbDUzNmNFTkVGYnFSZUpHTHZpeXBiTEZMTU82SWpqMS9FbjJLVzhBRXc3?= =?utf-8?B?cnVnZ3VscHNscFgvVFBkei9OZFBJS2kwYlIybDJ2QUNaaDAyWHdLWEc2U1RO?= =?utf-8?B?MjZTY1ZPa3N2Q3lKeVJIWlYySmZRa2NPNzZoeFhyRjhTL0N2aVFGd1BkczNz?= =?utf-8?B?ekMxTldzMTFZaGZFNURlaUtVZEpKMXpkNmV3L0NHQ2N5MXNPN3J0OE90d0N5?= =?utf-8?B?UDMxc3RNbWkwQndsdWhsNHNxMzJlWUU1cHZOeElTelpqaXE3NVhkYXBZbHNa?= =?utf-8?B?MXhMNXlVam03NTJwcWh6bkxBMThqZExwSUxpeCtLVTZnMkRHMmtObWtOeWgw?= =?utf-8?B?dDFUdnJPZElsK3k1Qm95SDZIV2lTYlNqaW16MUtLNmM3U0YweUx3U3Jvc2Uy?= =?utf-8?B?a3NCcG9CajFqVG0zM1VSdkFBTDNBQS9jMDh3b21yNURKK1Z3MGE5YWNneEcz?= =?utf-8?B?bzlmZlJoR00ra3hBVDhRRjNsaVZIU2V5d2pNQkJTRWxEM0tBRTJZVmJDNUdG?= =?utf-8?B?dzFjM2MrcEdzcVcxa3dFWG9KbkhKTndaRXhmZGRySTNiU01mQVdxTXpZZlE1?= =?utf-8?B?YzQwNnU1WWxCVXZwSXJKSmRUd0VMZm9QN2hkUkFYK2lnNHdYS2grNzJVbksr?= =?utf-8?B?RlI1a1FQRlpFWldjM1FKcDB3bklBcmRkTmFWQnBOUUxsMUxJMHJzVld3c1Ru?= =?utf-8?B?ZEpaL1FzenVQT0xGSWw2aFJCT0hrQ0dZckc0QkhwSVZEOFFVNmpMNndLRis0?= =?utf-8?B?V1hVNDd1OHlsck9WV0k4YzMxMDNFRTBlNGdKQTRGQTJ0QTg3cERzZW5ucmlt?= =?utf-8?B?QnZzMEcrTUlWbUo5Z1VPTEhNdGNwU3ZucTc0UGR4dDlkQ092Q09xQlJMK0VY?= =?utf-8?B?VVpVWklKbUVPRlQ3NFJNalNTQjBPNy95K3ZzNjhKd1VkK2pmODBlL25xS2ZC?= =?utf-8?B?RTVITzNFU2wxVUNuMU9FNC9Db1BFR1BaamJTYTBSdDBEUk1PdHk3aGxXZGdU?= =?utf-8?B?M2dTQ3plVnI0SmtpTFVXaEhZYVh4dTBLcjJGWitwNEdTdFM0TmZnTStPWVdG?= =?utf-8?B?cG9BTzdINnpmUUpVZERSU2pWZHg5VVVaMG9DWUV3c3crU254c3lmNWJPOUxx?= =?utf-8?B?djEwLy9LSnZKZkVNaGdUU2tFSUFmaVgrcUR2cFBJTVNwUmtsREtzK040RWdu?= =?utf-8?B?MEEwQzE4UTBWKzc4TjdpUzY1ODVPRzF5WDdzdThVc2pvVFhuSXZzREZFVGFo?= =?utf-8?B?aHJtbjhEd1pjcWs3TG5jTFJZdG1uYXUyM2hDejhUWFVRSDlmK1JhcGNNRVFz?= =?utf-8?B?bzcwNU1QSTUwRTI4Tm5paXM4OVRveFhycHZmWjBhVDlYeDFkQ1kxQnl5WGpP?= =?utf-8?B?SU8xNGwrc1E1ZmphV0tuK05xc2pJYXFaTjYwbFFrdDBmZE9VQjZqUDZMMWJN?= =?utf-8?B?cEVOTzJnK0pOZ2FrRTdOVTFFbk9seWYxVTNZMDhHaHBwaWdWaHd5d2YyUktp?= =?utf-8?B?R2F1RnAxa2ZaUzBlSEU3UGJhWFVjaUxHRFdhTjVkbkxwZ0k4ZXJwalZLdnNx?= =?utf-8?B?NVBUSHZRRk1FLzVmUW4vallpbVFnekJLQ1ZXd3l0bHdEejRJQXpWVFhNVW5F?= =?utf-8?B?bW5GMXFQbUlKQzc0ZFlMZlNYZEQ2SG9kOFplUEpaNVdrYmdsR0U5K2NjSURD?= =?utf-8?B?WjZORmNRMUR4bXk2d1YzSjhRNjAwNW8zRTczV3E4aFVHYld4MjkwRDlOL3Mz?= =?utf-8?B?N3Jld1hONmF6dTcvWTFjVmZyVk45WmxkcFc3Sy83L1FvOWNDNjgzUVFkK1J5?= =?utf-8?B?MnFIcmFOaWJIVkdkL1FncmxNZzlndDRhV0tUbGZwS3FiRm1rQjRSOHY3aHo5?= =?utf-8?B?VkMwaEtUMmMzQ0hWRmg3dnRXK0lDWjBXZ1duWjhockRPaHlGZkJDSDlkamoy?= =?utf-8?B?ZGQzYXo2NWhBY0czTFdFL3hzNFJ6U0RaNFROczVVMDFCTXVXWTdsZklZNFhs?= =?utf-8?B?UVlwNGh3bVMxWUJwblM1SnlLTDdaNGJleDg1R0pwbUZxakdPL0M3UzVPVzc4?= =?utf-8?B?Q3BCNzZGQ1pCV0ljQ0FlMEJJVEg2MjNzVnM3eDBhRjVtaWU4c0RDT1lXVitv?= =?utf-8?B?QkE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98f15006-1857-4e43-8d20-08da9da44beb X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2022 20:43:39.9647 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: m3qahf9Vco87bGM3ts0gzf6bOgpqj1Of7CPtGl0o25ACGwNzSfYZY7hUKSVd1+I72+GDWzCISkKnU5UfiwHjnusyUD1b50ShgZLU1XrbjxI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6804 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-23_09,2022-09-22_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2209230134 X-Proofpoint-ORIG-GUID: 8fqo0zVgYj8KaKPsWE_m_bhQJtwcy9n4 X-Proofpoint-GUID: 8fqo0zVgYj8KaKPsWE_m_bhQJtwcy9n4 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org T24gRnJpLCAyMDIyLTA5LTIzIGF0IDExOjUzIC0wNzAwLCBEYXJyaWNrIEouIFdvbmcgd3JvdGU6 Cj4gT24gV2VkLCBTZXAgMjEsIDIwMjIgYXQgMTA6NDQ6MzNQTSAtMDcwMCwKPiBhbGxpc29uLmhl bmRlcnNvbkBvcmFjbGUuY29twqB3cm90ZToKPiA+IEZyb206IEFsbGlzb24gSGVuZGVyc29uIDxh bGxpc29uLmhlbmRlcnNvbkBvcmFjbGUuY29tPgo+ID4gCj4gPiBUaGlzIHBhdGNoIGFkZHMgdHdv IG5ldyBmaWVsZHMgdG8gdGhlIGF0dGkvZC7CoCBUaGV5IGFyZSBubmFtZSBhbmQKPiA+IG5uYW1l bGVuLsKgIFRoaXMgd2lsbCBiZSB1c2VkIGZvciBwYXJlbnQgcG9pbnRlciB1cGRhdGVzIHNpbmNl IGEKPiA+IHJlbmFtZSBvcGVyYXRpb24gbWF5IGNhdXNlIHRoZSBwYXJlbnQgcG9pbnRlciB0byB1 cGRhdGUgYm90aCB0aGUKPiA+IG5hbWUgYW5kIHZhbHVlLsKgIFNvIHdlIG5lZWQgdG8gY2Fycnkg Ym90aCB0aGUgbmV3IG5hbWUgYXMgd2VsbCBhcwo+ID4gdGhlIHRhcmdldCBuYW1lIGluIHRoZSBh dHRyaS9kLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbGxpc29uIEhlbmRlcnNvbiA8YWxsaXNv bi5oZW5kZXJzb25Ab3JhY2xlLmNvbT4KPiA+IC0tLQo+ID4gwqBmcy94ZnMvbGlieGZzL3hmc19h dHRyLmPCoMKgwqDCoMKgwqAgfMKgIDEyICsrKy0KPiA+IMKgZnMveGZzL2xpYnhmcy94ZnNfYXR0 ci5owqDCoMKgwqDCoMKgIHzCoMKgIDQgKy0KPiA+IMKgZnMveGZzL2xpYnhmcy94ZnNfZGFfYnRy ZWUuaMKgwqAgfMKgwqAgMiArCj4gPiDCoGZzL3hmcy9saWJ4ZnMveGZzX2xvZ19mb3JtYXQuaCB8 wqDCoCA2ICstCj4gPiDCoGZzL3hmcy94ZnNfYXR0cl9pdGVtLmPCoMKgwqDCoMKgwqDCoMKgIHwg MTA4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiAtLS0tCj4gPiDCoGZzL3hmcy94 ZnNfYXR0cl9pdGVtLmjCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+ID4gwqA2IGZpbGVzIGNo YW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAt LWdpdCBhL2ZzL3hmcy9saWJ4ZnMveGZzX2F0dHIuYyBiL2ZzL3hmcy9saWJ4ZnMveGZzX2F0dHIu Ywo+ID4gaW5kZXggZTI4ZDkzZDIzMmRlLi5iMWRiZWQ3NjU1ZTggMTAwNjQ0Cj4gPiAtLS0gYS9m cy94ZnMvbGlieGZzL3hmc19hdHRyLmMKPiA+ICsrKyBiL2ZzL3hmcy9saWJ4ZnMveGZzX2F0dHIu Ywo+ID4gQEAgLTQyMyw2ICs0MjMsMTIgQEAgeGZzX2F0dHJfY29tcGxldGVfb3AoCj4gPiDCoMKg wqDCoMKgwqDCoMKgYXJncy0+b3BfZmxhZ3MgJj0gflhGU19EQV9PUF9SRVBMQUNFOwo+ID4gwqDC oMKgwqDCoMKgwqDCoGlmIChkb19yZXBsYWNlKSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGFyZ3MtPmF0dHJfZmlsdGVyICY9IH5YRlNfQVRUUl9JTkNPTVBMRVRFOwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChhcmdzLT5uZXdfbmFtZWxlbiA+IDAp IHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXJn cy0+bmFtZSA9IGFyZ3MtPm5ld19uYW1lOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBhcmdzLT5uYW1lbGVuID0gYXJncy0+bmV3X25hbWVsZW47Cj4g Cj4gL21lIHdvbmRlcnMsIGRvIHdlIG5lZWQgdG8gbnVsbCBvdXQgbmV3X25hbWUgYW5kIG5ld19u YW1lbGVuIGhlcmU/Cj4gCj4gSSAvdGhpbmsvIHRoZSBhbnN3ZXIgaXMgdGhhdCB0aGUgY3VycmVu dCBjb2RlYmFzZSBkb2Vzbid0IGNhcmUgc2luY2UKPiB3ZSdyZSBub3cgZG9pbmcgWEZTX0RBX09Q X0FERE5BTUUsIGFuZCBhZGRuYW1lIGxvb2tzIG9ubHkgYXQKPiBuYW1lL25hbWVsZW4gYW5kIGhh cyBubyBpZGVhIHRoYXQgbmV3X25hbWUvbmV3X25hbWVsZW4gZXZlbiBleGlzdD8KPiAKUmlnaHQs IHRoYXQncyB0aGUgaWRlYS4KCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGFyZ3MtPmhhc2h2YWwgPSB4ZnNfZGFfaGFzaG5hbWUoYXJncy0+bmFtZSwK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGFyZ3MtCj4gPiA+bmFtZWxlbik7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg fQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmVwbGFjZV9zdGF0 ZTsKPiA+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIFhGU19E QVNfRE9ORTsKPiA+IEBAIC05MjIsOSArOTI4LDEzIEBAIHhmc19hdHRyX2RlZmVyX3JlcGxhY2Uo Cj4gPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHhmc19kYV9hcmdzwqDCoMKgwqDCoMKgKmFyZ3Mp Cj4gPiDCoHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgeGZzX2F0dHJfaW50ZW50wqDCoCpu ZXc7Cj4gPiArwqDCoMKgwqDCoMKgwqBpbnTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBvcF9mbGFnOwo+ID4gwqDCoMKgwqDCoMKgwqDCoGludMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVycm9yID0gMDsKPiA+IMKgCj4gPiAtwqDCoMKg wqDCoMKgwqBlcnJvciA9IHhmc19hdHRyX2ludGVudF9pbml0KGFyZ3MsCj4gPiBYRlNfQVRUUklf T1BfRkxBR1NfUkVQTEFDRSwgJm5ldyk7Cj4gPiArwqDCoMKgwqDCoMKgwqBvcF9mbGFnID0gYXJn cy0+bmV3X25hbWVsZW4gPT0gMCA/Cj4gPiBYRlNfQVRUUklfT1BfRkxBR1NfUkVQTEFDRSA6Cj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWEZTX0FUVFJJX09QX0ZMQUdTX05W UkVQTEFDRTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoGVycm9yID0geGZzX2F0dHJfaW50ZW50 X2luaXQoYXJncywgb3BfZmxhZywgJm5ldyk7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYgKGVycm9y KQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZXJyb3I7Cj4gPiDC oAo+ID4gZGlmZiAtLWdpdCBhL2ZzL3hmcy9saWJ4ZnMveGZzX2F0dHIuaCBiL2ZzL3hmcy9saWJ4 ZnMveGZzX2F0dHIuaAo+ID4gaW5kZXggODFiZTliM2U0MDA0Li4zZTgxZjNmNDg1NjAgMTAwNjQ0 Cj4gPiAtLS0gYS9mcy94ZnMvbGlieGZzL3hmc19hdHRyLmgKPiA+ICsrKyBiL2ZzL3hmcy9saWJ4 ZnMveGZzX2F0dHIuaAo+ID4gQEAgLTUxMCw4ICs1MTAsOCBAQCBzdHJ1Y3QgeGZzX2F0dHJfaW50 ZW50IHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgeGZzX2RhX2FyZ3PCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgKnhhdHRyaV9kYV9hcmdzOwo+ID4gwqAKPiA+IMKgwqDCoMKgwqDCoMKg wqAvKgo+ID4gLcKgwqDCoMKgwqDCoMKgICogU2hhcmVkIGJ1ZmZlciBjb250YWluaW5nIHRoZSBh dHRyIG5hbWUgYW5kIHZhbHVlIHNvIHRoYXQKPiA+IHRoZSBsb2dnaW5nCj4gPiAtwqDCoMKgwqDC oMKgwqAgKiBjb2RlIGNhbiBzaGFyZSBsYXJnZSBtZW1vcnkgYnVmZmVycyBiZXR3ZWVuIGxvZyBp dGVtcy4KPiA+ICvCoMKgwqDCoMKgwqDCoCAqIFNoYXJlZCBidWZmZXIgY29udGFpbmluZyB0aGUg YXR0ciBuYW1lLCBuZXcgbmFtZSwgYW5kCj4gPiB2YWx1ZSBzbyB0aGF0Cj4gPiArwqDCoMKgwqDC oMKgwqAgKiB0aGUgbG9nZ2luZyBjb2RlIGNhbiBzaGFyZSBsYXJnZSBtZW1vcnkgYnVmZmVycyBi ZXR3ZWVuCj4gPiBsb2cgaXRlbXMuCj4gPiDCoMKgwqDCoMKgwqDCoMKgICovCj4gPiDCoMKgwqDC oMKgwqDCoMKgc3RydWN0IHhmc19hdHRyaV9sb2dfbmFtZXZhbMKgwqDCoMKgKnhhdHRyaV9uYW1l dmFsOwo+ID4gwqAKPiA+IGRpZmYgLS1naXQgYS9mcy94ZnMvbGlieGZzL3hmc19kYV9idHJlZS5o Cj4gPiBiL2ZzL3hmcy9saWJ4ZnMveGZzX2RhX2J0cmVlLmgKPiA+IGluZGV4IGZmYTNkZjViMjg5 My4uYTRiMjk4Mjc2MDNmIDEwMDY0NAo+ID4gLS0tIGEvZnMveGZzL2xpYnhmcy94ZnNfZGFfYnRy ZWUuaAo+ID4gKysrIGIvZnMveGZzL2xpYnhmcy94ZnNfZGFfYnRyZWUuaAo+ID4gQEAgLTU1LDcg KzU1LDkgQEAgZW51bSB4ZnNfZGFjbXAgewo+ID4gwqB0eXBlZGVmIHN0cnVjdCB4ZnNfZGFfYXJn cyB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHhmc19kYV9nZW9tZXRyeSAqZ2VvO8KgwqDC oMKgLyogZGEgYmxvY2sgZ2VvbWV0cnkgKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqBjb25zdCB1aW50 OF90wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpuYW1lO8KgwqDCoMKgwqDCoMKgwqDCoMKgLyogc3Ry aW5nIChtYXliZQo+ID4gbm90IE5VTEwgdGVybWluYXRlZCkgKi8KPiA+ICvCoMKgwqDCoMKgwqDC oGNvbnN0IHVpbnQ4X3TCoMKgwqAqbmV3X25hbWU7wqDCoMKgwqDCoMKgLyogbmV3IGF0dHIgbmFt ZSAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoGludMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmFt ZWxlbjvCoMKgwqDCoMKgwqDCoMKgLyogbGVuZ3RoIG9mIHN0cmluZyAobWF5YmUKPiA+IG5vIE5V TEwpICovCj4gPiArwqDCoMKgwqDCoMKgwqBpbnTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5l d19uYW1lbGVuO8KgwqDCoMKgLyogbmV3IGF0dHIgbmFtZSBsZW4gKi8KPiA+IMKgwqDCoMKgwqDC oMKgwqB1aW50OF90wqDCoMKgwqDCoMKgwqDCoMKgZmlsZXR5cGU7wqDCoMKgwqDCoMKgwqAvKiBm aWxldHlwZSBvZiBpbm9kZSBmb3IKPiA+IGRpcmVjdG9yaWVzICovCj4gPiDCoMKgwqDCoMKgwqDC oMKgdm9pZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCp2YWx1ZTvCoMKgwqDCoMKgwqDCoMKgwqAv KiBzZXQgb2YgYnl0ZXMgKG1heWJlCj4gPiBjb250YWluIE5VTExzKSAqLwo+ID4gwqDCoMKgwqDC oMKgwqDCoGludMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdmFsdWVsZW47wqDCoMKgwqDCoMKg wqAvKiBsZW5ndGggb2YgdmFsdWUgKi8KPiAKPiAvbWUgc3RhcnRzIHRvIHdvbmRlciBpZiB0aGUg dHdvIG5hbWUgbGVuIGZpZWxkcyBhbmQgdGhlIHZhbHVlIGxlbgo+IGZpZWxkCj4gb3VnaHQgdG8g YmUgdTgvdTE2IHRvIGNvbnNlcnZlIHNwYWNlIGluIHhmc19kYV9hcmdzLCBidXQgdGhhdCdzIGFu Cj4gb3B0aW1pemF0aW9uIHF1ZXN0aW9uIGZvciBhZnRlciB0aGlzIHBhdGNoc2V0Lgo+IAo+ID4g ZGlmZiAtLWdpdCBhL2ZzL3hmcy9saWJ4ZnMveGZzX2xvZ19mb3JtYXQuaAo+ID4gYi9mcy94ZnMv bGlieGZzL3hmc19sb2dfZm9ybWF0LmgKPiA+IGluZGV4IGIzNTFiOWRjNjU2MS4uNjJmNDBlNjM1 M2MyIDEwMDY0NAo+ID4gLS0tIGEvZnMveGZzL2xpYnhmcy94ZnNfbG9nX2Zvcm1hdC5oCj4gPiAr KysgYi9mcy94ZnMvbGlieGZzL3hmc19sb2dfZm9ybWF0LmgKPiA+IEBAIC0xMTcsNyArMTE3LDgg QEAgc3RydWN0IHhmc191bm1vdW50X2xvZ19mb3JtYXQgewo+ID4gwqAjZGVmaW5lIFhMT0dfUkVH X1RZUEVfQVRUUkRfRk9STUFUwqDCoMKgwqDCoDI4Cj4gPiDCoCNkZWZpbmUgWExPR19SRUdfVFlQ RV9BVFRSX05BTUXCoMKgwqDCoMKgwqDCoMKgMjkKPiA+IMKgI2RlZmluZSBYTE9HX1JFR19UWVBF X0FUVFJfVkFMVUXCoMKgwqDCoMKgwqDCoDMwCj4gPiAtI2RlZmluZSBYTE9HX1JFR19UWVBFX01B WMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAzMAo+ID4gKyNkZWZpbmUgWExPR19SRUdfVFlQ RV9BVFRSX05OQU1FwqDCoMKgwqDCoMKgwqAzMQo+ID4gKyNkZWZpbmUgWExPR19SRUdfVFlQRV9N QVjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMzEKPiA+IMKgCj4gPiDCoAo+ID4gwqAvKgo+ ID4gQEAgLTkwOSw2ICs5MTAsNyBAQCBzdHJ1Y3QgeGZzX2ljcmVhdGVfbG9nIHsKPiA+IMKgI2Rl ZmluZSBYRlNfQVRUUklfT1BfRkxBR1NfU0VUwqDCoMKgwqDCoMKgwqDCoMKgMcKgwqDCoMKgwqDC oMKgLyogU2V0IHRoZQo+ID4gYXR0cmlidXRlICovCj4gPiDCoCNkZWZpbmUgWEZTX0FUVFJJX09Q X0ZMQUdTX1JFTU9WRcKgwqDCoMKgwqDCoDLCoMKgwqDCoMKgwqDCoC8qIFJlbW92ZSB0aGUKPiA+ IGF0dHJpYnV0ZSAqLwo+ID4gwqAjZGVmaW5lIFhGU19BVFRSSV9PUF9GTEFHU19SRVBMQUNFwqDC oMKgwqDCoDPCoMKgwqDCoMKgwqDCoC8qIFJlcGxhY2UgdGhlCj4gPiBhdHRyaWJ1dGUgKi8KPiA+ ICsjZGVmaW5lIFhGU19BVFRSSV9PUF9GTEFHU19OVlJFUExBQ0XCoMKgwqA0wqDCoMKgwqDCoMKg wqAvKiBSZXBsYWNlIGF0dHIKPiA+IG5hbWUgYW5kIHZhbCAqLwo+ID4gwqAjZGVmaW5lIFhGU19B VFRSSV9PUF9GTEFHU19UWVBFX01BU0vCoMKgwqAweEZGwqDCoMKgwqAvKiBGbGFncyB0eXBlIG1h c2sKPiA+ICovCj4gPiDCoAo+ID4gwqAvKgo+ID4gQEAgLTkyNiw3ICs5MjgsNyBAQCBzdHJ1Y3Qg eGZzX2ljcmVhdGVfbG9nIHsKPiA+IMKgc3RydWN0IHhmc19hdHRyaV9sb2dfZm9ybWF0IHsKPiA+ IMKgwqDCoMKgwqDCoMKgwqB1aW50MTZfdMKgwqDCoMKgwqDCoMKgwqBhbGZpX3R5cGU7wqDCoMKg wqDCoMKgLyogYXR0cmkgbG9nIGl0ZW0gdHlwZSAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoHVpbnQx Nl90wqDCoMKgwqDCoMKgwqDCoGFsZmlfc2l6ZTvCoMKgwqDCoMKgwqAvKiBzaXplIG9mIHRoaXMg aXRlbSAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgdWludDMyX3TCoMKgwqDCoMKgwqDCoMKgX19wYWQ7 wqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBwYWQgdG8gNjQgYml0IGFsaWduZWQgKi8KPiA+ICvCoMKg wqDCoMKgwqDCoHVpbnQzMl90wqDCoMKgwqDCoMKgwqDCoGFsZmlfbm5hbWVfbGVuO8KgLyogYXR0 ciBuZXcgbmFtZSBsZW5ndGggKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqB1aW50NjRfdMKgwqDCoMKg wqDCoMKgwqBhbGZpX2lkO8KgwqDCoMKgwqDCoMKgwqAvKiBhdHRyaSBpZGVudGlmaWVyICovCj4g PiDCoMKgwqDCoMKgwqDCoMKgdWludDY0X3TCoMKgwqDCoMKgwqDCoMKgYWxmaV9pbm87wqDCoMKg wqDCoMKgwqAvKiB0aGUgaW5vZGUgZm9yIHRoaXMgYXR0cgo+ID4gb3BlcmF0aW9uICovCj4gPiDC oMKgwqDCoMKgwqDCoMKgdWludDMyX3TCoMKgwqDCoMKgwqDCoMKgYWxmaV9vcF9mbGFnczvCoMKg LyogbWFya3MgdGhlIG9wIGFzIGEgc2V0IG9yCj4gPiByZW1vdmUgKi8KPiA+IGRpZmYgLS1naXQg YS9mcy94ZnMveGZzX2F0dHJfaXRlbS5jIGIvZnMveGZzL3hmc19hdHRyX2l0ZW0uYwo+ID4gaW5k ZXggY2Y1Y2U2MDdkYzA1Li45NDE0ZWU5NDgyOWMgMTAwNjQ0Cj4gPiAtLS0gYS9mcy94ZnMveGZz X2F0dHJfaXRlbS5jCj4gPiArKysgYi9mcy94ZnMveGZzX2F0dHJfaXRlbS5jCj4gPiBAQCAtNzUs NiArNzUsOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB4ZnNfYXR0cmlfbG9nX25hbWV2YWwgKgo+ ID4gwqB4ZnNfYXR0cmlfbG9nX25hbWV2YWxfYWxsb2MoCj4gPiDCoMKgwqDCoMKgwqDCoMKgY29u c3Qgdm9pZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKm5hbWUs Cj4gPiDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoG5hbWVfbGVuLAo+ID4gK8KgwqDCoMKgwqDCoMKgY29uc3Qgdm9pZMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKm5uYW1lLAo+ID4gK8Kg wqDCoMKgwqDCoMKgdW5zaWduZWQgaW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoG5uYW1lX2xlbiwKPiA+IMKgwqDCoMKgwqDCoMKgwqBjb25zdCB2b2lkwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqdmFsdWUsCj4gPiDCoMKgwqDCoMKg wqDCoMKgdW5zaWduZWQgaW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHZhbHVlX2xlbikKPiA+IMKgewo+ID4gQEAgLTg1LDE1ICs4NywyNSBAQCB4ZnNfYXR0cmlfbG9n X25hbWV2YWxfYWxsb2MoCj4gPiDCoMKgwqDCoMKgwqDCoMKgICogdGhpcy4gQnV0IGt2bWFsbG9j KCkgdXR0ZXJseSBzdWNrcywgc28gd2UgdXNlIG91ciBvd24KPiA+IHZlcnNpb24uCj4gPiDCoMKg wqDCoMKgwqDCoMKgICovCj4gPiDCoMKgwqDCoMKgwqDCoMKgbnYgPSB4bG9nX2t2bWFsbG9jKHNp emVvZihzdHJ1Y3QgeGZzX2F0dHJpX2xvZ19uYW1ldmFsKSArCj4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgbmFtZV9sZW4gKyB2YWx1ZV9sZW4pOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5h bWVfbGVuICsgbm5hbWVfbGVuICsKPiA+IHZhbHVlX2xlbik7Cj4gPiDCoAo+ID4gwqDCoMKgwqDC oMKgwqDCoG52LT5uYW1lLmlfYWRkciA9IG52ICsgMTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBudi0+ bmFtZS5pX2xlbiA9IG5hbWVfbGVuOwo+ID4gwqDCoMKgwqDCoMKgwqDCoG52LT5uYW1lLmlfdHlw ZSA9IFhMT0dfUkVHX1RZUEVfQVRUUl9OQU1FOwo+ID4gwqDCoMKgwqDCoMKgwqDCoG1lbWNweShu di0+bmFtZS5pX2FkZHIsIG5hbWUsIG5hbWVfbGVuKTsKPiA+IMKgCj4gPiArwqDCoMKgwqDCoMKg wqBpZiAobm5hbWVfbGVuKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbnYt Pm5uYW1lLmlfYWRkciA9IG52LT5uYW1lLmlfYWRkciArIG5hbWVfbGVuOwo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoG52LT5ubmFtZS5pX2xlbiA9IG5uYW1lX2xlbjsKPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtZW1jcHkobnYtPm5uYW1lLmlfYWRkciwgbm5h bWUsIG5uYW1lX2xlbik7Cj4gPiArwqDCoMKgwqDCoMKgwqB9IGVsc2Ugewo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoG52LT5ubmFtZS5pX2FkZHIgPSBOVUxMOwo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG52LT5ubmFtZS5pX2xlbiA9IDA7Cj4gPiArwqDCoMKg wqDCoMKgwqB9Cj4gPiArwqDCoMKgwqDCoMKgwqBudi0+bm5hbWUuaV90eXBlID0gWExPR19SRUdf VFlQRV9BVFRSX05OQU1FOwo+ID4gKwo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmICh2YWx1ZV9sZW4p IHsKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBudi0+dmFsdWUuaV9hZGRyID0g bnYtPm5hbWUuaV9hZGRyICsgbmFtZV9sZW47Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgbnYtPnZhbHVlLmlfYWRkciA9IG52LT5uYW1lLmlfYWRkciArIG5uYW1lX2xlbiArCj4g PiBuYW1lX2xlbjsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbnYtPnZhbHVl LmlfbGVuID0gdmFsdWVfbGVuOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBt ZW1jcHkobnYtPnZhbHVlLmlfYWRkciwgdmFsdWUsIHZhbHVlX2xlbik7Cj4gPiDCoMKgwqDCoMKg wqDCoMKgfSBlbHNlIHsKPiA+IEBAIC0xNDcsMTEgKzE1OSwxNSBAQCB4ZnNfYXR0cmlfaXRlbV9z aXplKAo+ID4gwqDCoMKgwqDCoMKgwqDCoCpuYnl0ZXMgKz0gc2l6ZW9mKHN0cnVjdCB4ZnNfYXR0 cmlfbG9nX2Zvcm1hdCkgKwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgeGxvZ19jYWxjX2lvdmVjX2xlbihudi0+bmFtZS5pX2xlbik7Cj4gPiDCoAo+ ID4gLcKgwqDCoMKgwqDCoMKgaWYgKCFudi0+dmFsdWUuaV9sZW4pCj4gPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKG52LT5ubmFt ZS5pX2xlbikgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpudmVjcyArPSAx Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpuYnl0ZXMgKz0geGxvZ19jYWxj X2lvdmVjX2xlbihudi0+bm5hbWUuaV9sZW4pOwo+ID4gK8KgwqDCoMKgwqDCoMKgfQo+ID4gwqAK PiA+IC3CoMKgwqDCoMKgwqDCoCpudmVjcyArPSAxOwo+ID4gLcKgwqDCoMKgwqDCoMKgKm5ieXRl cyArPSB4bG9nX2NhbGNfaW92ZWNfbGVuKG52LT52YWx1ZS5pX2xlbik7Cj4gPiArwqDCoMKgwqDC oMKgwqBpZiAobnYtPnZhbHVlLmlfbGVuKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgKm52ZWNzICs9IDE7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKm5i eXRlcyArPSB4bG9nX2NhbGNfaW92ZWNfbGVuKG52LT52YWx1ZS5pX2xlbik7Cj4gPiArwqDCoMKg wqDCoMKgwqB9Cj4gPiDCoH0KPiA+IMKgCj4gPiDCoC8qCj4gPiBAQCAtMTgxLDYgKzE5Nyw5IEBA IHhmc19hdHRyaV9pdGVtX2Zvcm1hdCgKPiA+IMKgwqDCoMKgwqDCoMKgwqBBU1NFUlQobnYtPm5h bWUuaV9sZW4gPiAwKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBhdHRyaXAtPmF0dHJpX2Zvcm1hdC5h bGZpX3NpemUrKzsKPiA+IMKgCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAobnYtPm5uYW1lLmlfbGVu ID4gMCkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhdHRyaXAtPmF0dHJpX2Zv cm1hdC5hbGZpX3NpemUrKzsKPiA+ICsKPiA+IMKgwqDCoMKgwqDCoMKgwqBpZiAobnYtPnZhbHVl LmlfbGVuID4gMCkKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXR0cmlwLT5h dHRyaV9mb3JtYXQuYWxmaV9zaXplKys7Cj4gPiDCoAo+ID4gQEAgLTE4OCw2ICsyMDcsMTAgQEAg eGZzX2F0dHJpX2l0ZW1fZm9ybWF0KAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgJmF0dHJpcC0+YXR0cmlfZm9ybWF0LAo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc2l6ZW9mKHN0cnVjdCB4ZnNfYXR0 cmlfbG9nX2Zvcm1hdCkpOwo+ID4gwqDCoMKgwqDCoMKgwqDCoHhsb2dfY29weV9mcm9tX2lvdmVj KGx2LCAmdmVjcCwgJm52LT5uYW1lKTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoGlmIChudi0+ bm5hbWUuaV9sZW4gPiAwKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhsb2df Y29weV9mcm9tX2lvdmVjKGx2LCAmdmVjcCwgJm52LT5ubmFtZSk7Cj4gPiArCj4gPiDCoMKgwqDC oMKgwqDCoMKgaWYgKG52LT52YWx1ZS5pX2xlbiA+IDApCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHhsb2dfY29weV9mcm9tX2lvdmVjKGx2LCAmdmVjcCwgJm52LT52YWx1ZSk7 Cj4gPiDCoH0KPiA+IEBAIC0zOTYsNiArNDE5LDcgQEAgeGZzX2F0dHJfbG9nX2l0ZW0oCj4gPiDC oMKgwqDCoMKgwqDCoMKgYXR0cnAtPmFsZmlfb3BfZmxhZ3MgPSBhdHRyLT54YXR0cmlfb3BfZmxh Z3M7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgYXR0cnAtPmFsZmlfdmFsdWVfbGVuID0gYXR0ci0+eGF0 dHJpX25hbWV2YWwtPnZhbHVlLmlfbGVuOwo+ID4gwqDCoMKgwqDCoMKgwqDCoGF0dHJwLT5hbGZp X25hbWVfbGVuID0gYXR0ci0+eGF0dHJpX25hbWV2YWwtPm5hbWUuaV9sZW47Cj4gPiArwqDCoMKg wqDCoMKgwqBhdHRycC0+YWxmaV9ubmFtZV9sZW4gPSBhdHRyLT54YXR0cmlfbmFtZXZhbC0+bm5h bWUuaV9sZW47Cj4gPiDCoMKgwqDCoMKgwqDCoMKgQVNTRVJUKCEoYXR0ci0+eGF0dHJpX2RhX2Fy Z3MtPmF0dHJfZmlsdGVyICYKPiA+IH5YRlNfQVRUUklfRklMVEVSX01BU0spKTsKPiA+IMKgwqDC oMKgwqDCoMKgwqBhdHRycC0+YWxmaV9hdHRyX2ZpbHRlciA9IGF0dHItPnhhdHRyaV9kYV9hcmdz LQo+ID4gPmF0dHJfZmlsdGVyOwo+ID4gwqB9Cj4gPiBAQCAtNDM3LDcgKzQ2MSw4IEBAIHhmc19h dHRyX2NyZWF0ZV9pbnRlbnQoCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAq IGRlZmVycmVkIHdvcmsgc3RhdGUgc3RydWN0dXJlLgo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKi8KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXR0ci0+ eGF0dHJpX25hbWV2YWwgPQo+ID4geGZzX2F0dHJpX2xvZ19uYW1ldmFsX2FsbG9jKGFyZ3MtPm5h bWUsCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBhcmdzLT5uYW1lbGVuLCBhcmdzLT52YWx1ZSwgYXJncy0KPiA+ID52YWx1 ZWxlbik7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBhcmdzLT5uYW1lbGVuLCBhcmdzLT5uZXdfbmFtZSwKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGFyZ3MtPm5ld19uYW1lbGVuLCBhcmdzLT52YWx1ZSwKPiA+IGFyZ3MtPnZhbHVlbGVuKTsKPiA+ IMKgwqDCoMKgwqDCoMKgwqB9Cj4gPiDCoAo+ID4gwqDCoMKgwqDCoMKgwqDCoGF0dHJpcCA9IHhm c19hdHRyaV9pbml0KG1wLCBhdHRyLT54YXR0cmlfbmFtZXZhbCk7Cj4gPiBAQCAtNTI1LDkgKzU1 MCw2IEBAIHhmc19hdHRyaV92YWxpZGF0ZSgKPiA+IMKgwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBp bnTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgb3AgPSBhdHRycC0+YWxm aV9vcF9mbGFncyAmCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiBYRlNf QVRUUklfT1BfRkxBR1NfVFlQRV9NQVNLOwo+ID4gwqAKPiA+IC3CoMKgwqDCoMKgwqDCoGlmIChh dHRycC0+X19wYWQgIT0gMCkKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1 cm4gZmFsc2U7Cj4gCj4gSSBkb24ndCB0aGluayBpdCdzIGNvcnJlY3QgdG8gcmVtb3ZlIHRoaXMg Y2hlY2sgZW50aXJlbHkgLS0gTlZSRVBMQUNFCj4gaXMKPiB0aGUgb25seSBvcGVyYXRpb24gdGhh dCB1c2VzIG5uYW1lL25uYW1lX2xlbiwgcmlnaHQ/wqAgU2hvdWxkbid0IHRoaXMKPiBiZToKPiAK PiDCoMKgwqDCoMKgwqDCoMKgaWYgKG9wX2ZsYWdzICE9IFhGU19BVFRSSV9PUF9GTEFHU19OVlJF UExBQ0UgJiYKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF0dHJwLT5hbGZpX25uYW1lX2xlbiAh PSAwKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwpPaywg SSB0aGluayB0aGF0IG1ha2VzIHNlbnNlLCBJIGRvbnQgdGhpbmsgdGhlcmUncyBhIHBhdGggd2hl cmUgYW4KTlZSRVBMQUNFIGNhbiBiZSB6ZXJvLiAgV2lsbCBhZGQuCgo+IAo+ID4gLQo+ID4gwqDC oMKgwqDCoMKgwqDCoGlmIChhdHRycC0+YWxmaV9vcF9mbGFncyAmIH5YRlNfQVRUUklfT1BfRkxB R1NfVFlQRV9NQVNLKQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g ZmFsc2U7Cj4gPiDCoAo+ID4gQEAgLTUzOSw2ICs1NjEsNyBAQCB4ZnNfYXR0cmlfdmFsaWRhdGUo Cj4gPiDCoMKgwqDCoMKgwqDCoMKgY2FzZSBYRlNfQVRUUklfT1BfRkxBR1NfU0VUOgo+ID4gwqDC oMKgwqDCoMKgwqDCoGNhc2UgWEZTX0FUVFJJX09QX0ZMQUdTX1JFUExBQ0U6Cj4gPiDCoMKgwqDC oMKgwqDCoMKgY2FzZSBYRlNfQVRUUklfT1BfRkxBR1NfUkVNT1ZFOgo+ID4gK8KgwqDCoMKgwqDC oMKgY2FzZSBYRlNfQVRUUklfT1BfRkxBR1NfTlZSRVBMQUNFOgo+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBicmVhazsKPiA+IMKgwqDCoMKgwqDCoMKgwqBkZWZhdWx0Ogo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gPiBAQCAtNTQ4 LDkgKzU3MSwxNCBAQCB4ZnNfYXR0cmlfdmFsaWRhdGUoCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZTsKPiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYg KChhdHRycC0+YWxmaV9uYW1lX2xlbiA+IFhBVFRSX05BTUVfTUFYKSB8fAo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgIChhdHRycC0+YWxmaV9ubmFtZV9sZW4gPiBYQVRUUl9OQU1FX01BWCkgfHwK PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGF0dHJwLT5hbGZpX25hbWVfbGVuID09IDApKQo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gPiDCoAo+ ID4gK8KgwqDCoMKgwqDCoMKgaWYgKG9wID09IFhGU19BVFRSSV9PUF9GTEFHU19SRU1PVkUgJiYK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdHRycC0+YWxmaV92YWx1ZV9sZW4gIT0gMCkKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gCj4gVGhpcyBj aGFuZ2UgZml4ZXMgYSB2YWxpZGF0aW9uIGZsYXcgaW4gZXhpc3RpbmcgY29kZSwgcmlnaHQ/Ckkg dGhpbmsgc28sIEkgYmVsaWV2ZSB0aGlzIGNhbWUgdXAgaW4gb25lIG9mIHRoZSByZXZpZXdzIHNv IGkgYWRkZWQgaXQuCj4gCj4gSWYgc28sIGl0IG91Z2h0IHRvIGJlIGEgc2VwYXJhdGUgcGF0Yy4u LiB5b3Uga25vdyB3aGF0P8KgIDI2IHBhdGNoZXMKPiBpcwo+IGVub3VnaCwgSSdsbCBsZXQgdGhp cyBvbmUgc2xpZGUgc2luY2UgTEFSUCBpcyBzdGlsbCBleHBlcmltZW50YWwuCkFscmlnaHR5LCB0 aGFua3MgZm9yIHRoZSByZXZpZXdzIQoKQWxsaXNvbgo+IAo+IC0tRAo+IAo+ID4gKwo+ID4gwqDC oMKgwqDCoMKgwqDCoHJldHVybiB4ZnNfdmVyaWZ5X2lubyhtcCwgYXR0cnAtPmFsZmlfaW5vKTsK PiA+IMKgfQo+ID4gwqAKPiA+IEBAIC02MTEsNiArNjM5LDggQEAgeGZzX2F0dHJpX2l0ZW1fcmVj b3ZlcigKPiA+IMKgwqDCoMKgwqDCoMKgwqBhcmdzLT53aGljaGZvcmsgPSBYRlNfQVRUUl9GT1JL Owo+ID4gwqDCoMKgwqDCoMKgwqDCoGFyZ3MtPm5hbWUgPSBudi0+bmFtZS5pX2FkZHI7Cj4gPiDC oMKgwqDCoMKgwqDCoMKgYXJncy0+bmFtZWxlbiA9IG52LT5uYW1lLmlfbGVuOwo+ID4gK8KgwqDC oMKgwqDCoMKgYXJncy0+bmV3X25hbWUgPSBudi0+bm5hbWUuaV9hZGRyOwo+ID4gK8KgwqDCoMKg wqDCoMKgYXJncy0+bmV3X25hbWVsZW4gPSBudi0+bm5hbWUuaV9sZW47Cj4gPiDCoMKgwqDCoMKg wqDCoMKgYXJncy0+aGFzaHZhbCA9IHhmc19kYV9oYXNobmFtZShhcmdzLT5uYW1lLCBhcmdzLT5u YW1lbGVuKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBhcmdzLT5hdHRyX2ZpbHRlciA9IGF0dHJwLT5h bGZpX2F0dHJfZmlsdGVyICYKPiA+IFhGU19BVFRSSV9GSUxURVJfTUFTSzsKPiA+IMKgwqDCoMKg wqDCoMKgwqBhcmdzLT5vcF9mbGFncyA9IFhGU19EQV9PUF9SRUNPVkVSWSB8IFhGU19EQV9PUF9P S05PRU5UIHwKPiA+IEBAIC02MjEsNiArNjUxLDcgQEAgeGZzX2F0dHJpX2l0ZW1fcmVjb3ZlcigK PiA+IMKgwqDCoMKgwqDCoMKgwqBzd2l0Y2ggKGF0dHItPnhhdHRyaV9vcF9mbGFncykgewo+ID4g wqDCoMKgwqDCoMKgwqDCoGNhc2UgWEZTX0FUVFJJX09QX0ZMQUdTX1NFVDoKPiA+IMKgwqDCoMKg wqDCoMKgwqBjYXNlIFhGU19BVFRSSV9PUF9GTEFHU19SRVBMQUNFOgo+ID4gK8KgwqDCoMKgwqDC oMKgY2FzZSBYRlNfQVRUUklfT1BfRkxBR1NfTlZSRVBMQUNFOgo+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBhcmdzLT52YWx1ZSA9IG52LT52YWx1ZS5pX2FkZHI7Cj4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFyZ3MtPnZhbHVlbGVuID0gbnYtPnZhbHVlLmlf bGVuOwo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhcmdzLT50b3RhbCA9IHhm c19hdHRyX2NhbGNfc2l6ZShhcmdzLCAmbG9jYWwpOwo+ID4gQEAgLTcxMCw2ICs3NDEsNyBAQCB4 ZnNfYXR0cmlfaXRlbV9yZWxvZygKPiA+IMKgwqDCoMKgwqDCoMKgwqBuZXdfYXR0cnAtPmFsZmlf b3BfZmxhZ3MgPSBvbGRfYXR0cnAtPmFsZmlfb3BfZmxhZ3M7Cj4gPiDCoMKgwqDCoMKgwqDCoMKg bmV3X2F0dHJwLT5hbGZpX3ZhbHVlX2xlbiA9IG9sZF9hdHRycC0+YWxmaV92YWx1ZV9sZW47Cj4g PiDCoMKgwqDCoMKgwqDCoMKgbmV3X2F0dHJwLT5hbGZpX25hbWVfbGVuID0gb2xkX2F0dHJwLT5h bGZpX25hbWVfbGVuOwo+ID4gK8KgwqDCoMKgwqDCoMKgbmV3X2F0dHJwLT5hbGZpX25uYW1lX2xl biA9IG9sZF9hdHRycC0+YWxmaV9ubmFtZV9sZW47Cj4gPiDCoMKgwqDCoMKgwqDCoMKgbmV3X2F0 dHJwLT5hbGZpX2F0dHJfZmlsdGVyID0gb2xkX2F0dHJwLT5hbGZpX2F0dHJfZmlsdGVyOwo+ID4g wqAKPiA+IMKgwqDCoMKgwqDCoMKgwqB4ZnNfdHJhbnNfYWRkX2l0ZW0odHAsICZuZXdfYXR0cmlw LT5hdHRyaV9pdGVtKTsKPiA+IEBAIC03MzEsMTAgKzc2Myw0MSBAQCB4bG9nX3JlY292ZXJfYXR0 cmlfY29tbWl0X3Bhc3MyKAo+ID4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZnNfYXR0cmlfbG9n X25hbWV2YWzCoMKgwqDCoCpudjsKPiA+IMKgwqDCoMKgwqDCoMKgwqBjb25zdCB2b2lkwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqYXR0cl92YWx1ZSA9IE5VTEw7 Cj4gPiDCoMKgwqDCoMKgwqDCoMKgY29uc3Qgdm9pZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgKmF0dHJfbmFtZTsKPiA+IC3CoMKgwqDCoMKgwqDCoGludMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVycm9y Owo+ID4gK8KgwqDCoMKgwqDCoMKgY29uc3Qgdm9pZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgKmF0dHJfbm5hbWUgPSBOVUxMOwo+ID4gK8KgwqDCoMKgwqDCoMKg aW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGkgPSAwOwo+ID4gK8KgwqDCoMKgwqDCoMKgaW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3AsIGVycm9yID0gMDsKPiA+IMKgCj4g PiAtwqDCoMKgwqDCoMKgwqBhdHRyaV9mb3JtYXRwID0gaXRlbS0+cmlfYnVmWzBdLmlfYWRkcjsK PiA+IC3CoMKgwqDCoMKgwqDCoGF0dHJfbmFtZSA9IGl0ZW0tPnJpX2J1ZlsxXS5pX2FkZHI7Cj4g PiArwqDCoMKgwqDCoMKgwqBpZiAoaXRlbS0+cmlfdG90YWwgPT0gMCkgewo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFhGU19FUlJPUl9SRVBPUlQoX19mdW5jX18sIFhGU19FUlJM RVZFTF9MT1csIG1wKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g LUVGU0NPUlJVUFRFRDsKPiA+ICvCoMKgwqDCoMKgwqDCoH0KPiA+ICsKPiA+ICvCoMKgwqDCoMKg wqDCoGF0dHJpX2Zvcm1hdHAgPSBpdGVtLT5yaV9idWZbaV0uaV9hZGRyOwo+ID4gK8KgwqDCoMKg wqDCoMKgaSsrOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgb3AgPSBhdHRyaV9mb3JtYXRwLT5h bGZpX29wX2ZsYWdzICYKPiA+IFhGU19BVFRSSV9PUF9GTEFHU19UWVBFX01BU0s7Cj4gPiArwqDC oMKgwqDCoMKgwqBzd2l0Y2ggKG9wKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqBjYXNlIFhGU19BVFRS SV9PUF9GTEFHU19TRVQ6Cj4gPiArwqDCoMKgwqDCoMKgwqBjYXNlIFhGU19BVFRSSV9PUF9GTEFH U19SRVBMQUNFOgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChpdGVtLT5y aV90b3RhbCAhPSAzKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBlcnJvciA9IC1FRlNDT1JSVVBURUQ7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgYnJlYWs7Cj4gPiArwqDCoMKgwqDCoMKgwqBjYXNlIFhGU19BVFRSSV9PUF9GTEFH U19SRU1PVkU6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGl0ZW0tPnJp X3RvdGFsICE9IDIpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGVycm9yID0gLUVGU0NPUlJVUFRFRDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBicmVhazsKPiA+ICvCoMKgwqDCoMKgwqDCoGNhc2UgWEZTX0FUVFJJX09QX0ZMQUdT X05WUkVQTEFDRToKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoaXRlbS0+ cmlfdG90YWwgIT0gNCkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZXJyb3IgPSAtRUZTQ09SUlVQVEVEOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGJyZWFrOwo+ID4gK8KgwqDCoMKgwqDCoMKgZGVmYXVsdDoKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlcnJvciA9IC1FRlNDT1JSVVBURUQ7Cj4gPiArwqDCoMKg wqDCoMKgwqB9Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoZXJyb3IpIHsKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBYRlNfRVJST1JfUkVQT1JUKF9fZnVuY19fLCBYRlNf RVJSTEVWRUxfTE9XLCBtcCk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIGVycm9yOwo+ID4gK8KgwqDCoMKgwqDCoMKgfQo+ID4gwqAKPiA+IMKgwqDCoMKgwqDCoMKg wqAvKiBWYWxpZGF0ZSB4ZnNfYXR0cmlfbG9nX2Zvcm1hdCBiZWZvcmUgdGhlIGxhcmdlIG1lbW9y eQo+ID4gYWxsb2NhdGlvbiAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmICgheGZzX2F0dHJpX3Zh bGlkYXRlKG1wLCBhdHRyaV9mb3JtYXRwKSkgewo+ID4gQEAgLTc0MiwxMyArODA1LDI3IEBAIHhs b2dfcmVjb3Zlcl9hdHRyaV9jb21taXRfcGFzczIoCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHJldHVybiAtRUZTQ09SUlVQVEVEOwo+ID4gwqDCoMKgwqDCoMKgwqDCoH0KPiA+ IMKgCj4gPiArwqDCoMKgwqDCoMKgwqBhdHRyX25hbWUgPSBpdGVtLT5yaV9idWZbaV0uaV9hZGRy Owo+ID4gK8KgwqDCoMKgwqDCoMKgaSsrOwo+ID4gKwo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmICgh eGZzX2F0dHJfbmFtZWNoZWNrKGF0dHJfbmFtZSwgYXR0cmlfZm9ybWF0cC0KPiA+ID5hbGZpX25h bWVfbGVuKSkgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBYRlNfRVJST1Jf UkVQT1JUKF9fZnVuY19fLCBYRlNfRVJSTEVWRUxfTE9XLCBtcCk7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRUZTQ09SUlVQVEVEOwo+ID4gwqDCoMKgwqDCoMKg wqDCoH0KPiA+IMKgCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoYXR0cmlfZm9ybWF0cC0+YWxmaV9u bmFtZV9sZW4pIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhdHRyX25uYW1l ID0gaXRlbS0+cmlfYnVmW2ldLmlfYWRkcjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpKys7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCF4 ZnNfYXR0cl9uYW1lY2hlY2soYXR0cl9ubmFtZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGF0dHJpX2Zvcm1hdHAtPmFs Zmlfbm5hbWVfbGVuKSkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBYRlNfRVJST1JfUkVQT1JUKF9fZnVuY19fLAo+ID4gWEZTX0VSUkxFVkVMX0xP VywgbXApOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gLUVGU0NPUlJVUFRFRDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB9Cj4gPiArwqDCoMKgwqDCoMKgwqB9Cj4gPiArCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYgKGF0 dHJpX2Zvcm1hdHAtPmFsZmlfdmFsdWVfbGVuKQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGF0dHJfdmFsdWUgPSBpdGVtLT5yaV9idWZbMl0uaV9hZGRyOwo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGF0dHJfdmFsdWUgPSBpdGVtLT5yaV9idWZbaV0uaV9hZGRy Owo+ID4gwqAKPiA+IMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gwqDCoMKgwqDCoMKgwqDCoCAqIE1l bW9yeSBhbGxvYyBmYWlsdXJlIHdpbGwgY2F1c2UgcmVwbGF5IHRvIGFib3J0LsKgIFdlCj4gPiBh dHRhY2ggdGhlCj4gPiBAQCAtNzU2LDcgKzgzMyw4IEBAIHhsb2dfcmVjb3Zlcl9hdHRyaV9jb21t aXRfcGFzczIoCj4gPiDCoMKgwqDCoMKgwqDCoMKgICogcmVmZXJlbmNlLgo+ID4gwqDCoMKgwqDC oMKgwqDCoCAqLwo+ID4gwqDCoMKgwqDCoMKgwqDCoG52ID0geGZzX2F0dHJpX2xvZ19uYW1ldmFs X2FsbG9jKGF0dHJfbmFtZSwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgYXR0cmlfZm9ybWF0cC0+YWxmaV9uYW1lX2xlbiwgYXR0cl92YWx1ZSwKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXR0cmlfZm9y bWF0cC0+YWxmaV9uYW1lX2xlbiwgYXR0cl9ubmFtZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXR0cmlfZm9ybWF0cC0+YWxmaV9ubmFtZV9sZW4s IGF0dHJfdmFsdWUsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBhdHRyaV9mb3JtYXRwLT5hbGZpX3ZhbHVlX2xlbik7Cj4gPiDCoAo+ID4gwqDCoMKg wqDCoMKgwqDCoGF0dHJpcCA9IHhmc19hdHRyaV9pbml0KG1wLCBudik7Cj4gPiBkaWZmIC0tZ2l0 IGEvZnMveGZzL3hmc19hdHRyX2l0ZW0uaCBiL2ZzL3hmcy94ZnNfYXR0cl9pdGVtLmgKPiA+IGlu ZGV4IDMyODBhNzkzMDI4Ny4uMjRkNDk2OGRkNmNjIDEwMDY0NAo+ID4gLS0tIGEvZnMveGZzL3hm c19hdHRyX2l0ZW0uaAo+ID4gKysrIGIvZnMveGZzL3hmc19hdHRyX2l0ZW0uaAo+ID4gQEAgLTEz LDYgKzEzLDcgQEAgc3RydWN0IGttZW1fem9uZTsKPiA+IMKgCj4gPiDCoHN0cnVjdCB4ZnNfYXR0 cmlfbG9nX25hbWV2YWwgewo+ID4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZnNfbG9nX2lvdmVj wqDCoMKgwqBuYW1lOwo+ID4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHhmc19sb2dfaW92ZWPCoMKg wqDCoG5uYW1lOwo+ID4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZnNfbG9nX2lvdmVjwqDCoMKg wqB2YWx1ZTsKPiA+IMKgwqDCoMKgwqDCoMKgwqByZWZjb3VudF90wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHJlZmNvdW50Owo+ID4gwqAKPiA+IC0tIAo+ID4gMi4yNS4xCj4gPiAKCg==