Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp572131imm; Fri, 3 Aug 2018 08:03:09 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcGe5yd9RyvhMN/ylCJMllUQv1m19P9TPuHR1bNr8RMQu5jD99f+uc/XQN8N/zbXV0yS7iG X-Received: by 2002:a17:902:740b:: with SMTP id g11-v6mr3933070pll.85.1533308588973; Fri, 03 Aug 2018 08:03:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533308588; cv=none; d=google.com; s=arc-20160816; b=Ek5IWTmONkkU50MWg1eO30wUJ/G6pH3azx6JWsOeqqOIrVC1RLCBj7K4NhHiaHksEQ 0y0dUC2wGqTK5gekMuDCUdWcZ1J3fqmu/Ga5gmuXxu5DQryXxRfHSYHLnNadY8P0UqMY AgeiF0OO7C6rW1ycx/0FoBYm2x/geIFAVX9U90iDpcE6IR7Ci8EYaUBZfXspuxHPFgP4 aY3Ni/RMcTnXHnzybDk2/3uGtFLLVzX07PJSAYpD44+YFpkJooZT8/gbZyb3NKFxTAwV +nDfifwXSACqpQghjh3YELVdk935JwbyDz0ZduhbCYRlIrNaPITtNM5pRP4pQ0+Y4f/K svmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=cT6Ebqb4Qi7rLCZ+tcSU7NKzmhjJFCOCck/GmabP+Sk=; b=du1i+B2AkmdTfyothy3kbbPWrmmfLZsH+kj/xmBqrcqfwD2SczWC0gbs52X2g9GGyO MSJm3VENgMkG4Y+eZr112iJ0vMyJXcN4ImAc6hQnXMVwtwPIOO83/C01xIQnz1Up9gdZ Gt/u9tqtrb2bIZ5B6oCJ1FFQyKjOYzpgJW4eWnt1pvHRR5uWWlq/1zkyJI2BOUEVXpiH tv26aMhmOuft0Crnu/LlmQI7AOUovjhpafn7AP758N9SKV5rqtVhdoKJFV4yT12cde5V pXG+UOXTxchXmcIzBkD5P364Wm9Xx8Unqqr1uZIXoyIvWW7o2i92bb7sHyIPVL+ye35W JSIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b="LJko/ah9"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 63-v6si5900007pfg.67.2018.08.03.08.02.53; Fri, 03 Aug 2018 08:03:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b="LJko/ah9"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732323AbeHCQ6n (ORCPT + 99 others); Fri, 3 Aug 2018 12:58:43 -0400 Received: from mail-eopbgr710085.outbound.protection.outlook.com ([40.107.71.85]:51520 "EHLO NAM05-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731362AbeHCQ6n (ORCPT ); Fri, 3 Aug 2018 12:58:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cnexlabs.onmicrosoft.com; s=selector1-cnexlabs-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cT6Ebqb4Qi7rLCZ+tcSU7NKzmhjJFCOCck/GmabP+Sk=; b=LJko/ah9lB6ah2dp8c3UF9CyA2B3wtN3ickwSoBzIiFws7LZcaY2bbP/T9ZfiHQP3DicvvIgVLQJXtePzUenIT8b7g7AK3AKmgOGBhpuZQEMx2wo2i6NhZhLxMcve4c+pNIcAMNiW4v6wCd6owf/cOP36hXMZunISRn904hArgc= Received: from CO2PR06MB538.namprd06.prod.outlook.com (10.141.199.23) by CO2PR06MB649.namprd06.prod.outlook.com (10.141.227.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.995.21; Fri, 3 Aug 2018 14:46:51 +0000 Received: from CO2PR06MB538.namprd06.prod.outlook.com ([fe80::311c:7e3f:3043:5287]) by CO2PR06MB538.namprd06.prod.outlook.com ([fe80::311c:7e3f:3043:5287%8]) with mapi id 15.20.1017.010; Fri, 3 Aug 2018 14:46:50 +0000 From: Javier Gonzalez To: =?utf-8?B?TWF0aWFzIEJqw7hybGluZw==?= CC: "igor.j.konopko@intel.com" , "marcin.dziegielewski@intel.com" , Hans Holmberg , "hlitz@ucsc.edu" , "youngtack.jin@circuitblvd.com" , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] lightnvm: combine 1.2 and 2.0 command flags Thread-Topic: [PATCH] lightnvm: combine 1.2 and 2.0 command flags Thread-Index: AQHUKnzdSVefevl9GE6jg84HfdmUqKSuCMuAgAAH7YCAAAvtYw== Date: Fri, 3 Aug 2018 14:46:50 +0000 Message-ID: <5A6E1C86-745C-4524-9687-7C4DD993AC92@cnexlabs.com> References: <20180802162058.9800-1-mb@lightnvm.io> <537156D9-0CE0-4B8F-B8E3-32B291529EE4@cnexlabs.com>, In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=javier@cnexlabs.com; x-originating-ip: [2a02:aa7:4600:7c46:19c3:c543:4391:4dfc] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CO2PR06MB649;6:1izSHO9loa1T0qqVyK/k9pzX0CdhUM0KyqgIEGYdOCdPy5TKh+yGeumByshwk+0LFD2v9MKh1pRj2DvlxcQOTogFO+5guWxQhr8/PaYLkSay8FPpRTw5YGfEXuRMQVaBYdT+8WInoRQsp4SlOwUr4By0CQLpeA29swfqCNuMN/3tjqJ6fHKSVvhfQ9xEYbWL0aXf1+q7n7jBrybKetznQRrzzm3NJRR8Q0uxOfbufZvUveHyzT5oXrDL8dJ15RYsOcNOzR3tRKkeXe/Dln7yRvU3FBW8RlZIRwFQSVp6sWBdfvSRksuJ/5PR7PfW/mVPuhzNHBqqHTvizUJeyOae/WcrS6AvNLB+/E6lIXUzN6vr9q8whjKQnz+MD9sM9G59tS1KwKrNKSFSn2NbmEeq2/rVEwPRKARScouIQkctP7ghPpTcUkrXLcJFgSGefvkd6YVCVahAOvwB/HfuNADmFg==;5:XrJc2leF3IF1o1yRugwJo1XTtgh81Np4UXVhVALDExXipb+Iq+CiGBhyK6a+OMheHU8c3IUN19jOOltOB7SnSGdeHyI9KsyfqxMrZzVGPJoZ9+flOS076hVOsF7lk3SAGWH+tZFmlRCiosFrS6fka+7SIyowdyH/U2VW6nAN5PU=;7:mHJWH1Gsn6enAwQKDtuZ4lFj73ow4IwAPHY50O2GaU7E0zClsHgW/Bd2R4X+cK8H9bqzjqA+cPYTBSjYBLddOYPl3jumgy5W7jP2mGIVm8X5zH8GuApXMAla3/W6P1C0TPiW0WZ2iHD1ra3K6Ph0fl+RrwuOIg24ISF2S9VzRDJb2oCsNgfpQCIlgTb3V5dkftIgX62+eYRH7+Cq0THSoZV5CIFbxRs+Qcs598sV1lK1LizfweOcle4gLMrKvhqF x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-forefront-antispam-report: SFV:SKI;SCL:-1;SFV:NSPM;SFS:(10009020)(396003)(376002)(366004)(136003)(346002)(39840400004)(189003)(199004)(97736004)(4326008)(6246003)(2900100001)(6512007)(106356001)(54906003)(82746002)(316002)(36756003)(53936002)(476003)(11346002)(486006)(105586002)(446003)(5660300001)(6916009)(2616005)(6116002)(25786009)(478600001)(256004)(86362001)(6506007)(33656002)(7736002)(81166006)(6486002)(229853002)(6436002)(99286004)(5250100002)(68736007)(8936002)(2906002)(53546011)(305945005)(575784001)(83716003)(8676002)(14454004)(46003)(14444005)(81156014)(186003)(76176011)(102836004);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR06MB649;H:CO2PR06MB538.namprd06.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; x-ms-office365-filtering-correlation-id: 4128663a-f4a6-4685-3fe4-08d5f94ff266 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020);SRVR:CO2PR06MB649; x-ms-traffictypediagnostic: CO2PR06MB649: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(788757137089); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(3231311)(944501410)(52105095)(10201501046)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016);SRVR:CO2PR06MB649;BCL:0;PCL:0;RULEID:;SRVR:CO2PR06MB649; x-forefront-prvs: 0753EA505A received-spf: None (protection.outlook.com: cnexlabs.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: iJHcgMjYZy40xa4waIVeAdL6dQhz0HpW5wRy2GUUOYCIwqXnxPWvYu1/wjn+rkfLE6nqukRI9WFLHbzqHoS836jBvHT0S0ign9/ScvZFmdY0yGIgIOSW/WRBa6ZBtEtFDBz7nO8HYGyaD6ZTaVCpzL1fZY7AosMcO0HcXZY3H9v8hXSFA1fciN8PIP/N+oFMS6VP1gY+GhBLCv2rMGfGEoi0cQJiWlQ8cFD7KbXD+hXRWVsqKMvEsKnbvzqAoP2NEJ2JEwK+oDZZGq7MplXecDeROzgtyUoJnhdDDv1FJYmtUaZQnrUr1ApnxHE8Ls+sQ1z3K5SKkn+DCi3dpBvTah2pPKjYqaIWNxQRbojzq0c= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cnexlabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4128663a-f4a6-4685-3fe4-08d5f94ff266 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Aug 2018 14:46:50.6072 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e40dfc2e-c6c1-463a-a598-38602b2c3cff X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR06MB649 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQo+IE9uIDMgQXVnIDIwMTgsIGF0IDE2LjA0LCBNYXRpYXMgQmrDuHJsaW5nIDxtYkBsaWdodG52 bS5pbz4gd3JvdGU6DQo+IA0KPiBPbiAwOC8wMy8yMDE4IDAzOjM1IFBNLCBKYXZpZXIgR29uemFs ZXogd3JvdGU6DQo+Pj4gT24gMiBBdWcgMjAxOCwgYXQgMTguMjAsIE1hdGlhcyBCasO4cmxpbmcg PG1iQGxpZ2h0bnZtLmlvPiB3cm90ZToNCj4+PiANCj4+PiBBdm9pZCB0YXJnZXRzIG9wZW4tY29k ZSB0aGUgbnZtX3JxIGNvbW1hbmQgZmxhZyBmb3IgdmVyc2lvbiAxLjIgYW5kDQo+Pj4gMi4wLiBU aGUgY29yZSBzaG91bGQgaGF2ZSB0aGlzIHJlc3BvbnNpYmlsaXR5Lg0KPj4+IA0KPj4+IFdoZW4g bW92ZWQgaW50byBjb3JlLCB0aGUgZmxhZ3MgcGFyYW1ldGVyIGNhbiBiZSBkaXN0aWxsZWQgaW50 bw0KPj4+IGFjY2VzcyBoaW50LCBzY3JhbWJsaW5nLCBhbmQgcHJvZ3JhbS9lcmFzZSBzdXNwZW5k LiBSZXBsYWNlIHRoZQ0KPj4+IGFjY2VzcyBoaW50IHdpdGggYSAiaXNfc2VxIiBwYXJhbWV0ZXIs IGFuZCBsZXQgdGhlIHJlc3QgYmUNCj4+PiBkZXBlbmRlbnQgb24gdGhlIGNvbW1hbmQgb3Bjb2Rl LCB3aGljaCBpcyB0cml2aWFsIHRvIGRldGVjdCBhbmQNCj4+PiBzZXQuDQo+Pj4gDQo+Pj4gU2ln bmVkLW9mZi1ieTogTWF0aWFzIEJqw7hybGluZyA8bWJAbGlnaHRudm0uaW8+DQo+Pj4gLS0tDQo+ Pj4gZHJpdmVycy9saWdodG52bS9jb3JlLmMgICAgICAgICAgfCAyMCArKysrKysrKysrKysrKysr KysrKw0KPj4+IGRyaXZlcnMvbGlnaHRudm0vcGJsay1jb3JlLmMgICAgIHwgMTMgKysrKy0tLS0t LS0tLQ0KPj4+IGRyaXZlcnMvbGlnaHRudm0vcGJsay1yZWFkLmMgICAgIHwgIDggKy0tLS0tLS0N Cj4+PiBkcml2ZXJzL2xpZ2h0bnZtL3BibGstcmVjb3ZlcnkuYyB8IDE0ICsrKystLS0tLS0tLS0t DQo+Pj4gZHJpdmVycy9saWdodG52bS9wYmxrLXdyaXRlLmMgICAgfCAgMiArLQ0KPj4+IGRyaXZl cnMvbGlnaHRudm0vcGJsay5oICAgICAgICAgIHwgMzggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4+PiBpbmNsdWRlL2xpbnV4L2xpZ2h0bnZtLmggICAgICAgICB8ICAy ICsrDQo+Pj4gNyBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMo LSkNCj4+PiANCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9saWdodG52bS9jb3JlLmMgYi9kcml2 ZXJzL2xpZ2h0bnZtL2NvcmUuYw0KPj4+IGluZGV4IDYwYWE3YmM1YTYzMC4uNjg1NTNjN2FlOTM3 IDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvbGlnaHRudm0vY29yZS5jDQo+Pj4gKysrIGIvZHJp dmVycy9saWdodG52bS9jb3JlLmMNCj4+PiBAQCAtNzUyLDYgKzc1MiwyNCBAQCBpbnQgbnZtX3Nl dF90Z3RfYmJfdGJsKHN0cnVjdCBudm1fdGd0X2RldiAqdGd0X2Rldiwgc3RydWN0IHBwYV9hZGRy ICpwcGFzLA0KPj4+IH0NCj4+PiBFWFBPUlRfU1lNQk9MKG52bV9zZXRfdGd0X2JiX3RibCk7DQo+ Pj4gDQo+Pj4gK3N0YXRpYyBpbnQgbnZtX3NldF9mbGFncyhzdHJ1Y3QgbnZtX2dlbyAqZ2VvLCBz dHJ1Y3QgbnZtX3JxICpycWQpDQo+Pj4gK3sNCj4+PiArICAgIGludCBmbGFncyA9IDA7DQo+Pj4g Kw0KPj4+ICsgICAgaWYgKGdlby0+dmVyc2lvbiA9PSBOVk1fT0NTU0RfU1BFQ18yMCkNCj4+PiAr ICAgICAgICByZXR1cm4gMDsNCj4+PiArDQo+Pj4gKyAgICBpZiAocnFkLT5pc19zZXEpDQo+Pj4g KyAgICAgICAgZmxhZ3MgfD0gZ2VvLT5wbG5fbW9kZSA+PiAxOw0KPj4+ICsNCj4+PiArICAgIGlm IChycWQtPm9wY29kZSA9PSBOVk1fT1BfUFJFQUQpDQo+Pj4gKyAgICAgICAgZmxhZ3MgfD0gKE5W TV9JT19TQ1JBTUJMRV9FTkFCTEUgfCBOVk1fSU9fU1VTUEVORCk7DQo+Pj4gKyAgICBlbHNlIGlm IChycWQtPm9wY29kZSA9PSBOVk1fT1BfUFdSSVRFKQ0KPj4+ICsgICAgICAgIGZsYWdzIHw9IE5W TV9JT19TQ1JBTUJMRV9FTkFCTEU7DQo+Pj4gKw0KPj4+ICsgICAgcmV0dXJuIGZsYWdzOw0KPj4+ ICt9DQo+Pj4gKw0KPj4+IGludCBudm1fc3VibWl0X2lvKHN0cnVjdCBudm1fdGd0X2RldiAqdGd0 X2Rldiwgc3RydWN0IG52bV9ycSAqcnFkKQ0KPj4+IHsNCj4+PiAgICBzdHJ1Y3QgbnZtX2RldiAq ZGV2ID0gdGd0X2Rldi0+cGFyZW50Ow0KPj4+IEBAIC03NjMsNiArNzgxLDcgQEAgaW50IG52bV9z dWJtaXRfaW8oc3RydWN0IG52bV90Z3RfZGV2ICp0Z3RfZGV2LCBzdHJ1Y3QgbnZtX3JxICpycWQp DQo+Pj4gICAgbnZtX3JxX3RndF90b19kZXYodGd0X2RldiwgcnFkKTsNCj4+PiANCj4+PiAgICBy cWQtPmRldiA9IHRndF9kZXY7DQo+Pj4gKyAgICBycWQtPmZsYWdzID0gbnZtX3NldF9mbGFncygm dGd0X2Rldi0+Z2VvLCBycWQpOw0KPj4+IA0KPj4+ICAgIC8qIEluIGNhc2Ugb2YgZXJyb3IsIGZh aWwgd2l0aCByaWdodCBhZGRyZXNzIGZvcm1hdCAqLw0KPj4+ICAgIHJldCA9IGRldi0+b3BzLT5z dWJtaXRfaW8oZGV2LCBycWQpOw0KPj4+IEBAIC03ODMsNiArODAyLDcgQEAgaW50IG52bV9zdWJt aXRfaW9fc3luYyhzdHJ1Y3QgbnZtX3RndF9kZXYgKnRndF9kZXYsIHN0cnVjdCBudm1fcnEgKnJx ZCkNCj4+PiAgICBudm1fcnFfdGd0X3RvX2Rldih0Z3RfZGV2LCBycWQpOw0KPj4+IA0KPj4+ICAg IHJxZC0+ZGV2ID0gdGd0X2RldjsNCj4+PiArICAgIHJxZC0+ZmxhZ3MgPSBudm1fc2V0X2ZsYWdz KCZ0Z3RfZGV2LT5nZW8sIHJxZCk7DQo+Pj4gDQo+Pj4gICAgLyogSW4gY2FzZSBvZiBlcnJvciwg ZmFpbCB3aXRoIHJpZ2h0IGFkZHJlc3MgZm9ybWF0ICovDQo+Pj4gICAgcmV0ID0gZGV2LT5vcHMt PnN1Ym1pdF9pb19zeW5jKGRldiwgcnFkKTsNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9saWdo dG52bS9wYmxrLWNvcmUuYyBiL2RyaXZlcnMvbGlnaHRudm0vcGJsay1jb3JlLmMNCj4+PiBpbmRl eCAwMDk4NGI0ODZmZWEuLjcyYWNmMmY2ZGJkNiAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2xp Z2h0bnZtL3BibGstY29yZS5jDQo+Pj4gKysrIGIvZHJpdmVycy9saWdodG52bS9wYmxrLWNvcmUu Yw0KPj4+IEBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIGludCBwYmxrX2xpbmVfc3VibWl0X2Vt ZXRhX2lvKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1Y3QgcGJsa19saW5lICpsaW5lLA0KPj4+ICAg IGlmIChkaXIgPT0gUEJMS19XUklURSkgew0KPj4+ICAgICAgICBzdHJ1Y3QgcGJsa19zZWNfbWV0 YSAqbWV0YV9saXN0ID0gcnFkLm1ldGFfbGlzdDsNCj4+PiANCj4+PiAtICAgICAgICBycWQuZmxh Z3MgPSBwYmxrX3NldF9wcm9ncl9tb2RlKHBibGssIFBCTEtfV1JJVEUpOw0KPj4+ICsgICAgICAg IHJxZC5pc19zZXEgPSAxOw0KPj4+ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcnFkLm5yX3BwYXM7 ICkgew0KPj4+ICAgICAgICAgICAgc3Bpbl9sb2NrKCZsaW5lLT5sb2NrKTsNCj4+PiAgICAgICAg ICAgIHBhZGRyID0gX19wYmxrX2FsbG9jX3BhZ2UocGJsaywgbGluZSwgbWluKTsNCj4+PiBAQCAt NzAzLDExICs3MDMsOSBAQCBzdGF0aWMgaW50IHBibGtfbGluZV9zdWJtaXRfZW1ldGFfaW8oc3Ry dWN0IHBibGsgKnBibGssIHN0cnVjdCBwYmxrX2xpbmUgKmxpbmUsDQo+Pj4gICAgICAgIGZvciAo aSA9IDA7IGkgPCBycWQubnJfcHBhczsgKSB7DQo+Pj4gICAgICAgICAgICBzdHJ1Y3QgcHBhX2Fk ZHIgcHBhID0gYWRkcl90b19nZW5fcHBhKHBibGssIHBhZGRyLCBpZCk7DQo+Pj4gICAgICAgICAg ICBpbnQgcG9zID0gcGJsa19wcGFfdG9fcG9zKGdlbywgcHBhKTsNCj4+PiAtICAgICAgICAgICAg aW50IHJlYWRfdHlwZSA9IFBCTEtfUkVBRF9SQU5ET007DQo+Pj4gDQo+Pj4gICAgICAgICAgICBp ZiAocGJsa19pb19hbGlnbmVkKHBibGssIHJxX3BwYXMpKQ0KPj4+IC0gICAgICAgICAgICAgICAg cmVhZF90eXBlID0gUEJMS19SRUFEX1NFUVVFTlRJQUw7DQo+Pj4gLSAgICAgICAgICAgIHJxZC5m bGFncyA9IHBibGtfc2V0X3JlYWRfbW9kZShwYmxrLCByZWFkX3R5cGUpOw0KPj4+ICsgICAgICAg ICAgICAgICAgcnFkLmlzX3NlcSA9IDE7DQo+Pj4gDQo+Pj4gICAgICAgICAgICB3aGlsZSAodGVz dF9iaXQocG9zLCBsaW5lLT5ibGtfYml0bWFwKSkgew0KPj4+ICAgICAgICAgICAgICAgIHBhZGRy ICs9IG1pbjsNCj4+PiBAQCAtNzg3LDE3ICs3ODUsMTQgQEAgc3RhdGljIGludCBwYmxrX2xpbmVf c3VibWl0X3NtZXRhX2lvKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1Y3QgcGJsa19saW5lICpsaW5l LA0KPj4+ICAgIF9fbGU2NCAqbGJhX2xpc3QgPSBOVUxMOw0KPj4+ICAgIGludCBpLCByZXQ7DQo+ Pj4gICAgaW50IGNtZF9vcCwgYmlvX29wOw0KPj4+IC0gICAgaW50IGZsYWdzOw0KPj4+IA0KPj4+ ICAgIGlmIChkaXIgPT0gUEJMS19XUklURSkgew0KPj4+ICAgICAgICBiaW9fb3AgPSBSRVFfT1Bf V1JJVEU7DQo+Pj4gICAgICAgIGNtZF9vcCA9IE5WTV9PUF9QV1JJVEU7DQo+Pj4gLSAgICAgICAg ZmxhZ3MgPSBwYmxrX3NldF9wcm9ncl9tb2RlKHBibGssIFBCTEtfV1JJVEUpOw0KPj4+ICAgICAg ICBsYmFfbGlzdCA9IGVtZXRhX3RvX2xiYXMocGJsaywgbGluZS0+ZW1ldGEtPmJ1Zik7DQo+Pj4g ICAgfSBlbHNlIGlmIChkaXIgPT0gUEJMS19SRUFEX1JFQ09WIHx8IGRpciA9PSBQQkxLX1JFQUQp IHsNCj4+PiAgICAgICAgYmlvX29wID0gUkVRX09QX1JFQUQ7DQo+Pj4gICAgICAgIGNtZF9vcCA9 IE5WTV9PUF9QUkVBRDsNCj4+PiAtICAgICAgICBmbGFncyA9IHBibGtfc2V0X3JlYWRfbW9kZShw YmxrLCBQQkxLX1JFQURfU0VRVUVOVElBTCk7DQo+Pj4gICAgfSBlbHNlDQo+Pj4gICAgICAgIHJl dHVybiAtRUlOVkFMOw0KPj4+IA0KPj4+IEBAIC04MjIsNyArODE3LDcgQEAgc3RhdGljIGludCBw YmxrX2xpbmVfc3VibWl0X3NtZXRhX2lvKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1Y3QgcGJsa19s aW5lICpsaW5lLA0KPj4+IA0KPj4+ICAgIHJxZC5iaW8gPSBiaW87DQo+Pj4gICAgcnFkLm9wY29k ZSA9IGNtZF9vcDsNCj4+PiAtICAgIHJxZC5mbGFncyA9IGZsYWdzOw0KPj4+ICsgICAgcnFkLmlz X3NlcSA9IDE7DQo+Pj4gICAgcnFkLm5yX3BwYXMgPSBsbS0+c21ldGFfc2VjOw0KPj4+IA0KPj4+ ICAgIGZvciAoaSA9IDA7IGkgPCBsbS0+c21ldGFfc2VjOyBpKyssIHBhZGRyKyspIHsNCj4+PiBA QCAtODg1LDcgKzg4MCw3IEBAIHN0YXRpYyB2b2lkIHBibGtfc2V0dXBfZV9ycShzdHJ1Y3QgcGJs ayAqcGJsaywgc3RydWN0IG52bV9ycSAqcnFkLA0KPj4+ICAgIHJxZC0+b3Bjb2RlID0gTlZNX09Q X0VSQVNFOw0KPj4+ICAgIHJxZC0+cHBhX2FkZHIgPSBwcGE7DQo+Pj4gICAgcnFkLT5ucl9wcGFz ID0gMTsNCj4+PiAtICAgIHJxZC0+ZmxhZ3MgPSBwYmxrX3NldF9wcm9ncl9tb2RlKHBibGssIFBC TEtfRVJBU0UpOw0KPj4+ICsgICAgcnFkLT5pc19zZXEgPSAxOw0KPj4+ICAgIHJxZC0+YmlvID0g TlVMTDsNCj4+PiB9DQo+Pj4gDQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGlnaHRudm0vcGJs ay1yZWFkLmMgYi9kcml2ZXJzL2xpZ2h0bnZtL3BibGstcmVhZC5jDQo+Pj4gaW5kZXggMjZkNDE0 YWUyNWI2Li40ODczOWY2YzA0MTcgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9saWdodG52bS9w YmxrLXJlYWQuYw0KPj4+ICsrKyBiL2RyaXZlcnMvbGlnaHRudm0vcGJsay1yZWFkLmMNCj4+PiBA QCAtOTMsOSArOTMsNyBAQCBzdGF0aWMgdm9pZCBwYmxrX3JlYWRfcHBhbGlzdF9ycShzdHJ1Y3Qg cGJsayAqcGJsaywgc3RydWN0IG52bV9ycSAqcnFkLA0KPj4+ICAgIH0NCj4+PiANCj4+PiAgICBp ZiAocGJsa19pb19hbGlnbmVkKHBibGssIG5yX3NlY3MpKQ0KPj4+IC0gICAgICAgIHJxZC0+Zmxh Z3MgPSBwYmxrX3NldF9yZWFkX21vZGUocGJsaywgUEJMS19SRUFEX1NFUVVFTlRJQUwpOw0KPj4+ IC0gICAgZWxzZQ0KPj4+IC0gICAgICAgIHJxZC0+ZmxhZ3MgPSBwYmxrX3NldF9yZWFkX21vZGUo cGJsaywgUEJMS19SRUFEX1JBTkRPTSk7DQo+Pj4gKyAgICAgICAgcnFkLT5pc19zZXEgPSAxOw0K Pj4+IA0KPj4+ICNpZmRlZiBDT05GSUdfTlZNX1BCTEtfREVCVUcNCj4+PiAgICBhdG9taWNfbG9u Z19hZGQobnJfc2VjcywgJnBibGstPmluZmxpZ2h0X3JlYWRzKTsNCj4+PiBAQCAtMzQ0LDcgKzM0 Miw2IEBAIHN0YXRpYyBpbnQgcGJsa19zZXR1cF9wYXJ0aWFsX3JlYWQoc3RydWN0IHBibGsgKnBi bGssIHN0cnVjdCBudm1fcnEgKnJxZCwNCj4+PiANCj4+PiAgICBycWQtPmJpbyA9IG5ld19iaW87 DQo+Pj4gICAgcnFkLT5ucl9wcGFzID0gbnJfaG9sZXM7DQo+Pj4gLSAgICBycWQtPmZsYWdzID0g cGJsa19zZXRfcmVhZF9tb2RlKHBibGssIFBCTEtfUkVBRF9SQU5ET00pOw0KPj4+IA0KPj4+ICAg IHByX2N0eC0+cHBhX3B0ciA9IE5VTEw7DQo+Pj4gICAgcHJfY3R4LT5vcmlnX2JpbyA9IGJpbzsN Cj4+PiBAQCAtNDM4LDggKzQzNSw2IEBAIHN0YXRpYyB2b2lkIHBibGtfcmVhZF9ycShzdHJ1Y3Qg cGJsayAqcGJsaywgc3RydWN0IG52bV9ycSAqcnFkLCBzdHJ1Y3QgYmlvICpiaW8sDQo+Pj4gICAg fSBlbHNlIHsNCj4+PiAgICAgICAgcnFkLT5wcGFfYWRkciA9IHBwYTsNCj4+PiAgICB9DQo+Pj4g LQ0KPj4+IC0gICAgcnFkLT5mbGFncyA9IHBibGtfc2V0X3JlYWRfbW9kZShwYmxrLCBQQkxLX1JF QURfUkFORE9NKTsNCj4+PiB9DQo+Pj4gDQo+Pj4gaW50IHBibGtfc3VibWl0X3JlYWQoc3RydWN0 IHBibGsgKnBibGssIHN0cnVjdCBiaW8gKmJpbykNCj4+PiBAQCAtNjYyLDcgKzY1Nyw2IEBAIGlu dCBwYmxrX3N1Ym1pdF9yZWFkX2djKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1Y3QgcGJsa19nY19y cSAqZ2NfcnEpDQo+Pj4gDQo+Pj4gICAgcnFkLm9wY29kZSA9IE5WTV9PUF9QUkVBRDsNCj4+PiAg ICBycWQubnJfcHBhcyA9IGdjX3JxLT5zZWNzX3RvX2djOw0KPj4+IC0gICAgcnFkLmZsYWdzID0g cGJsa19zZXRfcmVhZF9tb2RlKHBibGssIFBCTEtfUkVBRF9SQU5ET00pOw0KPj4+ICAgIHJxZC5i aW8gPSBiaW87DQo+Pj4gDQo+Pj4gICAgaWYgKHBibGtfc3VibWl0X2lvX3N5bmMocGJsaywgJnJx ZCkpIHsNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9saWdodG52bS9wYmxrLXJlY292ZXJ5LmMg Yi9kcml2ZXJzL2xpZ2h0bnZtL3BibGstcmVjb3ZlcnkuYw0KPj4+IGluZGV4IGUyMzJlNDdlMTM1 My4uY2Y2MjlhYjAxNmJhIDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvbGlnaHRudm0vcGJsay1y ZWNvdmVyeS5jDQo+Pj4gKysrIGIvZHJpdmVycy9saWdodG52bS9wYmxrLXJlY292ZXJ5LmMNCj4+ PiBAQCAtMTU5LDkgKzE1OSw3IEBAIHN0YXRpYyBpbnQgcGJsa19yZWNvdl9yZWFkX29vYihzdHJ1 Y3QgcGJsayAqcGJsaywgc3RydWN0IHBibGtfbGluZSAqbGluZSwNCj4+PiAgICBycWQtPmRtYV9t ZXRhX2xpc3QgPSBkbWFfbWV0YV9saXN0Ow0KPj4+IA0KPj4+ICAgIGlmIChwYmxrX2lvX2FsaWdu ZWQocGJsaywgcnFfcHBhcykpDQo+Pj4gLSAgICAgICAgcnFkLT5mbGFncyA9IHBibGtfc2V0X3Jl YWRfbW9kZShwYmxrLCBQQkxLX1JFQURfU0VRVUVOVElBTCk7DQo+Pj4gLSAgICBlbHNlDQo+Pj4g LSAgICAgICAgcnFkLT5mbGFncyA9IHBibGtfc2V0X3JlYWRfbW9kZShwYmxrLCBQQkxLX1JFQURf UkFORE9NKTsNCj4+PiArICAgICAgICBycWQtPmlzX3NlcSA9IDE7DQo+Pj4gDQo+Pj4gICAgZm9y IChpID0gMDsgaSA8IHJxZC0+bnJfcHBhczsgKSB7DQo+Pj4gICAgICAgIHN0cnVjdCBwcGFfYWRk ciBwcGE7DQo+Pj4gQEAgLTMwMiw3ICszMDAsNyBAQCBzdGF0aWMgaW50IHBibGtfcmVjb3ZfcGFk X29vYihzdHJ1Y3QgcGJsayAqcGJsaywgc3RydWN0IHBibGtfbGluZSAqbGluZSwNCj4+PiANCj4+ PiAgICBycWQtPmJpbyA9IGJpbzsNCj4+PiAgICBycWQtPm9wY29kZSA9IE5WTV9PUF9QV1JJVEU7 DQo+Pj4gLSAgICBycWQtPmZsYWdzID0gcGJsa19zZXRfcHJvZ3JfbW9kZShwYmxrLCBQQkxLX1dS SVRFKTsNCj4+PiArICAgIHJxZC0+aXNfc2VxID0gMTsNCj4+PiAgICBycWQtPm1ldGFfbGlzdCA9 IG1ldGFfbGlzdDsNCj4+PiAgICBycWQtPm5yX3BwYXMgPSBycV9wcGFzOw0KPj4+ICAgIHJxZC0+ cHBhX2xpc3QgPSBwcGFfbGlzdDsNCj4+PiBAQCAtNDM2LDkgKzQzNCw3IEBAIHN0YXRpYyBpbnQg cGJsa19yZWNvdl9zY2FuX2FsbF9vb2Ioc3RydWN0IHBibGsgKnBibGssIHN0cnVjdCBwYmxrX2xp bmUgKmxpbmUsDQo+Pj4gICAgcnFkLT5kbWFfbWV0YV9saXN0ID0gZG1hX21ldGFfbGlzdDsNCj4+ PiANCj4+PiAgICBpZiAocGJsa19pb19hbGlnbmVkKHBibGssIHJxX3BwYXMpKQ0KPj4+IC0gICAg ICAgIHJxZC0+ZmxhZ3MgPSBwYmxrX3NldF9yZWFkX21vZGUocGJsaywgUEJMS19SRUFEX1NFUVVF TlRJQUwpOw0KPj4+IC0gICAgZWxzZQ0KPj4+IC0gICAgICAgIHJxZC0+ZmxhZ3MgPSBwYmxrX3Nl dF9yZWFkX21vZGUocGJsaywgUEJMS19SRUFEX1JBTkRPTSk7DQo+Pj4gKyAgICAgICAgcnFkLT5p c19zZXEgPSAxOw0KPj4+IA0KPj4+ICAgIGZvciAoaSA9IDA7IGkgPCBycWQtPm5yX3BwYXM7ICkg ew0KPj4+ICAgICAgICBzdHJ1Y3QgcHBhX2FkZHIgcHBhOw0KPj4+IEBAIC01NjcsOSArNTYzLDcg QEAgc3RhdGljIGludCBwYmxrX3JlY292X3NjYW5fb29iKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1 Y3QgcGJsa19saW5lICpsaW5lLA0KPj4+ICAgIHJxZC0+ZG1hX21ldGFfbGlzdCA9IGRtYV9tZXRh X2xpc3Q7DQo+Pj4gDQo+Pj4gICAgaWYgKHBibGtfaW9fYWxpZ25lZChwYmxrLCBycV9wcGFzKSkN Cj4+PiAtICAgICAgICBycWQtPmZsYWdzID0gcGJsa19zZXRfcmVhZF9tb2RlKHBibGssIFBCTEtf UkVBRF9TRVFVRU5USUFMKTsNCj4+PiAtICAgIGVsc2UNCj4+PiAtICAgICAgICBycWQtPmZsYWdz ID0gcGJsa19zZXRfcmVhZF9tb2RlKHBibGssIFBCTEtfUkVBRF9SQU5ET00pOw0KPj4+ICsgICAg ICAgIHJxZC0+aXNfc2VxID0gMTsNCj4+PiANCj4+PiAgICBmb3IgKGkgPSAwOyBpIDwgcnFkLT5u cl9wcGFzOyApIHsNCj4+PiAgICAgICAgc3RydWN0IHBwYV9hZGRyIHBwYTsNCj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9saWdodG52bS9wYmxrLXdyaXRlLmMgYi9kcml2ZXJzL2xpZ2h0bnZtL3Bi bGstd3JpdGUuYw0KPj4+IGluZGV4IGVlNzc0YTg2Y2YxZS4uNTA4YzYzNzAxZWRhIDEwMDY0NA0K Pj4+IC0tLSBhL2RyaXZlcnMvbGlnaHRudm0vcGJsay13cml0ZS5jDQo+Pj4gKysrIGIvZHJpdmVy cy9saWdodG52bS9wYmxrLXdyaXRlLmMNCj4+PiBAQCAtMzAyLDcgKzMwMiw3IEBAIHN0YXRpYyBp bnQgcGJsa19hbGxvY193X3JxKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1Y3QgbnZtX3JxICpycWQs DQo+Pj4gICAgLyogU2V0dXAgd3JpdGUgcmVxdWVzdCAqLw0KPj4+ICAgIHJxZC0+b3Bjb2RlID0g TlZNX09QX1BXUklURTsNCj4+PiAgICBycWQtPm5yX3BwYXMgPSBucl9zZWNzOw0KPj4+IC0gICAg cnFkLT5mbGFncyA9IHBibGtfc2V0X3Byb2dyX21vZGUocGJsaywgUEJMS19XUklURSk7DQo+Pj4g KyAgICBycWQtPmlzX3NlcSA9IDE7DQo+Pj4gICAgcnFkLT5wcml2YXRlID0gcGJsazsNCj4+PiAg ICBycWQtPmVuZF9pbyA9IGVuZF9pbzsNCj4+PiANCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9s aWdodG52bS9wYmxrLmggYi9kcml2ZXJzL2xpZ2h0bnZtL3BibGsuaA0KPj4+IGluZGV4IDQ3NjBh ZjdiNjQ5OS4uNDhiMzAzNWRmM2M0IDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvbGlnaHRudm0v cGJsay5oDQo+Pj4gKysrIGIvZHJpdmVycy9saWdodG52bS9wYmxrLmgNCj4+PiBAQCAtMTI1NSw0 NCArMTI1NSw2IEBAIHN0YXRpYyBpbmxpbmUgdTMyIHBibGtfY2FsY19lbWV0YV9jcmMoc3RydWN0 IHBibGsgKnBibGssDQo+Pj4gICAgcmV0dXJuIGNyYzsNCj4+PiB9DQo+Pj4gDQo+Pj4gLXN0YXRp YyBpbmxpbmUgaW50IHBibGtfc2V0X3Byb2dyX21vZGUoc3RydWN0IHBibGsgKnBibGssIGludCB0 eXBlKQ0KPj4+IC17DQo+Pj4gLSAgICBzdHJ1Y3QgbnZtX3RndF9kZXYgKmRldiA9IHBibGstPmRl djsNCj4+PiAtICAgIHN0cnVjdCBudm1fZ2VvICpnZW8gPSAmZGV2LT5nZW87DQo+Pj4gLSAgICBp bnQgZmxhZ3M7DQo+Pj4gLQ0KPj4+IC0gICAgaWYgKGdlby0+dmVyc2lvbiA9PSBOVk1fT0NTU0Rf U1BFQ18yMCkNCj4+PiAtICAgICAgICByZXR1cm4gMDsNCj4+PiAtDQo+Pj4gLSAgICBmbGFncyA9 IGdlby0+cGxuX21vZGUgPj4gMTsNCj4+PiAtDQo+Pj4gLSAgICBpZiAodHlwZSA9PSBQQkxLX1dS SVRFKQ0KPj4+IC0gICAgICAgIGZsYWdzIHw9IE5WTV9JT19TQ1JBTUJMRV9FTkFCTEU7DQo+Pj4g LQ0KPj4+IC0gICAgcmV0dXJuIGZsYWdzOw0KPj4+IC19DQo+Pj4gLQ0KPj4+IC1lbnVtIHsNCj4+ PiAtICAgIFBCTEtfUkVBRF9SQU5ET00gICAgPSAwLA0KPj4+IC0gICAgUEJMS19SRUFEX1NFUVVF TlRJQUwgICAgPSAxLA0KPj4+IC19Ow0KPj4+IC0NCj4+PiAtc3RhdGljIGlubGluZSBpbnQgcGJs a19zZXRfcmVhZF9tb2RlKHN0cnVjdCBwYmxrICpwYmxrLCBpbnQgdHlwZSkNCj4+PiAtew0KPj4+ IC0gICAgc3RydWN0IG52bV90Z3RfZGV2ICpkZXYgPSBwYmxrLT5kZXY7DQo+Pj4gLSAgICBzdHJ1 Y3QgbnZtX2dlbyAqZ2VvID0gJmRldi0+Z2VvOw0KPj4+IC0gICAgaW50IGZsYWdzOw0KPj4+IC0N Cj4+PiAtICAgIGlmIChnZW8tPnZlcnNpb24gPT0gTlZNX09DU1NEX1NQRUNfMjApDQo+Pj4gLSAg ICAgICAgcmV0dXJuIDA7DQo+Pj4gLQ0KPj4+IC0gICAgZmxhZ3MgPSBOVk1fSU9fU1VTUEVORCB8 IE5WTV9JT19TQ1JBTUJMRV9FTkFCTEU7DQo+Pj4gLSAgICBpZiAodHlwZSA9PSBQQkxLX1JFQURf U0VRVUVOVElBTCkNCj4+PiAtICAgICAgICBmbGFncyB8PSBnZW8tPnBsbl9tb2RlID4+IDE7DQo+ Pj4gLQ0KPj4+IC0gICAgcmV0dXJuIGZsYWdzOw0KPj4+IC19DQo+Pj4gLQ0KPj4+IHN0YXRpYyBp bmxpbmUgaW50IHBibGtfaW9fYWxpZ25lZChzdHJ1Y3QgcGJsayAqcGJsaywgaW50IG5yX3NlY3Mp DQo+Pj4gew0KPj4+ICAgIHJldHVybiAhKG5yX3NlY3MgJSBwYmxrLT5taW5fd3JpdGVfcGdzKTsN Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9saWdodG52bS5oIGIvaW5jbHVkZS9saW51 eC9saWdodG52bS5oDQo+Pj4gaW5kZXggZTllMGQxYzdlYWY1Li44YWNjMmZlMjc3ZDYgMTAwNjQ0 DQo+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9saWdodG52bS5oDQo+Pj4gKysrIGIvaW5jbHVkZS9s aW51eC9saWdodG52bS5oDQo+Pj4gQEAgLTMwNSw2ICszMDUsOCBAQCBzdHJ1Y3QgbnZtX3JxIHsN Cj4+PiAgICB1NjQgcHBhX3N0YXR1czsgLyogcHBhIG1lZGlhIHN0YXR1cyAqLw0KPj4+ICAgIGlu dCBlcnJvcjsNCj4+PiANCj4+PiArICAgIGludCBpc19zZXE7IC8qIFNlcXVlbnRpYWwgaGludCBm bGFnLiAxLjIgb25seSAqLw0KPj4+ICsNCj4+PiAgICB2b2lkICpwcml2YXRlOw0KPj4+IH07DQo+ Pj4gDQo+Pj4gLS0NCj4+PiAyLjExLjANCj4+IExvb2tzIGdvb2QgdG8gbWUuIElmIHlvdSBwaWNr IHVwIFsxXSwgcGxlYXNlIG5vdGUgdGhhdCB5b3Ugd2lsbCBuZWVkIHRvDQo+PiB0cmFuc2Zvcm0g aXQgdG9vLg0KPj4gWzFdIGxpZ2h0bnZtOiBwYmxrOiByZWNvdmVyIGNodW5rIHN0YXRlIG9uIDEu MiBkZXZpY2VzDQo+IA0KPiBPay4gSWYgeW91IGRvbid0IG1pbmQsIHdlIGNhbiBsb29rIGF0IHRo aXMgYWZ0ZXIgdGhlIHdyaXRlIHBvaW50ZXIgZml4IGFuZCAxLjIvMi4wIGNvbnNvbGlkYXRpb24g b2YgY2h1bmsgbWV0YWRhdGEgaGFzIGdvbmUgaW4uDQoNClNvdW5kcyBnb29kLiBJ4oCZbGwgcmVz ZW5kIHRoZW0gaW4gYSBzZXJpZXMgdG9nZXRoZXIgYWZ0ZXIgRk1TLiANCg0KVGhhbmtzIQ0KSmF2 aWVy