Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2201806yba; Fri, 10 May 2019 07:49:52 -0700 (PDT) X-Google-Smtp-Source: APXvYqwsAoQVfSJhly0HSrOMBTIe89fXXUDHI9uXyK1bb9fLjlpJDQS5udoqTXlMYsicCl1ontKS X-Received: by 2002:a17:902:5c6:: with SMTP id f64mr13743741plf.208.1557499792073; Fri, 10 May 2019 07:49:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557499792; cv=none; d=google.com; s=arc-20160816; b=eVqPF5ws2Ew2oBWrWn0bAVEXu9g9aJfmw8f+pXiFP0bgsagUzI8kL1/2ezZo4TtGZI 285B6VYDUAgGDcLc4ETsbuCNAQyXCBnLwdd+lHyGM83ibWtwf8ps98JOR20dqWnceTf+ /c5WXEn82AZQE9W8K6Aq+gA2k0sMCter8p+56VR55U8YP4Z15/s86NI2koCwx7d9AWa2 DuNJ2O9cHGvUlKqIiy51smXrJ/khAMZgU3K2RWY/nOcw6OIo6v6FMHzTYm+wshgpBRXa ddTq6j1g+AQEVOR9aEUIq2xLiLgZ0KNhnvgxSX0NeazbSIw9qBI9crzrmyWAe4MyZpT0 TdRg== 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 :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from; bh=OFOc/5tdq+cpAyrESXUqx6dInQRtCDXEPLPayGXNYsc=; b=WiAKA6VwlbMFQ129qDRvtvsJ6ju5AWaKZfo2hNCCPYQ4KP9s4yL/K7W73hcHfpnV4o yON854ieVe5qUd8EmqThodfzOa09No2qsGwwJTf5T2EQwfQnYSFwHpBMYNJPaeeAMbWq FwhUoigfjcUC/DH83a9M4IqoshniAWe5cE1Nj861Ul8sU3Y+QHoYLjgKd8dP2pTW2lTY VzDuX+Vp3bCsDE8rU5NzgKAcAyd6FsCwetpuRhKHhCVmZB/n6W/XBlJg5MYx3nMHdkpp NTmQIOCp1B/bvx+zTAHzf8fl3dpUnPP3U0xcXjuJQUqSeeql6cts7skkFSgbtii72l8J xsYg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v13si7380952plo.429.2019.05.10.07.49.23; Fri, 10 May 2019 07:49:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727413AbfEJOrc (ORCPT + 99 others); Fri, 10 May 2019 10:47:32 -0400 Received: from mga04.intel.com ([192.55.52.120]:1167 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727194AbfEJOrc (ORCPT ); Fri, 10 May 2019 10:47:32 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2019 07:47:23 -0700 X-ExtLoop1: 1 Received: from orsmsx101.amr.corp.intel.com ([10.22.225.128]) by orsmga003.jf.intel.com with ESMTP; 10 May 2019 07:47:23 -0700 Received: from orsmsx103.amr.corp.intel.com ([169.254.5.76]) by ORSMSX101.amr.corp.intel.com ([169.254.8.212]) with mapi id 14.03.0415.000; Fri, 10 May 2019 07:47:23 -0700 From: "Gix, Brian" To: "linux-bluetooth@vger.kernel.org" , "Stotland, Inga" CC: "luiz.dentz@gmail.com" , "johan.hedberg@gmail.com" Subject: Re: [PATCH BlueZ 1/1 v2] mesh: Add CreateNetwork method() implementation Thread-Topic: [PATCH BlueZ 1/1 v2] mesh: Add CreateNetwork method() implementation Thread-Index: AQHVBegHH5Kj1es+IEu9PxNIUAXmzKZk6BOA Date: Fri, 10 May 2019 14:47:22 +0000 Message-ID: <1557499641.14401.5.camel@intel.com> References: <20190508215008.32403-1-inga.stotland@intel.com> <20190508215008.32403-2-inga.stotland@intel.com> In-Reply-To: <20190508215008.32403-2-inga.stotland@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.251.10.18] Content-Type: text/plain; charset="utf-8" Content-ID: <48A59A322EAD6A428A9C09E6EE77C534@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org cGF0Y2ggYXBwbGllZA0KDQoNCk9uIFdlZCwgMjAxOS0wNS0wOCBhdCAxNDo1MCAtMDcwMCwgSW5n YSBTdG90bGFuZCB3cm90ZToNCj4gVGhpcyBpbXBsZW1lbnRzIENyZWF0ZU5ldHdvcmsoKSBtZXRo b2Qgb24gb3JnLmJsdWV6Lm1lc2guTmV0d29yazENCj4gaW50ZXJmYWNlLiBJbnZva2luZyB0aGlz IG1ldGhvZCBnZW5lcmF0ZXMgYSBzZWxmLXByb3Zpc2lvbmVkDQo+IGxvY2FsIG5vZGUgYXNzb2Np YXRlZCB3aXRoIGEgYnJhbmQgbmV3IG1lc2ggbmV0d29yay4gVGhpcyBuZXcNCj4gbmV0d29yayBp cyBiYXJlIGJvbmVzOiBvbmx5IG9uZSBuZXR3b3JrIGtleSBpcyBkZWZpbmVkLiBUaGUgbmV3IG5v ZGUNCj4gYXNzdW1lcyB0aGUgcm9sZSBvZiBtZXNoIG5ldHdvcmsgbWFuYWdlciBhbmQgd2lsbCBi ZSBhYmxlIHRvIHVzZQ0KPiBzb29uIHRvIGJlIGltcGxlbWVudGVkIG1ldGhvZHMgb2Ygb3JnLmJs dWV6Lm1lc2guTWFuYWdlbWVudDEgaW50ZXJmYWNlDQo+IHRvIHByb3Zpc2lvbiByZW1vdGUgbm9k ZXMgaW50byBpdHMgbmV0d29yayBhbmQgdG8gYWRkL3VwZGF0ZS9yZW1vdmUNCj4gbmV0d29yayBh bmQgYXBwbGljYXRpb24ga2V5cy4NCj4gLS0tDQo+ICBtZXNoL21lc2guYyB8ICA3MCArKysrKysr KysrKysrKysrLQ0KPiAgbWVzaC9ub2RlLmMgfCAyMTggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgbWVzaC9ub2RlLmggfCAgIDggKy0NCj4g IDMgZmlsZXMgY2hhbmdlZCwgMjE4IGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQ0KPiAN Cj4gZGlmZiAtLWdpdCBhL21lc2gvbWVzaC5jIGIvbWVzaC9tZXNoLmMNCj4gaW5kZXggNGQ2NWYy NjZhLi41ZTBiYmIwMDkgMTAwNjQ0DQo+IC0tLSBhL21lc2gvbWVzaC5jDQo+ICsrKyBiL21lc2gv bWVzaC5jDQo+IEBAIC0xMTIsNyArMTEyLDcgQEAgc3RhdGljIHZvaWQgc3RhcnRfaW8odWludDE2 X3QgaW5kZXgpDQo+ICANCj4gIAlsX2RlYnVnKCJTdGFydGVkIG1lc2ggKGlvICVwKSBvbiBoY2kg JXUiLCBtZXNoLmlvLCBpbmRleCk7DQo+ICANCj4gLQlub2RlX2F0dGFjaF9pbyhpbyk7DQo+ICsJ bm9kZV9hdHRhY2hfaW9fYWxsKGlvKTsNCj4gIH0NCj4gIA0KPiAgLyogVXNlZCBmb3IgYW55IG91 dGJvdW5kIHRyYWZmaWMgdGhhdCBkb2Vzbid0IGhhdmUgRnJpZW5kc2hpcCBDb25zdHJhaW50cyAq Lw0KPiBAQCAtNDkxLDcgKzQ5MSw3IEBAIHN0YXRpYyBib29sIHByb3ZfY29tcGxldGVfY2Iodm9p ZCAqdXNlcl9kYXRhLCB1aW50OF90IHN0YXR1cywNCj4gIAlwYXRoID0gam9pbl9wZW5kaW5nLT5h cHBfcGF0aDsNCj4gIA0KPiAgCWlmIChzdGF0dXMgPT0gUFJPVl9FUlJfU1VDQ0VTUyAmJg0KPiAt CSAgICAhbm9kZV9hZGRfcGVuZGluZ19sb2NhbChqb2luX3BlbmRpbmctPm5vZGUsIGluZm8sIG1l c2guaW8pKQ0KPiArCSAgICAhbm9kZV9hZGRfcGVuZGluZ19sb2NhbChqb2luX3BlbmRpbmctPm5v ZGUsIGluZm8pKQ0KPiAgCQlzdGF0dXMgPSBQUk9WX0VSUl9VTkVYUEVDVEVEX0VSUjsNCj4gIA0K PiAgCWlmIChzdGF0dXMgIT0gUFJPVl9FUlJfU1VDQ0VTUykgew0KPiBAQCAtNDk5LDYgKzQ5OSw3 IEBAIHN0YXRpYyBib29sIHByb3ZfY29tcGxldGVfY2Iodm9pZCAqdXNlcl9kYXRhLCB1aW50OF90 IHN0YXR1cywNCj4gIAkJcmV0dXJuIGZhbHNlOw0KPiAgCX0NCj4gIA0KPiArCW5vZGVfYXR0YWNo X2lvKGpvaW5fcGVuZGluZy0+bm9kZSwgbWVzaC5pbyk7DQo+ICAJdG9rZW4gPSBub2RlX2dldF90 b2tlbihqb2luX3BlbmRpbmctPm5vZGUpOw0KPiAgDQo+ICAJbXNnID0gbF9kYnVzX21lc3NhZ2Vf bmV3X21ldGhvZF9jYWxsKGRidXMsIG93bmVyLCBwYXRoLA0KPiBAQCAtNzAxLDYgKzcwMiw2OSBA QCBzdGF0aWMgc3RydWN0IGxfZGJ1c19tZXNzYWdlICpsZWF2ZV9jYWxsKHN0cnVjdCBsX2RidXMg KmRidXMsDQo+ICAJcmV0dXJuIGxfZGJ1c19tZXNzYWdlX25ld19tZXRob2RfcmV0dXJuKG1zZyk7 DQo+ICB9DQo+ICANCj4gK3N0YXRpYyB2b2lkIGNyZWF0ZV9uZXR3b3JrX3JlYWR5X2NiKHZvaWQg KnVzZXJfZGF0YSwgaW50IHN0YXR1cywNCj4gKwkJCQkJCQlzdHJ1Y3QgbWVzaF9ub2RlICpub2Rl KQ0KPiArew0KPiArCXN0cnVjdCBsX2RidXNfbWVzc2FnZSAqcmVwbHk7DQo+ICsJc3RydWN0IGxf ZGJ1c19tZXNzYWdlICpwZW5kaW5nX21zZzsNCj4gKwljb25zdCB1aW50OF90ICp0b2tlbjsNCj4g Kw0KPiArCXBlbmRpbmdfbXNnID0gbF9xdWV1ZV9maW5kKHBlbmRpbmdfcXVldWUsIHNpbXBsZV9t YXRjaCwgdXNlcl9kYXRhKTsNCj4gKwlpZiAoIXBlbmRpbmdfbXNnKQ0KPiArCQlyZXR1cm47DQo+ ICsNCj4gKwlpZiAoc3RhdHVzICE9IE1FU0hfRVJST1JfTk9ORSkgew0KPiArCQlyZXBseSA9IGRi dXNfZXJyb3IocGVuZGluZ19tc2csIHN0YXR1cywgTlVMTCk7DQo+ICsJCWdvdG8gZG9uZTsNCj4g Kwl9DQo+ICsNCj4gKwlub2RlX2F0dGFjaF9pbyhub2RlLCBtZXNoLmlvKTsNCj4gKw0KPiArCXJl cGx5ID0gbF9kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9yZXR1cm4ocGVuZGluZ19tc2cpOw0KPiAr CXRva2VuID0gbm9kZV9nZXRfdG9rZW4obm9kZSk7DQo+ICsNCj4gKwlsX2RlYnVnKCk7DQo+ICsJ bF9kYnVzX21lc3NhZ2Vfc2V0X2FyZ3VtZW50cyhyZXBseSwgInQiLCBsX2dldF9iZTY0KHRva2Vu KSk7DQo+ICsNCj4gK2RvbmU6DQo+ICsJbF9kYnVzX3NlbmQoZGJ1c19nZXRfYnVzKCksIHJlcGx5 KTsNCj4gKwlsX3F1ZXVlX3JlbW92ZShwZW5kaW5nX3F1ZXVlLCBwZW5kaW5nX21zZyk7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgbF9kYnVzX21lc3NhZ2UgKmNyZWF0ZV9uZXR3b3JrX2Nh bGwoc3RydWN0IGxfZGJ1cyAqZGJ1cywNCj4gKwkJCQkJCXN0cnVjdCBsX2RidXNfbWVzc2FnZSAq bXNnLA0KPiArCQkJCQkJdm9pZCAqdXNlcl9kYXRhKQ0KPiArew0KPiArCWNvbnN0IGNoYXIgKmFw cF9wYXRoLCAqc2VuZGVyOw0KPiArCXN0cnVjdCBsX2RidXNfbWVzc2FnZV9pdGVyIGl0ZXJfdXVp ZDsNCj4gKwlzdHJ1Y3QgbF9kYnVzX21lc3NhZ2UgKnBlbmRpbmdfbXNnOw0KPiArCXVpbnQ4X3Qg KnV1aWQ7DQo+ICsJdWludDMyX3QgbjsNCj4gKw0KPiArCWxfZGVidWcoIkNyZWF0ZSBuZXR3b3Jr IHJlcXVlc3QiKTsNCj4gKw0KPiArCWlmICghbF9kYnVzX21lc3NhZ2VfZ2V0X2FyZ3VtZW50cyht c2csICJvYXkiLCAmYXBwX3BhdGgsDQo+ICsJCQkJCQkJCSZpdGVyX3V1aWQpKQ0KPiArCQlyZXR1 cm4gZGJ1c19lcnJvcihtc2csIE1FU0hfRVJST1JfSU5WQUxJRF9BUkdTLCBOVUxMKTsNCj4gKw0K PiArCWlmICghbF9kYnVzX21lc3NhZ2VfaXRlcl9nZXRfZml4ZWRfYXJyYXkoJml0ZXJfdXVpZCwg JnV1aWQsICZuKQ0KPiArCQkJCQkJCQl8fCBuICE9IDE2KQ0KPiArCQlyZXR1cm4gZGJ1c19lcnJv cihtc2csIE1FU0hfRVJST1JfSU5WQUxJRF9BUkdTLA0KPiArCQkJCQkJCSJCYWQgZGV2aWNlIFVV SUQiKTsNCj4gKw0KPiArCXNlbmRlciA9IGxfZGJ1c19tZXNzYWdlX2dldF9zZW5kZXIobXNnKTsN Cj4gKwlwZW5kaW5nX21zZyA9IGxfZGJ1c19tZXNzYWdlX3JlZihtc2cpOw0KPiArCWlmICghcGVu ZGluZ19xdWV1ZSkNCj4gKwkJcGVuZGluZ19xdWV1ZSA9IGxfcXVldWVfbmV3KCk7DQo+ICsNCj4g KwlsX3F1ZXVlX3B1c2hfdGFpbChwZW5kaW5nX3F1ZXVlLCBwZW5kaW5nX21zZyk7DQo+ICsNCj4g Kwlub2RlX2NyZWF0ZShhcHBfcGF0aCwgc2VuZGVyLCB1dWlkLCBjcmVhdGVfbmV0d29ya19yZWFk eV9jYiwNCj4gKwkJCQkJCQkJcGVuZGluZ19tc2cpOw0KPiArDQo+ICsJcmV0dXJuIE5VTEw7DQo+ ICt9DQo+ICsNCj4gIHN0YXRpYyB2b2lkIHNldHVwX25ldHdvcmtfaW50ZXJmYWNlKHN0cnVjdCBs X2RidXNfaW50ZXJmYWNlICppZmFjZSkNCj4gIHsNCj4gIAlsX2RidXNfaW50ZXJmYWNlX21ldGhv ZChpZmFjZSwgIkpvaW4iLCAwLCBqb2luX25ldHdvcmtfY2FsbCwgIiIsDQo+IEBAIC03MTQsNiAr Nzc4LDggQEAgc3RhdGljIHZvaWQgc2V0dXBfbmV0d29ya19pbnRlcmZhY2Uoc3RydWN0IGxfZGJ1 c19pbnRlcmZhY2UgKmlmYWNlKQ0KPiAgDQo+ICAJbF9kYnVzX2ludGVyZmFjZV9tZXRob2QoaWZh Y2UsICJMZWF2ZSIsIDAsIGxlYXZlX2NhbGwsICIiLCAidCIsDQo+ICAJCQkJCQkJCSJ0b2tlbiIp Ow0KPiArCWxfZGJ1c19pbnRlcmZhY2VfbWV0aG9kKGlmYWNlLCAiQ3JlYXRlTmV0d29yayIsIDAs IGNyZWF0ZV9uZXR3b3JrX2NhbGwsDQo+ICsJCQkJCSJ0IiwgIm9heSIsICJ0b2tlbiIsICJhcHAi LCAidXVpZCIpOw0KPiAgfQ0KPiAgDQo+ICBib29sIG1lc2hfZGJ1c19pbml0KHN0cnVjdCBsX2Ri dXMgKmRidXMpDQo+IGRpZmYgLS1naXQgYS9tZXNoL25vZGUuYyBiL21lc2gvbm9kZS5jDQo+IGlu ZGV4IDU5MDRiMTE2Yy4uOGI4NjQyZmVhIDEwMDY0NA0KPiAtLS0gYS9tZXNoL25vZGUuYw0KPiAr KysgYi9tZXNoL25vZGUuYw0KPiBAQCAtNDksNiArNDksMTEgQEANCj4gICNkZWZpbmUgTUVTSF9O T0RFX1BBVEhfUFJFRklYICIvbm9kZSINCj4gICNkZWZpbmUgTUVTSF9FTEVNRU5UX1BBVEhfUFJF RklYICIvZWxlIg0KPiAgDQo+ICsvKiBEZWZhdWx0IHZhbHVlcyBmb3IgYSBuZXcgbG9jYWxseSBj cmVhdGVkIG5vZGUgKi8NCj4gKyNkZWZpbmUgREVGQVVMVF9ORVdfVU5JQ0FTVCAweDAwMDENCj4g KyNkZWZpbmUgREVGQVVMVF9JVl9JTkRFWCAweDAwMDANCj4gKyNkZWZpbmUgREVGQVVMVF9QUklN QVJZX05FVF9JTkRFWCAweDAwMDANCj4gKw0KPiAgLyogRGVmYXVsdCBlbGVtZW50IGxvY2F0aW9u OiB1bmtub3duICovDQo+ICAjZGVmaW5lIERFRkFVTFRfTE9DQVRJT04gMHgwMDAwDQo+ICANCj4g QEAgLTU3LDYgKzYyLDcgQEANCj4gIA0KPiAgI2RlZmluZSBSRVFVRVNUX1RZUEVfSk9JTiAwDQo+ ICAjZGVmaW5lIFJFUVVFU1RfVFlQRV9BVFRBQ0ggMQ0KPiArI2RlZmluZSBSRVFVRVNUX1RZUEVf Q1JFQVRFIDINCj4gIA0KPiAgc3RydWN0IG5vZGVfZWxlbWVudCB7DQo+ICAJY2hhciAqcGF0aDsN Cj4gQEAgLTM3OCw2ICszODQsNyBAQCBib29sIG5vZGVfaW5pdF9mcm9tX3N0b3JhZ2Uoc3RydWN0 IG1lc2hfbm9kZSAqbm9kZSwgdm9pZCAqZGF0YSkNCj4gIAkJcmV0dXJuIGZhbHNlOw0KPiAgDQo+ ICAJbm9kZS0+bnVtX2VsZSA9IG51bV9lbGU7DQo+ICsNCj4gIAlpZiAobnVtX2VsZSAhPSAwICYm ICFhZGRfZWxlbWVudHMobm9kZSwgZGJfbm9kZSkpDQo+ICAJCXJldHVybiBmYWxzZTsNCj4gIA0K PiBAQCAtOTgxLDggKzk4OCwxNCBAQCBzdGF0aWMgdm9pZCBhdHRhY2hfaW8odm9pZCAqYSwgdm9p ZCAqYikNCj4gIAkJbWVzaF9uZXRfYXR0YWNoKG5vZGUtPm5ldCwgaW8pOw0KPiAgfQ0KPiAgDQo+ IC0vKiBSZWdpc3RlciBjYWxsYmFja3MgZm9yIGlvICovDQo+IC12b2lkIG5vZGVfYXR0YWNoX2lv KHN0cnVjdCBtZXNoX2lvICppbykNCj4gKy8qIFJlZ2lzdGVyIGNhbGxiYWNrIGZvciB0aGUgbm9k ZSdzIGlvICovDQo+ICt2b2lkIG5vZGVfYXR0YWNoX2lvKHN0cnVjdCBtZXNoX25vZGUgKm5vZGUs IHN0cnVjdCBtZXNoX2lvICppbykNCj4gK3sNCj4gKwlhdHRhY2hfaW8obm9kZSwgaW8pOw0KPiAr fQ0KPiArDQo+ICsvKiBSZWdpc3RlciBjYWxsYmFja3MgZm9yIGFsbCBub2RlcyBpbyAqLw0KPiAr dm9pZCBub2RlX2F0dGFjaF9pb19hbGwoc3RydWN0IG1lc2hfaW8gKmlvKQ0KPiAgew0KPiAgCWxf cXVldWVfZm9yZWFjaChub2RlcywgYXR0YWNoX2lvLCBpbyk7DQo+ICB9DQo+IEBAIC0xMzU0LDYg KzEzNjcsNjAgQEAgc3RhdGljIGJvb2wgZ2V0X2FwcF9wcm9wZXJ0aWVzKHN0cnVjdCBtZXNoX25v ZGUgKm5vZGUsIGNvbnN0IGNoYXIgKnBhdGgsDQo+ICAJcmV0dXJuIHRydWU7DQo+ICB9DQo+ICAN Cj4gK3N0YXRpYyBib29sIGFkZF9sb2NhbF9ub2RlKHN0cnVjdCBtZXNoX25vZGUgKm5vZGUsIHVp bnQxNl90IHVuaWNhc3QsIGJvb2wga3IsDQo+ICsJCQkJYm9vbCBpdnUsIHVpbnQzMl90IGl2X2lk eCwgdWludDhfdCBkZXZfa2V5WzE2XSwNCj4gKwkJCQl1aW50MTZfdCBuZXRfa2V5X2lkeCwgdWlu dDhfdCBuZXRfa2V5WzE2XSkNCj4gK3sNCj4gKwlub2RlLT5uZXQgPSBtZXNoX25ldF9uZXcobm9k ZSk7DQo+ICsNCj4gKwlpZiAoIW5vZGVzKQ0KPiArCQlub2RlcyA9IGxfcXVldWVfbmV3KCk7DQo+ ICsNCj4gKwlsX3F1ZXVlX3B1c2hfdGFpbChub2Rlcywgbm9kZSk7DQo+ICsNCj4gKwlpZiAoIXN0 b3JhZ2Vfc2V0X2l2X2luZGV4KG5vZGUtPm5ldCwgaXZfaWR4LCBpdnUpKQ0KPiArCQlyZXR1cm4g ZmFsc2U7DQo+ICsNCj4gKwltZXNoX25ldF9zZXRfaXZfaW5kZXgobm9kZS0+bmV0LCBpdl9pZHgs IGl2dSk7DQo+ICsNCj4gKwlpZiAoIW1lc2hfZGJfd3JpdGVfdWludDE2X2hleChub2RlLT5qY29u ZmlnLCAidW5pY2FzdEFkZHJlc3MiLA0KPiArCQkJCQkJCQl1bmljYXN0KSkNCj4gKwkJcmV0dXJu IGZhbHNlOw0KPiArDQo+ICsJbF9nZXRyYW5kb20obm9kZS0+dG9rZW4sIHNpemVvZihub2RlLT50 b2tlbikpOw0KPiArCWlmICghbWVzaF9kYl93cml0ZV90b2tlbihub2RlLT5qY29uZmlnLCBub2Rl LT50b2tlbikpDQo+ICsJCXJldHVybiBmYWxzZTsNCj4gKw0KPiArCW1lbWNweShub2RlLT5kZXZf a2V5LCBkZXZfa2V5LCAxNik7DQo+ICsJaWYgKCFtZXNoX2RiX3dyaXRlX2RldmljZV9rZXkobm9k ZS0+amNvbmZpZywgZGV2X2tleSkpDQo+ICsJCXJldHVybiBmYWxzZTsNCj4gKw0KPiArCW5vZGUt PnByaW1hcnkgPSB1bmljYXN0Ow0KPiArCW1lc2hfbmV0X3JlZ2lzdGVyX3VuaWNhc3Qobm9kZS0+ bmV0LCB1bmljYXN0LCBub2RlLT5udW1fZWxlKTsNCj4gKw0KPiArCWlmIChtZXNoX25ldF9hZGRf a2V5KG5vZGUtPm5ldCwgbmV0X2tleV9pZHgsIG5ldF9rZXkpICE9DQo+ICsJCQkJCQkJTUVTSF9T VEFUVVNfU1VDQ0VTUykNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsJaWYgKGtyKSB7DQo+ ICsJCS8qIER1cGxpY2F0ZSBuZXQga2V5LCBpZiB0aGUga2V5IHJlZnJlc2ggaXMgb24gKi8NCj4g KwkJaWYgKG1lc2hfbmV0X3VwZGF0ZV9rZXkobm9kZS0+bmV0LCBuZXRfa2V5X2lkeCwgbmV0X2tl eSkgIT0NCj4gKwkJCQkJCQlNRVNIX1NUQVRVU19TVUNDRVNTKQ0KPiArCQkJcmV0dXJuIGZhbHNl Ow0KPiArDQo+ICsJCWlmICghbWVzaF9kYl9uZXRfa2V5X3NldF9waGFzZShub2RlLT5qY29uZmln LCBuZXRfa2V5X2lkeCwNCj4gKwkJCQkJCQlLRVlfUkVGUkVTSF9QSEFTRV9UV08pKQ0KPiArCQkJ cmV0dXJuIGZhbHNlOw0KPiArCX0NCj4gKw0KPiArCXN0b3JhZ2Vfc2F2ZV9jb25maWcobm9kZSwg dHJ1ZSwgTlVMTCwgTlVMTCk7DQo+ICsNCj4gKwkvKiBJbml0aWFsaXplIGNvbmZpZ3VyYXRpb24g c2VydmVyIG1vZGVsICovDQo+ICsJbWVzaF9jb25maWdfc3J2X2luaXQobm9kZSwgUFJJTUFSWV9F TEVfSURYKTsNCj4gKw0KPiArCXJldHVybiB0cnVlOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9p ZCBnZXRfbWFuYWdlZF9vYmplY3RzX2NiKHN0cnVjdCBsX2RidXNfbWVzc2FnZSAqbXNnLCB2b2lk ICp1c2VyX2RhdGEpDQo+ICB7DQo+ICAJc3RydWN0IGxfZGJ1c19tZXNzYWdlX2l0ZXIgb2JqZWN0 cywgaW50ZXJmYWNlczsNCj4gQEAgLTEzNjUsNiArMTQzMiw4IEBAIHN0YXRpYyB2b2lkIGdldF9t YW5hZ2VkX29iamVjdHNfY2Ioc3RydWN0IGxfZGJ1c19tZXNzYWdlICptc2csIHZvaWQgKnVzZXJf ZGF0YSkNCj4gIAlib29sIGlzX25ldzsNCj4gIAl1aW50OF90IG51bV9lbGU7DQo+ICANCj4gKwlp c19uZXcgPSAocmVxLT50eXBlICE9IFJFUVVFU1RfVFlQRV9BVFRBQ0gpOw0KPiArDQo+ICAJaWYg KGxfZGJ1c19tZXNzYWdlX2lzX2Vycm9yKG1zZykpIHsNCj4gIAkJbF9lcnJvcigiRmFpbGVkIHRv IGdldCBhcHAncyBkYnVzIG9iamVjdHMiKTsNCj4gIAkJZ290byBmYWlsOw0KPiBAQCAtMTM3NSw4 ICsxNDQ0LDYgQEAgc3RhdGljIHZvaWQgZ2V0X21hbmFnZWRfb2JqZWN0c19jYihzdHJ1Y3QgbF9k YnVzX21lc3NhZ2UgKm1zZywgdm9pZCAqdXNlcl9kYXRhKQ0KPiAgCQlnb3RvIGZhaWw7DQo+ICAJ fQ0KPiAgDQo+IC0JaXNfbmV3ID0gKHJlcS0+dHlwZSAhPSBSRVFVRVNUX1RZUEVfQVRUQUNIKTsN Cj4gLQ0KPiAgCWlmIChpc19uZXcpIHsNCj4gIAkJbm9kZSA9IGxfbmV3KHN0cnVjdCBtZXNoX25v ZGUsIDEpOw0KPiAgCQlub2RlLT5lbGVtZW50cyA9IGxfcXVldWVfbmV3KCk7DQo+IEBAIC0xNDQ1 LDcgKzE1MTIsMjIgQEAgc3RhdGljIHZvaWQgZ2V0X21hbmFnZWRfb2JqZWN0c19jYihzdHJ1Y3Qg bF9kYnVzX21lc3NhZ2UgKm1zZywgdm9pZCAqdXNlcl9kYXRhKQ0KPiAgCQlnb3RvIGZhaWw7DQo+ ICAJfQ0KPiAgDQo+IC0JaWYgKHJlcS0+dHlwZSA9PSBSRVFVRVNUX1RZUEVfSk9JTikgew0KPiAr CWlmIChyZXEtPnR5cGUgPT0gUkVRVUVTVF9UWVBFX0FUVEFDSCkgew0KPiArCQlub2RlX3JlYWR5 X2Z1bmNfdCBjYiA9IHJlcS0+Y2I7DQo+ICsNCj4gKwkJaWYgKG51bV9lbGUgIT0gbm9kZS0+bnVt X2VsZSkNCj4gKwkJCWdvdG8gZmFpbDsNCj4gKw0KPiArCQlpZiAocmVnaXN0ZXJfbm9kZV9vYmpl Y3Qobm9kZSkpIHsNCj4gKwkJCXN0cnVjdCBsX2RidXMgKmJ1cyA9IGRidXNfZ2V0X2J1cygpOw0K PiArDQo+ICsJCQlub2RlLT5kaXNjX3dhdGNoID0gbF9kYnVzX2FkZF9kaXNjb25uZWN0X3dhdGNo KGJ1cywNCj4gKwkJCQkJbm9kZS0+b3duZXIsIGFwcF9kaXNjX2NiLCBub2RlLCBOVUxMKTsNCj4g KwkJCWNiKHJlcS0+dXNlcl9kYXRhLCBNRVNIX0VSUk9SX05PTkUsIG5vZGUpOw0KPiArCQl9IGVs c2UNCj4gKwkJCWdvdG8gZmFpbDsNCj4gKw0KPiArCX0gZWxzZSBpZiAocmVxLT50eXBlID09IFJF UVVFU1RfVFlQRV9KT0lOKSB7DQo+ICAJCW5vZGVfam9pbl9yZWFkeV9mdW5jX3QgY2IgPSByZXEt PmNiOw0KPiAgDQo+ICAJCWlmICghYWdlbnQpIHsNCj4gQEAgLTE0NTMsNiArMTUzNSw3IEBAIHN0 YXRpYyB2b2lkIGdldF9tYW5hZ2VkX29iamVjdHNfY2Ioc3RydWN0IGxfZGJ1c19tZXNzYWdlICpt c2csIHZvaWQgKnVzZXJfZGF0YSkNCj4gIAkJCQkJCU1FU0hfUFJPVklTSU9OX0FHRU5UX0lOVEVS RkFDRSk7DQo+ICAJCQlnb3RvIGZhaWw7DQo+ICAJCX0NCj4gKw0KPiAgCQlub2RlLT5udW1fZWxl ID0gbnVtX2VsZTsNCj4gIAkJc2V0X2RlZmF1bHRzKG5vZGUpOw0KPiAgCQltZW1jcHkobm9kZS0+ dXVpZCwgcmVxLT5kYXRhLCAxNik7DQo+IEBAIC0xNDYxLDIwICsxNTQ0LDMwIEBAIHN0YXRpYyB2 b2lkIGdldF9tYW5hZ2VkX29iamVjdHNfY2Ioc3RydWN0IGxfZGJ1c19tZXNzYWdlICptc2csIHZv aWQgKnVzZXJfZGF0YSkNCj4gIAkJCWdvdG8gZmFpbDsNCj4gIA0KPiAgCQljYihub2RlLCBhZ2Vu dCk7DQo+ICsNCj4gIAl9IGVsc2Ugew0KPiArCQkvKiBDYWxsYmFjayBmb3IgY3JlYXRlIG5vZGUg cmVxdWVzdCAqLw0KPiAgCQlub2RlX3JlYWR5X2Z1bmNfdCBjYiA9IHJlcS0+Y2I7DQo+ICsJCXVp bnQ4X3QgZGV2X2tleVsxNl07DQo+ICsJCXVpbnQ4X3QgbmV0X2tleVsxNl07DQo+ICANCj4gLQkJ aWYgKG51bV9lbGUgIT0gbm9kZS0+bnVtX2VsZSkNCj4gKwkJbm9kZS0+bnVtX2VsZSA9IG51bV9l bGU7DQo+ICsJCXNldF9kZWZhdWx0cyhub2RlKTsNCj4gKwkJbWVtY3B5KG5vZGUtPnV1aWQsIHJl cS0+ZGF0YSwgMTYpOw0KPiArDQo+ICsJCWlmICghY3JlYXRlX25vZGVfY29uZmlnKG5vZGUpKQ0K PiAgCQkJZ290byBmYWlsOw0KPiAgDQo+IC0JCWlmIChyZWdpc3Rlcl9ub2RlX29iamVjdChub2Rl KSkgew0KPiAtCQkJc3RydWN0IGxfZGJ1cyAqYnVzID0gZGJ1c19nZXRfYnVzKCk7DQo+ICsJCS8q IEdlbmVyYXRlIGRldmljZSBhbmQgcHJpbWFyeSBuZXR3b3JrIGtleXMgKi8NCj4gKwkJbF9nZXRy YW5kb20oZGV2X2tleSwgc2l6ZW9mKGRldl9rZXkpKTsNCj4gKwkJbF9nZXRyYW5kb20obmV0X2tl eSwgc2l6ZW9mKG5ldF9rZXkpKTsNCj4gIA0KPiAtCQkJbm9kZS0+ZGlzY193YXRjaCA9IGxfZGJ1 c19hZGRfZGlzY29ubmVjdF93YXRjaChidXMsDQo+IC0JCQkJCW5vZGUtPm93bmVyLCBhcHBfZGlz Y19jYiwgbm9kZSwgTlVMTCk7DQo+IC0JCQljYihyZXEtPnVzZXJfZGF0YSwgTUVTSF9FUlJPUl9O T05FLCBub2RlKTsNCj4gLQkJfSBlbHNlDQo+ICsJCWlmICghYWRkX2xvY2FsX25vZGUobm9kZSwg REVGQVVMVF9ORVdfVU5JQ0FTVCwgZmFsc2UsIGZhbHNlLA0KPiArCQkJCQlERUZBVUxUX0lWX0lO REVYLCBkZXZfa2V5LA0KPiArCQkJCQlERUZBVUxUX1BSSU1BUllfTkVUX0lOREVYLCBuZXRfa2V5 KSkNCj4gIAkJCWdvdG8gZmFpbDsNCj4gKw0KPiArCQljYihyZXEtPnVzZXJfZGF0YSwgTUVTSF9F UlJPUl9OT05FLCBub2RlKTsNCj4gIAl9DQo+ICANCj4gIAlyZXR1cm47DQo+IEBAIC0xNDgyLDE1 ICsxNTc1LDggQEAgZmFpbDoNCj4gIAlpZiAoYWdlbnQpDQo+ICAJCW1lc2hfYWdlbnRfcmVtb3Zl KGFnZW50KTsNCj4gIA0KPiAtCWlmIChpc19uZXcgJiYgbm9kZSkNCj4gLQkJZnJlZV9ub2RlX3Jl c291cmNlcyhub2RlKTsNCj4gLQ0KPiAtCWlmIChyZXEtPnR5cGUgPT0gUkVRVUVTVF9UWVBFX0pP SU4pIHsNCj4gLQkJbm9kZV9qb2luX3JlYWR5X2Z1bmNfdCBjYiA9IHJlcS0+Y2I7DQo+IC0NCj4g LQkJY2IoTlVMTCwgTlVMTCk7DQo+IC0NCj4gLQl9IGVsc2Ugew0KPiArCWlmICghaXNfbmV3KSB7 DQo+ICsJCS8qIEhhbmRsZSBmYWlsZWQgQXR0YWNoIHJlcXVlc3QgKi8NCj4gIAkJbm9kZV9yZWFk eV9mdW5jX3QgY2IgPSByZXEtPmNiOw0KPiAgDQo+ICAJCWxfcXVldWVfZm9yZWFjaChub2RlLT5l bGVtZW50cywgZnJlZV9lbGVtZW50X3BhdGgsIE5VTEwpOw0KPiBAQCAtMTUwMCw2ICsxNTg2LDIx IEBAIGZhaWw6DQo+ICAJCWxfZnJlZShub2RlLT5vd25lcik7DQo+ICAJCW5vZGUtPm93bmVyID0g TlVMTDsNCj4gIAkJY2IocmVxLT51c2VyX2RhdGEsIE1FU0hfRVJST1JfRkFJTEVELCBub2RlKTsN Cj4gKw0KPiArCX0gZWxzZSB7DQo+ICsJCS8qIEhhbmRsZSBmYWlsZWQgSm9pbiBhbmQgQ3JlYXRl IHJlcXVlc3RzICovDQo+ICsJCWlmIChub2RlKQ0KPiArCQkJZnJlZV9ub2RlX3Jlc291cmNlcyhu b2RlKTsNCj4gKw0KPiArCQlpZiAocmVxLT50eXBlID09IFJFUVVFU1RfVFlQRV9KT0lOKSB7DQo+ ICsJCQlub2RlX2pvaW5fcmVhZHlfZnVuY190IGNiID0gcmVxLT5jYjsNCj4gKw0KPiArCQkJY2Io TlVMTCwgTlVMTCk7DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQlub2RlX3JlYWR5X2Z1bmNfdCBjYiA9 IHJlcS0+Y2I7DQo+ICsNCj4gKwkJCWNiKHJlcS0+dXNlcl9kYXRhLCBNRVNIX0VSUk9SX0ZBSUxF RCwgTlVMTCk7DQo+ICsJCX0NCj4gIAl9DQo+ICB9DQo+ICANCj4gQEAgLTE1NTksNiArMTY2MCwy NiBAQCB2b2lkIG5vZGVfam9pbihjb25zdCBjaGFyICphcHBfcGF0aCwgY29uc3QgY2hhciAqc2Vu ZGVyLCBjb25zdCB1aW50OF90ICp1dWlkLA0KPiAgCQkJCQlyZXEsIGxfZnJlZSk7DQo+ICB9DQo+ ICANCj4gK3ZvaWQgbm9kZV9jcmVhdGUoY29uc3QgY2hhciAqYXBwX3BhdGgsIGNvbnN0IGNoYXIg KnNlbmRlciwgY29uc3QgdWludDhfdCAqdXVpZCwNCj4gKwkJCQkJbm9kZV9yZWFkeV9mdW5jX3Qg Y2IsIHZvaWQgKnVzZXJfZGF0YSkNCj4gK3sNCj4gKwlzdHJ1Y3QgbWFuYWdlZF9vYmpfcmVxdWVz dCAqcmVxOw0KPiArDQo+ICsJbF9kZWJ1ZygiIik7DQo+ICsNCj4gKwlyZXEgPSBsX25ldyhzdHJ1 Y3QgbWFuYWdlZF9vYmpfcmVxdWVzdCwgMSk7DQo+ICsJcmVxLT5kYXRhID0gKHZvaWQgKikgdXVp ZDsNCj4gKwlyZXEtPmNiID0gY2I7DQo+ICsJcmVxLT51c2VyX2RhdGEgPSB1c2VyX2RhdGE7DQo+ ICsJcmVxLT50eXBlID0gUkVRVUVTVF9UWVBFX0NSRUFURTsNCj4gKw0KPiArCWxfZGJ1c19tZXRo b2RfY2FsbChkYnVzX2dldF9idXMoKSwgc2VuZGVyLCBhcHBfcGF0aCwNCj4gKwkJCQkJTF9EQlVT X0lOVEVSRkFDRV9PQkpFQ1RfTUFOQUdFUiwNCj4gKwkJCQkJIkdldE1hbmFnZWRPYmplY3RzIiwg TlVMTCwNCj4gKwkJCQkJZ2V0X21hbmFnZWRfb2JqZWN0c19jYiwNCj4gKwkJCQkJcmVxLCBsX2Zy ZWUpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZCBidWlsZF9lbGVtZW50X2NvbmZpZyh2b2lk ICphLCB2b2lkICpiKQ0KPiAgew0KPiAgCXN0cnVjdCBub2RlX2VsZW1lbnQgKmVsZSA9IGE7DQo+ IEBAIC0xNzkwLDYzICsxOTExLDE0IEBAIGNvbnN0IGNoYXIgKm5vZGVfZ2V0X2VsZW1lbnRfcGF0 aChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCB1aW50OF90IGVsZV9pZHgpDQo+ICAJcmV0dXJuIGVs ZS0+cGF0aDsNCj4gIH0NCj4gIA0KPiAtYm9vbCBub2RlX2FkZF9wZW5kaW5nX2xvY2FsKHN0cnVj dCBtZXNoX25vZGUgKm5vZGUsIHZvaWQgKnByb3Zfbm9kZV9pbmZvLA0KPiAtCQkJCQkJCXN0cnVj dCBtZXNoX2lvICppbykNCj4gK2Jvb2wgbm9kZV9hZGRfcGVuZGluZ19sb2NhbChzdHJ1Y3QgbWVz aF9ub2RlICpub2RlLCB2b2lkICpwcm92X25vZGVfaW5mbykNCj4gIHsNCj4gIAlzdHJ1Y3QgbWVz aF9wcm92X25vZGVfaW5mbyAqaW5mbyA9IHByb3Zfbm9kZV9pbmZvOw0KPiAgCWJvb2wga3IgPSAh IShpbmZvLT5mbGFncyAmIFBST1ZfRkxBR19LUik7DQo+ICAJYm9vbCBpdnUgPSAhIShpbmZvLT5m bGFncyAmIFBST1ZfRkxBR19JVlUpOw0KPiAgDQo+IC0Jbm9kZS0+bmV0ID0gbWVzaF9uZXRfbmV3 KG5vZGUpOw0KPiAtDQo+IC0JaWYgKCFub2RlcykNCj4gLQkJbm9kZXMgPSBsX3F1ZXVlX25ldygp Ow0KPiAtDQo+IC0JbF9xdWV1ZV9wdXNoX3RhaWwobm9kZXMsIG5vZGUpOw0KPiAtDQo+IC0JaWYg KCFzdG9yYWdlX3NldF9pdl9pbmRleChub2RlLT5uZXQsIGluZm8tPml2X2luZGV4LCBpdnUpKQ0K PiAtCQlyZXR1cm4gZmFsc2U7DQo+IC0NCj4gLQltZXNoX25ldF9zZXRfaXZfaW5kZXgobm9kZS0+ bmV0LCBpbmZvLT5pdl9pbmRleCwgaXZ1KTsNCj4gLQ0KPiAtCWlmICghbWVzaF9kYl93cml0ZV91 aW50MTZfaGV4KG5vZGUtPmpjb25maWcsICJ1bmljYXN0QWRkcmVzcyIsDQo+IC0JCQkJCQkJCWlu Zm8tPnVuaWNhc3QpKQ0KPiAtCQlyZXR1cm4gZmFsc2U7DQo+IC0NCj4gLQlub2RlLT5wcmltYXJ5 ID0gaW5mby0+dW5pY2FzdDsNCj4gLQltZXNoX25ldF9yZWdpc3Rlcl91bmljYXN0KG5vZGUtPm5l dCwgaW5mby0+dW5pY2FzdCwgbm9kZS0+bnVtX2VsZSk7DQo+IC0NCj4gLQlsX2dldHJhbmRvbShu b2RlLT50b2tlbiwgc2l6ZW9mKG5vZGUtPnRva2VuKSk7DQo+IC0JaWYgKCFtZXNoX2RiX3dyaXRl X3Rva2VuKG5vZGUtPmpjb25maWcsIG5vZGUtPnRva2VuKSkNCj4gLQkJcmV0dXJuIGZhbHNlOw0K PiAtDQo+IC0JbWVtY3B5KG5vZGUtPmRldl9rZXksIGluZm8tPmRldmljZV9rZXksIDE2KTsNCj4g LQlpZiAoIW1lc2hfZGJfd3JpdGVfZGV2aWNlX2tleShub2RlLT5qY29uZmlnLCBpbmZvLT5kZXZp Y2Vfa2V5KSkNCj4gLQkJcmV0dXJuIGZhbHNlOw0KPiAtDQo+IC0JaWYgKG1lc2hfbmV0X2FkZF9r ZXkobm9kZS0+bmV0LCBpbmZvLT5uZXRfaW5kZXgsIGluZm8tPm5ldF9rZXkpICE9DQo+IC0JCQkJ CQkJTUVTSF9TVEFUVVNfU1VDQ0VTUykNCj4gLQkJcmV0dXJuIGZhbHNlOw0KPiAtDQo+IC0JaWYg KGtyKSB7DQo+IC0JCS8qIER1cGxpY2F0ZSBuZXQga2V5LCBpZiB0aGUga2V5IHJlZnJlc2ggaXMg b24gKi8NCj4gLQkJaWYgKG1lc2hfbmV0X3VwZGF0ZV9rZXkobm9kZS0+bmV0LCBpbmZvLT5uZXRf aW5kZXgsDQo+IC0JCQkJaW5mby0+bmV0X2tleSkgIT0gTUVTSF9TVEFUVVNfU1VDQ0VTUykNCj4g LQkJCXJldHVybiBmYWxzZTsNCj4gLQ0KPiAtCQlpZiAoIW1lc2hfZGJfbmV0X2tleV9zZXRfcGhh c2Uobm9kZS0+amNvbmZpZywgaW5mby0+bmV0X2luZGV4LA0KPiAtCQkJCQkJCUtFWV9SRUZSRVNI X1BIQVNFX1RXTykpDQo+IC0JCQlyZXR1cm4gZmFsc2U7DQo+IC0JfQ0KPiAtDQo+IC0Jc3RvcmFn ZV9zYXZlX2NvbmZpZyhub2RlLCB0cnVlLCBOVUxMLCBOVUxMKTsNCj4gLQ0KPiAtCS8qIEluaXRp YWxpemUgY29uZmlndXJhdGlvbiBzZXJ2ZXIgbW9kZWwgKi8NCj4gLQltZXNoX2NvbmZpZ19zcnZf aW5pdChub2RlLCBQUklNQVJZX0VMRV9JRFgpOw0KPiAtDQo+IC0JbWVzaF9uZXRfYXR0YWNoKG5v ZGUtPm5ldCwgaW8pOw0KPiAtDQo+IC0JcmV0dXJuIHRydWU7DQo+ICsJcmV0dXJuIGFkZF9sb2Nh bF9ub2RlKG5vZGUsIGluZm8tPnVuaWNhc3QsIGtyLCBpdnUsIGluZm8tPml2X2luZGV4LA0KPiAr CQkJaW5mby0+ZGV2aWNlX2tleSwgaW5mby0+bmV0X2luZGV4LCBpbmZvLT5uZXRfa2V5KTsNCj4g IH0NCj4gIA0KPiAgdm9pZCBub2RlX2pjb25maWdfc2V0KHN0cnVjdCBtZXNoX25vZGUgKm5vZGUs IHZvaWQgKmpjb25maWcpDQo+IGRpZmYgLS1naXQgYS9tZXNoL25vZGUuaCBiL21lc2gvbm9kZS5o DQo+IGluZGV4IDFiZTRkZTFkYS4uNzRhYzU5ODFhIDEwMDY0NA0KPiAtLS0gYS9tZXNoL25vZGUu aA0KPiArKysgYi9tZXNoL25vZGUuaA0KPiBAQCAtODIsMTMgKzgyLDE1IEBAIHVpbnQ4X3Qgbm9k ZV9mcmllbmRfbW9kZV9nZXQoc3RydWN0IG1lc2hfbm9kZSAqbm9kZSk7DQo+ICB1aW50MzJfdCBu b2RlX3NlcV9jYWNoZShzdHJ1Y3QgbWVzaF9ub2RlICpub2RlKTsNCj4gIGNvbnN0IGNoYXIgKm5v ZGVfZ2V0X2VsZW1lbnRfcGF0aChzdHJ1Y3QgbWVzaF9ub2RlICpub2RlLCB1aW50OF90IGVsZV9p ZHgpOw0KPiAgY29uc3QgY2hhciAqbm9kZV9nZXRfb3duZXIoc3RydWN0IG1lc2hfbm9kZSAqbm9k ZSk7DQo+IC1ib29sIG5vZGVfYWRkX3BlbmRpbmdfbG9jYWwoc3RydWN0IG1lc2hfbm9kZSAqbm9k ZSwgdm9pZCAqaW5mbywNCj4gLQkJCQkJCQlzdHJ1Y3QgbWVzaF9pbyAqaW8pOw0KPiAtdm9pZCBu b2RlX2F0dGFjaF9pbyhzdHJ1Y3QgbWVzaF9pbyAqaW8pOw0KPiArYm9vbCBub2RlX2FkZF9wZW5k aW5nX2xvY2FsKHN0cnVjdCBtZXNoX25vZGUgKm5vZGUsIHZvaWQgKmluZm8pOw0KPiArdm9pZCBu b2RlX2F0dGFjaF9pb19hbGwoc3RydWN0IG1lc2hfaW8gKmlvKTsNCj4gK3ZvaWQgbm9kZV9hdHRh Y2hfaW8oc3RydWN0IG1lc2hfbm9kZSAqbm9kZSwgc3RydWN0IG1lc2hfaW8gKmlvKTsNCj4gIGlu dCBub2RlX2F0dGFjaChjb25zdCBjaGFyICphcHBfcGF0aCwgY29uc3QgY2hhciAqc2VuZGVyLCB1 aW50NjRfdCB0b2tlbiwNCj4gIAkJCQkJbm9kZV9yZWFkeV9mdW5jX3QgY2IsIHZvaWQgKnVzZXJf ZGF0YSk7DQo+ICB2b2lkIG5vZGVfYnVpbGRfYXR0YWNoX3JlcGx5KHN0cnVjdCBtZXNoX25vZGUg Km5vZGUsDQo+ICAJCQkJCQlzdHJ1Y3QgbF9kYnVzX21lc3NhZ2UgKnJlcGx5KTsNCj4gK3ZvaWQg bm9kZV9jcmVhdGUoY29uc3QgY2hhciAqYXBwX3BhdGgsIGNvbnN0IGNoYXIgKnNlbmRlciwgY29u c3QgdWludDhfdCAqdXVpZCwNCj4gKwkJCQkJbm9kZV9yZWFkeV9mdW5jX3QgY2IsIHZvaWQgKnVz ZXJfZGF0YSk7DQo+ICB2b2lkIG5vZGVfaWRfc2V0KHN0cnVjdCBtZXNoX25vZGUgKm5vZGUsIHVp bnQxNl90IG5vZGVfaWQpOw0KPiAgdWludDE2X3Qgbm9kZV9pZF9nZXQoc3RydWN0IG1lc2hfbm9k ZSAqbm9kZSk7DQo+ICBib29sIG5vZGVfZGJ1c19pbml0KHN0cnVjdCBsX2RidXMgKmJ1cyk7