From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC404C282C3 for ; Tue, 22 Jan 2019 13:17:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 524B320870 for ; Tue, 22 Jan 2019 13:17:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="H1HgI2pj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728446AbfAVNRs (ORCPT ); Tue, 22 Jan 2019 08:17:48 -0500 Received: from mail-eopbgr30050.outbound.protection.outlook.com ([40.107.3.50]:19328 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728239AbfAVNRr (ORCPT ); Tue, 22 Jan 2019 08:17:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MhabiDE5qoZAvNCTzy9TUa155IHrxp7B7tY9T1Zwt+A=; b=H1HgI2pjlOKUYXBpiaOPOC5uQjixXUxpBwSix1qlGLnahpG/NvpDpzvr8mc+hV2+PIbE0170SyS+HuNFjQGm5h5Y/GTvWJyJaumcdKxZTVOGwKmMbwI3AxpBsR6bJZvMcM+TZctbqA82F91bDk89Lg4I2iL0svEO9CnIjBF324w= Received: from AM0PR04MB4211.eurprd04.prod.outlook.com (52.134.126.21) by AM0PR04MB5475.eurprd04.prod.outlook.com (20.178.113.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.29; Tue, 22 Jan 2019 13:17:40 +0000 Received: from AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::c4d2:7dfd:4576:bdd5]) by AM0PR04MB4211.eurprd04.prod.outlook.com ([fe80::c4d2:7dfd:4576:bdd5%5]) with mapi id 15.20.1558.016; Tue, 22 Jan 2019 13:17:40 +0000 From: Aisheng Dong To: Lucas Stach , "linux-kernel@vger.kernel.org" CC: "linux-arm-kernel@lists.infradead.org" , "shawnguo@kernel.org" , dl-linux-imx , "robh+dt@kernel.org" , "devicetree@vger.kernel.org" , "tglx@linutronix.de" , Marc Zyngier Subject: RE: [PATCH 4/4] irq: imx: irqsteer: add multi output interrupts support Thread-Topic: [PATCH 4/4] irq: imx: irqsteer: add multi output interrupts support Thread-Index: AQHUrwL34aHTasx2wUetvBoWoE17FaW0uIqAgAAPyPCAAAkjAIAGQGdggAATKACAAAvHEIAAE9mAgAACphA= Date: Tue, 22 Jan 2019 13:17:40 +0000 Message-ID: References: <1547797668-30342-1-git-send-email-aisheng.dong@nxp.com> <1547797668-30342-5-git-send-email-aisheng.dong@nxp.com> <1547801609.2626.5.camel@pengutronix.de> <1547806960.2626.9.camel@pengutronix.de> <1548154758.2465.20.camel@pengutronix.de> <1548161549.2465.24.camel@pengutronix.de> In-Reply-To: <1548161549.2465.24.camel@pengutronix.de> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisheng.dong@nxp.com; x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM0PR04MB5475;6:MTTONyrazWKmSaIjoffkQAME3rOr7qfD1Ej0yrQXszdcQ2azFi/fwQg753Bv2bzkMKyMxkDBtP16J9QSP/KAkToyj677mdjgLOi42hJzlGMPW62mjlJJtF/KSP5TxKMNNFWzbiOSUeWVTVJ7S9zGxkDLfNKqGcmcC4EIS5K4Pvq0sNZkjErSx6910UukR18OlyM0MSPwrMKpDs+BAwSkCSg6O774AJQxcHbakgTallRz3t67CjKKwJwQnNtrOH11eW8UVyZaB8gYoSz3FQT6lvJVyNmrLrmjWJMcdmAYptC6le3zZSV8mBrJDHI/jksLrHNC8aHN53urtq2gTNjrAFHUIcBlsjUhmd28u4jSqne/ejADpKsVrTJ6zX140cv8UffBFYkBSE6WIyf+nqbfGJMjTWLHObazZetn/TnlIBxXkOh2yrsMLQI4SZFwi8+36sKb+zZuP0GJL6JNMrg7bQ==;5:gfgVLIB+N7wCWdsN8Rlo7rbqAI/+JBsToYn2IJZ6qUv0wqG8z+tDHdoHHMqPqka4Kxy6pMMr48P902PJzL0a65mNVHdsEt3V1Ri2GZ+Fe4tadS2I+pr+mRajKTdm7KJU4ZoZhKFQK3WlobEag6M+77Pnu8Nx2g5MXNpF4rEHxvizFEHxi4dP1y/uI66svhI1+kHNo3Ya/TsLSGzDTb3k0Q==;7:XGj0hCR8BjLj3eTJQ2+61HTRg+LO9MREfTr3fgoVRMa8yAsUmRZ8qJyMKfy7OWOKlGzFQhA1GXejsY1b4kXg9jReFEgjDwEyya42zDvBrorz7xg2VdNSfpybNMsY60BRkCHZJJK/ZPJ+X6h9iATGCw== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: e93348a6-62bb-4f28-0975-08d6806bfc6e x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:AM0PR04MB5475; x-ms-traffictypediagnostic: AM0PR04MB5475: x-microsoft-antispam-prvs: x-forefront-prvs: 0925081676 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(39860400002)(376002)(396003)(366004)(136003)(189003)(199004)(476003)(74316002)(11346002)(446003)(486006)(105586002)(106356001)(44832011)(6116002)(33656002)(7696005)(102836004)(76176011)(66066001)(26005)(186003)(53546011)(6506007)(3846002)(97736004)(81166006)(8936002)(6436002)(316002)(81156014)(110136005)(54906003)(71200400001)(71190400001)(55016002)(68736007)(93886005)(229853002)(25786009)(305945005)(53936002)(7736002)(2501003)(478600001)(99286004)(14454004)(8676002)(86362001)(4326008)(256004)(14444005)(9686003)(6246003)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM0PR04MB5475;H:AM0PR04MB4211.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: NU9bIpFkzFxD9k4Z6dCLHD2FTn9y2iE1dkm76Cj8e8SCFpGcTPOLW5PHmRvEhSP3tf4nvk+M7NpdGYaOdMZvBIsiZtZ0ilBfGUd/7WWRaoJ1S3hSzZZ9sjCfUK7PYBDyBY89eH8btVXOqQoj8iEFl7WLzpLLJUfRbQf0iesYntDP04rW6ZxVeO/DBLW6cZ38imt61zhp0ykTd0qkKVt8guA/IXmLpjS1EyGnCOoCEbRB3FjDDqtFjAWvxiGEIv9Cyomnths8l8PDho1l0A2kBXuM7aBIiJUtwT+wcVKaZOyTFq95ObjZ4L4aL/SWtmFyoScyxRM800ct3jZwIiqN9pu4xDCTeYDgSJRWBEK0UjtGlviC+nGAada7747qG0mP9t4PnPqVNmRBQEzxoaXUb6r9OxHKuqpRzt3yV+qPyTQ= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM 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: e93348a6-62bb-4f28-0975-08d6806bfc6e X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2019 13:17:40.2948 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5475 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBGcm9tOiBMdWNhcyBTdGFjaCBbbWFpbHRvOmwuc3RhY2hAcGVuZ3V0cm9uaXguZGVdDQo+IFNl bnQ6IFR1ZXNkYXksIEphbnVhcnkgMjIsIDIwMTkgODo1MiBQTQ0KPiBUbzogQWlzaGVuZyBEb25n IDxhaXNoZW5nLmRvbmdAbnhwLmNvbT47IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcNCj4g Q2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsgc2hhd25ndW9Aa2VybmVs Lm9yZzsgZGwtbGludXgtaW14DQo+IDxsaW51eC1pbXhAbnhwLmNvbT47IHJvYmgrZHRAa2VybmVs Lm9yZzsgZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmc7DQo+IHRnbHhAbGludXRyb25peC5kZTsg TWFyYyBaeW5naWVyIDxtYXJjLnp5bmdpZXJAYXJtLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRD SCA0LzRdIGlycTogaW14OiBpcnFzdGVlcjogYWRkIG11bHRpIG91dHB1dCBpbnRlcnJ1cHRzIHN1 cHBvcnQNCj4gDQo+IEFtIERpZW5zdGFnLCBkZW4gMjIuMDEuMjAxOSwgMTI6MDMgKzAwMDAgc2No cmllYiBBaXNoZW5nIERvbmc6DQo+ID4gPiA+ID4gRnJvbTogTHVjYXMgU3RhY2ggW21haWx0bzps LnN0YWNoQHBlbmd1dHJvbml4LmRlXQ0KPiA+ID4gU2VudDogVHVlc2RheSwgSmFudWFyeSAyMiwg MjAxOSA2OjU5IFBNDQo+ID4gPg0KPiA+ID4gQW0gRGllbnN0YWcsIGRlbiAyMi4wMS4yMDE5LCAx MDozOSArMDAwMCBzY2hyaWViIEFpc2hlbmcgRG9uZzoNCj4gPiA+ID4gPiA+ID4gRnJvbTogTHVj YXMgU3RhY2ggW21haWx0bzpsLnN0YWNoQHBlbmd1dHJvbml4LmRlXQ0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDE4LCAyMDE5IDY6MjMgUE0NCj4gPiA+ID4NCj4g PiA+ID4gWy4uLl0NCj4gPiA+ID4gPiA+ID4gVGhpcyBoYXMgYmVlbiBkaXNjdXNzZWQgd2hlbiB1 cHN0cmVhbWluZyB0aGUgZHJpdmVyLiBUaGUNCj4gPiA+ID4gPiA+ID4gY29udHJvbGxlciBtYXkg c3VwcG9ydCBtdWx0aXBsZSBvdXRwdXQgSVJRcywgYnV0IG9ubHkgb25lDQo+ID4gPiA+ID4gPiA+ IHRoZW0gaXMgYWN0dWFsbHkgdXNlZCBkZXBlbmRpbmcgb24gdGhlIENIQU5DVFJMIGNvbmZpZy4N Cj4gPiA+ID4gPiA+ID4gVGhlcmUgaXMgbm8gdXNlIGluIGhvb2tpbmcgdXAgYWxsIHRoZSBvdXRw dXQgSVJRcyBpbiBEVCwgaWYNCj4gPiA+ID4gPiA+ID4gb25seSBvbmUgb2YgdGhlbSBpcyBhY3R1 YWxseSB1c2VkLiBTb21lIG9mIHRoZSBvdXRwdXRzIG1heQ0KPiA+ID4gPiA+ID4gPiBub3QgZXZl biBiZSB2aXNpYmxlIHRvIHRoZSBMaW51eCBzeXN0ZW0sIGJ1dCBtYXkgYmVsb25nIHRvIGENCj4g PiA+ID4gPiA+ID4gQ29ydGV4IE00IHN1YnN5c3RlbS4gQWxsIG9mIHRob3NlIGNvbmZpZ3VyYXRp b25zIGNhbiBiZQ0KPiA+ID4gPiA+ID4gPiBkZXNjcmliZWQgaW4gRFQgYnkgY2hhbmdpbmcgdGhl IHVwc3RyZWFtIGludGVycnVwdCBhbmQNCj4gPiA+ID4gPiA+ID4gImZzbCxjaGFubmVsIiBpbiBh DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBjb2hlcmVudCB3YXkuDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IFBsZWFzZSBjb3JyZWN0IG1lIGlmIG15IHVuZGVyc3RhbmRpbmcgaXMgdG90YWxs eSB3cm9uZy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJJ20gYWZyYWlkIHlvdXIgdW5kZXJz dGFuZGluZyBvZiBDSEFOIHNlZW1zIHdyb25nLg0KPiA+ID4gPiA+ID4gKEJpbmRpbmcgZG9jIG9m IHRoYXQgcHJvcGVydHkgbmVlZHMgY2hhbmdlIGFzIHdlbGwpLg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+IE9uIFFYUCBEQyBTUywgdGhlIElSUVNURUVSIHN1cHBvcnRzIDUxMiBpbnRlcnJ1cHRz IHdpdGggOA0KPiA+ID4gPiA+ID4gaW50ZXJydXB0IG91dHB1dCBDb25udGVjdGVkIHRvIEdJQy4N Cj4gPiA+ID4gPiA+IFRoZSBjdXJyZW50IGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IGl0IGFzIGl0 IGFzc3VtZXMgb25seSBvbmUNCj4gPiA+ID4gPiA+IGludGVycnVwdA0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gb3V0cHV0IHVzZWQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBPa2F5LCBzbyBsZXQncyB0 YWtlIGEgc3RlcCBiYWNrLiBUaGUgZGVzY3JpcHRpb24gaW4gdGhlIFFYUCBSTQ0KPiA+ID4gPiA+ IGlzIGFjdHVhbGx5IGJldHRlciB0aGFuIHdoYXQgSSd2ZSBzZWVuIHVudGlsIG5vdy4gU3RpbGwg aXQncw0KPiA+ID4gPiA+IHRvdGFsbHkgY29uZnVzaW5nIHRoYXQNCj4gPiA+DQo+ID4gPiB0aGUg ImNoYW5uZWwiDQo+ID4gPiA+ID4gdGVybWlub2xvZ3kgdXNlZCB3aXRoIGRpZmZlcmVudCBtZWFu aW5ncyBpbiBkb2NzLiBMZXQncyB0cnkgdG8NCj4gPiA+ID4gPiBhdm9pZCB0aGlzIGFzIG11Y2gg YXMgcG9zc2libGUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTbyB0byBnZXQgdGhpbmdzIHN0cmFp Z2h0OiBFYWNoIGlycXN0ZWVyIGNvbnRyb2xsZXIgaGFzIGEgbnVtYmVyDQo+ID4gPiA+ID4gb2Yg SVJRDQo+ID4gPg0KPiA+ID4gZ3JvdXBzLg0KPiA+ID4gPiA+IEFsbCB0aGUgaW5wdXQgSVJRcyBv ZiBvbmUgZ3JvdXAgYXJlIE9SZWQgdG9nZXRoZXIgdG8gZm9ybSBvbiBvdXRwdXQNCj4gSVJRLg0K PiA+ID4gPiA+IERlcGVuZGluZyBvbiB0aGUgU29DIGludGVncmF0aW9uLCBhIGdyb3VwIGNhbiBj b250YWluIDMyIG9yDQo+ID4gPiA+ID4gNjQgSVJRcywgd2hlcmUgRENTUyBpcnFzdGVlciBvbiBN WDhNIGFuZCB0aGUgYmlnIDUxMiBpbnB1dA0KPiA+ID4gPiA+IGNvbnRyb2xsZXJzIG9uIFFYUCBh bmQgUU0gYm90aCB1c2UgNjQgSVJRcyBwZXIgZ3JvdXAuIFlvdSBhcmUNCj4gPiA+ID4gPiBjbGFp bWluZyB0aGF0IHRoZSBzbWFsbGVyIGNvbnRyb2xsZXJzIG9uIGJvdGggUVhQIGFtIFFNIGhhdmUN Cj4gPiA+ID4gPiBvbmx5IDMyDQo+ID4gPg0KPiA+ID4gSVJRcyBwZXIgZ3JvdXAsIHJpZ2h0Pw0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gU28gdGhlIG9ubHkgY2hhbmdlIHRoYXQgaXMgbmVlZGVkIGlz IHRoYXQgdGhlIGRyaXZlciBuZWVkcyB0bw0KPiA+ID4gPiA+IGtub3cgdGhlIG51bWJlciBvZiBp bnB1dCBJUlFzIHBlciBncm91cCwgd2l0aCBhIGRlZmF1bHQgb2YgNjQgdG8NCj4gPiA+ID4gPiBu b3QgYnJlYWsgRFQNCj4gPiA+DQo+ID4gPiBjb21wYXRpYmlsaXR5Lg0KPiA+ID4gPiA+DQo+ID4g PiA+DQo+ID4gPiA+IE5vdCBleGFjdGx5Lg0KPiA+ID4gPiBmcm9tIEhXIHBvaW50IG9mIHZpZXcg LCB0aGVyZSdyZSB0d28gcGFyYW1ldGVycyBkdXJpbmcgSVJRU1RFRVINCj4gPiA+DQo+ID4gPiBp bnRlZ3JhdGlvbi4NCj4gPiA+ID4gRm9yIGV4YW1wbGUsDQo+ID4gPiA+IERDIGluIFFYUDoNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcGFyYW1ldGVywqDCoElSUUNIQU4JCT3CoMKg MTsNCj4gCS8vTnVtYmVyIG9mIElSUSBDaGFubmVscy9TbG90cw0KPiA+ID4gPiA+ID4gcGFyYW1l dGVywqDCoE5JTlQzMgkJPcKgwqA4OwkvL051bWJlciBvZiBpbnRlcnJ1cHRzIGluDQo+IG11bHRp cGxlDQo+ID4gPg0KPiA+ID4gb2YgMzINCj4gPiA+DQo+ID4gPiBJZiB0aGlzIGlzIGFsd2F5cyBp biBtdWx0aXBsZXMgb2YgMzIsIHRoZSBvbmx5IGNoYW5nZSB3ZSBuZWVkIHRvDQo+ID4gPiBtYWtl IHRvIHRoZSBkcml2ZXIgaXMgdG8gZml4IERUIGJpbmRpbmcgYW5kIGludGVycHJldGF0aW9uIG9m IHRoZQ0KPiA+ID4gImZzbCxpcnEtZ3JvdXBzIiBwcm9wZXJ0eSB0byBiZSBpbiBtdWx0aXBsZXMg b2YgMzIuDQo+ID4gPg0KPiA+ID4gVGhpcyBtZWFucyBpLk1YOE1RIERDU1MgaXJxc3RlZXIgd291 bGQgbmVlZCB0byBjaGFuZ2UgdG8gMg0KPiA+ID4gaXJxLWdyb3VwcywgYnV0IGFzIHRoaXMgaXNu J3QgdXNlZCB1cHN0cmVhbSB5ZXQgd2UgY2FuIHN0aWxsIGRvIHRoaXMNCj4gPiA+IGNoYW5nZSB3 aXRob3V0IGJyZWFraW5nIHRvbyBtdWNoIHN0dWZmIGFuZCBJIHdvdWxkIHJhdGhlciBjb3JyZWN0 DQo+ID4gPiB0aGlzIG5vdyB0aGFuIGtlZXBpbmcgYSBEVCBiaW5kaW5nIGFyb3VuZCB0aGF0IGRv ZXNuJ3QgbWF0Y2ggdGhlIEhXLg0KPiA+ID4NCj4gPg0KPiA+IFdlIHdhbnQgdG8gYXZvaWQgdXNp bmcgb2YgaXJxLWdyb3VwcyBhcyBpdCdzIHdyb25nLg0KPiA+IFN0aWNrIHRvIEhXIHBhcmFtZXRl cnMsIG9ubHkgY2hhbm5lbCBudW1iZXIgYW5kIGludGVycnVwdHMgbnVtYmVyIHNob3VsZA0KPiBi ZSB1c2VkLg0KPiANCj4gVGhlIGZzbCxpcnEtZ3JvdXBzIHByb3BlcnR5IGlzIGV4YWN0bHkgeW91 ciBOSU5UMzIgcGFyYW1ldGVyIGFib3ZlLiBJIGp1c3QNCj4gd3JvbmdseSBhc3N1bWVkIHRoYXQg aXQncyBhbHdheXMgaW4gbXVsdGlwbGVzIG9mIDY0LCBhcyB0aGF0J3Mgd2hhdCB0aGUNCj4gaS5N WDhNUSBEQ1NTIGlycXN0ZWVyIG1vZHVsZSBsb29rcyBsaWtlLiBXZSBzaG91bGQgZml4IHRoaXMg YW5kIGJlIGRvbmUgd2l0aA0KPiBpdC4NCj4gDQoNCk5vLCBub3QgZXhhY3RseSB0aGUgc2FtZSB0 aGluZy4gVXNpbmcgZ3JvdXAgd2lsbCBjb25mdXNlIHBlb3BsZSB0aGF0IHRoZSBncm91cCBpcyAz Mi4NCkhvd2V2ZXIsIGludGVybmFsbHkgR3JvdXAgaXMgZml4ZWQgNjQgaW50ZXJydXB0cyBhbHRo b3VnaCBpdCBtYXkgbm90IHVzZSBhbGwgdGhlDQo2NCBpbnRlcnJ1cHRzLiBFLmcuIDMyIGludGVy cnVwdHMuDQpTZWUgQ0huX01JTlRESVMgcmVnaXN0ZXIgd2hpY2ggaXMgYWxzbyBkZWZpbmVkIGZp eGVkIHRvIDY0Lg0KDQpUaGUgdHdvIEhXIHBhcmFtZXRlciBmb3IgaW50ZWdyYXRpb24gaXMgYWxy ZWFkeSB2ZXJ5IGNsZWFyLiBXZSBzaG91bGQgdXNlIGludGVycnVwdHMNCk51bWJlciBmb3IgdGhl IGNoYW5uZWwuIE5vdCBncm91cC4gDQoNCj4gPiA+ID4gTUlQSSBDU0kgaW4gTVE6DQo+ID4gPiA+ ID4gPiA+ID4gPiBQYXJhbWV0ZXLCoMKgSVJRQ0hBTgkJPSAxDQo+ID4gPiA+ID4gUGFyYW1ldGVy wqDCoE5JTlQzMgkJPSAxDQo+ID4gPiA+DQo+ID4gPiA+IFlvdSB3aWxsIHNlZSBubyBncm91cCBj b25jZXB0IHVzZWQgaGVyZS4gT25seSBjaGFubmVsIG51bWJlciBhbmQNCj4gPiA+DQo+ID4gPiBp bnRlcnJ1cHRzIG51bWJlci4NCj4gPiA+ID4gVGhlIGdyb3VwIGlzIGFuIElQIGludGVybmFsIGNv bmNlcHQgdGhhdCBPUmVkIGEgZ3JvdXAgb2YgNjQNCj4gPiA+ID4gaW50ZXJydXB0cyBpbnRvIGFu IG91dHB1dCBpbnRlcnJ1cHQuIEJ1dCBpdCBtYXkgYWxzbyBvbmx5IHVzZSAzMg0KPiA+ID4gPiBp bnRlcnJ1cHRzIGluIHRoZSBzYW1lDQo+ID4gPg0KPiA+ID4gZ3JvdXAuDQo+ID4gPg0KPiA+ID4g SSBzdXBwb3NlIHRoYXQgdGhlIE9SIGdyb3VwIHNpemUgYXQgdGhhdCBwb2ludCBpcyBhbHdheXMg NjQgaW5wdXQNCj4gPiA+IElSUXMgcGVyIG91dHB1dCBJUlEsIHJpZ2h0PyBTbyB3aXRoIE5JTlQz MiA9PSAxIHlvdSBlbmQgdXAgd2l0aCAxDQo+ID4gPiBvdXRwdXQgSVJRLCBidXQgZm9yDQo+ID4g PiBOSU5UMzIgPT0gMyB5b3UgZ2V0IDIgb3V0cHV0IElSUXMsIGNvcnJlY3Q/DQo+ID4NCj4gPiBZ ZXMsIHRoYXQncyByaWdodC4NCj4gPg0KPiA+ID4NCj4gPiA+ID4gPiBBbHNvIGlmIHRoZSBjb25u ZWN0aW9uIGJldHdlZW4gSVJRIGdyb3VwIGFuZCBvdXRwdXQgSVJRIGlzDQo+ID4gPiA+ID4gZml4 ZWQsIHRoZSBkcml2ZXIgc2hvdWxkIGJlIG1vcmUgY2xldmVyIGFib3V0IGhhbmRsaW5nIHRoZQ0K PiA+ID4gPiA+IGNoYWluZWQgSVJRLiBJZiB5b3Uga25vdyB3aGljaCBvZiB0aGUgdXBzdHJlYW0g SVJRcyBmaXJlZCB5b3UNCj4gPiA+ID4gPiBvbmx5IG5lZWQgdG8gbG9vayBhdCB0aGUgMzIgb3Ig NjQgSVJRIHN0YXR1cyByZWdpc3RlcnMgb2YgdGhhdCBzcGVjaWZpYw0KPiBncm91cCwgbm90IGFs bCBvZiB0aGVtLg0KPiA+ID4gPg0KPiA+ID4gPiBZZXMsIHRoYXQncyByaWdodC4NCj4gPiA+ID4g SSBwbGFubmVkIHRvIGRvIHRoYXQgbGF0ZXIgd2l0aCBhIHNlcGFyYXRlIHBhdGNoIGJlZm9yZS4N Cj4gPiA+DQo+ID4gPiBMZXQncyBkbyBpdCByaWdodCB3aXRoIHRoZSBmaXJzdCBwYXRjaC4gVGhp cyBkb2Vzbid0IHNlZW0gbGlrZSBhIGJpZyBjaGFuZ2UuDQo+ID4gPg0KPiA+DQo+ID4gV2UgY2Fu IGRvIGl0Lg0KPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDYW4geW91IHBsZWFz ZSBjbGFyaWZ5IHdoYXQgdGhlIENIQU5DVFJMIHNldHRpbmcgY2hhbmdlcyBpbiB0aGlzDQo+IHNl dHVwPw0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IElSUXN0ZWVyIHN1cHBvcnRzIHVwIHRv IDUgc2VwYXJhdGUgQ0FITk5FTFMgd2hpY2ggZWFjaCBvZiB0aGVtDQo+ID4gPiA+IHN1cHBvcnRz IHVwIHRvIDUxMiBpbnRlcnJ1cHRzLiBDSEFOQ1RMIGlzIHVzZWQgdG8gZW5hYmxlIHRob3NlDQo+ ID4gPiA+IHJlc3BlY3RpdmUNCj4gPiA+DQo+ID4gPiBDSEFOIG91dHB1dCBpbnRlcnJ1cHRzLg0K PiA+ID4gPiBlLmcuDQo+ID4gPiA+IDF+OCBvdXRwdXQgaW50ZXJydXB0cyBvZiBDSEFOMC4NCj4g PiA+ID4NCj4gPiA+ID4gT25lIG5vdGFibGUgdGhpbmcgaXMgdGhlIGVhY2ggY2hhbm5lbCBoYXMg YSBzZXBhcmF0ZSBhZGRyZXNzIHNwYWNlLg0KPiA+ID4gPiBUaGF0IG1lYW5zIHRoZSBjaGFuMSBy ZWcgYWRkcmVzcyBpcyBub3QgdGhlIG9uZSB3ZSBzcGVjaWZpZWQgaW4NCj4gPiA+ID4gZGVmYXVs dCByZWcNCj4gPiA+DQo+ID4gPiBwcm9wZXJ0eS4NCj4gPiA+ID4gU28gdGhlIGNvcnJlY3QgZHRz IG1heSBiZSBsaWtlIGZvciBtdWx0aSBjaGFubmVscyBjYXNlcy4NCj4gPiA+ID4gaW50ZXJydXB0 LWNvbnRyb2xsZXJAMzJlMmQwMDAgew0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgY29tcGF0aWJs ZSA9ICJmc2wsaW14OG0taXJxc3RlZXIiLCAiZnNsLGlteC1pcnFzdGVlciI7DQo+ID4gPiA+IMKg wqDCoMKgwqDCoMKgwqByZWcgPSA8MHgzMmUyZDAwMCAweDEwMDA+LA0KPiA+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgPDB4MzJlMmUwMDAgMHgxMDAwPiwNCj4gPiA+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoDwweDMyZTJmMDAwIDB4MTAwMD47DQo+ID4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuLi4NCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoHJlZy1u YW1lcyA9ICJjaDAiLCAiY2gxIiwgImNoMiIsIC4uLjsNCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDC oGludGVycnVwdHMgPSA8R0lDX1NQSSAxOCBJUlFfVFlQRV9MRVZFTF9ISUdIPjsNCj4gPiA+ID4g wqDCoMKgwqDCoMKgwqDCoGZzbCxpcnFzLXBlci1jaGFuPSA8NjQ+Ow0KPiA+ID4gPiDCoMKgwqDC oMKgwqDCoMKgaW50ZXJydXB0LWNvbnRyb2xsZXI7DQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqAj aW50ZXJydXB0LWNlbGxzID0gPDI+OyAvL2NlbGwgMDogY2hhbiBpbmRleCBjZWxsIDI6DQo+ID4g PiA+IGludGVycnVwdCBudW1iZXIgfTsgVGhpcyBtYWtlcyB0aGUgdGhpbmdzIHF1aXRlIGNvbXBs aWNhdGVkLg0KPiA+ID4NCj4gPiA+IFdpdGggdGhlIGN1cnJlbnQgYmluZGluZywgd2hhdCBrZWVw cyB1cyBmcm9tIGRlc2NyaWJpbmcgc3VjaCBhDQo+ID4gPiBtdWx0aS0gY2hhbm5lbCBpcnFzdGVl ciB3aXRoIG11bHRpcGxlIERUIG5vZGVzIGFuZCBoYXZlIG11bHRpcGxlDQo+ID4gPiBkcml2ZXIg aW5zdGFuY2VzPyBJIGRvbid0IHNlZSB3aHkgd2Ugd291bGQgbmVlZCB0byBtaXggdGhpcyBhbGwg aW50byBvbmUNCj4gZHJpdmVyIGluc3RhbmNlLg0KPiA+ID4gU28gZm9yIHlvdXIgYWJvdmUNCj4g PiA+IGV4YW1wbGUsIHNvbWV0aGluZyBsaWtlOg0KPiA+ID4NCj4gPiA+IGludGVycnVwdC1jb250 cm9sbGVyQDMyZTJkMDAwIHsNCj4gPiA+IAljb21wYXRpYmxlID0gImZzbCxpbXg4bS1pcnFzdGVl ciIsICJmc2wsaW14LWlycXN0ZWVyIjs+DQo+ID4gPiAJcmVnID0gPDB4MzJlMmQwMDAgMHgxMDAw PjsNCj4gPiA+IAlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTggSVJRX1RZUEVfTEVWRUxfSElHSD47 DQo+ID4gPiAJZnNsLGNoYW5uZWwgPSA8MD47DQo+ID4gPiB9Ow0KPiA+ID4NCj4gPiA+IGludGVy cnVwdC1jb250cm9sbGVyQDMyZTJlMDAwIHsNCj4gPiA+IAljb21wYXRpYmxlID0gImZzbCxpbXg4 bS1pcnFzdGVlciIsICJmc2wsaW14LWlycXN0ZWVyIjs+DQo+ID4gPiAJcmVnID0gPDB4MzJlMmUw MDAgMHgxMDAwPjsNCj4gPiA+IAlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMjYgSVJRX1RZUEVfTEVW RUxfSElHSD47DQo+ID4gPiAJZnNsLGNoYW5uZWwgPSA8MT47DQo+ID4gPiB9Ow0KPiA+ID4NCj4g Pg0KPiA+IEJlY2F1c2UgZnJvbSBIVyBwb2ludCBvZiB2aWV3LCBpdCBJUyBhY3R1YWxseSBvbmUg SVJRU1RFRVIgbW9kdWxlIHdpdGgNCj4gPiBtdWx0aSBjaGFubmVscyBzdXBwb3J0ZWQuIFNvIEkg ZmVlbCBkZXNjcmliZSBlYWNoIGNoYW5uZWwgaW50byBzZXZlcmFsDQo+ID4gbm9kZXMgc2VlbXMg dmlvbGF0ZSB0aGUgSFcgYSBiaXQuIFRoYXQgd2h5IEkgbWFkZSB0aGUgZm9ybWVyIGR0cyBiaW5k aW5nIGFzDQo+IGFuIGV4YW1wbGUuDQo+IA0KPiBZZXMsIERUIGRlc2NyaWJlcyBIVyBidXQgdGhh dCBkb2Vzbid0IG1lYW4gd2Ugc2xhdmlzaGx5IG5lZWQgdG8gc3RpY2sgdG8gdGhlDQo+IEhXIG1v ZHVsZSBib3VuZGFyaWVzLiBEVCBpcyBhbHdheXMgYWxzbyBhbiBhYnN0cmFjdGlvbiBvdmVyIHRo ZSBoYXJkd2FyZSwgc28NCj4gaWYgd2UgY2FuIGJvdGggZGVzY3JpYmUgdGhlIEhXIG1vcmUgZWFz aWx5IGFuZCBrZWVwIHRoZSBkcml2ZXIgc2ltcGxlciBieQ0KPiB0cmVhdGluZyB0aGUgSFcgYmxv Y2sgYXMgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHRoaW5nLCBJIHRoaW5rIHdlDQo+ IHNob3VsZCBkbyB0aGlzLg0KPiANCg0KWWVzLCBwbGVhc2UgY2hlY2sgbXkgYW5vdGhlciBtYWls IHRoYXQgSSdtIGludGVuZCB0byBhZ3JlZSB3aXRoIHlvdS4NCg0KPiA+IEFub3RoZXIgcG9pbnQg aXMgdGhhdCB0aGVyZSdzIG9ubHkgb25lIHBoeXNpY2FsIENIQU5DVEwgcmVnaXN0ZXINCj4gPiBz aGFyZWQgd2l0aCBtdWx0aSBjaGFubmVscy4gSG93ZXZlciwgZWFjaCBjaGFubmVsIHNlZW1zIHVz ZSBhIG1pcnJvcg0KPiA+IENBSE5DVFJMIHJlZ2lzdGVyIGluIGl0cyBzZXBhcmF0ZSByZWdpc3Rl ciBzcGFjZSB0byBlbmFibGUgdGhlIGNoYW5uZWwuIEJ1dA0KPiBuZWVkcyBjYXJlIGFib3V0IG92 ZXJ3cml0ZSBvdGhlcnMuDQo+ID4gKEdvdCB0aGlzIGluZm9ybWF0aW9uIGFmdGVyIGRpc2N1c3Np bmcgd2l0aCBJQyBndXlzLCBzdGlsbCBub3QNCj4gPiB2ZXJpZmllZCkNCj4gDQo+IFNvIHRoYXQn cyBzb21ldGhpbmcgSSBkb24ndCB1bmRlcnN0YW5kIHlldC4gVGhlIGRvY3Mgc3RhdGUgdGhhdCBv bmx5IG9uZSBvZiB0aGUNCj4gQ0hBTkNUTCBDSCBiaXQgY2FuIGJlIGFjdGl2ZSBhdCBhbnkgdGlt ZS4gSWYgaXQncyBvbmx5IG9uZSBwaHlzaWNhbCByZWdpc3RlciB0aGlzDQo+IGNhbid0IGJlIHRy dWUuDQoNCkRvYyBpcyBhIGJpdCB3cm9uZyBoZXJlLiBJdCBjYW4gZW5hYmxlIGFsbCBjaGFubmVs cyBhdCB0aGUgc2FtZSB0aW1lLg0KDQo+IA0KPiBJZiB0aGUgQ0hBTkNUTCBpbiBlYWNoIGNoYW5u ZWwgcmVnaXN0ZXIgc3BhY2UgaXMganVzdCBhIG1pcnJvciBvZiBhIHNpbmdsZQ0KPiBwaHlzaWNh bCByZWdpc3RlciB0aGVuIHN1cmUsIHdlIGNvdWxkIGdldCBpbnRvIGlzc3VlcyB3aGVuIG11bHRp cGxlIGRyaXZlcg0KPiBpbnN0YW5jZXMgdHJ5IHRvIGNoYW5nZSB0aGVpciAicHJpdmF0ZSIgQ0hB TkNUTCBtaXJyb3IgdmlhIGEgUk1XIGN5Y2xlLiBTbyBpdCdzDQo+IHF1aXRlIGNydWNpYWwgdG8g ZmluZCBvdXQgaG93IGl0J3Mgd2lyZWQgdXAgaW50ZXJuYWxseS4NCj4gDQoNCkkgbmVlZCBkb3Vi bGUgY2hlY2sgd2l0aCBJUCBvd25lci4NCg0KUmVnYXJkcw0KRG9uZyBBaXNoZW5nDQoNCj4gUmVn YXJkcywNCj4gTHVjYXMNCg==