Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp955398ybm; Wed, 27 May 2020 12:06:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy7ua5bNsJkgL16MUspIfrX45J27r15rz2xIbF8MLtal6KqvAfDVIk6ps9gg4/A5K1wFSme X-Received: by 2002:a17:906:1199:: with SMTP id n25mr6921372eja.230.1590606396101; Wed, 27 May 2020 12:06:36 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1590606396; cv=pass; d=google.com; s=arc-20160816; b=lVwKlk18BTY/5g+ijE4ArAeCEygXgz5b8ZU9doW6PX8pY9oNS6H2vbf1qXWoLA8xTR aXBER+b2BLRygJ1VPS/DW66VoAlDkOavK5tO492Dcsnw7U6dCDBKY/wVty+TFoKrObLY /N9FGtASb7dzTYUFpfVSwMDTf0vOo1kvZQYVKYfXpXZ7LqTBLvqYDI132Ld2YyuFd7bA pKMPzYUNcNaoBxWkfqGA3rIDwcxTHYPxWi6JQjimoe1HgrDnBpXnarGz3tLu9kof7SYg DDM+4fXYTDmcEn7uACAspZSS591SL9v9zuImAYtgvvcXpyCcJqP4RGZDIqcpwpXNhhrU HG6A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=Q77ZkhsYI5EkcoWKU9vSJKI/SK88/orvssx46kgMDgA=; b=vx5s6SIsdYt8YOPnWiH77GGdWmyUcFHqvHrkvWG5W7nI+wgJo+4qLtEeZe07a0iDTV 8LGt7oAgvr0VuGKcqiVx/2uqJjQFXclRRb9k3vYn2Z5stbIyd8JuvJXJd7GU1lrx6gxh sek4N3HtA8P5vWUy/UZnIJmi6bVi2pDrOliajXcVtpoqe2BUAxhi3y8wvYgCOsrfXgJL pJL9Jl0X+M5SVlJeNPSJqHRBcc3Zhebcm2Zl4SwieAqBgik3GTujbcQGVbKFT3Od5YDW 73lztYTGrIU77qpOhGXC4A+vLhHPGoI2uIbWM0Ed97WKNRVg2xlhgHFKJR1njHZTGmOz zS7g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@BluetoothSIG.onmicrosoft.com header.s=selector2-BluetoothSIG-onmicrosoft-com header.b=aTNrZTSH; arc=pass (i=1 spf=pass spfdomain=bluetooth.com dkim=pass dkdomain=bluetooth.com dmarc=pass fromdomain=bluetooth.com); spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bluetooth.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f1si2011351eds.384.2020.05.27.12.05.54; Wed, 27 May 2020 12:06:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@BluetoothSIG.onmicrosoft.com header.s=selector2-BluetoothSIG-onmicrosoft-com header.b=aTNrZTSH; arc=pass (i=1 spf=pass spfdomain=bluetooth.com dkim=pass dkdomain=bluetooth.com dmarc=pass fromdomain=bluetooth.com); spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bluetooth.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730253AbgE0QK1 (ORCPT + 99 others); Wed, 27 May 2020 12:10:27 -0400 Received: from mail-eopbgr690088.outbound.protection.outlook.com ([40.107.69.88]:19713 "EHLO NAM04-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725294AbgE0QK0 (ORCPT ); Wed, 27 May 2020 12:10:26 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fkCiRTwIrXZyyInoyQK3RmbmCLzAADR5m5lOdYkWGAmVm0Fvup/8BMCU7yCPJu/fiOVPCajc33iE+iiP68y68DrsTgmBW9X0OP4E/+uJ0odcTcZEGJEgiUby/O22YNTOyZlA1pBdgVPQpDdi64i5fz2oQhjb1smuLm18yEtqzr144GXRQYMKVtdgTTf7UGRqFvghDAfn+VqmeyI+5bVBYBhPc1hfoPAXulXx06Gh6DYGJE9l9txwtc2URyzHdhTV+7/q+56wSd3Pgk29BclpywFUaBIDSIsCahznWNteex4ibBPW0WDEXcq10ff0HTIsqBAGhxBKJEZXiXuQVFSQiw== 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-SenderADCheck; bh=Q77ZkhsYI5EkcoWKU9vSJKI/SK88/orvssx46kgMDgA=; b=cJfxuA0fUfJmOMcy8DKRMO8I7hiH/VAucdaXJCmCVw2V2YBpu/Bszj6+Y/I5MvNRsPTuawCXDSB7dFUvZQr1GiO1QimlwS7lL2eIapsIBdA0ZdJ6M74VPeKErC+RraFMlRS+BESI5NPVEDguiZRwN8cquo43I7YH8GN5r7/wk54XZm2Yask5ccU9jJmU1+2Mm2nmoh7uwFezHZ9WWjilz6iIru6UzRdsDFY3MVPURK40XMDbC4MA+u5p2MrcCq5ioZTgJbR7Tasfas6gEg6E+YC25r+Rq0SFIiai9vg5t+u+z12sVBdxiJwSVUuTvHuRtPyYhsroWxr042wBuENicA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bluetooth.com; dmarc=pass action=none header.from=bluetooth.com; dkim=pass header.d=bluetooth.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=BluetoothSIG.onmicrosoft.com; s=selector2-BluetoothSIG-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q77ZkhsYI5EkcoWKU9vSJKI/SK88/orvssx46kgMDgA=; b=aTNrZTSHkssj3jlXYsfkWIv9Lb8H4C/qCQgCh2yh7wX2c8Vn3JUlD8+EBXX1L9+zkQCsL0GLjQ7qa0TRI/+Rxmc1er5rOzNMRuvPY9SueHDUiFZD8aetz5W/LiRI8OdMznefj4JcikDkhpufbBHhaCKLnJC8G5CHczwutfMeBP4= Received: from DM5PR17MB1963.namprd17.prod.outlook.com (2603:10b6:3:84::9) by DM5PR17MB1578.namprd17.prod.outlook.com (2603:10b6:3:14a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.23; Wed, 27 May 2020 16:10:22 +0000 Received: from DM5PR17MB1963.namprd17.prod.outlook.com ([fe80::89d4:7215:b5e0:9190]) by DM5PR17MB1963.namprd17.prod.outlook.com ([fe80::89d4:7215:b5e0:9190%3]) with mapi id 15.20.3021.030; Wed, 27 May 2020 16:10:22 +0000 From: Martin Woolley To: Luiz Augusto von Dentz , Szymon Janc CC: "Linux-bluetooth@vger.kernel.org" Subject: RE: Comments on the ConnectDevice API function Thread-Topic: Comments on the ConnectDevice API function Thread-Index: AdYwEgyeeFpEUtO5S3yfGGFiF3wWKwATy/wAAPJSTdAAAYHrgAADFZ0AAAEDIBA= Date: Wed, 27 May 2020 16:10:21 +0000 Message-ID: References: <11527909.O9o76ZdvQC@ix> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=bluetooth.com; x-originating-ip: [82.35.96.178] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6cce0ce4-46c6-4f94-1eb8-08d802587546 x-ms-traffictypediagnostic: DM5PR17MB1578: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 04163EF38A x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /L9BSYa8z9uhcJn/zne8wd5s1BOtZzrMFHHOfNnFc2BE3h3PwnXmfj/ee84hs7/y6NqrGv4edyY9phyOSIL+mbw4Pb2Y+3uHYkfLkwSzMXQt1wR86vl3J1mya0KmEhNE9MgsIHsfbekShSPuKfxVE5qr90mtEtYbI9FrHIc3FYGxVo/4D/Lc9Nu961Q1ML3kr759Fz+4ncVjv6UPoRy/XXF+0TuAxQC69PINBwtQa/LOvFwmgMLFUZJwzvyqgvSbVF5GyeeII3NIKKDUfGB2QdThKk7J53qZAlosSKEu+eYzyQzSVdXbvK5AqxFZxXQo0+RGlKXC1mCJPNsU+qKkT60BojnID6MNt0BjRlVnvIGvWZ2VmX7EcRfnv1CDqEsLV1pY6eQ33rwwc7FRWrDPjg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR17MB1963.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(39840400004)(136003)(376002)(366004)(346002)(45080400002)(8676002)(966005)(508600001)(5660300002)(66946007)(83080400001)(52536014)(76116006)(64756008)(83380400001)(2906002)(66556008)(66476007)(8936002)(86362001)(66446008)(9686003)(26005)(186003)(33656002)(316002)(55016002)(7696005)(55236004)(53546011)(6506007)(71200400001)(4326008)(110136005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: fFToZgOY3tSx4KKKBzAY0kAFFcP0L4q1F/aRkZHMYbuYKfrEMUb9KqwtRg5jKZ2rza7iNcHJx5ow/9QVXBqrPHoZ88A6pgOpX2I4jkb/t3mi8nFle8n6+48Nedp7lISmOlQyIP+S7rvm7Rr6fYnSbnc75v+Hmi4NuJ+WtnASlS41Qy9CnDMpnXmkkxt+gI8NZ1vifaCIlZmijS1XwLs7heylatMOZM3HJf6c9OcgAXRHe4a6pje8HSpoaMV0YT1QqsRaPjmDakbtbJd0vgW8UZWI5KUeS3QKnHwx/WhMTA/vH4XJRZdU2N2L01jIHeT0aK89wWpyCRNRsFpShhuVZTndRX12t9Fiy33OQhdLg4CLV/mBvrx/zJ0kza9noktec1GWfWpEuey2PgwBHL80piccBjNeBCWeY6+YGjw1vr29wBHQpEW1ypPDzKhqd91HApSS30VlDQ+OGtQvublhlG8vbJJv8Lzz/svUZQyPjEU= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Bluetooth.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cce0ce4-46c6-4f94-1eb8-08d802587546 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2020 16:10:22.0192 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e4e0fec5-fc6c-4dd6-ae37-4bdb30e156b9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jdAaaNWaKRkrKxERB0dHkcngOXEko0aOnfdyjVnuO8OuN9m5BYyvNRri7uXgrhzwfaseQwBM6cW+QZZtGSEoUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR17MB1578 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org UmVnYXJkaW5nIGFuIGFsdGVybmF0aXZlIHRvIHRoZSAiZXhwZXJpbWVudGFsIiBmbGFnLCB0aGF0 IHdvdWxkIG1ha2Ugc2Vuc2UsIGFzIHdvdWxkIHNvbWUgd29yZHMgaW4gdGhlIGFkYXB0ZXIudHh0 IEFQSSBkb2N1bWVudGF0aW9uIHdoaWNoIGV4cGxhaW4gd2h5IHRoZSBtZXRob2QgZXhpc3RzIGFu ZCB0aGUgY29uc3RyYWludHMgcmVnYXJkaW5nIGl0cyB1c2UuDQoNCkkgaGF2ZSB0byBzYXksIEkn bSBhIGxpdHRsZSB0cm91YmxlZCBieSB0aGUgdmVyeSBpZGVhIG9mIGEgZnVuY3Rpb24vbWV0aG9k IHdoaWNoIHdhcyBvbmx5ICJhZGRlZCBmb3IgcXVhbGlmaWNhdGlvbiIgYnkgd2hpY2ggSSBhc3N1 bWUgaXQgaXMgbWVhbnQgdGhhdCB0aGUgbWV0aG9kIHdhcyBhZGRlZCBzb2xlbHkgdG8gYWxsb3cg dGhlIHF1YWxpZmljYXRpb24gdGVzdHMgdG8gYmUgcGFzc2VkLCBidXQgd2hpY2ggdGhlIGludGVu dGlvbiBpcyB0aGF0IGl0IG11c3QgbmV2ZXIgYmUgdXNlZCBpbiBhIHJlYWwgcHJvZHVjdCBvciBz b2x1dGlvbi4gVGhhdCBkb2Vzbid0IHNvdW5kIGluIGxpbmUgd2l0aCB0aGUgaW50ZW50aW9ucyBv ZiBCbHVldG9vdGggcXVhbGlmaWNhdGlvbi4gT3IgZGlkIEkgbWlzdW5kZXJzdGFuZD8NCg0KLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEx1aXogQXVndXN0byB2b24gRGVudHogPGx1 aXouZGVudHpAZ21haWwuY29tPiANClNlbnQ6IDI3IE1heSAyMDIwIDE2OjM5DQpUbzogU3p5bW9u IEphbmMgPHN6eW1vbi5qYW5jQGNvZGVjb3VwLnBsPg0KQ2M6IE1hcnRpbiBXb29sbGV5IDxtd29v bGxleUBibHVldG9vdGguY29tPjsgTGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0KU3Vi amVjdDogUmU6IENvbW1lbnRzIG9uIHRoZSBDb25uZWN0RGV2aWNlIEFQSSBmdW5jdGlvbg0KDQpI aSBTenltb24sDQoNCk9uIFdlZCwgTWF5IDI3LCAyMDIwIGF0IDc6MTAgQU0gU3p5bW9uIEphbmMg PHN6eW1vbi5qYW5jQGNvZGVjb3VwLnBsPiB3cm90ZToNCj4NCj4gSGkgTWFydGluLA0KPg0KPiBP biBXZWRuZXNkYXksIDI3IE1heSAyMDIwIDE1OjQxOjEyIENFU1QgTWFydGluIFdvb2xsZXkgd3Jv dGU6DQo+ID4gSGkgTHVpeg0KPiA+DQo+ID4gdGhhbmtzIGZvciB5b3VyIHJlc3BvbnNlLiBNdWNo IGFwcHJlY2lhdGVkLiBJIG11c3QgY29uZmVzcyB0aGlzIGlzIA0KPiA+IHRoZSBmaXJzdCB0aW1l IEkndmUgdXNlZCB0aGUgQmx1ZVogQVBJcyBkaXJlY3RseSAodmlhIEQtQnVzKS4NCj4NCj4gPiBJ J20gYWxsIGZvciBoaWRpbmcgaW1wbGVtZW50YXRpb24gZGV0YWlscyB3aGVyZSBwb3NzaWJsZSBp biBBUElzIGFuZCANCj4gPiBtYWtpbmcgdGhlIEFQSSBpdHNlbGYgdGFrZSBjYXJlIG9mIGNvbmRp dGlvbmFsIGFzcGVjdHMgaWYgcG9zc2libGUsIA0KPiA+IGJ1dCB0aGVzZSB3ZXJlIGp1c3QgbXkg JDAuMDIsIG5vIG1vcmUgdGhhbiB0aGF0LiBJIHdhc24ndCBhd2FyZSBvZiANCj4gPiB0aGUgYmFj a2dyb3VuZCBvciB0aGUgcGhpbG9zb3BoeSwgc28gdGhhbmtzIGZvciB0aGF0IGluc2lnaHQgYXMg d2VsbC4NCj4NCj4gPiBIYXZpbmcgdGhlIEFQSSB0YWtlIGNhcmUgb2YgdGhlIEFscmVhZHlFeGlz dHMgZXJyb3IgYnkgcHJvdmlkaW5nIGEgDQo+ID4gY29ubmVjdGlvbiB0byB0aGUgYWxyZWFkeSBk aXNjb3ZlcmVkIGRldmljZSwgdHJhbnNwYXJlbnRseSBkb2VzIHNlZW0gDQo+ID4gYSBuaWNlIHRv dWNoIGZvciB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyIGJ1dCBjZXJ0YWlubHkgbm90IGVzc2Vu dGlhbC4NCj4NCj4gVGhpcyBBUEkgd2FzIGFkZGVkIG9ubHkgZm9yIHF1YWxpZmljYXRpb24gcHVy cG9zZXMgKHRoZXJlIGFyZSBzb21lIEdBUCANCj4gdGVzdHMgc3BlY2lmaWVkIGluIGEgd2F5IHRo YXQgdXBwZXIgdGVzdGVyIGlzIG5vdCBkb2luZyBkaXNjb3ZlcnkpIGFuZCANCj4gaXQgc2hvdWxk bid0IGJlIHVzZWQgZm9yICdub3JtYWwnIHVzYWdlLg0KDQpCdHcsIHdlIGNvdWxkIHBlcmhhcHMg aGF2ZSBhIGRpZmZlcmVudCBmbGFnIGZyb20gc3VjaCBBUEkgZS5nLg0KcXVhbGlmaWNhdGlvbi1v bmx5IG9yIHBlcmhhcHMgYWRkIGFuIGVudHJ5IG9uIG1haW4uY29uZiB3b3VsZCBiZSBiZXR0ZXIg aW4gdGhpcyByZWdhcmQgc2luY2UgaXQgbWF5IG1lYW4gdGhhdCB3ZSBuZXZlciByZWFsbHkgYWRv cHQgdGhlbSBhcyBzdGFibGUgQVBJcy4NCg0KPg0KPg0KPiA+IEFsbCB0aGUgYmVzdA0KPiA+DQo+ ID4gTWFydGluDQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206 IEx1aXogQXVndXN0byB2b24gRGVudHogPGx1aXouZGVudHpAZ21haWwuY29tPg0KPiA+IFNlbnQ6 IDIyIE1heSAyMDIwIDE4OjQ5DQo+ID4gVG86IE1hcnRpbiBXb29sbGV5IDxtd29vbGxleUBibHVl dG9vdGguY29tPg0KPiA+IENjOiBMaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+ID4g U3ViamVjdDogUmU6IENvbW1lbnRzIG9uIHRoZSBDb25uZWN0RGV2aWNlIEFQSSBmdW5jdGlvbg0K PiA+DQo+ID4gSGkgTWFydGluLA0KPiA+DQo+ID4gT24gRnJpLCBNYXkgMjIsIDIwMjAgYXQgMToy NSBBTSBNYXJ0aW4gV29vbGxleSANCj4gPiA8bXdvb2xsZXlAYmx1ZXRvb3RoLmNvbT4NCj4gPiB3 cm90ZToNCj4gPiA+DQo+ID4gPg0KPiA+ID4gSGVsbG8NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4g PiA+IEkndmUgcmVjZW50bHkgYmVlbiB3b3JraW5nIHdpdGggQmx1ZVogdmlhIEQtQnVzIGFuZCBo YXZlIGEgDQo+ID4gPiBzaXR1YXRpb24gd2hpY2ggcmVxdWlyZXMgbWUgdG8gYmUgYWJsZSB0byBj b25uZWN0IHRvIGEgZGV2aWNlIA0KPiA+ID4gd2hvc2UgQmx1ZXRvb3RoIGRldmljZSBhZGRyZXNz IGlzIGtub3duLCBidXQgd2l0aG91dCBmaXJzdCANCj4gPiA+IHNjYW5uaW5nLiBUaGlzIGlzIGEg bGluayBsYXllciBzdGF0ZSB0cmFuc2l0aW9uIHdpdGggdGhlIHNwZWNpZmljYXRpb24gYWxsb3dz Lg0KPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IEJsdWVaIGN1cnJlbnRseSBzdXBwb3J0cyB0aGlz IHZpYSBhbiBBUEkgYWRhcHRlciBmdW5jdGlvbiBjYWxsZWQgDQo+ID4gPiBDb25uZWN0RGV2aWNl LCB3aG9zZSBzdGF0dXMgaXMgY3VycmVudGx5ICJleHBlcmltZW50YWwiLiBGcm9tIG15IA0KPiA+ ID4gZXhwZXJpZW5jZSBvZiB1c2luZyB0aGlzIGZ1bmN0aW9uLCBpdCBzZWVtcyB0byBiZWhhdmUg bGlrZSB0aGlzOg0KPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IElmIHRoZSBCbHVlWiBpbnN0YW5j ZSBoYXMgbm90IHNjYW5uZWQgeWV0LCBzbyB0aGF0IHRoZSB0YXJnZXQgDQo+ID4gPiBkZXZpY2Ug aXMgbm90IGtub3duIHRvIGl0LCB0aGUgQ29ubmVjdERldmljZSBjYWxsIHJlc3VsdHMgaW4gDQo+ ID4gPiBzY2FubmluZyB0YWtpbmcgcGxhY2UgYW5kIHRoZW4gaWYgdGhlIHRhcmdldCBkZXZpY2Ug aXMgZm91bmQsIGl0IGlzIGNvbm5lY3RlZCB0by4gU3VjY2VzcyENCj4gPg0KPiA+ID4NCj4gPiA+ DQo+ID4gPiBCdXQgaWYgc2Nhbm5pbmcgaGFzIHByZXZpb3VzbHkgYmVlbiBwZXJmb3JtZWQsIHJl Z2FyZGxlc3Mgb2YgdGhlIA0KPiA+ID4gc3RhdGUgb2YgdGhlIGFjdHVhbCBkZXZpY2UgKGUuZy4g YWR2ZXJ0aXNpbmcgYW5kIHJlYWR5IHRvIGFjY2VwdCANCj4gPiA+IGNvbm5lY3Rpb25zKSwgYW4g ZXhjZXB0aW9uIGlzIHRocm93biB3aXRoIGEgbWVzc2FnZSB3aG9zZSB0ZXh0IHZhbHVlIGlzICJB bHJlYWR5IEV4aXN0cyIuDQo+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gSSB3YXMgd29uZGVyaW5n IGlmIEkgY291bGQgaW5mbHVlbmNlIHRoZSBkZXNpZ24gb2YgdGhlIEFQSSBiZWZvcmUgDQo+ID4g PiB0aGUgQ29ubmVjdERldmljZSBleHBlcmltZW50YWwgc3RhdHVzIGlzIHJlbW92ZWQ/DQo+ID4N Cj4gPiA+DQo+ID4gPg0KPiA+ID4gSSB3b3VsZCBsaWtlIHRvIHN1Z2dlc3QgdGhhdCB0aGVyZSBz aG91bGQgYmUgbm8gbmVlZCBmb3IgYSBzcGVjaWFsIA0KPiA+ID4gQVBJIHRvIGNvbm5lY3QgZGly ZWN0bHkgdG8gYSBkZXZpY2Ugd2l0aG91dCBmaXJzdCBzY2FubmluZy4gV2h5IA0KPiA+ID4gYnVy ZGVuIHRoZSBhcHBsaWNhdGlvbiBkZXZlbG9wZXIgbmVlZGluZyB0byBjYWxsIGl0IGp1c3QgaW4g Y2FzZSANCj4gPiA+IHRoaXMgY29uZGl0aW9uIGFwcGxpZXMsIGNhdGNoaW5nIHRoZSBCbHVlWiBl eGNlcHRpb24gKCJBbHJlYWR5IA0KPiA+ID4gRXhpc3RzIikgYW5kIHJlc3BvbmRpbmcgYnkgdGhl biBjYWxsaW5nIHRoZSBub3JtYWwgQ29ubmVjdCBBUEk/DQo+ID4NCj4gPiBJIGd1ZXNzIHRoZSBp bnRlbnRpb24gd2FzIHRvIGhhdmUgdGhlIGFwcGxpY2F0aW9uIHVzZSB0aGUgaW50ZW5kZWQgDQo+ ID4gQVBJIGZvciBkZXZpY2VzIGFscmVhZHkgcHJlc2VudCBfYmVmb3JlXyBjYWxsaW5nIENvbm5l Y3REZXZpY2UsIHNvIA0KPiA+IGJlZm9yZSBlbnRlcmluZyB0aGUgYWRkcmVzcyBtYW51YWxseSB0 aGUgYXBwbGljYXRpb24gd291bGQgZW51bWVyYXRlIA0KPiA+IHRoZSBleGlzdGluZyBkZXZpY2Vz IGFuZCBmaWd1cmUgb3V0IGlmIHRoYXQgd2FzIGFscmVhZHkgcHJlc2VudC4NCj4NCj4gPg0KPiA+ ID4gQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gYWNjb21tb2RhdGUgdGhpcyBzcGVjaWFsIGNh c2UgKG5vdCANCj4gPiA+IHNjYW5uZWQNCj4gPiA+IGJlZm9yZSkgaW4gdGhlIGltcGxlbWVudGF0 aW9uIG9mIHRoZSBzdGFuZGFyZCBkZXZpY2UgDQo+ID4gPiBDb25uZWN0KGJkYWRkcikgZnVuY3Rp b24gb3IgaWYgdGhhdCBtYWtlcyBubyBzZW5zZSBiZWNhdXNlIERldmljZSANCj4gPiA+IG9iamVj dHMgbXVzdCBjb3JyZXNwb25kIHRvIHByZXZpb3VzbHkgZGlzY292ZXJlZCwgcGh5c2ljYWwgDQo+ ID4gPiBkZXZpY2VzLCB0aGVuIGF0IGxlYXN0IHRoZSBhZGFwdGVyIENvbm5lY3REZXZpY2UgZnVu Y3Rpb24gY291bGQgDQo+ID4gPiB0YWtlIGNhcmUgb2YgdGhlIHR3byBwb3NzaWJsZSBwYXRocyBh bmQgc2ltcGxpZnkgbWF0dGVycyBmb3IgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3Blci4NCj4gPg0K PiA+IEkgZ3Vlc3MgeW91IHByb2JhYmx5IGtub3cgdGhpcyBidXQganVzdCBpbiBjYXNlIHNvbWVv bmUgbG9vayBhdCB0aGUgDQo+ID4gYXJjaGl2ZXMgaXQgaXMgYmV0dGVyIHRoYXQgd2UgbWFrZSBz b21lIHRoaW5ncyBjbGVhcmVyLCB3aGlsZSB0aGUgDQo+ID4gY29yZSBzcGVjIGFsbG93cyBjb25u ZWN0aW5nIHdpdGhvdXQgc2Nhbm5pbmcgRC1CdXMgYXJlIGludGVuZCB0byBiZSANCj4gPiBhIGhp Z2hlciBsZXZlbCBBUEkgdGh1cyB3aHkgQ29ubmVjdERldmljZSB3YXMgbm90IHJlYWxseSBuZWNl c3NhcnkgDQo+ID4gZm9yIGEgbG9uZyB0aW1lIGFuZCB3ZSBqdXN0IGludHJvZHVjZWQgaXQgZm9y IHF1YWxpZmljYXRpb24gcHVycG9zZSANCj4gPiBvciB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBh ZGFwdGVyIHdoZXJlIG9uZSBhY3RzIGFzIHNjYW5uZXIuIEFsc28gDQo+ID4gZXZlciBzaW5jZSB0 aGUgaW50cm9kdWN0aW9uIG9mIHByaXZhY3kgKHJhbmRvbSBhZGRyZXNzZXMpIEFQSXMgdGhhdCAN Cj4gPiB0YWtlcyBhZGRyZXNzZXMgYmVjb21lcyByYXRoZXIgY29tcGxpY2F0ZWQgdG8gYmUgdXNl ZCBkaXJlY3RseSwgYW5kIA0KPiA+IHRoZXJlIGV4aXN0cyB3YXlzIHRvIHNjYW4gZm9yIGEgc3Bl Y2lmaWMgYWRkcmVzcyB3aXRoIHBhdHRlcm4gZmlsdGVyaW5nOg0KPiA+IGh0dHBzOi8vbmFtMTIu c2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpDQo+ ID4gdC5rZXJuZSANCj4gPiBsLm9yZyUyRnB1YiUyRnNjbSUyRmJsdWV0b290aCUyRmJsdWV6Lmdp dCUyRnRyZWUlMkZkb2MlMkZhZGFwdGVyLWFwaQ0KPiA+IC50eHQlMjNuIA0KPiA+IDEyMiZhbXA7 ZGF0YT0wMiU3QzAxJTdDJTdDZmFmY2IwZjk0MDA1NDg2NzYxMjUwOGQ3ZmU3ODY2ZmIlN0NlNGUw ZmVjDQo+ID4gNWZjNmM0ZGQNCj4gPiA2YWUzNzRiZGIzMGUxNTZiOSU3QzAlN0MwJTdDNjM3MjU3 NjY1NDAwNzg3MTI1JmFtcDtzZGF0YT1JeSUyRndXa3hzJQ0KPiA+IDJGeVczZ0wyDQo+ID4gMzlG TFdkb0RSR2EwYXBiNjNXeE1oWXdSb25lTSUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+IFRoYXQgc2Fp ZCBJIGRvbid0IG9wcG9zZSB0byByZW1vdmUgQWxyZWFkeSBFeGlzdHMgZXJyb3IsIGJ1dCB3ZSAN Cj4gPiBzaG91bGQgYmUgdmVyeSBjbGVhciB0aGF0IHRoZSB1c2Ugb2Ygc3VjaCBBUEkgc2hvdWxk IG9ubHkgYmUgDQo+ID4gcmVjb21tZW5kZWQgd2l0aCB1c2VycyBpbnB1dCBhbmQgZG9lcyBub3Qg c3Vic3RpdHV0ZSB0aGUgbGlrZXMgb2YgRGV2aWNlLkNvbm5lY3QuDQo+DQo+ID4gLS0NCj4gPiBM dWl6IEF1Z3VzdG8gdm9uIERlbnR6DQo+DQo+DQo+IC0tDQo+IHBvemRyYXdpYW0NCj4gU3p5bW9u IEphbmMNCj4NCj4NCg0KDQotLQ0KTHVpeiBBdWd1c3RvIHZvbiBEZW50eg0K