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 X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3252C4338F for ; Thu, 29 Jul 2021 22:08:08 +0000 (UTC) Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9958D60EB5 for ; Thu, 29 Jul 2021 22:08:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9958D60EB5 Authentication-Results: mail.kernel.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=oss.oracle.com Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16TM6NPJ030352; Thu, 29 Jul 2021 22:08:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : date : message-id : references : in-reply-to : content-id : mime-version : cc : subject : list-id : list-unsubscribe : list-archive : list-post : list-help : list-subscribe : content-type : content-transfer-encoding : sender; s=corp-2021-07-09; bh=0lTjFllam5B4j9sXN/GQ6PTViKn5zybM0JMG7PN2fY8=; b=Gt9a6Rf7n2Ms57lkBEJDgiYewpru6JHQ/USEVLxUU7m4nKueSbiUt5l9LBIpUZ6SE3Kc p1GeJ9XjSIMNeJoUiHtyKl8N7L9YtY8XbKMkVkUF/3jqeuoah7Nfi/08t6FrXA9DzP78 atECbBP3v7uQcpX7vx/3BUbzBKDiNBh8lsj2hB++b42CwgpVEIAwHzkCKoZ0QH7qOPoJ LwggdlgL2hC5xSn5b65QUNUT4HzqWINVFAKP1B0VPcGQ0ckqMBCmHsENUK0Agkwg5+Zp BIaD4xq5I6mLCez8qFWG+YDsaZLuVMZ8OB4KazjkqPeiG79PIwRjAy/6Rfrf3vBWBoM9 Bw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : date : message-id : references : in-reply-to : content-id : mime-version : cc : subject : list-id : list-unsubscribe : list-archive : list-post : list-help : list-subscribe : content-type : content-transfer-encoding : sender; s=corp-2020-01-29; bh=0lTjFllam5B4j9sXN/GQ6PTViKn5zybM0JMG7PN2fY8=; b=aQdACE/naqbldsmtaWuJm0uO1eX46c2MfQflPBwWlk1dxe72sbFGPauDf9MxZK0nj3C5 yXFzpILrLoi3DZWASQFfpJn9FikukqVXzk941Hn/DUzL5x4YFfo2i7Fj0vQM0lfQ2FHE v6XeZJfiXQUs9HjBaPP9uxq/qX5ubgfmGH7t7Fg6otlFdoSurNgJFLpAdwwybPRub9vl bLvh84PmAVSfbdZwy2Jy9Ci9OYrv3VhXez5CN13fJ1QJQP/6zUhiIXorB9yNRnC1PCw9 YnZW6jveho0Kn1tvOzmrd9rGzN8GkAZSe4HeQSI19XOWE2WFmPm4qFrdBGG/4oPlinu0 PQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3a3jpd2b8x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 29 Jul 2021 22:08:06 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 16TM5N9T108482; Thu, 29 Jul 2021 22:08:05 GMT Received: from oss.oracle.com (oss-old-reserved.oracle.com [137.254.22.2]) by userp3020.oracle.com with ESMTP id 3a2351rywu-1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Thu, 29 Jul 2021 22:08:04 +0000 Received: from localhost ([127.0.0.1] helo=lb-oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1m9ECB-000842-SA; Thu, 29 Jul 2021 15:08:03 -0700 Received: from userp3020.oracle.com ([156.151.31.79]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1m9EC9-00083d-Ip for ocfs2-devel@oss.oracle.com; Thu, 29 Jul 2021 15:08:01 -0700 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 16TM5NJG108383 for ; Thu, 29 Jul 2021 22:08:01 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2171.outbound.protection.outlook.com [104.47.57.171]) by userp3020.oracle.com with ESMTP id 3a2351ryt8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 29 Jul 2021 22:08:01 +0000 Received: from SN6PR10MB2701.namprd10.prod.outlook.com (2603:10b6:805:45::20) by SN6PR10MB2462.namprd10.prod.outlook.com (2603:10b6:805:47::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.17; Thu, 29 Jul 2021 22:07:59 +0000 Received: from SN6PR10MB2701.namprd10.prod.outlook.com ([fe80::fcfe:5758:70ad:ec9b]) by SN6PR10MB2701.namprd10.prod.outlook.com ([fe80::fcfe:5758:70ad:ec9b%3]) with mapi id 15.20.4373.018; Thu, 29 Jul 2021 22:07:59 +0000 From: Wengang Wang To: Gang He Thread-Topic: [Ocfs2-devel] [PATCH] ocfs2: reflink deadlock when clone file to the same directory simultaneously Thread-Index: AQHXhGlcFD3thj4BFUyay/qjtSbk56tag40A Date: Thu, 29 Jul 2021 22:07:59 +0000 Message-ID: References: <20210729110230.18983-1-ghe@suse.com> In-Reply-To: <20210729110230.18983-1-ghe@suse.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3654.60.0.2.21) authentication-results: suse.com; dkim=none (message not signed) header.d=none; suse.com; dmarc=none action=none header.from=oracle.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ac602fc4-b2fb-4745-f2fb-08d952dd539a x-ms-traffictypediagnostic: SN6PR10MB2462: x-ms-exchange-transport-forked: True x-oracle-tenancy: 1 x-ms-oob-tlc-oobclassifiers: OLM:1775; x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fOOO82LgbWjpqqzDEV/iu31bPVyjREaMYmwaIcaiz5P7MtivPzl97ZTAeNz0/jIudnadbZbONOEyjZxsye5jF2xvljCvx/e1k6oPmGehy+f2GdaYo4CND1GWZ8c06NAv8dd5SKTYBLZUiJo0ENwaEJ+a0xqQsBXJkqfbcrS+Z5coGkT3GPR4BZACNRVly5KkY3tleS2RPDMjzaWVG+TqR4zJvaW2DwrHrGIrpyXwdNCSkKbm+UqAR3Q5ZrL3AILYn2+O4IW5BuW7MLltH5Zpw0i9s9pS2IEqspLD49ZYNBpJOkx+8mB3vbpoTh+t7V3Kasl4SsueD2CZrMYO8As9qIX9KRASt5ZP0ZcVZjerzLTfze1YyXGFW3bwhOIk2EJ/nZ63zwsf+qtslJTJTlqns0kiybCAsBdl2NIvOtY6J9H3Ejq6M3hgA2QftfkzLlsKHa0TOOK1k1XI+b/aGoAIinrJSbxbQjYGEtZKj41jacpAsVj4xTGK9RtMiRC8Pd9gOprrc4GgnV1kJKkGpqo/5zGWJmnNYxRcPpekV5akZEqDcizRGvC78QRlnl/kVpae2z+27QPJklYpos8jxUWnfaI2r9fknAmXK3OElNlqfdbWZBGv2hhNFGKcux6JPt5AKPgT+rE3eUv8ddIafYf+OUHBWLYVxvmnOMufXaxxXngNb8x9sok3020UE96jyMU8 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:-1; SRV:; IPV:NLI; SFV:SKI; H:SN6PR10MB2701.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:; DIR:INB; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cjVGckNpbjRXSVpFYTJoaU5lQVJUaUx0ODJHYW9PcVlpYS95WXRSZmp0Mk1Z?= =?utf-8?B?bW0walltaXRNTVZEejVqQlhTNUEwYTJQRXlSYi9xdXdkQ3pJUXVmTWdwMXBz?= =?utf-8?B?c2FvODJrM2VNZWl4RlZkbDc4ZTVEcW92WXJoQmZiVXFyWkV2cUUvc3RmWkpF?= =?utf-8?B?UjJ0Z2ZsN0JBUjgzcXo2ajJmSGFBZStCbUkwK2ptcHk0d1RvNnFqdWFqdzBR?= =?utf-8?B?VWQzRGN4ZXJuRnB0VWF2VHg3OG5ZZ3FjWEFmaFVYckhsVXFrMVVETlYyQ1k4?= =?utf-8?B?N3lvMCtMSHZ0VzBLaEwwZUxnTEV1K04yZzRJWTdhckoyQ2UzV253MzhmbHBu?= =?utf-8?B?T0dmcGFmWThsaFl3RnBQaDh5S1YzNGQ2QWl5WVpOVHFRNkt6Y3hWZWlrblBu?= =?utf-8?B?S21pRE9KVGlWYmk5WUFLRUtFbjlTdzFOSFZwTGhpUkg2NG1Qd29ydTVHbmJk?= =?utf-8?B?U0tibzhoeGVYcHRQeGtrcGU1c0VJUjdkWk5KSDBncEdKUzRYVXpjenFveXRs?= =?utf-8?B?ckFnTnVmNS9Eek1Lc2cyQlZvNFYzL24wTktoYU9aNU12TVZxT1RoR0EyeGpF?= =?utf-8?B?VlRFcDgrSkhUSVpicDh6MkUwWC9DWkNQcFlMRzZtSHdrUEVFSjZndXkvbG1k?= =?utf-8?B?dFFiQmxxajFHdlk2dFZQaVRBZmJwSm5waTBMSytLYlJCb3BjV0lBOFZqeGJG?= =?utf-8?B?QjNjcTJDMVVGNFNBRHhsTzVNaWpBRFZxVXJkeFp4L1R1ZTZXaklhSTV5SzNJ?= =?utf-8?B?UmJMMU1PbHBwOS92TGZPZ05WdFlseWovNHFjWGtFbTB2VEhJR3ZycWhHQmhU?= =?utf-8?B?MS81a1o0TTBGejFpUHJxRW9HWW1tb2J1VjVuMERhLzVmVHlqTFROOWNDcXFy?= =?utf-8?B?VVdqK3RURW5JVGY1bTh4emRRd1NzZk03ZytHTFBZclM4MVNWNE9wRk5zQmRS?= =?utf-8?B?QzhrY0g2S2xuM0l6Vjg3UVNNOFBwRGFnNmp0L0gxbExQdTV1TVRuQ0hpM2Rt?= =?utf-8?B?R0lSWmVtL09Zc3FWSTc2VHNkdUp1aVlhMzd3a2FHSXJLYURwekRMc2dETCtw?= =?utf-8?B?Yy9xWkx6K0NwRk1VenA1ekJrNEphVGxoaGNYVVFhRS80cnBOK1Bpd2FSbW9M?= =?utf-8?B?Nk03ODhCSDY2WGQwZUVjMENZL294c2FIR3FQN09LbkFobysrRmh2WG1TQkU5?= =?utf-8?B?Ump3SlhSUHNxcm9wQWhiaWJqbFRLdkVzOVhoUGxGZXJaRFh2a01JVVJsUkZk?= =?utf-8?B?emQybS9lYjJMQXNVUzBSb1Jyb2RXdFYxMlEvc2RNN3lXOTAwQStaeUVkbk10?= =?utf-8?B?N0RwY2RwSm03ZmhadkhuVnhCeE54d2RNU0hrT004aUNEOTdiTjFEbWJ5ZDRS?= =?utf-8?B?TDExQVVUcmw3R0JJekVkYXBaK2hsYlZSajdWdFZwbG40T1FLSUs0SHNKRVNV?= =?utf-8?B?VWdLejhQM05nQ2w4RTlaZU9VNzRhbStUeG11Q2NjdlpQOHcxNDNNb0pvajdp?= =?utf-8?B?b2JGUE9GUUZ5YWFTSDF1bDlhQm53UjQ0ejBzbVhDdkNrRXhhQldYenREajJn?= =?utf-8?B?dko0aWc0bzZ6UmorWnU0OVpVOWxRTHl2M29UUEE4NVovUWkvbGVQM3BIWVdi?= =?utf-8?B?c0VjM09KWStlcU4wU1VwUCtOV0lGOWJJUFZveGRpd1RLQjlseUczZ3FXU2Nx?= =?utf-8?B?NExFNDZERnhMRGRTMTNxaXZqRzU0V1h6RHg4ZjlpVDc3OTVCd0thQlArQXVB?= =?utf-8?Q?h4g4Ee4iUXqEjY78po22g2/TurCOEpOn+uKS9q8?= Content-ID: <43B29E6D1396C14EAEB1F8BF49B0736C@namprd10.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB2701.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ac602fc4-b2fb-4745-f2fb-08d952dd539a X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jul 2021 22:07:59.2670 (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: /Qo+Da4VKWabUGXWrrQFMlOAmegOsg/zQylhQeArsPnxy7e2jpz/mO1BTypYNxN3iQvPQEm0u83FRBxc0O8QLuFFzFvtK4o35LmOALIGDlw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2462 X-MS-Exchange-CrossPremises-AuthAs: Internal X-MS-Exchange-CrossPremises-AuthMechanism: 04 X-MS-Exchange-CrossPremises-AuthSource: SN6PR10MB2701.namprd10.prod.outlook.com X-MS-Exchange-CrossPremises-TransportTrafficType: Email X-MS-Exchange-CrossPremises-SCL: -1 X-MS-Exchange-CrossPremises-messagesource: StoreDriver X-MS-Exchange-CrossPremises-BCC: X-MS-Exchange-CrossPremises-originalclientipaddress: 71.202.81.58 X-MS-Exchange-CrossPremises-transporttraffictype: Email X-MS-Exchange-CrossPremises-antispam-scancontext: DIR:Originating; SFV:SKI; SKIP:0; X-MS-Exchange-CrossPremises-processed-by-journaling: Journal Agent X-OrganizationHeadersPreserved: SN6PR10MB2462.namprd10.prod.outlook.com X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10060 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2107290134 Cc: "ocfs2-devel@oss.oracle.com" , "linux-kernel@vger.kernel.org" Subject: Re: [Ocfs2-devel] [PATCH] ocfs2: reflink deadlock when clone file to the same directory simultaneously X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: ocfs2-devel-bounces@oss.oracle.com Errors-To: ocfs2-devel-bounces@oss.oracle.com X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10060 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2107290134 X-Proofpoint-ORIG-GUID: oAIFPokSWwUPYFqc2E4Gy64LnknxC-_L X-Proofpoint-GUID: oAIFPokSWwUPYFqc2E4Gy64LnknxC-_L SGkgR2FuZywNCg0KSeKAmWQgc3VnZ2VzdCB5b3UgbGlzdCB0aGUgY2FsbCBwYXRocyBvbiB0aGUg cmVsYXRlZCBub2RlcywgU2F5IGNhbGwgcGF0aCAxIG9uIG5vZGUgb25lIGdyYW50ZWQgbG9jayBB IGFuZCBpcyByZXF1ZXN0aW5nIGZvciBsb2NrIEIsIGF0IHRoZSBzYW1lIHRpbWUsIHBhdGgyIG9u IG5vZGUgdHdvIGdyYW50ZWQgbG9jayBCIGFuZCBub3cgaXMgcmVxdWVzdGluZyBmb3IgbG9jayBB LiAgDQpXaXRoIHRoYXQsIHRoZSBwcm9ibGVtIHdvdWxkIGJlIGVhc2llciB0byB1bmRlcnN0YW5k Lg0KDQp0aGFua3MsDQp3ZW5nYW5nDQoNCj4gT24gSnVsIDI5LCAyMDIxLCBhdCA0OjAyIEFNLCBH YW5nIEhlIDxnaGVAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gUnVubmluZyByZWZsaW5rIGZyb20g bXVsdGlwbGUgbm9kZXMgc2ltdWx0YW5lb3VzbHkgdG8gY2xvbmUgYSBmaWxlDQo+IHRvIHRoZSBz YW1lIGRpcmVjdG9yeSBwcm9iYWJseSB0cmlnZ2VycyBhIGRlYWRsb2NrIGlzc3VlLg0KPiBGb3Ig ZXhhbXBsZSwgdGhlcmUgaXMgYSB0aHJlZSBub2RlIG9jZnMyIGNsdXN0ZXIsIGVhY2ggbm9kZSBt b3VudHMNCj4gdGhlIG9jZnMyIGZpbGUgc3lzdGVtIHRvIC9tbnQvc2hhcmVkLCBhbmQgcnVuIHRo ZSByZWZsaW5rIGNvbW1hbmQNCj4gZnJvbSBlYWNoIG5vZGUgcmVwZWF0ZWRseSwgbGlrZQ0KPiAg cmVmbGluayAiL21udC9zaGFyZWQvdGVzdCIgXA0KPiAgIi9tbnQvc2hhcmVkLy5zbmFwc2hvdHMv dGVzdC5gZGF0ZSArJW0lZCVIJU0lU2AuYGhvc3RuYW1lYCINCj4gdGhlbiwgcmVmbGluayBjb21t YW5kIHByb2Nlc3Mgd2lsbCBiZSBodW5nIG9uIGVhY2ggbm9kZSwgYW5kIHlvdQ0KPiBjYW4ndCBs aXN0IHRoaXMgZmlsZSBzeXN0ZW0gZGlyZWN0b3J5Lg0KPiBUaGUgcHJvYmxlbWF0aWMgcmVmbGlu ayBjb21tYW5kIHByb2Nlc3MgaXMgYmxvY2tlZCBhdCBvbmUgbm9kZSwNCj4gdGFzazpyZWZsaW5r ICAgICAgICAgc3RhdGU6RCBzdGFjazogICAgMCBwaWQ6IDEyODMgcHBpZDogIDQxNTQNCj4gQ2Fs bCBUcmFjZToNCj4gIF9fc2NoZWR1bGUrMHgyZmQvMHg3NTANCj4gIHNjaGVkdWxlKzB4MmYvMHhh MA0KPiAgc2NoZWR1bGVfdGltZW91dCsweDFjYy8weDMxMA0KPiAgPyBvY2ZzMl9jb250cm9sX2Nm dSsweDUwLzB4NTAgW29jZnMyX3N0YWNrX3VzZXJdDQo+ICA/IDB4ZmZmZmZmZmZjMGUzZTAwMA0K PiAgd2FpdF9mb3JfY29tcGxldGlvbisweGJhLzB4MTQwDQo+ICA/IHdha2VfdXBfcSsweGEwLzB4 YTANCj4gIF9fb2NmczJfY2x1c3Rlcl9sb2NrLmlzcmEuNDErMHgzYjUvMHg4MjAgW29jZnMyXQ0K PiAgPyBvY2ZzMl9pbm9kZV9sb2NrX2Z1bGxfbmVzdGVkKzB4MWZjLzB4OTYwIFtvY2ZzMl0NCj4g IG9jZnMyX2lub2RlX2xvY2tfZnVsbF9uZXN0ZWQrMHgxZmMvMHg5NjAgW29jZnMyXQ0KPiAgb2Nm czJfaW5pdF9zZWN1cml0eV9hbmRfYWNsKzB4YmUvMHgxZDAgW29jZnMyXQ0KPiAgb2NmczJfcmVm bGluaysweDQzNi8weDRjMCBbb2NmczJdDQo+ICA/IG9jZnMyX3JlZmxpbmtfaW9jdGwrMHgyY2Ev MHgzNjAgW29jZnMyXQ0KPiAgb2NmczJfcmVmbGlua19pb2N0bCsweDJjYS8weDM2MCBbb2NmczJd DQo+ICBvY2ZzMl9pb2N0bCsweDI1ZS8weDY3MCBbb2NmczJdDQo+ICBkb192ZnNfaW9jdGwrMHhh MC8weDY4MA0KPiAga3N5c19pb2N0bCsweDcwLzB4ODANCj4gIF9feDY0X3N5c19pb2N0bCsweDE2 LzB4MjANCj4gIGRvX3N5c2NhbGxfNjQrMHg1Yi8weDFlMA0KPiBUaGUgb3RoZXIgcmVmbGluayBj b21tYW5kIHByb2Nlc3NlcyBhcmUgYmxvY2tlZCBhdCBvdGhlciBub2RlcywNCj4gdGFzazpyZWZs aW5rICAgICAgICAgc3RhdGU6RCBzdGFjazogICAgMCBwaWQ6Mjk3NTkgcHBpZDogIDQwODgNCj4g Q2FsbCBUcmFjZToNCj4gIF9fc2NoZWR1bGUrMHgyZmQvMHg3NTANCj4gIHNjaGVkdWxlKzB4MmYv MHhhMA0KPiAgc2NoZWR1bGVfdGltZW91dCsweDFjYy8weDMxMA0KPiAgPyBvY2ZzMl9jb250cm9s X2NmdSsweDUwLzB4NTAgW29jZnMyX3N0YWNrX3VzZXJdDQo+ICA/IDB4ZmZmZmZmZmZjMGIxOTAw MA0KPiAgd2FpdF9mb3JfY29tcGxldGlvbisweGJhLzB4MTQwDQo+ICA/IHdha2VfdXBfcSsweGEw LzB4YTANCj4gIF9fb2NmczJfY2x1c3Rlcl9sb2NrLmlzcmEuNDErMHgzYjUvMHg4MjAgW29jZnMy XQ0KPiAgPyBvY2ZzMl9pbm9kZV9sb2NrX2Z1bGxfbmVzdGVkKzB4MWZjLzB4OTYwIFtvY2ZzMl0N Cj4gIG9jZnMyX2lub2RlX2xvY2tfZnVsbF9uZXN0ZWQrMHgxZmMvMHg5NjAgW29jZnMyXQ0KPiAg b2NmczJfbXZfb3JwaGFuZWRfaW5vZGVfdG9fbmV3KzB4ODcvMHg3ZTAgW29jZnMyXQ0KPiAgb2Nm czJfcmVmbGluaysweDMzNS8weDRjMCBbb2NmczJdDQo+ICA/IG9jZnMyX3JlZmxpbmtfaW9jdGwr MHgyY2EvMHgzNjAgW29jZnMyXQ0KPiAgb2NmczJfcmVmbGlua19pb2N0bCsweDJjYS8weDM2MCBb b2NmczJdDQo+ICBvY2ZzMl9pb2N0bCsweDI1ZS8weDY3MCBbb2NmczJdDQo+ICBkb192ZnNfaW9j dGwrMHhhMC8weDY4MA0KPiAga3N5c19pb2N0bCsweDcwLzB4ODANCj4gIF9feDY0X3N5c19pb2N0 bCsweDE2LzB4MjANCj4gIGRvX3N5c2NhbGxfNjQrMHg1Yi8weDFlMA0KPiBvcg0KPiB0YXNrOnJl ZmxpbmsgICAgICAgICBzdGF0ZTpEIHN0YWNrOiAgICAwIHBpZDoxODQ2NSBwcGlkOiAgNDE1Ng0K PiBDYWxsIFRyYWNlOg0KPiAgX19zY2hlZHVsZSsweDMwMi8weDk0MA0KPiAgPyB1c2xlZXBfcmFu Z2UrMHg4MC8weDgwDQo+ICBzY2hlZHVsZSsweDQ2LzB4YjANCj4gIHNjaGVkdWxlX3RpbWVvdXQr MHhmZi8weDE0MA0KPiAgPyBvY2ZzMl9jb250cm9sX2NmdSsweDUwLzB4NTAgW29jZnMyX3N0YWNr X3VzZXJdDQo+ICA/IDB4ZmZmZmZmZmZjMGMzYjAwMA0KPiAgX193YWl0X2Zvcl9jb21tb24rMHhi OS8weDE3MA0KPiAgX19vY2ZzMl9jbHVzdGVyX2xvY2suY29uc3Rwcm9wLjArMHgxZDYvMHg4NjAg W29jZnMyXQ0KPiAgPyBvY2ZzMl93YWl0X2Zvcl9yZWNvdmVyeSsweDQ5LzB4ZDAgW29jZnMyXQ0K PiAgPyBvY2ZzMl9pbm9kZV9sb2NrX2Z1bGxfbmVzdGVkKzB4MzBmLzB4YTUwIFtvY2ZzMl0NCj4g IG9jZnMyX2lub2RlX2xvY2tfZnVsbF9uZXN0ZWQrMHgzMGYvMHhhNTAgW29jZnMyXQ0KPiAgb2Nm czJfaW5vZGVfbG9ja190cmFja2VyKzB4ZjIvMHgyYjAgW29jZnMyXQ0KPiAgPyBkcHV0KzB4MzIv MHgyZjANCj4gIG9jZnMyX3Blcm1pc3Npb24rMHg0NS8weGUwIFtvY2ZzMl0NCj4gIGlub2RlX3Bl cm1pc3Npb24rMHhjYy8weDE3MA0KPiAgbGlua19wYXRoX3dhbGsucGFydC4wLmNvbnN0cHJvcC4w KzB4MmEyLzB4MzgwDQo+ICA/IHBhdGhfaW5pdCsweDJjMS8weDNmMA0KPiAgcGF0aF9wYXJlbnRh dCsweDNjLzB4OTANCj4gIGZpbGVuYW1lX3BhcmVudGF0KzB4YzEvMHgxZDANCj4gID8gZmlsZW5h bWVfbG9va3VwKzB4MTM4LzB4MWMwDQo+ICBmaWxlbmFtZV9jcmVhdGUrMHg0My8weDE2MA0KPiAg b2NmczJfcmVmbGlua19pb2N0bCsweGU2LzB4MzgwIFtvY2ZzMl0NCj4gIG9jZnMyX2lvY3RsKzB4 MWVhLzB4MmMwIFtvY2ZzMl0NCj4gID8gZG9fc3lzX29wZW5hdDIrMHg4MS8weDE1MA0KPiAgX194 NjRfc3lzX2lvY3RsKzB4ODIvMHhiMA0KPiAgZG9fc3lzY2FsbF82NCsweDYxLzB4YjANCj4gDQo+ IFRoZSBkZWFkbG9jayBpcyBjYXVzZWQgYnkgbXVsdGlwbGUgYWNxdWlyaW5nIHRoZSBkZXN0aW5h dGlvbiBkaXJlY3RvcnkNCj4gaW5vZGUgZGxtIGxvY2sgaW4gb2NmczJfcmVmbGluayBmdW5jdGlv biwgd2Ugc2hvdWxkIGFjcXVpcmUgdGhpcw0KPiBkaXJlY3RvcnkgaW5vZGUgZGxtIGxvY2sgYXQg dGhlIGJlZ2lubmluZywgYW5kIGhvbGQgdGhpcyBkbG0gbG9jayB1bnRpbA0KPiBlbmQgb2YgdGhl IGZ1bmN0aW9uLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogR2FuZyBIZSA8Z2hlQHN1c2UuY29tPg0K PiAtLS0NCj4gZnMvb2NmczIvbmFtZWkuYyAgICAgICAgfCAzMiArKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiBmcy9vY2ZzMi9uYW1laS5oICAgICAgICB8ICAyICsrDQo+IGZzL29j ZnMyL3JlZmNvdW50dHJlZS5jIHwgMTUgKysrKysrKysrKystLS0tDQo+IGZzL29jZnMyL3hhdHRy LmMgICAgICAgIHwgMTIgKy0tLS0tLS0tLS0tDQo+IGZzL29jZnMyL3hhdHRyLmggICAgICAgIHwg IDEgKw0KPiA1IGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygt KQ0KPiANCj4gZGlmZiAtLWdpdCBhL2ZzL29jZnMyL25hbWVpLmMgYi9mcy9vY2ZzMi9uYW1laS5j DQo+IGluZGV4IDJjNDZmZjZiYTRlYS4uZjhiYmIyMmNjNjBiIDEwMDY0NA0KPiAtLS0gYS9mcy9v Y2ZzMi9uYW1laS5jDQo+ICsrKyBiL2ZzL29jZnMyL25hbWVpLmMNCj4gQEAgLTI0ODksNiArMjQ4 OSw3IEBAIHN0YXRpYyBpbnQgb2NmczJfcHJlcF9uZXdfb3JwaGFuZWRfZmlsZShzdHJ1Y3QgaW5v ZGUgKmRpciwNCj4gfQ0KPiANCj4gaW50IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oc3Ry dWN0IGlub2RlICpkaXIsDQo+ICsJCQkJIHN0cnVjdCBidWZmZXJfaGVhZCAqKmRpcl9iaCwNCj4g CQkJCSBpbnQgbW9kZSwNCj4gCQkJCSBzdHJ1Y3QgaW5vZGUgKipuZXdfaW5vZGUpDQo+IHsNCj4g QEAgLTI1OTcsMTMgKzI1OTgsMTYgQEAgaW50IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4o c3RydWN0IGlub2RlICpkaXIsDQo+IA0KPiAJYnJlbHNlKG5ld19kaV9iaCk7DQo+IA0KPiAtCWlm ICghc3RhdHVzKQ0KPiAtCQkqbmV3X2lub2RlID0gaW5vZGU7DQo+IC0NCj4gCW9jZnMyX2ZyZWVf ZGlyX2xvb2t1cF9yZXN1bHQoJm9ycGhhbl9pbnNlcnQpOw0KPiANCj4gLQlvY2ZzMl9pbm9kZV91 bmxvY2soZGlyLCAxKTsNCj4gLQlicmVsc2UocGFyZW50X2RpX2JoKTsNCj4gKwlpZiAoIXN0YXR1 cykgew0KPiArCQkqbmV3X2lub2RlID0gaW5vZGU7DQo+ICsJCSpkaXJfYmggPSBwYXJlbnRfZGlf Ymg7DQo+ICsJfSBlbHNlIHsNCj4gKwkJb2NmczJfaW5vZGVfdW5sb2NrKGRpciwgMSk7DQo+ICsJ CWJyZWxzZShwYXJlbnRfZGlfYmgpOw0KPiArCX0NCj4gKw0KPiAJcmV0dXJuIHN0YXR1czsNCj4g fQ0KPiANCj4gQEAgLTI3NjAsMTEgKzI3NjQsMTEgQEAgaW50IG9jZnMyX2RlbF9pbm9kZV9mcm9t X29ycGhhbihzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYiwNCj4gfQ0KPiANCj4gaW50IG9jZnMyX212 X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gKwkJCQkgICBzdHJ1 Y3QgYnVmZmVyX2hlYWQgKmRpcl9iaCwNCj4gCQkJCSAgIHN0cnVjdCBpbm9kZSAqaW5vZGUsDQo+ IAkJCQkgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQo+IHsNCj4gCWludCBzdGF0dXMgPSAwOw0K PiAtCXN0cnVjdCBidWZmZXJfaGVhZCAqcGFyZW50X2RpX2JoID0gTlVMTDsNCj4gCWhhbmRsZV90 ICpoYW5kbGUgPSBOVUxMOw0KPiAJc3RydWN0IG9jZnMyX3N1cGVyICpvc2IgPSBPQ0ZTMl9TQihk aXItPmlfc2IpOw0KPiAJc3RydWN0IG9jZnMyX2Rpbm9kZSAqZGlyX2RpLCAqZGk7DQo+IEBAIC0y Nzc4LDE0ICsyNzgyLDcgQEAgaW50IG9jZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1 Y3QgaW5vZGUgKmRpciwNCj4gCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpT0NGUzJfSShkaXIpLT5p cF9ibGtubywNCj4gCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpT0NGUzJfSShpbm9kZSktPmlwX2Js a25vKTsNCj4gDQo+IC0Jc3RhdHVzID0gb2NmczJfaW5vZGVfbG9jayhkaXIsICZwYXJlbnRfZGlf YmgsIDEpOw0KPiAtCWlmIChzdGF0dXMgPCAwKSB7DQo+IC0JCWlmIChzdGF0dXMgIT0gLUVOT0VO VCkNCj4gLQkJCW1sb2dfZXJybm8oc3RhdHVzKTsNCj4gLQkJcmV0dXJuIHN0YXR1czsNCj4gLQl9 DQo+IC0NCj4gLQlkaXJfZGkgPSAoc3RydWN0IG9jZnMyX2Rpbm9kZSAqKSBwYXJlbnRfZGlfYmgt PmJfZGF0YTsNCj4gKwlkaXJfZGkgPSAoc3RydWN0IG9jZnMyX2Rpbm9kZSAqKSBkaXJfYmgtPmJf ZGF0YTsNCj4gCWlmICghZGlyX2RpLT5pX2xpbmtzX2NvdW50KSB7DQo+IAkJLyogY2FuJ3QgbWFr ZSBhIGZpbGUgaW4gYSBkZWxldGVkIGRpcmVjdG9yeS4gKi8NCj4gCQlzdGF0dXMgPSAtRU5PRU5U Ow0KPiBAQCAtMjc5OCw3ICsyNzk1LDcgQEAgaW50IG9jZnMyX212X29ycGhhbmVkX2lub2RlX3Rv X25ldyhzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gCQlnb3RvIGxlYXZlOw0KPiANCj4gCS8qIGdldCBh IHNwb3QgaW5zaWRlIHRoZSBkaXIuICovDQo+IC0Jc3RhdHVzID0gb2NmczJfcHJlcGFyZV9kaXJf Zm9yX2luc2VydChvc2IsIGRpciwgcGFyZW50X2RpX2JoLA0KPiArCXN0YXR1cyA9IG9jZnMyX3By ZXBhcmVfZGlyX2Zvcl9pbnNlcnQob3NiLCBkaXIsIGRpcl9iaCwNCj4gCQkJCQkgICAgICBkZW50 cnktPmRfbmFtZS5uYW1lLA0KPiAJCQkJCSAgICAgIGRlbnRyeS0+ZF9uYW1lLmxlbiwgJmxvb2t1 cCk7DQo+IAlpZiAoc3RhdHVzIDwgMCkgew0KPiBAQCAtMjg2Miw3ICsyODU5LDcgQEAgaW50IG9j ZnMyX212X29ycGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gCW9jZnMy X2pvdXJuYWxfZGlydHkoaGFuZGxlLCBkaV9iaCk7DQo+IA0KPiAJc3RhdHVzID0gb2NmczJfYWRk X2VudHJ5KGhhbmRsZSwgZGVudHJ5LCBpbm9kZSwNCj4gLQkJCQkgT0NGUzJfSShpbm9kZSktPmlw X2Jsa25vLCBwYXJlbnRfZGlfYmgsDQo+ICsJCQkJIE9DRlMyX0koaW5vZGUpLT5pcF9ibGtubywg ZGlyX2JoLA0KPiAJCQkJICZsb29rdXApOw0KPiAJaWYgKHN0YXR1cyA8IDApIHsNCj4gCQltbG9n X2Vycm5vKHN0YXR1cyk7DQo+IEBAIC0yODg2LDEwICsyODgzLDcgQEAgaW50IG9jZnMyX212X29y cGhhbmVkX2lub2RlX3RvX25ldyhzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gCWlwdXQob3JwaGFuX2Rp cl9pbm9kZSk7DQo+IGxlYXZlOg0KPiANCj4gLQlvY2ZzMl9pbm9kZV91bmxvY2soZGlyLCAxKTsN Cj4gLQ0KPiAJYnJlbHNlKGRpX2JoKTsNCj4gLQlicmVsc2UocGFyZW50X2RpX2JoKTsNCj4gCWJy ZWxzZShvcnBoYW5fZGlyX2JoKTsNCj4gDQo+IAlvY2ZzMl9mcmVlX2Rpcl9sb29rdXBfcmVzdWx0 KCZsb29rdXApOw0KPiBkaWZmIC0tZ2l0IGEvZnMvb2NmczIvbmFtZWkuaCBiL2ZzL29jZnMyL25h bWVpLmgNCj4gaW5kZXggOWNjODkxZWI4NzRlLi4wM2EyYzUyNmUyYzEgMTAwNjQ0DQo+IC0tLSBh L2ZzL29jZnMyL25hbWVpLmgNCj4gKysrIGIvZnMvb2NmczIvbmFtZWkuaA0KPiBAQCAtMjQsNiAr MjQsNyBAQCBpbnQgb2NmczJfb3JwaGFuX2RlbChzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYiwNCj4g CQkgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqb3JwaGFuX2Rpcl9iaCwNCj4gCQkgICAgIGJvb2wg ZGlvKTsNCj4gaW50IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oc3RydWN0IGlub2RlICpk aXIsDQo+ICsJCQkJIHN0cnVjdCBidWZmZXJfaGVhZCAqKmRpcl9iaCwNCj4gCQkJCSBpbnQgbW9k ZSwNCj4gCQkJCSBzdHJ1Y3QgaW5vZGUgKipuZXdfaW5vZGUpOw0KPiBpbnQgb2NmczJfYWRkX2lu b2RlX3RvX29ycGhhbihzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYiwNCj4gQEAgLTMyLDYgKzMzLDcg QEAgaW50IG9jZnMyX2RlbF9pbm9kZV9mcm9tX29ycGhhbihzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9z YiwNCj4gCQlzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpX2JoLA0K PiAJCWludCB1cGRhdGVfaXNpemUsIGxvZmZfdCBlbmQpOw0KPiBpbnQgb2NmczJfbXZfb3JwaGFu ZWRfaW5vZGVfdG9fbmV3KHN0cnVjdCBpbm9kZSAqZGlyLA0KPiArCQkJCSAgIHN0cnVjdCBidWZm ZXJfaGVhZCAqZGlyX2JoLA0KPiAJCQkJICAgc3RydWN0IGlub2RlICpuZXdfaW5vZGUsDQo+IAkJ CQkgICBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGVudHJ5KTsNCj4gDQo+IGRpZmYgLS1naXQgYS9mcy9v Y2ZzMi9yZWZjb3VudHRyZWUuYyBiL2ZzL29jZnMyL3JlZmNvdW50dHJlZS5jDQo+IGluZGV4IDdm NjM1NWNiYjU4Ny4uYTlhMGM3YzM3ZThlIDEwMDY0NA0KPiAtLS0gYS9mcy9vY2ZzMi9yZWZjb3Vu dHRyZWUuYw0KPiArKysgYi9mcy9vY2ZzMi9yZWZjb3VudHRyZWUuYw0KPiBAQCAtNDI1MCw3ICs0 MjUwLDcgQEAgc3RhdGljIGludCBvY2ZzMl9yZWZsaW5rKHN0cnVjdCBkZW50cnkgKm9sZF9kZW50 cnksIHN0cnVjdCBpbm9kZSAqZGlyLA0KPiB7DQo+IAlpbnQgZXJyb3IsIGhhZF9sb2NrOw0KPiAJ c3RydWN0IGlub2RlICppbm9kZSA9IGRfaW5vZGUob2xkX2RlbnRyeSk7DQo+IC0Jc3RydWN0IGJ1 ZmZlcl9oZWFkICpvbGRfYmggPSBOVUxMOw0KPiArCXN0cnVjdCBidWZmZXJfaGVhZCAqb2xkX2Jo ID0gTlVMTCwgKmRpcl9iaCA9IE5VTEw7DQo+IAlzdHJ1Y3QgaW5vZGUgKm5ld19vcnBoYW5faW5v ZGUgPSBOVUxMOw0KPiAJc3RydWN0IG9jZnMyX2xvY2tfaG9sZGVyIG9oOw0KPiANCj4gQEAgLTQy NTgsNyArNDI1OCw3IEBAIHN0YXRpYyBpbnQgb2NmczJfcmVmbGluayhzdHJ1Y3QgZGVudHJ5ICpv bGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQo+ IA0KPiANCj4gLQllcnJvciA9IG9jZnMyX2NyZWF0ZV9pbm9kZV9pbl9vcnBoYW4oZGlyLCBpbm9k ZS0+aV9tb2RlLA0KPiArCWVycm9yID0gb2NmczJfY3JlYXRlX2lub2RlX2luX29ycGhhbihkaXIs ICZkaXJfYmgsIGlub2RlLT5pX21vZGUsDQo+IAkJCQkJICAgICAmbmV3X29ycGhhbl9pbm9kZSk7 DQo+IAlpZiAoZXJyb3IpIHsNCj4gCQltbG9nX2Vycm5vKGVycm9yKTsNCj4gQEAgLTQzMDQsMTMg KzQzMDQsMTUgQEAgc3RhdGljIGludCBvY2ZzMl9yZWZsaW5rKHN0cnVjdCBkZW50cnkgKm9sZF9k ZW50cnksIHN0cnVjdCBpbm9kZSAqZGlyLA0KPiANCj4gCS8qIElmIHRoZSBzZWN1cml0eSBpc24n dCBwcmVzZXJ2ZWQsIHdlIG5lZWQgdG8gcmUtaW5pdGlhbGl6ZSB0aGVtLiAqLw0KPiAJaWYgKCFw cmVzZXJ2ZSkgew0KPiAtCQllcnJvciA9IG9jZnMyX2luaXRfc2VjdXJpdHlfYW5kX2FjbChkaXIs IG5ld19vcnBoYW5faW5vZGUsDQo+ICsJCWVycm9yID0gb2NmczJfaW5pdF9zZWN1cml0eV9hbmRf YWNsKGRpciwgZGlyX2JoLA0KPiArCQkJCQkJICAgIG5ld19vcnBoYW5faW5vZGUsDQo+IAkJCQkJ CSAgICAmbmV3X2RlbnRyeS0+ZF9uYW1lKTsNCj4gCQlpZiAoZXJyb3IpDQo+IAkJCW1sb2dfZXJy bm8oZXJyb3IpOw0KPiAJfQ0KPiAJaWYgKCFlcnJvcikgew0KPiAtCQllcnJvciA9IG9jZnMyX212 X29ycGhhbmVkX2lub2RlX3RvX25ldyhkaXIsIG5ld19vcnBoYW5faW5vZGUsDQo+ICsJCWVycm9y ID0gb2NmczJfbXZfb3JwaGFuZWRfaW5vZGVfdG9fbmV3KGRpciwgZGlyX2JoLA0KPiArCQkJCQkJ ICAgICAgIG5ld19vcnBoYW5faW5vZGUsDQo+IAkJCQkJCSAgICAgICBuZXdfZGVudHJ5KTsNCj4g CQlpZiAoZXJyb3IpDQo+IAkJCW1sb2dfZXJybm8oZXJyb3IpOw0KPiBAQCAtNDMyOCw2ICs0MzMw LDExIEBAIHN0YXRpYyBpbnQgb2NmczJfcmVmbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5 LCBzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gCQkJaXB1dChuZXdfb3JwaGFuX2lub2RlKTsNCj4gCX0N Cj4gDQo+ICsJaWYgKGRpcl9iaCkgew0KPiArCQlvY2ZzMl9pbm9kZV91bmxvY2soZGlyLCAxKTsN Cj4gKwkJYnJlbHNlKGRpcl9iaCk7DQo+ICsJfQ0KPiArDQo+IAlyZXR1cm4gZXJyb3I7DQo+IH0N Cj4gDQo+IGRpZmYgLS1naXQgYS9mcy9vY2ZzMi94YXR0ci5jIGIvZnMvb2NmczIveGF0dHIuYw0K PiBpbmRleCBkZDc4NGViMGNkN2MuLjNmMjNlM2E1MDE4YyAxMDA2NDQNCj4gLS0tIGEvZnMvb2Nm czIveGF0dHIuYw0KPiArKysgYi9mcy9vY2ZzMi94YXR0ci5jDQo+IEBAIC03MjAzLDE2ICs3MjAz LDEzIEBAIGludCBvY2ZzMl9yZWZsaW5rX3hhdHRycyhzdHJ1Y3QgaW5vZGUgKm9sZF9pbm9kZSwN Cj4gLyoNCj4gICogSW5pdGlhbGl6ZSBzZWN1cml0eSBhbmQgYWNsIGZvciBhIGFscmVhZHkgY3Jl YXRlZCBpbm9kZS4NCj4gICogVXNlZCBmb3IgcmVmbGluayBhIG5vbi1wcmVzZXJ2ZS1zZWN1cml0 eSBmaWxlLg0KPiAtICoNCj4gLSAqIEl0IHVzZXMgY29tbW9uIGFwaSBsaWtlIG9jZnMyX3hhdHRy X3NldCwgc28gdGhlIGNhbGxlcg0KPiAtICogbXVzdCBub3QgaG9sZCBhbnkgbG9jayBleHBlY3Qg aV9tdXRleC4NCj4gICovDQo+IGludCBvY2ZzMl9pbml0X3NlY3VyaXR5X2FuZF9hY2woc3RydWN0 IGlub2RlICpkaXIsDQo+ICsJCQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpkaXJfYmgsDQo+IAkJCQlz dHJ1Y3QgaW5vZGUgKmlub2RlLA0KPiAJCQkJY29uc3Qgc3RydWN0IHFzdHIgKnFzdHIpDQo+IHsN Cj4gCWludCByZXQgPSAwOw0KPiAtCXN0cnVjdCBidWZmZXJfaGVhZCAqZGlyX2JoID0gTlVMTDsN Cj4gDQo+IAlyZXQgPSBvY2ZzMl9pbml0X3NlY3VyaXR5X2dldChpbm9kZSwgZGlyLCBxc3RyLCBO VUxMKTsNCj4gCWlmIChyZXQpIHsNCj4gQEAgLTcyMjAsMTcgKzcyMTcsMTAgQEAgaW50IG9jZnMy X2luaXRfc2VjdXJpdHlfYW5kX2FjbChzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gCQlnb3RvIGxlYXZl Ow0KPiAJfQ0KPiANCj4gLQlyZXQgPSBvY2ZzMl9pbm9kZV9sb2NrKGRpciwgJmRpcl9iaCwgMCk7 DQo+IC0JaWYgKHJldCkgew0KPiAtCQltbG9nX2Vycm5vKHJldCk7DQo+IC0JCWdvdG8gbGVhdmU7 DQo+IC0JfQ0KPiAJcmV0ID0gb2NmczJfaW5pdF9hY2woTlVMTCwgaW5vZGUsIGRpciwgTlVMTCwg ZGlyX2JoLCBOVUxMLCBOVUxMKTsNCj4gCWlmIChyZXQpDQo+IAkJbWxvZ19lcnJubyhyZXQpOw0K PiANCj4gLQlvY2ZzMl9pbm9kZV91bmxvY2soZGlyLCAwKTsNCj4gLQlicmVsc2UoZGlyX2JoKTsN Cj4gbGVhdmU6DQo+IAlyZXR1cm4gcmV0Ow0KPiB9DQo+IGRpZmYgLS1naXQgYS9mcy9vY2ZzMi94 YXR0ci5oIGIvZnMvb2NmczIveGF0dHIuaA0KPiBpbmRleCAwMDMwOGI1N2Y2NGYuLmIyN2ZkOGJh MDAxOSAxMDA2NDQNCj4gLS0tIGEvZnMvb2NmczIveGF0dHIuaA0KPiArKysgYi9mcy9vY2ZzMi94 YXR0ci5oDQo+IEBAIC04Myw2ICs4Myw3IEBAIGludCBvY2ZzMl9yZWZsaW5rX3hhdHRycyhzdHJ1 Y3QgaW5vZGUgKm9sZF9pbm9kZSwNCj4gCQkJIHN0cnVjdCBidWZmZXJfaGVhZCAqbmV3X2JoLA0K PiAJCQkgYm9vbCBwcmVzZXJ2ZV9zZWN1cml0eSk7DQo+IGludCBvY2ZzMl9pbml0X3NlY3VyaXR5 X2FuZF9hY2woc3RydWN0IGlub2RlICpkaXIsDQo+ICsJCQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpk aXJfYmgsDQo+IAkJCQlzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KPiAJCQkJY29uc3Qgc3RydWN0IHFz dHIgKnFzdHIpOw0KPiAjZW5kaWYgLyogT0NGUzJfWEFUVFJfSCAqLw0KPiAtLSANCj4gMi4yMS4w DQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4gT2NmczItZGV2ZWwgbWFpbGluZyBsaXN0DQo+IE9jZnMyLWRldmVsQG9zcy5vcmFjbGUu Y29tDQo+IGh0dHBzOi8vb3NzLm9yYWNsZS5jb20vbWFpbG1hbi9saXN0aW5mby9vY2ZzMi1kZXZl bA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpPY2Zz Mi1kZXZlbCBtYWlsaW5nIGxpc3QKT2NmczItZGV2ZWxAb3NzLm9yYWNsZS5jb20KaHR0cHM6Ly9v c3Mub3JhY2xlLmNvbS9tYWlsbWFuL2xpc3RpbmZvL29jZnMyLWRldmVs