Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp156893ybg; Tue, 9 Jun 2020 19:31:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwoZZnC83yPuoKSuZkU1lhjRXOTibbXWrbdsqM1HHGXj3W3bHsAmfRg13B5LUuhCZg2+rgR X-Received: by 2002:a17:906:4d13:: with SMTP id r19mr1245481eju.45.1591756268974; Tue, 09 Jun 2020 19:31:08 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1591756268; cv=pass; d=google.com; s=arc-20160816; b=oo6FgV2VbXxLmXtM8Ua6dFr13rbA6GwG75Wv6OT+rl6xKhT6YlynZgufsqI8b5rqrR h9/HrCW8L81IWr5r3gMp+1c0SWuo8kXiPy9mJTxJQX3y6mrA4pI6wFISAVrpLpzkDrwf In4mrGLyl3PxP2XCV7hUbn8FEtUDQ9Ou87eZRFJbJ8n34roAhGvj+A4Pdp8jq7UWq2M2 80p4yW4byJLX1gpZy27IzsJd85ngvES5aBDhzLXi+nXbbCYoF5FPgmKHutHrX7DSs4K/ 96oKI6PWFRxLaiunIoorGJwoJPlnCFS7CBEy7V5QRsibW7s2G+dwvPNQ0KS+o/MRYHq1 FK6g== 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=PMLNFx/3M2qGiRRbH/4w9ZAqwjDscYReoBdaJR5geY8=; b=hiSPhYJ+dvY34FZMrlZtcvSQAJkdq7dJ5o+bCLDX3ygnI7RKo9cWUcr7SFXHSrDPTJ llv4S0PL0LxJvAt6u+fD2qBltdho8vbh6sdCsWkedbk/oZbpmQHTKwxwdQAhC3GcAzWZ ac0fTRuIiZls0M+txIdySGo9tYaNNBoneQfoERFHw3d/MCre4b/yInc59TCNuDDNzv6Z dEeroSv8MlmrkNMupKm3wbdLfCcPa42liFSsaS074g7hFZywx+ZX+eMCDHYpLbiJSO2L vl6NV7ceQNs7Y6BWOS9WG/DUnEsTkOdlTKNdGsXV5hmKMK3vMcGuvfhJ+HYjKkp1Xf0O 5waw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=PYCn7lw8; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b101si11495274edf.579.2020.06.09.19.30.46; Tue, 09 Jun 2020 19:31:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=@nxp.com header.s=selector2 header.b=PYCn7lw8; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726072AbgFJC0s (ORCPT + 99 others); Tue, 9 Jun 2020 22:26:48 -0400 Received: from mail-vi1eur05on2048.outbound.protection.outlook.com ([40.107.21.48]:10864 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725798AbgFJC0q (ORCPT ); Tue, 9 Jun 2020 22:26:46 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CmN9k2RTr+tCJ/P4FmCD8KnwDPABVu0DOkrrSWPG+Shl4Zwd79GdZiMkbjXqw9JMisfhnx/4VptTm5w+ruU89OSLJIVuWlkDm+3cp8JrFWnC/zsm2kuEsdvlgh4pdR47mybGnQITHjGSm1gF8zbG9nYvQ5P50u2uf+PxrzTbNIfNMwrhhL7ewW+dVRJ1aqziAo3cgPgps9UXQmdjUshyM853Pva4l2PvNjE/YAfRe6+gCGbECMZG/u3F8Ik4EioMplGBAfLV3V+/wvQIfjIbdIak+eFyjPy9+y423PAqRHdDrrb8HQWl6T6axBAeRAeCO6dnVtlzMsSDkZUPszm77A== 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=PMLNFx/3M2qGiRRbH/4w9ZAqwjDscYReoBdaJR5geY8=; b=GXx8b8gyI2Uv1t6usvz6Y+1wvHT3BidUSJxRnS0Jq8OuKTyaQ77UncP0wSridVgCYXuDX7alV/wrzFYqR8T8kJ5Ro6HD8FMCK4fLCIThfraRcohPA9QRDnr8tvze+Rhdr9S4aLY53bd92/WzH551XOkVCAJHBH0OTH2aOwGBYWAyTOwK2EC7NDQVw/YzfkcYIP+T3qyVXuHGUHnmxBzFPLdTGu30F1S7Es7QGRxVWiNkcHPNWaxcgXvlbP7HlUzZ/Hpmx8mEzjIboma01xdKwMAvEpEdXyyEAeEBnIc1GYLQ0Ym9c14RGHBITHXPUd7tNR/TVfz4s8JybRVwxftc/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PMLNFx/3M2qGiRRbH/4w9ZAqwjDscYReoBdaJR5geY8=; b=PYCn7lw8wEwBoQtnt4um8gbWvwDGnzqjl5W0UYoHhlJeR2afoW7i7Nr9AMObCyAX2H5vMvmzDBDZalj4QyhZdeKZJfp+KbkffvBujxSi5CBqEtfV5ABJjk75vuEI9ILggWSlbWlXYvTdabRpdLqAPGN33bLRadNLs6lJ3O7+faE= Received: from VI1PR04MB5294.eurprd04.prod.outlook.com (2603:10a6:803:5a::22) by VI1PR04MB4511.eurprd04.prod.outlook.com (2603:10a6:803:74::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Wed, 10 Jun 2020 02:26:35 +0000 Received: from VI1PR04MB5294.eurprd04.prod.outlook.com ([fe80::7545:cf5d:b8b0:4ab0]) by VI1PR04MB5294.eurprd04.prod.outlook.com ([fe80::7545:cf5d:b8b0:4ab0%5]) with mapi id 15.20.3066.023; Wed, 10 Jun 2020 02:26:35 +0000 From: BOUGH CHEN To: Baolin Wang CC: Ulf Hansson , Adrian Hunter , Asutosh Das , Orson Zhai , Chunyan Zhang , Arnd Bergmann , Linus Walleij , Baolin Wang , "linux-mmc@vger.kernel.org" , Linux Kernel Mailing List , dl-linux-imx Subject: RE: [PATCH v9 0/5] Add MMC software queue support Thread-Topic: [PATCH v9 0/5] Add MMC software queue support Thread-Index: AQHV4VrffdoPmx8Fr0KkKTMnATse0qghpkmAgAAgvYCArS8q0IAAXhEAgAKD+nA= Date: Wed, 10 Jun 2020 02:26:35 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, 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=nxp.com; x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: bad4d916-5236-420a-0e48-08d80ce5b28a x-ms-traffictypediagnostic: VI1PR04MB4511: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:513; x-forefront-prvs: 0430FA5CB7 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5xJTNFKV81mxXkiDRBiFfEnVfa7+d3X7bBgs45cdUUYEMJsz6csw77jUgHH6DCPYcSAdK9o78VD2puB/f50T6KC1pRZZSlE2ePeHWmZbMd070lxB7WHVMNsWap/HjM+c7svFNNAj1kbzOOgiWe5N1oyhbjRcKf0JtOVR8esYMBZNlmqPpabGhBdabIcxkY+nNxivyH0uhvlCRnhikMn8Z2uZup5oc5V7u9w/D3QICJywM9/xiIJvQQO2LPl5D5AAdaXMLxCdRWRJeWiX/bxzHufXaBsB9/J38tOwzFMxRiaT4SBmvzh3bR7WLMqvnpViq+OEaRpAIZUv0K3u1lk6dvqiWlOr1A/gU14dNt0AGjfqv1XC6cwlQIClkFSE9IdMLwB7TUcg6UVZRck4Pjyl0Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5294.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(366004)(39860400002)(376002)(136003)(396003)(346002)(316002)(83080400001)(83380400001)(52536014)(66946007)(76116006)(478600001)(966005)(45080400002)(9686003)(66556008)(7416002)(66476007)(64756008)(86362001)(66446008)(5660300002)(33656002)(55016002)(30864003)(6916009)(8676002)(186003)(53546011)(71200400001)(6506007)(8936002)(54906003)(7696005)(4326008)(26005)(2906002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: 7xTdCmwX6zVIL2Zn0SkpgcGhL1vW1t4ZRQjlZDzyY/hQTTAUGM5MIKYL+sceK9Px01HgK4rrqzyGM7XvEHkEzriKvBBr8IW4Dv1WCUwelm2P0Zmn7JgI1ktSb5TFVoYJo6I9YxNvyITV4MYNXN7vEQ1K1HVGUMm/nJ7VCBELjORZ9M4oI0p9TWG6JA2BKhTdOPDYMkq0pYLS4rNaGQFJkaDNZFsKRdn4n5WuhWg0mRBXw7YpjRkzXGlyGA62zTnTpEXzsFo0Pcjg3NW+5DFpVJyTZB1QnwobpmyFLn5S8sPcX5XR+j5KWE7B3Znh6uaCOHbBBPl54TOIJEWl4Dcy2qOIPloTJkmHD6lLzN5tGpQ44L2gjznxNv7mEuVA+uUQOdlShh52sl0PEioYLm96U/6WUGkammjl6pRZRJ6n8kJICWI/Z2H+K3imjtWUraCI1KTSjKtyCEaUn728BDSn7tZaXiX8C/Dw4sxYET0JUG8= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bad4d916-5236-420a-0e48-08d80ce5b28a X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2020 02:26:35.4271 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Ce9/ohnbPWEkZGGOFWwL9dLjsOhugSVhlnvsHODIRi0ZOg8aNvl2h7s+1ramIgZpnWVK8mt/ioQARln+/Y7kmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4511 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCYW9saW4gV2FuZyBbbWFpbHRv OmJhb2xpbi53YW5nN0BnbWFpbC5jb21dDQo+IFNlbnQ6IDIwMjDlubQ25pyIOOaXpSAxOTo1NA0K PiBUbzogQk9VR0ggQ0hFTiA8aGFpYm8uY2hlbkBueHAuY29tPg0KPiBDYzogVWxmIEhhbnNzb24g PHVsZi5oYW5zc29uQGxpbmFyby5vcmc+OyBBZHJpYW4gSHVudGVyDQo+IDxhZHJpYW4uaHVudGVy QGludGVsLmNvbT47IEFzdXRvc2ggRGFzIDxhc3V0b3NoZEBjb2RlYXVyb3JhLm9yZz47IE9yc29u DQo+IFpoYWkgPG9yc29uemhhaUBnbWFpbC5jb20+OyBDaHVueWFuIFpoYW5nIDx6aGFuZy5seXJh QGdtYWlsLmNvbT47IEFybmQNCj4gQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+OyBMaW51cyBXYWxs ZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+OyBCYW9saW4NCj4gV2FuZyA8YmFvbGluLndh bmdAbGluYXJvLm9yZz47IGxpbnV4LW1tY0B2Z2VyLmtlcm5lbC5vcmc7IExpbnV4IEtlcm5lbA0K PiBNYWlsaW5nIExpc3QgPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBkbC1saW51eC1p bXggPGxpbnV4LWlteEBueHAuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY5IDAvNV0gQWRk IE1NQyBzb2Z0d2FyZSBxdWV1ZSBzdXBwb3J0DQo+IA0KPiBIaSBIYWliby4NCj4gDQo+IE9uIE1v biwgSnVuIDgsIDIwMjAgYXQgMjozNSBQTSBCT1VHSCBDSEVOIDxoYWliby5jaGVuQG54cC5jb20+ IHdyb3RlOg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJv bTogbGludXgtbW1jLW93bmVyQHZnZXIua2VybmVsLm9yZw0KPiA+ID4gW21haWx0bzpsaW51eC1t bWMtb3duZXJAdmdlci5rZXJuZWwub3JnXSBPbiBCZWhhbGYgT2YgQmFvbGluIFdhbmcNCj4gPiA+ IFNlbnQ6IDIwMjDlubQy5pyIMTnml6UgOTozNQ0KPiA+ID4gVG86IFVsZiBIYW5zc29uIDx1bGYu aGFuc3NvbkBsaW5hcm8ub3JnPg0KPiA+ID4gQ2M6IEFkcmlhbiBIdW50ZXIgPGFkcmlhbi5odW50 ZXJAaW50ZWwuY29tPjsgQXN1dG9zaCBEYXMNCj4gPiA+IDxhc3V0b3NoZEBjb2RlYXVyb3JhLm9y Zz47IE9yc29uIFpoYWkgPG9yc29uemhhaUBnbWFpbC5jb20+Ow0KPiBDaHVueWFuDQo+ID4gPiBa aGFuZyA8emhhbmcubHlyYUBnbWFpbC5jb20+OyBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRl PjsgTGludXMNCj4gPiA+IFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJvLm9yZz47IEJhb2xp biBXYW5nDQo+ID4gPiA8YmFvbGluLndhbmdAbGluYXJvLm9yZz47IGxpbnV4LW1tY0B2Z2VyLmtl cm5lbC5vcmc7IExpbnV4IEtlcm5lbA0KPiA+ID4gTWFpbGluZyBMaXN0IDxsaW51eC1rZXJuZWxA dmdlci5rZXJuZWwub3JnPg0KPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2OSAwLzVdIEFkZCBN TUMgc29mdHdhcmUgcXVldWUgc3VwcG9ydA0KPiA+ID4NCj4gPiA+IE9uIFdlZCwgRmViIDE5LCAy MDIwIGF0IDc6MzggQU0gVWxmIEhhbnNzb24gPHVsZi5oYW5zc29uQGxpbmFyby5vcmc+DQo+ID4g PiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gT24gV2VkLCAxMiBGZWIgMjAyMCBhdCAwNToxNCwg QmFvbGluIFdhbmcgPGJhb2xpbi53YW5nN0BnbWFpbC5jb20+DQo+ID4gPiB3cm90ZToNCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEhpIEFsbCwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE5vdyB0aGUgTU1D IHJlYWQvd3JpdGUgc3RhY2sgd2lsbCBhbHdheXMgd2FpdCBmb3IgcHJldmlvdXMNCj4gPiA+ID4g PiByZXF1ZXN0IGlzIGNvbXBsZXRlZCBieSBtbWNfYmxrX3J3X3dhaXQoKSwgYmVmb3JlIHNlbmRp bmcgYSBuZXcNCj4gPiA+ID4gPiByZXF1ZXN0IHRvIGhhcmR3YXJlLCBvciBxdWV1ZSBhIHdvcmsg dG8gY29tcGxldGUgcmVxdWVzdCwgdGhhdA0KPiA+ID4gPiA+IHdpbGwgYnJpbmcgY29udGV4dCBz d2l0Y2hpbmcgb3ZlcmhlYWQsIGVzcGVjaWFsbHkgZm9yIGhpZ2ggSS9PDQo+ID4gPiA+ID4gcGVy IHNlY29uZCByYXRlcywgdG8gYWZmZWN0IHRoZSBJTyBwZXJmb3JtYW5jZS4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IFRodXMgdGhpcyBwYXRjaCBzZXQgd2lsbCBpbnRyb2R1Y2UgdGhlIE1NQyBzb2Z0 d2FyZSBjb21tYW5kDQo+ID4gPiA+ID4gcXVldWUgc3VwcG9ydCBiYXNlZCBvbiBjb21tYW5kIHF1 ZXVlIGVuZ2luZSdzIGludGVyZmFjZXMsIGFuZA0KPiA+ID4gPiA+IHNldCB0aGUgcXVldWUgZGVw dGggYXMgNjQgdG8gYWxsb3cgbW9yZSByZXF1ZXN0cyBjYW4gYmUgYmUNCj4gPiA+ID4gPiBwcmVw YXJlZCwgbWVyZ2VkIGFuZCBpbnNlcnRlZCBpbnRvIElPIHNjaGVkdWxlciwgYnV0IHdlIG9ubHkN Cj4gPiA+ID4gPiBhbGxvdyAyIHJlcXVlc3RzIGluIGZsaWdodCwgdGhhdCBpcyBlbm91Z2ggdG8g bGV0IHRoZSBpcnENCj4gPiA+ID4gPiBoYW5kbGVyIGFsd2F5cyB0cmlnZ2VyIHRoZSBuZXh0IHJl cXVlc3Qgd2l0aG91dCBhIGNvbnRleHQgc3dpdGNoLCBhcw0KPiB3ZWxsIGFzIGF2b2lkaW5nIGEg bG9uZyBsYXRlbmN5Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gTW9yZW92ZXIgd2UgY2FuIGV4cGFu ZCB0aGUgTU1DIHNvZnR3YXJlIHF1ZXVlIGludGVyZmFjZSB0bw0KPiA+ID4gPiA+IHN1cHBvcnQg TU1DIHBhY2tlZCByZXF1ZXN0IG9yIHBhY2tlZCBjb21tYW5kIGluc3RlYWQgb2YgYWRkaW5nDQo+ ID4gPiA+ID4gbmV3IGludGVyZmFjZXMsIGFjY29yZGluZyB0byBwcmV2aW9zdXMgZGlzY3Vzc2lv bi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJlbG93IGFyZSBzb21lIGNvbXBhcmlzb24gZGF0YSB3 aXRoIGZpbyB0b29sLiBUaGUgZmlvIGNvbW1hbmQgSQ0KPiA+ID4gPiA+IHVzZWQgaXMgbGlrZSBi ZWxvdyB3aXRoIGNoYW5naW5nIHRoZSAnLS1ydycgcGFyYW1ldGVyIGFuZA0KPiA+ID4gPiA+IGVu YWJsaW5nIHRoZSBkaXJlY3QgSU8gZmxhZyB0byBtZWFzdXJlIHRoZSBhY3R1YWwgaGFyZHdhcmUN Cj4gPiA+ID4gPiB0cmFuc2ZlciBzcGVlZCBpbiA0SyBibG9jaw0KPiA+ID4gc2l6ZS4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IC4vZmlvIC0tZmlsZW5hbWU9L2Rldi9tbWNibGswcDMwIC0tZGlyZWN0 PTEgLS1pb2RlcHRoPTIwDQo+ID4gPiA+ID4gLS1ydz1yZWFkIC0tYnM9NEsgLS1zaXplPTFHIC0t Z3JvdXBfcmVwb3J0aW5nIC0tbnVtam9icz0yMA0KPiA+ID4gPiA+IC0tbmFtZT10ZXN0X3JlYWQN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IE15IGVNTUMgY2FyZCB3b3JraW5nIGF0IEhTNDAwIEVuaGFu Y2VkIHN0cm9iZSBtb2RlOg0KPiA+ID4gPiA+IFsgICAgMi4yMjk4NTZdIG1tYzA6IG5ldyBIUzQw MCBFbmhhbmNlZCBzdHJvYmUgTU1DIGNhcmQgYXQNCj4gYWRkcmVzcw0KPiA+ID4gMDAwMQ0KPiA+ ID4gPiA+IFsgICAgMi4yMzc1NjZdIG1tY2JsazA6IG1tYzA6MDAwMSBIQkc0YTIgMjkuMSBHaUIN Cj4gPiA+ID4gPiBbICAgIDIuMjQyNjIxXSBtbWNibGswYm9vdDA6IG1tYzA6MDAwMSBIQkc0YTIg cGFydGl0aW9uIDEgNC4wMA0KPiBNaUINCj4gPiA+ID4gPiBbICAgIDIuMjQ5MTEwXSBtbWNibGsw Ym9vdDE6IG1tYzA6MDAwMSBIQkc0YTIgcGFydGl0aW9uIDIgNC4wMA0KPiBNaUINCj4gPiA+ID4g PiBbICAgIDIuMjU1MzA3XSBtbWNibGswcnBtYjogbW1jMDowMDAxIEhCRzRhMiBwYXJ0aXRpb24g MyA0LjAwDQo+IE1pQiwNCj4gPiA+IGNoYXJkZXYgKDI0ODowKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gMS4gV2l0aG91dCBNTUMgc29mdHdhcmUgcXVldWUNCj4gPiA+ID4gPiBJIHRlc3RlZCA1IHRp bWVzIGZvciBlYWNoIGNhc2UgYW5kIG91dHB1dCBhIGF2ZXJhZ2Ugc3BlZWQuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAxKSBTZXF1ZW50aWFsIHJlYWQ6DQo+ID4gPiA+ID4gU3BlZWQ6IDU5LjRNaUIv cywgNjMuNE1pQi9zLCA1Ny41TWlCL3MsIDU3LjJNaUIvcywgNjAuOE1pQi9zDQo+ID4gPiA+ID4g QXZlcmFnZQ0KPiA+ID4gPiA+IHNwZWVkOiA1OS42Nk1pQi9zDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiAyKSBSYW5kb20gcmVhZDoNCj4gPiA+ID4gPiBTcGVlZDogMjYuOU1pQi9zLCAyNi45TWlCL3Ms IDI3LjFNaUIvcywgMjcuMU1pQi9zLCAyNy4yTWlCL3MNCj4gPiA+ID4gPiBBdmVyYWdlDQo+ID4g PiA+ID4gc3BlZWQ6IDI3LjA0TWlCL3MNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IDMpIFNlcXVlbnRp YWwgd3JpdGU6DQo+ID4gPiA+ID4gU3BlZWQ6IDcxLjZNaUIvcywgNzIuNU1pQi9zLCA3Mi4yTWlC L3MsIDY0LjZNaUIvcywgNjcuNU1pQi9zDQo+ID4gPiA+ID4gQXZlcmFnZQ0KPiA+ID4gPiA+IHNw ZWVkOiA2OS42OE1pQi9zDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA0KSBSYW5kb20gd3JpdGU6DQo+ ID4gPiA+ID4gU3BlZWQ6IDM2LjNNaUIvcywgMzUuNE1pQi9zLCAzOC42TWlCL3MsIDM0TWlCL3Ms IDM1LjVNaUIvcw0KPiA+ID4gPiA+IEF2ZXJhZ2UNCj4gPiA+ID4gPiBzcGVlZDogMzUuOTZNaUIv cw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMi4gV2l0aCBNTUMgc29mdHdhcmUgcXVldWUNCj4gPiA+ ID4gPiBJIHRlc3RlZCA1IHRpbWVzIGZvciBlYWNoIGNhc2UgYW5kIG91dHB1dCBhIGF2ZXJhZ2Ug c3BlZWQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAxKSBTZXF1ZW50aWFsIHJlYWQ6DQo+ID4gPiA+ ID4gU3BlZWQ6IDU5LjJNaUIvcywgNjAuNE1pQi9zLCA2My42TWlCL3MsIDYwLjNNaUIvcywgNTku OU1pQi9zDQo+ID4gPiA+ID4gQXZlcmFnZQ0KPiA+ID4gPiA+IHNwZWVkOiA2MC42OE1pQi9zDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAyKSBSYW5kb20gcmVhZDoNCj4gPiA+ID4gPiBTcGVlZDogMzEu M01pQi9zLCAzMS40TWlCL3MsIDMxLjVNaUIvcywgMzEuM01pQi9zLCAzMS4zTWlCL3MNCj4gPiA+ ID4gPiBBdmVyYWdlDQo+ID4gPiA+ID4gc3BlZWQ6IDMxLjM2TWlCL3MNCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IDMpIFNlcXVlbnRpYWwgd3JpdGU6DQo+ID4gPiA+ID4gU3BlZWQ6IDcxTWlCL3MsIDcx LjhNaUIvcywgNzIuM01pQi9zLCA3Mi4yTWlCL3MsIDcxTWlCL3MgQXZlcmFnZQ0KPiA+ID4gPiA+ IHNwZWVkOiA3MS42Nk1pQi9zDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA0KSBSYW5kb20gd3JpdGU6 DQo+ID4gPiA+ID4gU3BlZWQ6IDY4LjlNaUIvcywgNjguN01pQi9zLCA2OC44TWlCL3MsIDY4LjZN aUIvcywgNjguOE1pQi9zDQo+ID4gPiA+ID4gQXZlcmFnZQ0KPiA+ID4gPiA+IHNwZWVkOiA2OC43 Nk1pQi9zDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBGb3JtIGFib3ZlIGRhdGEsIHdlIGNhbiBzZWUg dGhlIE1NQyBzb2Z0d2FyZSBxdWV1ZSBjYW4gaGVscCB0bw0KPiA+ID4gPiA+IGltcHJvdmUgc29t ZSBwZXJmb3JtYW5jZSBvYnZpb3VzbHkgZm9yIHJhbmRvbSByZWFkIGFuZCB3cml0ZSwNCj4gPiA+ ID4gPiB0aG91Z2ggbm8gb2J2aW91cyBpbXByb3ZlbWVudCBmb3Igc2VxdWVudGlhbCByZWFkIGFu ZCB3cml0ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFueSBjb21tZW50cyBhcmUgd2VsY29tZS4g VGhhbmtzIGEgbG90Lg0KPiA+ID4gPiA+DQo+ID4NCj4gPiBIaSBCYW9saW4sDQo+ID4NCj4gPiBJ IHJlZmVyIHRvIHlvdXIgY29kZSwgYW5kIGFkZCB0aGUgc29mdHdhcmUgcXVldWUgc3VwcG9ydCBv biBpLk1YIGJhc2VkIG9uDQo+IHRoZSBMaW51eCBuZXh0LTIwMjAwNjAyLCBidXQgdW5mb3J0dW5h dGVseSwgSSBzZWUgYW4gb2J2aW91cyBwZXJmb3JtYW5jZSBkcm9wDQo+IHdoZW4gY2hhbmdlIHRv IHVzZSBzb2Z0d2FyZSBxdWV1ZS4NCj4gPiBJIHRlc3Qgb24gb3VyIGlteDg1MC1ldmsgYm9hcmQs IHdpdGggZU1NQyBzb2xkZXJlZC4NCj4gPiBGcm9tIHRoZSByZXN1bHQgbGlzdGluZyBiZWxvdywg b25seSByYW5kb20gd3JpdGUgaGFzIGEgbGl0dGxlIHBlcmZvcm1hbmNlDQo+IGltcHJvdmUsIGZv ciBvdGhlcnMsIHNlZW1zIHBlcmZvcm1hbmNlIGRyb3AgYSBsb3QuDQo+ID4gSSBub3RpY2VkIHRo YXQsIHRoaXMgc29mdHdhcmUgcXVldWUgbmVlZCBuby1yZW1vdmFibGUgY2FyZCwgYW55IG90aGVy DQo+IGxpbWl0YXRpb24/IEZvciBob3N0Pw0KPiA+IEZyb20gdGhlIGNvZGUgbG9naWMsIHNvZnR3 YXJlIHF1ZXVlIGNvbXBsZXRlIHRoZSByZXF1ZXN0IGluIGlycSBoYW5kbGVyLA0KPiBzZWVtcyBu byBvdGhlciBjaGFuZ2UsIEkgZG8gbm90IGZpZ3VyZSBvdXQgd2h5IHRoaXMgd2lsbCB0cmlnZ2Vy IGEgcGVyZm9ybWFuY2UNCj4gZHJvcCBvbiBteSBwbGF0Zm9ybS4gQW55IGNvbW1lbnQgd291bGQg YmUgYXBwcmVjaWF0ZSENCj4gDQo+IEhhdmUgeW91IHRlc3RlZCB3aXRoIGJlbG93IHBhdGNoZXMs IHdoaWNoIGludHJvZHVjZSBhbiBhdG9taWNfcmVxdWVzdCBob3N0DQo+IG9wcyB0byBzdWJtaXQg bmV4dCByZXF1ZXN0IGluIHRoZSBpcnEgaGFyZCBoYW5kbGVyIGNvbnRleHQgdG8gcmVkdWNlIGxh dGVuY3k/DQoNCkhpIEJhb2xpbiwNCg0KVGhlIExpbnV4IGNvZGUgYmFzZSBJIHVzZSBpcyBMaW51 eC1uZXh0LTIwMjAwNjAyLCB3aGljaCBhbHJlYWR5IGNvbnRhaW4gYWxsIHRoZSBwYXRjaCB5b3Ug bGlzdGVkLCBpbmNsdWRpbmcgdGhlIGF0b21pY19yZXF1ZXN0Lg0KSSBkbyBub3QgdGVzdCB0aGUg YXRvbWljX3JlcXVlc3QgYWxvbmUuIEkganVzdCBlbmFibGUgc29mdHdhcmUgcXVldWUsIGFuZCB0 aGlzIHNvZnR3YXJlIHF1ZXVlIHVzZSB0aGUgYXRvbWljIHJlcXVlc3QuDQpTbywgZG8geW91IG1l YW4sIEkgbmVlZCB0byBmaXJzdCBkaXNhYmxlIHNvZnR3YXJlIHF1ZXVlLCBhbmQganVzdCBlbmFi bGUgdGhlIGF0b21pY19yZXF1ZXN0LCB0byBjb25maXJtIHdoZXRoZXIgdGhlIGF0b21pY19yZXF1 ZXN0IGhhcyBzb21lIHBlcmZvcm1hbmNlIGltcGFjdCBvbiBteSBwbGF0Zm9ybT8NCg0KQmVzdCBS ZWdhcmRzDQpIYWlibyBDaGVuDQoNCj4gaHR0cHM6Ly9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlv bi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0Lmtlcm4NCj4gZWwub3JnJTJGcHVi JTJGc2NtJTJGbGludXglMkZrZXJuZWwlMkZnaXQlMkZ0b3J2YWxkcyUyRmxpbnV4LmdpdCUyRmNv DQo+IG1taXQlMkYlM0ZpZCUzRGVkNjMzMDMzMDI3NmNiYTM5MDU4ZThkYmRiMjhhYjhkMDEzZDky NmUmYW1wO2RhdA0KPiBhPTAyJTdDMDElN0NoYWliby5jaGVuJTQwbnhwLmNvbSU3Qzg2MThlYmE5 MDZhZDRmZGI0ZTE3MDhkODBiYTINCj4gYzQ0NyU3QzY4NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVj MzAxNjM1JTdDMCU3QzElN0M2MzcyNzIxNDA5OTI4DQo+IDkwMTI3JmFtcDtzZGF0YT1KSlZZWGN6 T1hZVWRwZE5rY0poR01hTzZhNkVlWmtRNzJoRjA5MEJNQUhZJTMNCj4gRCZhbXA7cmVzZXJ2ZWQ9 MA0KPiBodHRwczovL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9 aHR0cHMlM0ElMkYlMkZnaXQua2Vybg0KPiBlbC5vcmclMkZwdWIlMkZzY20lMkZsaW51eCUyRmtl cm5lbCUyRmdpdCUyRnRvcnZhbGRzJTJGbGludXguZ2l0JTJGY28NCj4gbW1pdCUyRiUzRmlkJTNE YTM3NGE3MmJhYTgxNzM4OGEwNDgyNTExOGI3YzFiYTEzMDY0YzhjNiZhbXA7ZGF0DQo+IGE9MDIl N0MwMSU3Q2hhaWJvLmNoZW4lNDBueHAuY29tJTdDODYxOGViYTkwNmFkNGZkYjRlMTcwOGQ4MGJh Mg0KPiBjNDQ3JTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0MwJTdDMSU3QzYz NzI3MjE0MDk5MjgNCj4gOTAxMjcmYW1wO3NkYXRhPVJhTDY4NSUyRnRpakhtbm1yJTJCOXdPeXI2 Yk41M2dMTFhwRUJnUzl3d0JxSWk4DQo+ICUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiBodHRwczovL2V1 cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZn aXQua2Vybg0KPiBlbC5vcmclMkZwdWIlMkZzY20lMkZsaW51eCUyRmtlcm5lbCUyRmdpdCUyRnRv cnZhbGRzJTJGbGludXguZ2l0JTJGY28NCj4gbW1pdCUyRiUzRmlkJTNEOThhMjY0MmY5MWE0N2Rj ZDEyMTVkMDM3YzE0ZTBlNWRlMzNhMjQ3ZCZhbXA7ZGF0DQo+IGE9MDIlN0MwMSU3Q2hhaWJvLmNo ZW4lNDBueHAuY29tJTdDODYxOGViYTkwNmFkNGZkYjRlMTcwOGQ4MGJhMg0KPiBjNDQ3JTdDNjg2 ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0MwJTdDMSU3QzYzNzI3MjE0MDk5MjgNCj4g OTAxMjcmYW1wO3NkYXRhPSUyQjNUQkQxbHlZT0E3RDZndmh3MG1pa3ZvQUxNTWx5YWY5eFBHcmEl MkZDblUNCj4gSSUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiBodHRwczovL2V1cjAxLnNhZmVsaW5rcy5w cm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZnaXQua2Vybg0KPiBlbC5v cmclMkZwdWIlMkZzY20lMkZsaW51eCUyRmtlcm5lbCUyRmdpdCUyRnRvcnZhbGRzJTJGbGludXgu Z2l0JTJGY28NCj4gbW1pdCUyRiUzRmlkJTNEZTg3MmYxZTIyZWE1ZjY3OGFlNDI4MTI5NDk0Nzcz ODdmZGE2NzI1YiZhbXA7ZGF0YQ0KPiA9MDIlN0MwMSU3Q2hhaWJvLmNoZW4lNDBueHAuY29tJTdD ODYxOGViYTkwNmFkNGZkYjRlMTcwOGQ4MGJhMmMNCj4gNDQ3JTdDNjg2ZWExZDNiYzJiNGM2ZmE5 MmNkOTljNWMzMDE2MzUlN0MwJTdDMSU3QzYzNzI3MjE0MDk5Mjg5DQo+IDAxMjcmYW1wO3NkYXRh PTdrQnlSRXpuQ3lFVXppYm5lSkIxSk1sWGRhVyUyRlpzMEZOMU1XU3pEQVBBZyUNCj4gM0QmYW1w O3Jlc2VydmVkPTANCj4gaHR0cHM6Ly9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29r LmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0Lmtlcm4NCj4gZWwub3JnJTJGcHViJTJGc2NtJTJG bGludXglMkZrZXJuZWwlMkZnaXQlMkZ0b3J2YWxkcyUyRmxpbnV4LmdpdCUyRmNvDQo+IG1taXQl MkYlM0ZpZCUzRDg0NWM5MzllZTIyOTQzNzg2YTZlYjFkMTNkMDNjNzdiMTlmY2MyYzgmYW1wO2Rh dGENCj4gPTAyJTdDMDElN0NoYWliby5jaGVuJTQwbnhwLmNvbSU3Qzg2MThlYmE5MDZhZDRmZGI0 ZTE3MDhkODBiYTJjDQo+IDQ0NyU3QzY4NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdD MCU3QzElN0M2MzcyNzIxNDA5OTI4OQ0KPiAwMTI3JmFtcDtzZGF0YT16eFY4UkV2aFNuQlRGZXlp OUhIakZFUGNZWXJQSkdKcE5qJTJGY09PUlkwJTJCRSUzDQo+IEQmYW1wO3Jlc2VydmVkPTANCj4g aHR0cHM6Ly9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBz JTNBJTJGJTJGZ2l0Lmtlcm4NCj4gZWwub3JnJTJGcHViJTJGc2NtJTJGbGludXglMkZrZXJuZWwl MkZnaXQlMkZ0b3J2YWxkcyUyRmxpbnV4LmdpdCUyRmNvDQo+IG1taXQlMkYlM0ZpZCUzRDZkYjk2 ZTU4MTBlMGE2YTM0NWI3ZDc4NTQ5ZGU3Njc2YWU1YjI2NjImYW1wO2RhDQo+IHRhPTAyJTdDMDEl N0NoYWliby5jaGVuJTQwbnhwLmNvbSU3Qzg2MThlYmE5MDZhZDRmZGI0ZTE3MDhkODBiYTINCj4g YzQ0NyU3QzY4NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzElN0M2MzcyNzIx NDA5OTI4DQo+IDkwMTI3JmFtcDtzZGF0YT01SjI2YnM3JTJGbUpiaGNVMiUyRkpSQWR2WTZCTGQy UUlKTGFmanEzN3NWS2ZZQSUzDQo+IEQmYW1wO3Jlc2VydmVkPTANCj4gaHR0cHM6Ly9ldXIwMS5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0Lmtl cm4NCj4gZWwub3JnJTJGcHViJTJGc2NtJTJGbGludXglMkZrZXJuZWwlMkZnaXQlMkZ0b3J2YWxk cyUyRmxpbnV4LmdpdCUyRmNvDQo+IG1taXQlMkYlM0ZpZCUzRDQ4ZWY4YTJhMWU1ZTZhMmExODkw MDllODgwZTM0MWRkYjQ1Mjk3MWQmYW1wO2RhdA0KPiBhPTAyJTdDMDElN0NoYWliby5jaGVuJTQw bnhwLmNvbSU3Qzg2MThlYmE5MDZhZDRmZGI0ZTE3MDhkODBiYTINCj4gYzQ0NyU3QzY4NmVhMWQz YmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzElN0M2MzcyNzIxNDA5OTI4DQo+IDkwMTI3 JmFtcDtzZGF0YT15TTZ6bm50M0JEYUxSMEcxJTJGdFd5eDFPb2dDS1AyY3hFclp2dlp4RER6YlEl DQo+IDNEJmFtcDtyZXNlcnZlZD0wDQo+IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rp b24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdC5rZXJuDQo+IGVsLm9yZyUyRnB1 YiUyRnNjbSUyRmxpbnV4JTJGa2VybmVsJTJGZ2l0JTJGdG9ydmFsZHMlMkZsaW51eC5naXQlMkZj bw0KPiBtbWl0JTJGJTNGaWQlM0Q2MWFiNjRlMmY1NGY0YzYwNzQyODY2N2Y4M2Y0MTFjYjY1OTg0 M2EzJmFtcDtkYXRhDQo+ID0wMiU3QzAxJTdDaGFpYm8uY2hlbiU0MG54cC5jb20lN0M4NjE4ZWJh OTA2YWQ0ZmRiNGUxNzA4ZDgwYmEyYw0KPiA0NDclN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5OWM1 YzMwMTYzNSU3QzAlN0MxJTdDNjM3MjcyMTQwOTkyODkNCj4gMDEyNyZhbXA7c2RhdGE9R1pmU0JC WVo5ZU9KZnhMUEVLQ2ZWVUpUY3ZjNm9jaTZBbWVTVUNXRDhEYyUzRCYNCj4gYW1wO3Jlc2VydmVk PTANCj4gDQo+ID4gV2l0aG91dCBzb2Z0d2FyZSBxdWV1ZSwgbm9ybWFsIHJlYWQvd3JpdGUgbWV0 aG9kOg0KPiA+IFNlcXVlbnRpYWwgcmVhZDogNTZNQi9zDQo+ID4gUmFuZG9tIHJlYWQ6IDIzLjVN Qi9zDQo+ID4gU2VxdWVudGlhbCB3cml0ZTogNDMuN01CL3MNCj4gPiBSYW5kb20gd3JpdGU6IDE5 TUIvcw0KPiA+DQo+ID4gV2l0aCBtbWMgc29mdHdhcmUgcXVldWU6DQo+ID4gU2VxdWVudGlhbCBy ZWFkOiAzMy41TUIvcw0KPiA+IFJhbmRvbSByZWFkOiAxOC43IE1CL3MNCj4gPiBTZXF1ZW50aWFs IHdyaXRlOiAzNy43TUIvcw0KPiA+IFJhbmRvbSB3cml0ZTogMTkuOE1CL3MNCj4gPg0KPiA+DQo+ ID4gSGVyZSwgSSBhbHNvIGxpc3QgbXkgY2hhbmdlIGNvZGUgdG8gc3VwcG9ydCBzb2Z0d2FyZSBx dWV1ZQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZyBiL2Ry aXZlcnMvbW1jL2hvc3QvS2NvbmZpZyBpbmRleA0KPiA+IGViODUyMzdiZjJkNi4uOTk2YjhjYzVj MzgxIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZw0KPiA+ICsrKyBi L2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZw0KPiA+IEBAIC0yNTQsNiArMjU0LDcgQEAgY29uZmln IE1NQ19TREhDSV9FU0RIQ19JTVgNCj4gPiAgICAgICAgIGRlcGVuZHMgb24gTU1DX1NESENJX1BM VEZNDQo+ID4gICAgICAgICBzZWxlY3QgTU1DX1NESENJX0lPX0FDQ0VTU09SUw0KPiA+ICAgICAg ICAgc2VsZWN0IE1NQ19DUUhDSQ0KPiA+ICsgICAgICAgc2VsZWN0IE1NQ19IU1ENCj4gPiAgICAg ICAgIGhlbHANCj4gPiAgICAgICAgICAgVGhpcyBzZWxlY3RzIHRoZSBGcmVlc2NhbGUgZVNESEMv dVNESEMgY29udHJvbGxlciBzdXBwb3J0DQo+ID4gICAgICAgICAgIGZvdW5kIG9uIGkuTVgyNSwg aS5NWDM1IGkuTVg1eCBhbmQgaS5NWDZ4Lg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9o b3N0L3NkaGNpLWVzZGhjLWlteC5jDQo+ID4gYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWVzZGhj LWlteC5jDQo+ID4gaW5kZXggMWQ3Zjg0YjIzYTIyLi42ZjE2MzY5NWIwOGQgMTAwNjQ0DQo+ID4g LS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYw0KPiA+ICsrKyBiL2RyaXZl cnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14LmMNCj4gPiBAQCAtMjksNiArMjksNyBAQA0KPiA+ ICAjaW5jbHVkZSAic2RoY2ktcGx0Zm0uaCINCj4gPiAgI2luY2x1ZGUgInNkaGNpLWVzZGhjLmgi DQo+ID4gICNpbmNsdWRlICJjcWhjaS5oIg0KPiA+ICsjaW5jbHVkZSAibW1jX2hzcS5oIg0KPiA+ DQo+ID4gICNkZWZpbmUgRVNESENfU1lTX0NUUkxfRFRPQ1ZfTUFTSyAgICAgIDB4MGYNCj4gPiAg I2RlZmluZSAgICAgICAgRVNESENfQ1RSTF9EM0NEICAgICAgICAgICAgICAgICAweDA4DQo+ID4g QEAgLTEyMjAsNiArMTIyMSwxNSBAQCBzdGF0aWMgdTMyIGVzZGhjX2NxaGNpX2lycShzdHJ1Y3Qg c2RoY2lfaG9zdA0KPiAqaG9zdCwgdTMyIGludG1hc2spDQo+ID4gICAgICAgICByZXR1cm4gMDsN Cj4gPiAgfQ0KPiA+DQo+ID4gK3N0YXRpYyB2b2lkIGVzZGhjX3JlcXVlc3RfZG9uZShzdHJ1Y3Qg c2RoY2lfaG9zdCAqaG9zdCwgc3RydWN0DQo+ID4gK21tY19yZXF1ZXN0ICptcnEpIHsNCj4gPiAr ICAgICAgIC8qIFZhbGlkYXRlIGlmIHRoZSByZXF1ZXN0IHdhcyBmcm9tIHNvZnR3YXJlIHF1ZXVl IGZpcnN0bHkuICovDQo+ID4gKyAgICAgICBpZiAobW1jX2hzcV9maW5hbGl6ZV9yZXF1ZXN0KGhv c3QtPm1tYywgbXJxKSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsNCj4gPiAr ICAgICAgIG1tY19yZXF1ZXN0X2RvbmUoaG9zdC0+bW1jLCBtcnEpOyB9DQo+ID4gKw0KPiA+ICBz dGF0aWMgc3RydWN0IHNkaGNpX29wcyBzZGhjaV9lc2RoY19vcHMgPSB7DQo+ID4gICAgICAgICAu cmVhZF9sID0gZXNkaGNfcmVhZGxfbGUsDQo+ID4gICAgICAgICAucmVhZF93ID0gZXNkaGNfcmVh ZHdfbGUsDQo+ID4gQEAgLTEyMzcsNiArMTI0Nyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2RoY2lfb3Bz IHNkaGNpX2VzZGhjX29wcyA9IHsNCj4gPiAgICAgICAgIC5zZXRfdWhzX3NpZ25hbGluZyA9IGVz ZGhjX3NldF91aHNfc2lnbmFsaW5nLA0KPiA+ICAgICAgICAgLnJlc2V0ID0gZXNkaGNfcmVzZXQs DQo+ID4gICAgICAgICAuaXJxID0gZXNkaGNfY3FoY2lfaXJxLA0KPiA+ICsgICAgICAgLnJlcXVl c3RfZG9uZSA9IGVzZGhjX3JlcXVlc3RfZG9uZSwNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IHNkaGNpX3BsdGZtX2RhdGEgc2RoY2lfZXNkaGNfaW14X3BkYXRhID0geyBA QA0KPiA+IC0xMzAxLDYgKzEzMTIsMTkgQEAgc3RhdGljIHZvaWQgc2RoY2lfZXNkaGNfaW14X2h3 aW5pdChzdHJ1Y3Qgc2RoY2lfaG9zdA0KPiAqaG9zdCkNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICB3cml0ZWwodG1wLCBob3N0LT5pb2FkZHIgKw0KPiBFU0RIQ19WRU5EX1NQRUMyKTsNCj4g Pg0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QtPnF1aXJrcyAmPQ0KPiB+U0RIQ0lf UVVJUktfTk9fQlVTWV9JUlE7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIC8q DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICogT24gaS5NWDhNTSwgd2UgYXJlIHJ1bm5p bmcgRHVhbCBMaW51eCBPUywNCj4gd2l0aCAxc3QgTGludXggdXNpbmcgU0QgQ2FyZA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAqIGFzIHJvb3RmcyBzdG9yYWdlLCAybmQgTGludXggdXNp bmcgZU1NQyBhcw0KPiByb290ZnMgc3RvcmFnZS4gV2UgbGV0IHRoZQ0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAqIHRoZSAxc3QgbGludXggY29uZmlndXJlIHBvd2VyL2Nsb2NrIGZvciB0 aGUNCj4gMm5kIExpbnV4Lg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAqDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICogV2hlbiB0aGUgMm5kIExpbnV4IGlzIGJvb3RpbmcgaW50 byByb290ZnMNCj4gc3RhZ2UsIHdlIGxldCB0aGUgMXN0IExpbnV4DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICogdG8gZGVzdHJveSB0aGUgMm5kIGxpbnV4LCB0aGVuIHJlc3RhcnQgdGhl DQo+IDJuZCBsaW51eCwgd2UgbWV0IFNESENJIGR1bXAuDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICogQWZ0ZXIgd2UgY2xlYXIgdGhlIHBlbmRpbmcgaW50ZXJydXB0IGFuZCBoYWx0DQo+ IENRQ1RMLCBpc3N1ZSBnb25lLg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IGNxaGNpX3JlYWRsKGNxX2hvc3QsIENRSENJ X0lTKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjcWhjaV93cml0ZWwoY3FfaG9zdCwg dG1wLCBDUUhDSV9JUyk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY3FoY2lfd3JpdGVs KGNxX2hvc3QsIENRSENJX0hBTFQsDQo+IENRSENJX0NUTCk7DQo+ID4gICAgICAgICAgICAgICAg IH0NCj4gPg0KPiA+ICAgICAgICAgICAgICAgICBpZiAoaW14X2RhdGEtPnNvY2RhdGEtPmZsYWdz ICYNCj4gRVNESENfRkxBR19TVERfVFVOSU5HKQ0KPiA+IHsgQEAgLTEzNTEsOSArMTM3NSw2IEBA IHN0YXRpYyB2b2lkIHNkaGNpX2VzZGhjX2lteF9od2luaXQoc3RydWN0DQo+IHNkaGNpX2hvc3Qg Kmhvc3QpDQo+ID4gICAgICAgICAgICAgICAgICAqIEFmdGVyIHdlIGNsZWFyIHRoZSBwZW5kaW5n IGludGVycnVwdCBhbmQgaGFsdCBDUUNUTCwNCj4gaXNzdWUgZ29uZS4NCj4gPiAgICAgICAgICAg ICAgICAgICovDQo+ID4gICAgICAgICAgICAgICAgIGlmIChjcV9ob3N0KSB7DQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgdG1wID0gY3FoY2lfcmVhZGwoY3FfaG9zdCwgQ1FIQ0lfSVMpOw0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGNxaGNpX3dyaXRlbChjcV9ob3N0LCB0bXAsIENR SENJX0lTKTsNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBjcWhjaV93cml0ZWwoY3FfaG9z dCwgQ1FIQ0lfSEFMVCwNCj4gQ1FIQ0lfQ1RMKTsNCj4gPiAgICAgICAgICAgICAgICAgfQ0KPiA+ ICAgICAgICAgfQ0KPiA+ICB9DQo+ID4gQEAgLTE1NTUsNiArMTU3Niw3IEBAIHN0YXRpYyBpbnQg c2RoY2lfZXNkaGNfaW14X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ ID4gICAgICAgICBzdHJ1Y3Qgc2RoY2lfcGx0Zm1faG9zdCAqcGx0Zm1faG9zdDsNCj4gPiAgICAg ICAgIHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0Ow0KPiA+ICAgICAgICAgc3RydWN0IGNxaGNpX2hv c3QgKmNxX2hvc3Q7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbW1jX2hzcSAqaHNxOw0KPiA+ICAgICAg ICAgaW50IGVycjsNCj4gPiAgICAgICAgIHN0cnVjdCBwbHRmbV9pbXhfZGF0YSAqaW14X2RhdGE7 DQo+ID4NCj4gPiBAQCAtMTY2NCw2ICsxNjg2LDE2IEBAIHN0YXRpYyBpbnQgc2RoY2lfZXNkaGNf aW14X3Byb2JlKHN0cnVjdA0KPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICAg ICAgICAgIGVyciA9IGNxaGNpX2luaXQoY3FfaG9zdCwgaG9zdC0+bW1jLCBmYWxzZSk7DQo+ID4g ICAgICAgICAgICAgICAgIGlmIChlcnIpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZ290 byBkaXNhYmxlX2FoYl9jbGs7DQo+ID4gKyAgICAgICB9IGVsc2UgaWYgKGVzZGhjX2lzX3VzZGhj KGlteF9kYXRhKSkgew0KPiA+ICsgICAgICAgICAgICAgICBoc3EgPSBkZXZtX2t6YWxsb2MoJnBk ZXYtPmRldiwgc2l6ZW9mKCpoc3EpLA0KPiBHRlBfS0VSTkVMKTsNCj4gPiArICAgICAgICAgICAg ICAgaWYgKCFoc3EpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSAtRU5PTUVN Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZGlzYWJsZV9haGJfY2xrOw0KPiA+ ICsgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBlcnIgPSBtbWNf aHNxX2luaXQoaHNxLCBob3N0LT5tbWMpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoZXJyKQ0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZGlzYWJsZV9haGJfY2xrOw0KPiA+ICAg ICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICBpZiAob2ZfaWQpDQo+ID4gQEAgLTE2NzMsNiArMTcw NSwxMSBAQCBzdGF0aWMgaW50IHNkaGNpX2VzZGhjX2lteF9wcm9iZShzdHJ1Y3QNCj4gcGxhdGZv cm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAgICAgICAgaWYgKGVycikNCj4gPiAgICAgICAgICAgICAg ICAgZ290byBkaXNhYmxlX2FoYl9jbGs7DQo+ID4NCj4gPiArICAgICAgIGlmICghbW1jX2NhcmRf aXNfcmVtb3ZhYmxlKGhvc3QtPm1tYykpDQo+ID4gKyAgICAgICAgICAgICAgIGhvc3QtPm1tY19o b3N0X29wcy5yZXF1ZXN0X2F0b21pYyA9DQo+IHNkaGNpX3JlcXVlc3RfYXRvbWljOw0KPiA+ICsg ICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBob3N0LT5hbHdheXNfZGVmZXJfZG9uZSA9 IHRydWU7DQo+ID4gKw0KPiA+ICAgICAgICAgc2RoY2lfZXNkaGNfaW14X2h3aW5pdChob3N0KTsN Cj4gPg0KPiA+ICAgICAgICAgZXJyID0gc2RoY2lfYWRkX2hvc3QoaG9zdCk7DQo+ID4gQEAgLTE3 MzcsNiArMTc3NCw4IEBAIHN0YXRpYyBpbnQgc2RoY2lfZXNkaGNfc3VzcGVuZChzdHJ1Y3QgZGV2 aWNlDQo+ICpkZXYpDQo+ID4gICAgICAgICAgICAgICAgIHJldCA9IGNxaGNpX3N1c3BlbmQoaG9z dC0+bW1jKTsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKHJldCkNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICsgICAgICAgfSBlbHNlIGlmIChlc2RoY19pc191 c2RoYyhpbXhfZGF0YSkpIHsNCj4gPiArICAgICAgICAgICAgICAgbW1jX2hzcV9zdXNwZW5kKGhv c3QtPm1tYyk7DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiAgICAgICAgIGlmICgoaW14X2RhdGEt PnNvY2RhdGEtPmZsYWdzICYNCj4gPiBFU0RIQ19GTEFHX1NUQVRFX0xPU1RfSU5fTFBNT0RFKSAm JiBAQCAtMTc2NCw2ICsxODAzLDggQEANCj4gc3RhdGljIGludA0KPiA+IHNkaGNpX2VzZGhjX3N1 c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KSAgc3RhdGljIGludA0KPiA+IHNkaGNpX2VzZGhjX3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpICB7DQo+ID4gICAgICAgICBzdHJ1Y3Qgc2RoY2lfaG9z dCAqaG9zdCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsgICAgICAgc3RydWN0IHNkaGNp X3BsdGZtX2hvc3QgKnBsdGZtX2hvc3QgPSBzZGhjaV9wcml2KGhvc3QpOw0KPiA+ICsgICAgICAg c3RydWN0IHBsdGZtX2lteF9kYXRhICppbXhfZGF0YSA9DQo+ID4gKyBzZGhjaV9wbHRmbV9wcml2 KHBsdGZtX2hvc3QpOw0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPg0KPiA+ICAgICAgICAgcmV0 ID0gcGluY3RybF9wbV9zZWxlY3RfZGVmYXVsdF9zdGF0ZShkZXYpOw0KPiA+IEBAIC0xNzc3LDgg KzE4MTgsMTEgQEAgc3RhdGljIGludCBzZGhjaV9lc2RoY19yZXN1bWUoc3RydWN0IGRldmljZQ0K PiAqZGV2KQ0KPiA+ICAgICAgICAgaWYgKHJldCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJu IHJldDsNCj4gPg0KPiA+IC0gICAgICAgaWYgKGhvc3QtPm1tYy0+Y2FwczIgJiBNTUNfQ0FQMl9D UUUpDQo+ID4gKyAgICAgICBpZiAoaG9zdC0+bW1jLT5jYXBzMiAmIE1NQ19DQVAyX0NRRSkgew0K PiA+ICAgICAgICAgICAgICAgICByZXQgPSBjcWhjaV9yZXN1bWUoaG9zdC0+bW1jKTsNCj4gPiAr ICAgICAgIH0gZWxzZSBpZiAoZXNkaGNfaXNfdXNkaGMoaW14X2RhdGEpKSB7DQo+ID4gKyAgICAg ICAgICAgICAgIG1tY19oc3FfcmVzdW1lKGhvc3QtPm1tYyk7DQo+ID4gKyAgICAgICB9DQo+ID4N Cj4gPiAgICAgICAgIGlmICghcmV0KQ0KPiA+ICAgICAgICAgICAgICAgICByZXQgPSBtbWNfZ3Bp b19zZXRfY2Rfd2FrZShob3N0LT5tbWMsIGZhbHNlKTsgQEANCj4gPiAtMTc5OSw2ICsxODQzLDgg QEAgc3RhdGljIGludCBzZGhjaV9lc2RoY19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZQ0K PiAqZGV2KQ0KPiA+ICAgICAgICAgICAgICAgICByZXQgPSBjcWhjaV9zdXNwZW5kKGhvc3QtPm1t Yyk7DQo+ID4gICAgICAgICAgICAgICAgIGlmIChyZXQpDQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgIH0gZWxzZSBpZiAoZXNkaGNfaXNfdXNkaGMo aW14X2RhdGEpKSB7DQo+ID4gKyAgICAgICAgICAgICAgIG1tY19oc3Ffc3VzcGVuZChob3N0LT5t bWMpOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICByZXQgPSBzZGhjaV9ydW50aW1l X3N1c3BlbmRfaG9zdChob3N0KTsgQEAgLTE4NTEsOCArMTg5NywxMQ0KPiBAQA0KPiA+IHN0YXRp YyBpbnQgc2RoY2lfZXNkaGNfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ ICAgICAgICAgaWYgKGVycikNCj4gPiAgICAgICAgICAgICAgICAgZ290byBkaXNhYmxlX2lwZ19j bGs7DQo+ID4NCj4gPiAtICAgICAgIGlmIChob3N0LT5tbWMtPmNhcHMyICYgTU1DX0NBUDJfQ1FF KQ0KPiA+ICsgICAgICAgaWYgKGhvc3QtPm1tYy0+Y2FwczIgJiBNTUNfQ0FQMl9DUUUpIHsNCj4g PiAgICAgICAgICAgICAgICAgZXJyID0gY3FoY2lfcmVzdW1lKGhvc3QtPm1tYyk7DQo+ID4gKyAg ICAgICB9IGVsc2UgaWYgKGVzZGhjX2lzX3VzZGhjKGlteF9kYXRhKSkgew0KPiA+ICsgICAgICAg ICAgICAgICBtbWNfaHNxX3Jlc3VtZShob3N0LT5tbWMpOw0KPiA+ICsgICAgICAgfQ0KPiA+DQo+ ID4gICAgICAgICByZXR1cm4gZXJyOw0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gPiA+IENoYW5nZXMg ZnJvbSB2ODoNCj4gPiA+ID4gPiAgLSBBZGQgbW9yZSBkZXNjcmlwdGlvbiBpbiB0aGUgY29tbWl0 IG1lc3NhZ2UuDQo+ID4gPiA+ID4gIC0gT3B0aW1pemUgdGhlIGZhaWx1cmUgbG9nIHdoZW4gY2Fs bGluZyBjcWVfZW5hYmxlKCkuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDaGFuZ2VzIGZyb20gdjc6 DQo+ID4gPiA+ID4gIC0gQWRkIHJldmlld2VkIHRhZyBmcm9tIEFybmQuDQo+ID4gPiA+ID4gIC0g VXNlIHRoZSAnaHNxJyBhY3JvbnltIGZvciB2YXJpYmxlcyBhbmQgZnVuY3Rpb25zIGluIHRoZSBj b3JlIGxheWVyLg0KPiA+ID4gPiA+ICAtIENoZWNrIHRoZSAnY2FyZC0+ZXh0X2NzZC5jbWRxX2Vu JyBpbiBjcWhjaS5jIHRvIG1ha2Ugc3VyZSB0aGUNCj4gPiA+ID4gPiBDUUUgY2FuIHdvcmsgbm9y bWFsbHkuDQo+ID4gPiA+ID4gIC0gQWRkIGEgbmV3IHBhdGNoIHRvIGVuYWJsZSB0aGUgaG9zdCBz b2Z0d2FyZSBxdWV1ZSBmb3IgdGhlIFNEIGNhcmQuDQo+ID4gPiA+ID4gIC0gVXNlIHRoZSBkZWZh dWx0IE1NQyBxdWV1ZSBkZXB0aCBmb3IgaG9zdCBzb2Z0d2FyZSBxdWV1ZS4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IENoYW5nZXMgZnJvbSB2NjoNCj4gPiA+ID4gPiAgLSBDaGFuZ2UgdGhlIHBhdGNo IG9yZGVyIGFuZCBzZXQgaG9zdC0+YWx3YXlzX2RlZmVyX2RvbmUgPSB0cnVlDQo+ID4gPiA+ID4g Zm9yIHRoZSAgU3ByZWFkdHJ1bSBob3N0IGRyaXZlci4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IENo YW5nZXMgZnJvbSB2NToNCj4gPiA+ID4gPiAgLSBNb2RpZnkgdGhlIGNvbmRpdGlvbiBvZiBkZWZl cmluZyB0byBjb21wbGV0ZSByZXF1ZXN0DQo+ID4gPiA+ID4gc3VnZ2VzdGVkIGJ5DQo+ID4gPiBB ZHJpYW4uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDaGFuZ2VzIGZyb20gdjQ6DQo+ID4gPiA+ID4g IC0gQWRkIGEgc2VwZXJhdGUgcGF0Y2ggdG8gaW50cm9kdWNlIGEgdmFyaWFibGUgdG8gZGVmZXIg dG8NCj4gPiA+ID4gPiBjb21wbGV0ZSBkYXRhIHJlcXVlc3RzIGZvciBzb21lIGhvc3QgZHJpdmVy cywgd2hlbiB1c2luZyBob3N0DQo+IHNvZnR3YXJlIHF1ZXVlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gQ2hhbmdlcyBmcm9tIHYzOg0KPiA+ID4gPiA+ICAtIFVzZSBob3N0IHNvZnR3YXJlIHF1ZXVl IGluc3RlYWQgb2Ygc3FoY2kuDQo+ID4gPiA+ID4gIC0gRml4IHJhbmRvbSBjb25maWcgYnVpbGRp bmcgaXNzdWUuDQo+ID4gPiA+ID4gIC0gQ2hhbmdlIHF1ZXVlIGRlcHRoIHRvIDMyLCBidXQgc3Rp bGwgb25seSBhbGxvdyAyIHJlcXVlc3RzIGluIGZsaWdodC4NCj4gPiA+ID4gPiAgLSBVcGRhdGUg dGhlIHRlc3RpbmcgZGF0YS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IENoYW5nZXMgZnJvbSB2MjoN Cj4gPiA+ID4gPiAgLSBSZW1vdmUgcmVmZXJlbmNlIHRvICdzdHJ1Y3QgY3FoY2lfaG9zdCcgYW5k ICdzdHJ1Y3QNCj4gPiA+ID4gPiBjcWhjaV9zbG90JywgaW5zdGVhZCBhZGRpbmcgJ3N0cnVjdCBz cWhjaV9ob3N0Jywgd2hpY2ggaXMgb25seSB1c2VkIGJ5DQo+IHNvZnR3YXJlIHF1ZXVlLg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gQ2hhbmdlcyBmcm9tIHYxOg0KPiA+ID4gPiA+ICAtIEFkZCByZXF1 ZXN0X2RvbmUgb3BzIGZvciBzZGhjaV9vcHMuDQo+ID4gPiA+ID4gIC0gUmVwbGFjZSB2aXJ0dWFs IGNvbW1hbmQgcXVldWUgd2l0aCBzb2Z0d2FyZSBxdWV1ZSBmb3INCj4gPiA+ID4gPiBmdW5jdGlv bnMgYW5kICB2YXJpYWJsZXMuDQo+ID4gPiA+ID4gIC0gUmVuYW1lIHRoZSBzb2Z0d2FyZSBxdWV1 ZSBmaWxlIGFuZCBhZGQgc3FoY2kuaCBoZWFkZXIgZmlsZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IEJhb2xpbiBXYW5nICg1KToNCj4gPiA+ID4gPiAgIG1tYzogQWRkIE1NQyBob3N0IHNvZnR3YXJl IHF1ZXVlIHN1cHBvcnQNCj4gPiA+ID4gPiAgIG1tYzogY29yZTogRW5hYmxlIHRoZSBNTUMgaG9z dCBzb2Z0d2FyZSBxdWV1ZSBmb3IgdGhlIFNEIGNhcmQNCj4gPiA+ID4gPiAgIG1tYzogaG9zdDog c2RoY2k6IEFkZCByZXF1ZXN0X2RvbmUgb3BzIGZvciBzdHJ1Y3Qgc2RoY2lfb3BzDQo+ID4gPiA+ ID4gICBtbWM6IGhvc3Q6IHNkaGNpOiBBZGQgYSB2YXJpYWJsZSB0byBkZWZlciB0byBjb21wbGV0 ZSByZXF1ZXN0cyBpZg0KPiA+ID4gPiA+ICAgICBuZWVkZWQNCj4gPiA+ID4gPiAgIG1tYzogaG9z dDogc2RoY2ktc3ByZDogQWRkIHNvZnR3YXJlIHF1ZXVlIHN1cHBvcnQNCj4gPiA+ID4gPg0KPiA+ ID4gPiA+ICBkcml2ZXJzL21tYy9jb3JlL2Jsb2NrLmMgICAgICB8ICAgNjEgKysrKysrKysNCj4g PiA+ID4gPiAgZHJpdmVycy9tbWMvY29yZS9tbWMuYyAgICAgICAgfCAgIDE4ICsrLQ0KPiA+ID4g PiA+ICBkcml2ZXJzL21tYy9jb3JlL3F1ZXVlLmMgICAgICB8ICAgMjIgKystDQo+ID4gPiA+ID4g IGRyaXZlcnMvbW1jL2NvcmUvc2QuYyAgICAgICAgIHwgICAxMCArKw0KPiA+ID4gPiA+ICBkcml2 ZXJzL21tYy9ob3N0L0tjb25maWcgICAgICB8ICAgIDggKw0KPiA+ID4gPiA+ICBkcml2ZXJzL21t Yy9ob3N0L01ha2VmaWxlICAgICB8ICAgIDEgKw0KPiA+ID4gPiA+ICBkcml2ZXJzL21tYy9ob3N0 L2NxaGNpLmMgICAgICB8ICAgIDggKy0NCj4gPiA+ID4gPiAgZHJpdmVycy9tbWMvaG9zdC9tbWNf aHNxLmMgICAgfCAgMzQzDQo+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ID4gPiA+ICBkcml2ZXJzL21tYy9ob3N0L21tY19oc3EuaCAgICB8ICAgMzAg KysrKw0KPiA+ID4gPiA+ICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLXNwcmQuYyB8ICAgMjggKysr Kw0KPiA+ID4gPiA+ICBkcml2ZXJzL21tYy9ob3N0L3NkaGNpLmMgICAgICB8ICAgMTQgKy0NCj4g PiA+ID4gPiAgZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5oICAgICAgfCAgICAzICsNCj4gPiA+ID4g PiAgaW5jbHVkZS9saW51eC9tbWMvaG9zdC5oICAgICAgfCAgICAzICsNCj4gPiA+ID4gPiAgMTMg ZmlsZXMgY2hhbmdlZCwgNTM0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKSAgY3JlYXRl DQo+ID4gPiA+ID4gbW9kZQ0KPiA+ID4gPiA+IDEwMDY0NCBkcml2ZXJzL21tYy9ob3N0L21tY19o c3EuYyAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gZHJpdmVycy9tbWMvaG9zdC9tbWNf aHNxLmgNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gMS43LjkuNQ0KPiA+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+IEFwcGxpZWQgZm9yIG5leHQsIHRoYW5rcyEgQWxzbywgdGhh bmtzIGZvciB5b3VyIHBhdGllbmNlIHdoaWxlDQo+ID4gPiA+IG1vdmluZyBmb3J3YXJkIGR1cmlu ZyB0aGUgcmV2aWV3cyENCj4gPiA+DQo+ID4gPiBJIGFtIHZlcnkgYXBwcmVjaWF0ZWQgZm9yIHlv dSBhbmQgQXJuZCdzIGdvb2Qgc3VnZXN0aW9uIHdoZW4NCj4gPiA+IGludHJvZHVjaW5nIHRoZSBo c3EuDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBOb3RlLCBJIGRpZCBzb21lIGFtZW5kaW5nIG9m IHBhdGNoMSB0byByZXNvbHZlIHNvbWUgY2hlY2twYXRjaA0KPiA+ID4gPiB3YXJuaW5ncy4gU1BE WCBsaWNlbmNlIGFuZCBLY29uZmlnIGhlbHAgdGV4dHMsIHBsZWFzZSBoYXZlIGEgbG9vaw0KPiA+ ID4gPiBhbmQgdGVsbCBpZiB0aGVyZSBhcmUgc29tZXRoaW5nIHRoYXQgZG9lc24ndCBsb29rIGdv b2QuDQo+ID4gPg0KPiA+ID4gVGhhbmtzIGZvciB5b3VyIGhlbHAgYW5kIGxvb2tzIGdvb2QgdG8g bWUuDQo+IA0KPiANCj4gDQo+IC0tDQo+IEJhb2xpbiBXYW5nDQo=