From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D066FA0C47; Thu, 7 Oct 2021 15:00:50 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B6A85411EC; Thu, 7 Oct 2021 15:00:50 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2057.outbound.protection.outlook.com [40.107.94.57]) by mails.dpdk.org (Postfix) with ESMTP id 3FA87411D7 for ; Thu, 7 Oct 2021 15:00:49 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m6Wtr0SgEOz8ES89DG0GSLxL/1/KwVS541vmQr8iXyn4PylGK7tcmN99cSG9hBiQq62+f7kfqPJj4i/MMLfLUaY5lX9wNDd+WKA3IACoaWtNTizkRwIxP74BBplAT1dCryeP9fEhgY29qrvLtfcShVVqs2TgFw11xSRaocaf1+QkXPsf4oPrkbdTxstNuXpgYA8zeLuoanW4OOlbeI0DgcFb3N/vWswrPZHB5wZkfrOuSvRCEc6foJIirYPixbJ0zi9c611Lk7/fQ2PgUBkAMBU0z+FlVw6e8bctqw9CSwyG+gAENiWKgEM5AHLHhiCeOlD8cJJ2CONVOYs5jfEneQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1P/8R8fVVzE3DhBj8/xJwlIPyokkYHLIALqod1KNDZw=; b=Km7+2O0pihMo17M8JpNHPjHvOCVna05ng+sNzHBGb4W+wPtVmWeOWGaCDxEutGuNqs1g/guDorzmdkCiOQjzjr0ZeTwmSlbY602cEalZ5TjwqpArAenROsQcQiM7qxmuazh3Atm6YD9rAs8u3cecIFi36x67R604CPVKENnK/wXckl1Ll1RgovMWkzxKHLYnnT6+n6ONLWRrmpuR3qGonvROUbGKcKzaUehxKD4GoaLLP1ywHrMsqIlwVYOULP864PlR+2OaY/PZDhATXhiQklMNp67HNPvHAmGi3jrQs826Bujdrb/PWwh0/ERrMW0yzKujJJinWVucAoqhKIp5Ig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1P/8R8fVVzE3DhBj8/xJwlIPyokkYHLIALqod1KNDZw=; b=qYM8EfyqIsTZNrcGO3otltXbJMTY4SOej7yRbCul/g4qPEO4l4tnj0T5dfESr4w3Oah0M+tPr94gDbCJ/y1y/zntk6rn4g47ax14dSlhJYUi1R5q5eKhrC+msxh3TS/Rg6X90UsrxPlaxmwCy6RCq11FS9HfFjc7BwdmMJY0a1KFW+Dgiz6lZ+5/B5/pF0qbbSVPWx4IqsWljB/1+1HGiO2veyePwG/B6cQU//m/qgbSvpvTrszd/ka/qApFiFzZp/3XjMoGokHiM8V8oDd7LOUnrRMrKn6M1YXY2+abJyIL4ax4FpB/Y8Wr6vi28grUI0JEBrJyxFJn8agV9PXuJQ== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by DM4PR12MB5296.namprd12.prod.outlook.com (2603:10b6:5:39d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.16; Thu, 7 Oct 2021 13:00:47 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32%6]) with mapi id 15.20.4587.020; Thu, 7 Oct 2021 13:00:47 +0000 From: Ori Kam To: Ivan Malov , Andrew Rybchenko , "dev@dpdk.org" CC: NBU-Contact-Thomas Monjalon Thread-Topic: [PATCH v1 02/12] ethdev: add eswitch port item to flow API Thread-Index: AQHXusca7iq6GOinqUibGahL+dVwc6vGQm2AgAAa5YCAASAOEA== Date: Thu, 7 Oct 2021 13:00:47 +0000 Message-ID: References: <7773f5df-9deb-dcda-4724-657daf2da2d0@oktetlabs.ru> <31947510-92f7-2870-62f6-d160d2160ef3@oktetlabs.ru> <34ebf43b-92a8-8728-49f4-eb801166cd34@oktetlabs.ru> In-Reply-To: <34ebf43b-92a8-8728-49f4-eb801166cd34@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1cc8f5c6-d8fc-4946-e7f3-08d989927b02 x-ms-traffictypediagnostic: DM4PR12MB5296: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1388; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2+IKOYvkWJ/PjbzpL9WN/ymytb+rvrrH8hwJmRfMDg7nLiAZ8/h4q0gJ5UhyBUHG1D+30as2t6OgL58n40ikIalVIhwccel2Dy4ctGEe8KkCzNJu3lVQQaBSBEnUhUTG8tuEOJBRXG001EIQKg2wmsmfd+k0TMcRZfpbT8TlpRRLK+mBU4zcZPgPV8AH5PZOt/LRSBtYsf0coVO7d+osWiNLYXMRnhkpz+Wq9vX10UeHGVL5NbiwhYAiWex3jq5hYJkLkz7kxZqrZYCZlZUWElg2AmEFAXEMqh+Hoc0rySAF8y9iCxZVJWS8A3LcCUyPWtsdMxLZ9yGKeljvbK+oERpRQRSLGJKZP1nxw7yxgg5MnILvF6l69l2vHU4/i2iaxzBy5kXXAUbGCJVV0sR5fgbg63hx44kKdZhiZN3FasHIcHnrvLdPZBZBTw69V2mYeqerNVjAyZOJx+KGVM8AdRSogpx0FrdQwJAZ0mWiQcpFihTkqVJnr/BEl//Uy/8KsNAHUBiGuwJoE7S6onGYBB1j5XQbQ+kYP6kiOqXlB2femO2dQ3nTB9P+Mee4AYnHDKfgqNEkuOqL0kVpSU5NGqNUyA/bqQsXIWAKyQV1BEm7ZZqRGcaf+DFRMdHIngayP2gKcalc9IrGwx0muAKadIyYt6rY3zBc1iUiDvhVg99yjqRELhEbRrn2fArX1EO93UzJYdLhJXYX2+6dKc70bw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR12MB5400.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(53546011)(6506007)(9686003)(316002)(5660300002)(122000001)(71200400001)(38100700002)(4326008)(55016002)(30864003)(110136005)(33656002)(7696005)(66476007)(508600001)(66556008)(66946007)(83380400001)(66446008)(64756008)(52536014)(86362001)(186003)(38070700005)(2906002)(8936002)(8676002)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YXhES2ZwTkUwR1lkLzEzRUxQVSsydDNvcitUQkhIbnlPTXhUV1hCN0E5N0R2?= =?utf-8?B?RWYxMnZGdjB3Z0FJd2dMM0NKNk9KSnpYYnJ1eUluL3ZodVRGY2FaRytreVlX?= =?utf-8?B?WWRWTm0xU2g1cmZhN252M0lhdm9sL1czNVBRSE5NNnhaS1luTnBGYjl6ZDZu?= =?utf-8?B?UWU5dTFFazhiZmtRbS95NUZFdzh0QWd5RkQ3cThQbTZDYUNmUDJPWEQyUHJ3?= =?utf-8?B?ZWx1V2d1bk5Welo4ODVpU2IybUQzalI2NTVsWlFhUWNEc3RoOTV4R3pSS016?= =?utf-8?B?enRUYkd3b1VEV2lnckNRZU1oeXRQbU83eWZNNGFhVmxqVUFibnBhSm1LbFBo?= =?utf-8?B?dVZQZ2hjamczNTIyWkJBZis0OGU0cHdqQ2lsZHI4cEZyZmgzTm5XK1NOY3V2?= =?utf-8?B?NVdpcStXNkpNd29ubUZsYm41bS82VEZDWFY3OFZJZmR5UlNQUGhkUDBvL0Rq?= =?utf-8?B?OFN1K2Y4S1g5WmZPMWZSdVM0ck5wbytjK0dmbkdIYUlIM1NoZEhVaUN0cmJw?= =?utf-8?B?Y2h6aDJyMHU2UldXbGtHZURWdFA4Q2h5czQzNWsrcmU0TXUyN0VrbzZtWTgv?= =?utf-8?B?eE9oWlZIdFQ0TXo0TUpZZ0lvZUdxV0RXeEcvVGZGV1RBT2hzMmNWNGRuNlMv?= =?utf-8?B?ZHlmTlNzZFlpa2c4dUp0Z2dNK2d0azNmZ1FHdVAzTndmc2ZoWWV0aHJvRzhw?= =?utf-8?B?ZDR2L2ltV1pXaG1tVzdMRDNuSStsQUJ1eUVwMHlqUnhpOEF3dUhZanlIODMr?= =?utf-8?B?SExmbURndXMzWkh1NEdicnVpSWtUbTFrdVhhc1VmdXJtTVNGOEN3SkFkMUlj?= =?utf-8?B?NEd0NGlEbHR1Ni85M2RHZVZ2K1ZaeFlCZU5kclo0UmFsS0FNMjNYcVpYTGYr?= =?utf-8?B?T0FJR1RLcDRaUVBqSUVYN2wvbmpWeFBDaUcvb3lCMkVYSzRFaGFKQ1FFUVJV?= =?utf-8?B?N1IvVlplb1pNaXFVZWQrbnVONGRmM3h2N3Y2VkJMVitmOGNvc2UyWDBVQ0ZB?= =?utf-8?B?djJmVmVxU1VkUHI0ZDhQWE8xZkVMc3RWOUllVFl4QUNNNlA4SDR0NXBpMENS?= =?utf-8?B?d0lLS0JJRDJmZmM5UnQ0Rmx2eEx6aW9NWTlRSnpmVWFad3puMVBsR1k0U2Va?= =?utf-8?B?ZXpQbS8yZXQ3SHpWc01jSUZXd0p1MmkvOUFVYldvN0ZtOC9peG1PV3NXSklM?= =?utf-8?B?RDNSdWxBeS84anRvR1B5Tnh3RmhaZzRBeEtSMU13QXp2blg1K3NvZ2pSdlBR?= =?utf-8?B?Q2EwNndpUC9YMnZDdnFCM1VXN3Z6amNCWnFWeG9XZHFGQkw5Uk43aGlycUZw?= =?utf-8?B?UzhqSHgzUDgvWlVXMXZjRWh2S1NBRnRwTzJKZnBGeXZMcTE4OVFhVXFkMVNx?= =?utf-8?B?eUxCeXNOS1I5RHg4WVRVUGhlRlNaVXZscGc0cjdUd1JFTlBPUkdldHBZRjhQ?= =?utf-8?B?bWhmdVFaREFHZ0RRWXFHOEs3bFBqcmlzcGZINzViNVBrYVdBam53emNKVXRy?= =?utf-8?B?WkFGRkp0U1VJS3FFYUNTSnBEa2lFTnVVeUs0VHQ4UlVGRWpTZmtYU1V3MEhV?= =?utf-8?B?Zmgwbi9odnRPUjFpL1V6QktsdlV4Um9UT2Z0ZzBHY3BDM1pSb3JTdm03RzdO?= =?utf-8?B?dHkyeXhjZzgrQVF6QkpFNXlNdlp6WDh0bjFJekd5WS9JUFUrTUhaWFhuNXlB?= =?utf-8?B?L0MzUExORnJpWTQxZHN4UlhpN2M5dWxYYzBzQnl5SnI0dnE1QVJtbkNUZHZi?= =?utf-8?B?NW1tcmhDcXRxN2x4ZWdCZnFyTnlYNUxzTmkrLzBaK0dwQUx5d3JEKzZmTHlr?= =?utf-8?B?bzZ6dllqbGRIY3hOUGR4ajVqN3pQdTJzd3BiN0Y5dzBudHRqdkluMmF4MUdq?= =?utf-8?Q?mbh4utn2+htZQ?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1cc8f5c6-d8fc-4946-e7f3-08d989927b02 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2021 13:00:47.0733 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WTuJ+irx4648Hm9r8Ug6i9IcJkq8yeKY/i9G2pZ2C1iNtcKK9iOC9O/rk0PhB84hkylXtZwKBkcEWk1xswb5sA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5296 Subject: Re: [dpdk-dev] [PATCH v1 02/12] ethdev: add eswitch port item to flow API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgSXZhbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBJdmFuIE1h bG92IDxJdmFuLk1hbG92QG9rdGV0bGFicy5ydT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MSAw Mi8xMl0gZXRoZGV2OiBhZGQgZXN3aXRjaCBwb3J0IGl0ZW0gdG8gZmxvdyBBUEkNCj4gDQo+IEhp IGFsbCwNCj4gDQo+IEkgYXBvbG9naXNlIGZvciBzZW5kaW5nIG1vcmUgbWFpbC4gSW4gZmFjdCwg eWV0IGFub3RoZXIgb3B0aW9uIGNvbWVzIHRvIG1pbmQuIEluDQo+IG9yZGVyIHRvIG1vdmUgYXdh eSBmcm9tIGNvbmZ1c2lvbiB3aXRoICJwb3J0IG1pcnJvcmluZyIgYnV0IHByZXNlcnZlIHRoZQ0K PiAic3ltbWV0cnkiIGZsYXZvdXIgaW4gdGhlIG5ldyBuYW1lLCB3ZSBjYW4gZ28gZm9yICJTSEFE T1dfUE9SVCIuDQo+IA0KPiBTbywgdG8gc3VtIHVwLCBJIHByb3Bvc2UgdGhlIG5ldyBkaWFncmFt IChzZWUgdGhlIHByZXZpb3VzIGxldHRlcikgYW5kIHRoZSBuZXcNCj4gbmFtaW5nIHNjaGVtZTog aXRlbXMgLyBhY3Rpb25zIEVUSERFVl9QT1JUIGFuZCBTSEFET1dfUE9SVC4NCj4gDQoNCkknbSBP Lksgd2l0aCB0aGUgc3VnZ2VzdGVkIG5hbWVzIEFuZHJldyB3aGF0IGRvIHlvdSB0aGluaz8NCg0K PiBJIGhvcGUgdGhpcyB3aWxsIGdldCB1cyBvbiB0aGUgc2FtZSBwYWdlLg0KPiANCj4gT24gMDYv MTAvMjAyMSAyMTowMCwgSXZhbiBNYWxvdiB3cm90ZToNCj4gPiBCVFcsIG9uZSBtb3JlIGFsdGVy bmF0aXZlIHRvICJNSVJST1JfUE9SVCIgaXMgIlJFTU9URV9QT1JUIi4NCj4gPg0KPiA+IE9uIDA2 LzEwLzIwMjEgMTg6MzAsIEl2YW4gTWFsb3Ygd3JvdGU6DQo+ID4+IEhpIE9yaSwNCj4gPj4NCj4g Pj4gQnkgdGhlIGxvb2tzIG9mIGl0LCB3ZSBhcmUgc3RhcnRpbmcgdG8gcnVuIGludG8gc2xpZ2h0 IG1pc3VuZGVyc3RhbmRpbmcuDQoNCvCfmIogVGhpcyBJIGEgY29uZnVzaW5nIHN1YmplY3QuDQoN Cj4gPj4NCj4gPj4gQXMgSSBzZWUgaXQsIHRoZSBtYWluIGNvbnNlcXVlbmNlIG9mIG91ciBTZXAg MTQgZ2F0aGVyaW5nIGluIEppdHNpDQo+ID4+IHdhcyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmYWN0 IHRoYXQgdGhlIGNvbmNlcHQgb2YgaXRlbSAvIGFjdGlvbg0KPiA+PiBQT1JUX0lEIGlzIHZhZ3Vl IGFuZCBuZWVkcyBhIHJlcGxhY2VtZW50LiBBcyBhIGJhcmUgbWluaW11bSwgc2VwYXJhdGUNCj4g Pj4gaXRlbXMgc2hvdWxkIGJlIHVzZWQ6IG9uZSBmb3IgYW4gZXRoZGV2IHBvcnQgYW5kIGFub3Ro ZXIgb25lIGZvciB0aGUNCj4gPj4gInJlcHJlc2VudGVkIGVudGl0eSIuDQo+ID4+DQo+ID4+IFRo aXMgInJlcHJlc2VudGVkIGVudGl0eSIgY2FuIGJlIG5ldHdvcmsgKHZpYSBuZXR3b3JrIHBvcnQp LCBvciBhDQo+ID4+IGd1ZXN0IG1hY2hpbmUgKHZpYSBhIFBGIC8gVkYgcGx1Z2dlZCB0byBpdCks IG9yIGFub3RoZXIgZXRoZGV2IChpbg0KPiA+PiB0aGUgY2FzZSB3aGVuIHRoZSBldGhkZXYgd2Ug YXJlIGxvb2tpbmcgYXQgaXMgYSBQRi9WRiByZXByZXNlbnRvciBhbmQNCj4gPj4gdGhpcyBQRi9W RiBpcyBhbHNvIHBsdWdnZWQgdG8gdGhlIERQREsgYXBwbGljYXRpb24pLg0KPiA+Pg0KPiA+PiBT bywgaWYgSSBnZXQgdGhpcyByaWdodCwgeW91IGRvbid0IG9iamVjdCB0aGlzIHN1bW1hcnkuIFZl cnkgd2VsbC4NCg0KR29vZCBzdW1tZXJ5IGFuZCBJIGFncmVlIHRvIGl0Lg0KSnVzdCBvbmUgcXVl c3Rpb24sIHdoYXQgaGFwcGVucyBpZiB0aGVyZSBpcyBubyByZXByZXNlbnRlZCBlbnRpdHk/DQpU aGlzIHdpbGwgbWVhbiB0aGF0IHRoZXJlIHdpbGwgYmUgbm90IHVzZSBvZiB0aGUgc2hhZG93X3Bv cnQgaXRlbS9hY3Rpb24/DQpEb2Vzbid0IGl0IGJyZWFrIHlvdXIgZGlhZ3JhbT8NCg0KPiA+Pg0K PiA+PiBCdXQsIGluIHRoZSBjdXJyZW50IGFwcHJvYWNoLCB3ZSBzdGljayB3aXRoIHRlcm0gIkVT V0lUQ0hfUE9SVCIgZm9yDQo+ID4+IHRoYXQgInJlcHJlc2VudGVkIGVudGl0eSIsIGFuZCwgYXMg SSBzZWUgaXQsIHRoaXMgdGVybSBpcyBub3QgcXVpdGUNCj4gPj4gZGVzY3JpcHRpdmUgd2hlbiBz b21lb25lIHRyaWVzIHRvIHVuZGVyc3RhbmQgd2hpY2ggZXhhY3QgcG9ydCBvZiB0aGUNCj4gPj4g ZW1iZWRkZWQgc3dpdGNoIGlzIGltcGxpZWQuIEF0dGVtcHRzIHRvIGNsYXJpZnkgaXQgYnkgdmly dHVlIG9mIHRlcm1zDQo+ID4+ICJleHRlcm5hbCIgb3IgInRoZSBtb3N0IHJlbW90ZSIgYXJlIG5v dC1zby1zdWNjZXNzZnVsLg0KPiA+Pg0KPiA+PiBJIGZ1bGx5IHVuZGVyc3RhbmQgdGhhdC4NCj4g Pj4NCj4gPj4gQnV0IHRoZSBnb29kIG5ld3MgaXMgdGhhdCB0aGUgb3JpZ2luYWwgZGlhZ3JhbSBv ZiB0aGUgbmV3IGNvbmNlcHQgY2FuDQo+ID4+IGJlIGltcHJvdmVkIGluIGEgd2F5IHRoYXQgY2Fu IGFsbG93IHRvIGRpc3Bvc2Ugb2YgbWlzbGVhZGluZyB3b3Jkcy4NCj4gPj4NCj4gPj4NCj4gPj4g wqDCoMKgwqDCoCBbIEEgXcKgwqDCoMKgwqDCoCA8LS0gZXRoZGV2DQo+ID4+IMKgwqDCoMKgwqDC oMKgIHwNCj4gPj4gwqDCoMKgwqDCoCBbIEIgXcKgwqDCoMKgwqDCoCA8LS0gZW1iZWRkZWQgc3dp dGNoIChsb2dpY2FsKSBwb3J0DQo+ID4+IMKgwqDCoMKgwqDCoMKgIHwNCj4gPj4gwqDCoMKgwqDC oMKgwqAgfA0KPiA+PiDCoMKgwqDCoMKgwqDCoCB8DQo+ID4+ID09PT09PT09PT09PT09PcKgIDwt LSBwbGFuZSBvZiBzeW1tZXRyeQ0KPiA+PiDCoMKgwqDCoMKgwqDCoCB8DQo+ID4+IMKgwqDCoMKg wqDCoMKgIHwNCj4gPj4gwqDCoMKgwqDCoMKgwqAgfA0KPiA+PiDCoMKgwqDCoMKgIFsgQyBdwqDC oMKgwqDCoMKgIDwtLSBlbWJlZGRlZCBzd2l0Y2ggKGxvZ2ljYWwpIHBvcnQNCj4gPj4gwqDCoMKg wqDCoMKgwqAgfA0KPiA+PiDCoMKgwqDCoMKgIFsgRCBdwqDCoMKgwqDCoMKgIDwtLSByZXByZXNl bnRlZCBlbnRpdHkNCj4gPj4NCj4gPj4NCj4gPj4gMS4gVGhlIGFwcGxpY2F0aW9uIHNlZXMgdGhl IGV0aGRldiAoQSkgYW5kIGNhbiBhc3N1bWUgdGhhdCB0aGlzDQo+ID4+IMKgwqDCoCBldGhkZXYg aXMgc2VydmVkIGJ5IHNvbWUgbG9naWNhbCBwb3J0IChCKSBpbiB0aGUgZW1iZWRkZWQNCj4gPj4g wqDCoMKgIHN3aXRjaC4gUHJlY2lzZSBuYXR1cmUgb2YgdGhpcyBwb3J0IGlzIHZlbmRvci1zcGVj aWZpYy4NCj4gPj4NCj4gPj4gwqDCoMKgIEZvciBleGFtcGxlLCBmb3IgYSByZWd1bGFyIChub24t cmVwcmVzZW50b3IpIGV0aGRldiwNCj4gPj4gwqDCoMKgIHRoaXMgcG9ydCBjYW4gYmUgYSBQRiwg b3IgYSBWRi4gVGhpcyBpcyBvYnZpb3VzIHRvDQo+ID4+IMKgwqDCoCBEUERLIGRldmVsb3BlcnMs IGJ1dCB0aGUgYXBwbGljYXRpb24gZG9lc24ndCBuZWVkDQo+ID4+IMKgwqDCoCB0byBoYXZlIHRo aXMga25vd2xlZGdlLiBJdCBvbmx5IHNlZXMgdGhlIGV0aGRldi4NCj4gPj4NCj4gPj4gwqDCoMKg IElmIHRoaXMgZXRoZGV2IGlzIGEgcmVwcmVzZW50b3IsIHBvcnQgKEIpIGNhbiBiZSBhIHRydWx5 DQo+ID4+IMKgwqDCoCBzZXBhcmF0ZSBsb2dpY2FsIHBvcnQgb3IsIGFsdGVybmF0aXZlbHksIHNv bWUgdmVuZG9ycw0KPiA+PiDCoMKgwqAgbWF5IHVzZSAiUEYgKyBtZXRhZGF0YSIgYXBwcm9hY2gu IFRoaXMgcG9ydCAoQikgaXMNCj4gPj4gwqDCoMKgIGp1c3QgYXNzdW1lZCB0byBleGlzdC4gVGhl IHJlc3QgaXMgdmVuZG9yLXNwZWNpZmljLg0KPiA+Pg0KPiA+PiAyLiBUaGUgYXBwbGljYXRpb24g ZnVsbHkgdW5kZXJzdGFuZHMgdGhhdCB0aGUgIndpcmUiIHBsdWdnZWQgdG8NCj4gPj4gwqDCoMKg IHRoZSBldGhkZXYgaXQgc2VlcyBoYXMgYW4gb3Bwb3NpdGUgZW5kLiBPdmVyIHRoZXJlLCB0aGVy ZSdzDQo+ID4+IMKgwqDCoCBzb21lICJyZXByZXNlbnRlZCBlbnRpdHkiIChEKS4gT25jZSBhZ2Fp biwgdGhlIGFwcGxpY2F0aW9uDQo+ID4+IMKgwqDCoCBkb2VzIG5vdCBrbm93IHRoZSBuYXR1cmUg b2YgdGhhdCAicmVwcmVzZW50ZWQgZW50aXR5Ii4NCj4gPj4gwqDCoMKgIFRvIGl0LCB0aGlzIGVu dGl0eSBpcyBqdXN0IHNvbWUgdHJhZmZpYyBlbmRwb2ludC4NCj4gPj4NCj4gPj4gwqDCoMKgIEFu ZCB0aGUgYXBwbGljYXRpb24gdW5kZXJzdGFuZHMgdGhhdCB0aGlzICJyZXByZXNlbnRlZCBlbnRp dHkiDQo+ID4+IMKgwqDCoCBpcyBjb25uZWN0ZWQgdG8gdGhlIE5JQyBieSBtZWFucyBvZiBhbm90 aGVyIGxvZ2ljYWwgcG9ydCAoQykuDQo+ID4+IMKgwqDCoCBUaGUgbmF0dXJlIG9mIHRoaXMgcG9y dCBpcyB1bmtub3duLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QNCj4gPj4gwqDCoMKgIG5lZWQg dG8gaGF2ZSB0aGlzIGtub3dsZWRnZS4gVG8gaXQsIHRoaXMgcG9ydCBqdXN0IGV4aXN0cy4NCj4g Pj4NCg0KTXkgcXVlc3Rpb24gZnJvbSBhYm92ZSB3aGF0IGhhcHBlbnMgaWYgdGhlcmUgaXMgbm8g cmVwcmVzZW50ZWQgcG9ydD8NClRoZSBjb25jZXB0IG9mIHJlcHJlc2VudG9ycyBpcyByZWxhdGl2 ZWx5IG5ldy4gU28gc29tZSBIVyBtYXkgbm90IHN1cHBvcnQgcmVwcmVzZW50b3JzLg0Kb3IgeW91 IGFyZSBhc3N1bWluZyB0aGF0IGlmIHdlIGhhdmUgRS1Td2l0Y2ggYnkgZGVmaW5pdGlvbiB3ZSBo YXZlIHJlcHJlc2VudG9ycz8NCg0KPiA+PiDCoMKgwqAgRXhhbXBsZXMgb2YgcHJlY2lzZSBuYXR1 cmUgb2YgKEMpIC8gKEQpOg0KPiA+PiDCoMKgwqAgLS0gKEQpID0gbmV0d29yazvCoMKgwqDCoMKg wqDCoCAoQykgPSBuZXR3b3JrIHBvcnQNCj4gPj4gwqDCoMKgIC0tIChEKSA9IGd1ZXN0IG1hY2hp bmU7wqAgKEMpID0gVkYgLyBQRiBwYXNzZWQgdG8gdGhlIFZNDQo+ID4+IMKgwqDCoCAtLSAoRCkg PSBhbm90aGVyIGV0aGRldjsgKEMpID0gdGhlIGV0aGRldidzIGxvZ2ljYWwgcG9ydA0KPiA+Pg0K PiA+PiDCoMKgwqAgRm9yICJ0aGUgZXRoZGV2J3MgbG9naWNhbCBwb3J0IiAtIHNlZSB0aGUgZXhw bGFuYXRpb24gaW4gKDEpLg0KPiA+Pg0KPiA+PiAzLiBUaGUgcGFpciBvZiBwb2ludHMgKEEpLCAo QikgaXMgU1lNTUVUUklDQUwgdG8gdGhlIHBhaXINCj4gPj4gwqDCoMKgIG9mIHBvaW50cyAoQyks IChEKS4gV2l0aCByZXNwZWN0IHRvIGFueSBnaXZlbiBldGhkZXYsDQo+ID4+IMKgwqDCoCB0aGUg ZW1iZWRkZWQgc3dpdGNoIGlzIHNwbGl0IGJ5IGEgcGxhbmUgb2Ygc3ltbWV0cnkuDQo+ID4+DQo+ ID4+IDQuIFRoZSBwcm9wZXJ0eSBvZiBzeW1tZXRyeSBpbiB0aGlzIGRyYXdpbmcgYWxsb3dzIHRv IHBlcmNlaXZlDQo+ID4+IMKgwqDCoCBwb2ludCAoRCkgYXMgYSByZWZsZWN0aW9uIG9mIHBvaW50 IChBKS4gQSBtaXJyb3JlZCBpbWFnZS4NCj4gPj4NCj4gPj4NCj4gPj4gU28sIHRoZSBzaG9ydCBv ZiBpdCwgbG9va2luZyBhdCB0aGUgcHJvYmxlbSB0aGUgd2F5IHRoaXMgcGljdHVyZQ0KPiA+PiBs b29rcyBhdCBpdCwgb25lIGNhbiBlYXNpbHkgdW5kZXJzdGFuZCB0aGF0IHRoZSAicmVwcmVzZW50 ZWQgZW50aXR5Ig0KPiA+PiBpcyBqdXN0IGEgcmVmbGVjdGlvbiBvZiB0aGUgZXRoZGV2IChhbmQg dmljZSB2ZXJzYSkuDQo+ID4+DQo+ID4+IE5vIG1vcmUgbmVlZCBmb3Igd29yZHkgZGVzY3JpcHRp b25zIGxpa2UgInRoZSBtb3N0IHJlbW90ZSBwb3J0Ii4NCj4gPj4gVGhlIHN5bW1ldHJ5IHNheXMg aXQgYWxsLiBCdXQgdGhlIHByb2JsZW0gaXMgdGhlIG5hbWUgZm9yIHRoZSBuZXcNCj4gPj4gaXRl bSBhbmQgYWN0aW9uLiBJbnN0ZWFkIG9mIEVTV0lUQ0hfUE9SVCwgc29tZXRoaW5nIGVsc2Ugc2hv dWxkIGJlDQo+ID4+IHN1Z2dlc3RlZCB0byBtYWtlIHJlYWRlcnMgdGhpbmsgb2YgdGhpcyBzeW1t ZXRyeS4NCj4gPj4NCj4gPj4gVG8gbWUsIHRoZSBtb3N0IGNsZWFyIHRlcm0gaGVyZSB3b3VsZCBi ZSBNSVJST1JfUE9SVC4gQXMgcGVyIHRoZQ0KPiA+PiBydWxlcyBvZiBFbmdsaXNoIGxhbmd1YWdl LCAiTUlSUk9SIiBoZXJlIGlzIGxpa2UgYW4gYWRqZWN0aXZlLiBJdA0KPiA+PiBkZXNjcmliZXMg dGhlIHByb3BlcnR5IG9mIHRoZSAiUE9SVCIgYmVpbmcgYSByZWZsZWN0aW9uIG9mIHRoZQ0KPiA+ PiBjb3JyZXNwb25kaW5nIGV0aGRldi4gQW5kIEknZCBjYWxsIHRoZSBsYXR0ZXIgYW4gRVRIREVW X1BPUlQuDQo+ID4+DQo+ID4+IFNvLCBFVEhERVZfUE9SVCBhbmQgaXRzIE1JUlJPUl9QT1JULg0K PiA+Pg0KPiA+PiBZZXMteWVzLCBJIGRvIHVuZGVyc3RhbmQgdGhhdCAibWlycm9yIiBtYXkgYXQg c29tZSBwb2ludCB0dXJuDQo+ID4+IG1pc2xlYWRpbmcgdG8gc29tZSByZWFkZXJzIHdobyBtYXkg cGVyY2VpdmUgdGhpcyB3b3JkIGFzIGEgdmVyYiBhbmQNCj4gPj4gY29uZnVzZSB0aGUgaXRlbSAv IGFjdGlvbiBtZWFuaW5nIHdpdGggdGhlIGNvbmNlcHQgb2YgcG9ydCBtaXJyb3JpbmcuDQo+ID4+ IEFscmlnaHQ6IEknbSBhd2FyZSBvZiB0aGF0LiBTbyBsZXQgbWUgdGhlbiBzdWdnZXN0IGFub3Ro ZXIgb3B0aW9uOg0KPiA+PiBSRUZMRVhfUE9SVC4NCj4gPj4NCj4gPj4gUkVGTEVYX1BPUlQgZG9l c24ndCBzZWVtIHRvIHNvdW5kIGFzIGdvb2QgYXMgTUlSUk9SX1BPUlQsIGJ1dCBpdCBhbHNvDQo+ ID4+IGluZGljYXRlcyB0aGUgcHJvcGVydHkgb2YgdGhpcyBlbnRpdHkgYmVpbmcgYSByZWZsZWN0 aW9uIG9mIHRoZQ0KPiA+PiBldGhkZXYgcG9ydCAoYW5kIHZpY2UgdmVyc2EpLg0KPiA+Pg0KPiA+ PiBXaGF0IGRvIHlvdSB0aGluaz/CoCBEb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gbWFrZSBhbm90aGVy IHZlcnNpb24gb2Ygb3VyDQo+ID4+IHBhdGNoIHNlcmllcyB3aXRoIHRoZSBuZXcgdGVybSBpbiB1 c2UgYW5kIHdpdGggdGhlIG5ldyBleHBsYW5hdGlvbj8NCj4gPj4gU2hvdWxkIHlvdSB3aXNoIHRv IHN1Z2dlc3QgeW91ciBvd24gbmFtaW5nIHZhcmlhbnRzLCB5b3UncmUgd2VsY29tZQ0KPiA+PiB0 byBkbyBzby4NCj4gPj4NCj4gPj4gT24gMDUvMTAvMjAyMSAxNToxMiwgSXZhbiBNYWxvdiB3cm90 ZToNCj4gPj4gwqA+IEhpIE9yaSwgQW5kcmV3LA0KPiA+PiDCoD4NCj4gPj4gwqA+IE9uIDA1LzEw LzIwMjEgMTI6MTksIEFuZHJldyBSeWJjaGVua28gd3JvdGU6DQo+ID4+IMKgPiA+IEhpIE9yaSwN Cj4gPj4gwqA+ID4NCj4gPj4gwqA+ID4gT24gMTAvNS8yMSA5OjIwIEFNLCBPcmkgS2FtIHdyb3Rl Og0KPiA+PiDCoD4gPj4gSGkgSXZhbiwNCj4gPj4gwqA+ID4+DQo+ID4+IMKgPiA+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gwqA+ID4+PiBGcm9tOiBJdmFuIE1hbG92IDxJdmFu Lk1hbG92IGF0IG9rdGV0bGFicy5ydT4NCj4gPj4gwqA+ID4+PiBDYzogZGV2IGF0IGRwZGsub3Jn DQo+ID4+IMKgPiA+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MSAwMi8xMl0gZXRoZGV2OiBhZGQg ZXN3aXRjaCBwb3J0IGl0ZW0gdG8NCj4gPj4gZmxvdyBBUEkNCj4gPj4gwqA+ID4+Pg0KPiA+PiDC oD4gPj4+IEhpIE9yaSwNCj4gPj4gwqA+ID4+Pg0KPiA+PiDCoD4gPj4+IE9uIDA0LzEwLzIwMjEg MTQ6MzcsIE9yaSBLYW0gd3JvdGU6DQo+ID4+IMKgPiA+Pj4+IEhpIEl2YW4sDQo+ID4+IMKgPiA+ Pj4+DQo+ID4+IMKgPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiDCoD4g Pj4+Pj4gRnJvbTogSXZhbiBNYWxvdiA8SXZhbi5NYWxvdiBhdCBva3RldGxhYnMucnU+DQo+ID4+ IMKgPiA+Pj4+PiBTZW50OiBNb25kYXksIE9jdG9iZXIgNCwgMjAyMSAyOjA2IFBNDQo+ID4+IMKg PiA+Pj4+PiBDYzogZGV2IGF0IGRwZGsub3JnDQo+ID4+IMKgPiA+Pj4+PiBTdWJqZWN0OiBSZTog W1BBVENIIHYxIDAyLzEyXSBldGhkZXY6IGFkZCBlc3dpdGNoIHBvcnQgaXRlbQ0KPiA+PiB0byBm bG93DQo+ID4+IMKgPiA+Pj4+PiBBUEkNCj4gPj4gwqA+ID4+Pj4+DQo+ID4+IMKgPiA+Pj4+PiBI aSBPcmksDQo+ID4+IMKgPiA+Pj4+Pg0KPiA+PiDCoD4gPj4+Pj4gT24gMDQvMTAvMjAyMSAwODo0 NSwgT3JpIEthbSB3cm90ZToNCj4gPj4gwqA+ID4+Pj4+PiBIaSBJdmFuLA0KPiA+PiDCoD4gPj4+ Pj4+DQo+ID4+IMKgPiA+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IMKg PiA+Pj4+Pj4+IEZyb206IEl2YW4gTWFsb3YgPEl2YW4uTWFsb3YgYXQgb2t0ZXRsYWJzLnJ1Pg0K PiA+PiDCoD4gPj4+Pj4+PiBTZW50OiBTdW5kYXksIE9jdG9iZXIgMywgMjAyMSA5OjExIFBNDQo+ ID4+IMKgPiA+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEgMDIvMTJdIGV0aGRldjogYWRk IGVzd2l0Y2ggcG9ydA0KPiA+PiBpdGVtIHRvIGZsb3cNCj4gPj4gwqA+ID4+Pj4+Pj4gQVBJDQo+ ID4+IMKgPiA+Pj4+Pj4+DQo+ID4+IMKgPiA+Pj4+Pj4+DQo+ID4+IMKgPiA+Pj4+Pj4+DQo+ID4+ IMKgPiA+Pj4+Pj4+IE9uIDAzLzEwLzIwMjEgMTU6NDAsIE9yaSBLYW0gd3JvdGU6DQo+ID4+IMKg PiA+Pj4+Pj4+PiBIaSBBbmRyZXcgYW5kIEl2YW4sDQo+ID4+IMKgPiA+Pj4+Pj4+Pg0KPiA+PiDC oD4gPj4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IMKgPiA+Pj4+Pj4+ Pj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rbyBhdA0KPiA+PiBva3Rl dGxhYnMucnU+DQo+ID4+IMKgPiA+Pj4+Pj4+Pj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDEsIDIw MjEgNDo0NyBQTQ0KPiA+PiDCoD4gPj4+Pj4+Pj4+IFN1YmplY3Q6IFtQQVRDSCB2MSAwMi8xMl0g ZXRoZGV2OiBhZGQgZXN3aXRjaCBwb3J0IGl0ZW0NCj4gPj4gdG8gZmxvdw0KPiA+PiDCoD4gPj4+ Pj4+Pj4+IEFQSQ0KPiA+PiDCoD4gPj4+Pj4+Pj4+DQo+ID4+IMKgPiA+Pj4+Pj4+Pj4gRnJvbTog SXZhbiBNYWxvdiA8aXZhbi5tYWxvdiBhdCBva3RldGxhYnMucnU+DQo+ID4+IMKgPiA+Pj4+Pj4+ Pj4NCj4gPj4gwqA+ID4+Pj4+Pj4+PiBGb3IgdXNlIHdpdGggInRyYW5zZmVyIiBmbG93cy4gU3Vw cG9zZWQgdG8gbWF0Y2ggdHJhZmZpYw0KPiA+PiBlbnRlcmluZw0KPiA+PiDCoD4gPj4+Pj4+Pj4+ IHRoZSBlLXN3aXRjaCBmcm9tIHRoZSBleHRlcm5hbCB3b3JsZCAobmV0d29yaywgZ3Vlc3RzKQ0K PiA+PiB2aWEgdGhlDQo+ID4+IMKgPiA+Pj4+Pj4+Pj4gcG9ydCB3aGljaCBpcyBsb2dpY2FsbHkg Y29ubmVjdGVkIHdpdGggdGhlIGdpdmVuIGV0aGRldi4NCj4gPj4gwqA+ID4+Pj4+Pj4+Pg0KPiA+ PiDCoD4gPj4+Pj4+Pj4+IE11c3Qgbm90IGJlIGNvbWJpbmVkIHdpdGggYXR0cmlidXRlcyAiaW5n cmVzcyIgLyAiZWdyZXNzIi4NCj4gPj4gwqA+ID4+Pj4+Pj4+Pg0KPiA+PiDCoD4gPj4+Pj4+Pj4+ IFRoaXMgaXRlbSBpcyBtZWFudCB0byB1c2UgdGhlIHNhbWUgc3RydWN0dXJlIGFzIGV0aGRldiBp dGVtLg0KPiA+PiDCoD4gPj4+Pj4+Pj4+DQo+ID4+IMKgPiA+Pj4+Pj4+Pg0KPiA+PiDCoD4gPj4+ Pj4+Pj4gSW4gY2FzZSB0aGUgYXBwIGlzIG5vdCB3b3JraW5nIHdpdGggcmVwcmVzZW50b3JzLCBt ZWFuaW5nDQo+ID4+IGVhY2gNCj4gPj4gwqA+ID4+Pj4+Pj4+IHN3aXRjaCBwb3J0IGlzIG1hcHBl ZCB0byBldGhkZXYuDQo+ID4+IMKgPiA+Pj4+Pj4+PiBib3RoIGl0ZW1zIChldGhkZXYgYW5kIGVz d2l0Y2ggcG9ydCApIGhhdmUgdGhlIHNhbWUgbWVhbmluZz8NCj4gPj4gwqA+ID4+Pj4+Pj4NCj4g Pj4gwqA+ID4+Pj4+Pj4gTm8uIEV0aGRldiBtZWFucyBldGhkZXYsIGFuZCBlLXN3aXRjaCBwb3J0 IGlzIHRoZSBwb2ludA0KPiA+PiB3aGVyZSB0aGlzDQo+ID4+IMKgPiA+Pj4+Pj4+IGV0aGRldiBp cyBwbHVnZ2VkIHRvLiBGb3IgZXhhbXBsZSwgInRyYW5zZmVyICsNCj4gPj4gRVNXSVRDSF9QT1JU IiBmb3IgYQ0KPiA+PiDCoD4gPj4+Pj4+PiByZWd1bGFyIFBGIGV0aGRldiB0eXBpY2FsbHkgbWVh bnMgdGhlIG5ldHdvcmsgcG9ydCAobWF5YmUNCj4gPj4geW91IGNhbg0KPiA+PiDCoD4gPj4+Pj4+ PiByZWNhbGwgdGhlIGlkZWEgdGhhdCBhIFBGIGV0aGRldiAicmVwcmVzZW50cyIgdGhlIG5ldHdv cmsNCj4gPj4gcG9ydCBpdCdzDQo+ID4+IMKgPiA+Pj4+PiBhc3NvY2lhdGVkIHdpdGgpLg0KPiA+ PiDCoD4gPj4+Pj4+Pg0KPiA+PiDCoD4gPj4+Pj4+PiBJIGJlbGlldmUsIHRoYXQgZGlhZ3JhbXMg d2hpY2ggdGhlc2UgcGF0Y2hlcyBhZGQgdG8NCj4gPj4gwqA+ID4+Pj4+Pj4gImRvYy9ndWlkZXMv cHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QiIG1heSBjb21lIGluIGhhbmR5IHRvDQo+ID4+IMKgPiA+ Pj4+Pj4+IHVuZGVyc3RhbmQgdGhlIG1lYW5pbmcuIEFsc28sIHlvdSBjYW4gdGFrZSBhIGxvb2sg YXQgb3VyDQo+ID4+IGxhcmdlcg0KPiA+PiDCoD4gPj4+Pj4+PiBkaWFncmFtIGZyb20gdGhlIFNl cCAxNCBnYXRoZXJpbmcuDQo+ID4+IMKgPiA+Pj4+Pj4+DQo+ID4+IMKgPiA+Pj4+Pj4NCj4gPj4g wqA+ID4+Pj4+PiBMZXRzIGxvb2sgYXQgdGhlIGZvbGxvd2luZyBzeXN0ZW06DQo+ID4+IMKgPiA+ Pj4+Pj4gRS1Td2l0Y2ggaGFzIDMgcG9ydHMgLSBQRiwgVkYxLCBWRjINCj4gPj4gwqA+ID4+Pj4+ PiBUaGUgcG9ydHMgYXJlIGRpc3RyaWJ1dGVkIGFzIGZvbGxvd3M6DQo+ID4+IMKgPiA+Pj4+Pj4g RFBESyBhcHBsaWNhdGlvbjoNCj4gPj4gwqA+ID4+Pj4+PiBldGhkZXYoMCkgcGYsDQo+ID4+IMKg PiA+Pj4+Pj4gZXRoZGV2KDEpIHJlcHJlc2VudG9yIHRvIFZGMQ0KPiA+PiDCoD4gPj4+Pj4+IGV0 aGRldigyKSByZXByZXNlbnRvciB0byBWRjINCj4gPj4gwqA+ID4+Pj4+PiBldGhkZXYoMykgVkYx DQo+ID4+IMKgPiA+Pj4+Pj4NCj4gPj4gwqA+ID4+Pj4+PiBWTToNCj4gPj4gwqA+ID4+Pj4+PiBW RjINCj4gPj4gwqA+ID4+Pj4+Pg0KPiA+PiDCoD4gPj4+Pj4+IEFzIHdlIGtub3cgYWxsIHJlcHJl c2VudG9ycyBhcmUgcmVhbHkgY29ubmVjdGVkIHRvIHRoZQ0KPiA+PiBQRihhdCBsZWFzdA0KPiA+ PiDCoD4gPj4+Pj4+IGluIHRoaXMgZXhhbXBsZSkNCj4gPj4gwqA+ID4+Pj4+DQo+ID4+IMKgPiA+ Pj4+PiBUaGlzIGV4YW1wbGUgdHJpZXMgdG8gc2F5IHRoYXQgdGhlIGUtc3dpdGNoIGhhcyAzIHBv cnRzIGluDQo+ID4+IHRvdGFsLA0KPiA+PiDCoD4gPj4+Pj4gYW5kLCBnaXZlbiB5b3VyIGV4cGxh bmF0aW9uLCBvbmUgbWF5IGluZGVlZCBhZ3JlZSB0aGF0ICppbg0KPiA+PiB0aGlzDQo+ID4+IMKg PiA+Pj4+PiBleGFtcGxlKiByZXByZXNlbnRvcnMgcmUtdXNlIGUtc3dpdGNoIHBvcnQgb2YgZXRo ZGV2PTAgKHdpdGgNCj4gPj4gc29tZQ0KPiA+PiDCoD4gPj4+Pj4gbWV0YWRhdGEgdG8gZGlzdGlu Z3Vpc2ggcGFja2V0cywgZXRjLikuIEJ1dCBvbmUgY2FuIGhhcmRseQ0KPiA+PiBhc3N1bWUNCj4g Pj4gwqA+ID4+Pj4+IHRoYXQgKmFsbCogcmVwcmVzZW50b3JzIHdpdGggYW55IHZlbmRvcidzIE5J QyBhcmUgY29ubmVjdGVkDQo+ID4+IHRvIHRoZQ0KPiA+PiDCoD4gPj4+Pj4gZS1zd2l0Y2ggdGhl IHNhbWUgd2F5LiBJdCdzIHZlbmRvciBzcGVjaWZpYy4gV2VsbCwgYXQgbGVhc3QsDQo+ID4+IMKg PiA+Pj4+PiBhcHBsaWNhdGlvbnMgZG9uJ3QgaGF2ZSB0aGlzIGtub3dsZWRnZSBhbmQgZG9uJ3Qg bmVlZCB0by4NCj4gPj4gwqA+ID4+Pj4+DQo+ID4+IMKgPiA+Pj4+Pj4NCj4gPj4gwqA+ID4+Pj4+ PiBTbyBtYXRjaGluZyBvbiBldGhkZXYoMynCoCBtZWFucyBtYXRjaGluZyBvbiB0cmFmZmljIHNl bnQNCj4gPj4gZnJvbSBEUERLDQo+ID4+IMKgPiA+Pj4+Pj4gcG9ydA0KPiA+PiDCoD4gPj4+Pj4g MyByaWdodD8NCj4gPj4gwqA+ID4+Pj4+DQo+ID4+IMKgPiA+Pj4+PiBJdGVtIEVUSERFViAoZXRo ZGV2X2lkPTMpIG1hdGNoZXMgdHJhZmZpYyBzZW50IGJ5IERQREsgcG9ydA0KPiA+PiAzLiBMb29r cw0KPiA+PiDCoD4gPj4+Pj4gbGlrZSB3ZSdyZSBvbiB0aGUgc2FtZSBwYWdlIGhlcmUuDQo+ID4+ IMKgPiA+Pj4+Pg0KPiA+PiDCoD4gPj4+Pg0KPiA+PiDCoD4gPj4+PiBHb29kLg0KPiA+PiDCoD4g Pj4+Pg0KPiA+PiDCoD4gPj4+Pj4+IEFuZCBtYXRjaGluZyBvbiBlc3dpdGNoX3BvcnQoMykgbWVh bnMgbWF0Y2hpbmcgaW4gdHJhZmZpYw0KPiA+PiB0aGF0IGdvZXMNCj4gPj4gwqA+ID4+Pj4+PiBp bnRvIFZGMSB3aGljaCBpcyB0aGUgc2FtZSB0cmFmZmljIGFzIGV0aGRldigzKSByaWdodD8NCj4g Pj4gwqA+ID4+Pj4+DQo+ID4+IMKgPiA+Pj4+PiBJIGRpZG4ndCBjYXRjaCB0aGUgdGhvdWdodCBh Ym91dCAidGhlIHNhbWUgdHJhZmZpYyIuDQo+ID4+IERpcmVjdGlvbiBpcyBub3QgdGhlDQo+ID4+ IMKgPiA+Pj4gc2FtZS4NCj4gPj4gwqA+ID4+Pj4+IEl0ZW0gRVNXSVRDSF9QT1JUIChldGhkZXZf aWQ9MykgbWF0Y2hlcyB0cmFmZmljIHNlbnQgYnkgRFBESw0KPiA+PiBwb3J0IDEuDQo+ID4+IMKg PiA+Pj4+Pg0KPiA+PiDCoD4gPj4+PiBUaGlzIGlzIHRoZSBjcml0aWNhbCBwYXJ0IGZvciBteSB1 bmRlcnN0YW5kaW5nLg0KPiA+PiDCoD4gPj4+PiBNYXRjaGluZyBvbiBldGhkZXZfaWQoMykgbWVh bnMgbWF0Y2hpbmcgb24gdHJhZmZpYyB0aGF0IGlzDQo+ID4+IGNvbWluZyBmcm9tDQo+ID4+IMKg PiA+Pj4gRFBESyBwb3J0My4NCj4gPj4gwqA+ID4+Pg0KPiA+PiDCoD4gPj4+IFJpZ2h0Lg0KPiA+ PiDCoD4gPj4+DQo+ID4+IMKgPiA+Pj4+IFNvIGZyb20gRS1Td2l0Y2ggdmlldyBwb2ludCBpdCBp cyB0cmFmZmljIHRoYXQgZ29lcyBpbnRvIFZGMT8NCj4gPj4gwqA+ID4+Pg0KPiA+PiDCoD4gPj4+ IE5vLiBBYm92ZSB5b3UgY2xlYXJseSBzYXkgImNvbWluZyBmcm9tIERQREsgcG9ydDMiLiBUaGF0 IGlzLA0KPiA+PiBmcm9tIHRoZSBWRjEuDQo+ID4+IMKgPiA+Pj4gKk5vdCogZ29pbmcgaW50byBp dC4gUG9ydCAzIChldGhkZXZfaWQ9MykgKmlzKiBWRjEuDQo+ID4+IMKgPiA+Pj4NCj4gPj4gwqA+ ID4+IEJ1dCB0YWZmaWMgdGhhdCBnb2VzIGZyb20gRFBESyBwb3J0IDMgZ29lcyBpbnRvIFZGMSwN Cj4gPj4gwqA+ID4+IHdoYXQgYW0gSSBtaXNzaW5nPw0KPiA+PiDCoD4NCj4gPj4gwqA+IFRlcm1z IGxpa2UgIlBGIiwgIlZGIiwgIlBIWV9QT1JUIiBkZXNjcmliZSB0aGUgbmF0dXJlIG9mIHRoZQ0K PiA+PiBlLXN3aXRjaA0KPiA+PiDCoD4gcG9ydHMuIEluIHlvdXIgZXhhbXBsZSwgRFBESyBwb3J0 IDMgaXMganVzdCBiYXNlZCBvbiBWRjEuIFRoZQ0KPiA+PiDCoD4gYXBwbGljYXRpb24gZG9lc24n dCBoYXZlIHN1Y2gga25vd2xlZGdlLiBUbyBpdCwgdGhpcyBpcyBhIHJlZ3VsYXINCj4gPj4gZXRo ZGV2Lg0KPiA+PiDCoD4NCj4gPj4gwqA+IEluIG9yZGVyIHRvIGdhaW4gY29ycmVjdCB1bmRlcnN0 YW5kaW5nLCB5b3Ugc2hvdWxkIGltYWdpbmUgYW4NCj4gPj4gb2JzZXJ2ZXINCj4gPj4gwqA+IHN0 YW5kaW5nIGluc2lkZSB0aGUgZS1zd2l0Y2guIFdoZW4gdGhhdCBvYnNlcnZlciBzZWVzIHBhY2tl dHMNCj4gPj4gZW50ZXJpbmcNCj4gPj4gwqA+IHRoZSBlLXN3aXRjaCBGUk9NIHRoZSBWRjEsIHdl IGVmZmVjdGl2ZWx5IHRhbGsgYWJvdXQgcGFja2V0cyBzZW50DQo+ID4+IGJ5IHRoZQ0KPiA+PiDC oD4gZXRoZGV2IHNpdHRpbmcgb24gdG9wIG9mIHRoYXQgVkYxLCB0aGF0IGlzLCBwYWNrZXRzIGNv bWluZyBGUk9NDQo+ID4+IERQREsNCj4gPj4gwqA+IHBvcnQgMy4gQW5kIHZpY2UgdmVyc2E6IGlm IHlvdSBzYXkgInRyYWZmaWMgdGhhdCBnb2VzIGludG8gVkYxIiwNCj4gPj4geW91DQo+ID4+IMKg PiBtZWFuIHRyYWZmaWMgdGhhdCBMRUFWRVMgdGhlIGUtc3dpdGNoIHZpYSBWRjEsIHRoYXQgaXMs IHRyYWZmaWMsDQo+ID4+IGdvaW5nDQo+ID4+IMKgPiBUTyBEUERLIHBvcnQgMy4NCj4gPj4gwqA+ DQo+ID4+IMKgPiAiVkYxIiBpcyBqdXN0IGEgbmFtZSBvZiBhIGxvZ2ljYWwgIndpbmRvdyIgYmV0 d2VlbiB0aGUgZS1zd2l0Y2gNCj4gPj4gYW5kIGl0cw0KPiA+PiDCoD4gc3Vycm91bmRpbmdzLiBJ ZiB0aGlzIFZGIGlzIHBhc3NlZCB0byBhIGd1ZXN0IG1hY2hpbmUsIHRoZW4gdGhpcw0KPiA+PiBW RiBpcyBhDQo+ID4+IMKgPiAid2luZG93IiBiZXR3ZWVuIHRoZSBlLXN3aXRjaCBhbmQgdGhlIGd1 ZXN0IG1hY2hpbmUuIElmIHlvdSBwbHVnDQo+ID4+IHRoaXMgVkYNCj4gPj4gwqA+IHRvIHRoZSBE UERLIGFwcGxpY2F0aW9uIChjcmVhdGUgYW4gZXRoZGV2IG9uIHRvcCBvZiB0aGlzIFZGKSwgdGhl bg0KPiA+PiB0aGlzDQo+ID4+IMKgPiBWRiBpcyBhICJ3aW5kb3ciIGJldHdlZW4gdGhlIGUtc3dp dGNoIGFuZCB0aGUgUE1ELiBUaGF0J3MgaXQuDQo+ID4+IMKgPg0KPiA+PiDCoD4gPg0KPiA+PiDC oD4gPiBEUERLIHBvcnQgMyBpcyBhIFZGMSBpdHNlbGYuIFNvLCBpcyBpdCBsb29wYmFjaz8gSSB0 aGluayBuby4NCj4gPj4gwqA+ID4NCj4gPj4gwqA+ID4gTGV0IG1lIHJlcGVhdCB5b3VyIGV4YW1w bGU6DQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+IERQREsgYXBwbGljYXRpb246DQo+ID4+IMKgPiA+ IGV0aGRldigwKSBwZiwNCj4gPj4gwqA+ID4gZXRoZGV2KDEpIHJlcHJlc2VudG9yIHRvIFZGMQ0K PiA+PiDCoD4gPiBldGhkZXYoMikgcmVwcmVzZW50b3IgdG8gVkYyDQo+ID4+IMKgPiA+IGV0aGRl digzKSBWRjENCj4gPj4gwqA+ID4NCj4gPj4gwqA+ID4gVk06DQo+ID4+IMKgPiA+IFZGMg0KPiA+ PiDCoD4gPg0KPiA+PiDCoD4gPiBUcmFmZmljIHRoYXQgZ29lcyBmcm9tIERQREsgcG9ydCAzICh3 aGljaCBpcyBWRjEgYm91bmQgdG8gRFBESykNCj4gPj4gwqA+ID4gZ29lcyB0byBpdHMgcmVwcmVz ZW50b3IgYnkgZGVmYXVsdCwgaS5lLiBldGhkZXYoMSkuDQo+ID4+IMKgPg0KPiA+PiDCoD4gKzEN Cj4gPj4gwqA+DQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+Pg0KPiA+PiDCoD4gPj4+PiBXaGlsZSBt YXRjaGluZyBvbiBFLVN3aXRjaF9wb3J0KDMpIG1lYW5zIG1hdGNoaW5nIG9uIHRyYWZmaWMNCj4g Pj4gY29taW5nDQo+ID4+IMKgPiA+Pj4gZnJvbSBWRjE/DQo+ID4+IMKgPiA+Pj4NCj4gPj4gwqA+ ID4+PiBOby4gSXQgbWVhbnMgbWF0Y2hpbmcgb24gdHJhZmZpYyBjb21pbmcgZnJvbSBldGhkZXYg MS4gRnJvbQ0KPiA+PiB0aGUgVkYxJ3MNCj4gPj4gwqA+ID4+PiByZXByZXNlbnRvci4NCj4gPj4g wqA+ID4+Pg0KPiA+PiDCoD4gPj4+Pg0KPiA+PiDCoD4gPj4+PiBBbmQgYnkgdGhlIHNhbWUgbG9n aWMgbWF0Y2hpbmcgb24gZXRoZGV2X2lkKDEpIG1lYW5zIG1hdGNoaW5nDQo+ID4+IG9uDQo+ID4+ IMKgPiA+Pj4+IHRhZmZpYyB0aGF0IHdhcyBzZW50IGZyb20gRFBESyBwb3J0IDEgYW5kIG1hdGNo aW5nIG9uDQo+ID4+IEUtU3dpdGNoX3BvcnQoMSkNCj4gPj4gwqA+ID4+Pj4gbWVhbnMgbWF0Y2hp bmcgb24gdHJhZmZpYyBjb21pbmcgZnJvbQ0KPiA+PiDCoD4gPj4+PiBWRjENCj4gPj4gwqA+ID4+ Pg0KPiA+PiDCoD4gPj4+IEluIHRoaXMgY2FzZSwgeW91J3ZlIGdvdCB0aGlzIHJpZ2h0LiBCdXQg cGxlYXNlIHNlZSBteSBhYm92ZQ0KPiA+PiBub3Rlcy4gQnkgdGhlDQo+ID4+IMKgPiA+Pj4gbG9v a3Mgb2YgaXQsIHlvdSBtaWdodCBoYXZlIHJ1biBpbnRvIGNvbmZ1c2lvbiBvdmVyIHRoZXJlLg0K PiA+PiDCoD4gPj4+DQo+ID4+IMKgPiA+PiBUaGF0IGlzIHRoZSBpc3N1ZSBJJ20gbm90IHN1cmUg SSB1bmRlcnN0YW5kLCBhbmQgSSB0aGluayB0aGF0DQo+ID4+IMKgPiA+PiBpZiBJIGRvbid0IHVu ZGVyZGFuZCB0aGlzLCB0aGlzIG1pc3MgdW5kZXJkYW5kaW5nIHdpbGwgYmUNCj4gPj4gc2hhcmVk IGJ5IG90aGVycy4NCj4gPj4gwqA+DQo+ID4+IMKgPiBQbGVhc2Ugc2VlIG15IGRpYWdyYW0gYmVs b3cuDQo+ID4+IMKgPg0KPiA+PiDCoD4gPg0KPiA+PiDCoD4gPiBJbiBvcmRlciB0byBhZGRyZXNz IHRoZSBjb25mdXNpb24gYW5kIG1pc3VuZGVyc3RhbmRpbmcgd2UNCj4gPj4gwqA+ID4gc2hvdWxk IGZpbmQgb3V0IHRoZSBzb3VyY2Ugb2YgaXQuIFdlIGFsd2F5cyBtYXRjaCBvbiBzb3VyY2UNCj4g Pj4gwqA+ID4gKGluYm91bmQgcG9ydCkgYW5kIHRoZSByZXN1bHQgaXMgYSBkZXN0aW5hdGlvbiAo b3V0Z29pbmcgcG9ydCkuDQo+ID4+IMKgPiA+IFNvLCBpZiBpdGVtIGlzIEVUSERFViwgdGhlIHNv dXJjZSBpcyBEUERLIGFwcGxpY2F0aW9uIHZpYQ0KPiA+PiDCoD4gPiBjb3JyZXNwb25kaW5nIGV0 aGRldiBwb3J0LsKgIElmIEVUSERFViBpcyBhbiBhY3Rpb24sIHRoZQ0KPiA+PiDCoD4gPiBkZXN0 aW5hdGlvbiBpcyB0aGUgRFBESyBhcHBsaWNhdGlvbiB2aWEgc3BlY2lmaWVkIGV0aGRldiBwb3J0 Lg0KPiA+PiDCoD4gPiBBYm92ZSBpcyByZWdhcmRsZXNzIG9mIHRoZSBldGhkZXYgcG9ydCB0eXBl IChyZXByZXNlbnRvciBvcg0KPiA+PiDCoD4gPiBub3QpLiBBbHdheXMsIG5vIGV4Y2VwdGlvbnMu DQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+Pj4+DQo+ID4+IMKgPiA+Pj4+IFNvIGluIHRoaXMgY2Fz ZSBlc3dpdGNoX3BvcnQoMykgaXMgZXF1YWwgb3QgZXN3aXRjaF9wb3J0KDEpDQo+ID4+IHJpZ2h0 Pw0KPiA+PiDCoD4gPj4+PiBXaGlsZSBldGhkZXYoMSkgaXMgbm90IGVxdWFsIHRvIGV0aGRldigz KQ0KPiA+PiDCoD4gPj4+DQo+ID4+IMKgPiA+Pj4gTm8uDQo+ID4+IMKgPiA+Pj4NCj4gPj4gwqA+ ID4+PiBJdGVtIEVUSERFViAoZXRoZGV2X2lkPTEpIGVxdWFscyBpdGVtIEVTV0lUQ0hfUE9SVA0K PiAoZXRoZGV2X2lkPTMpLg0KPiA+PiDCoD4gPj4+IEl0ZW0gRVRIREVWIChldGhkZXZfaWQ9Mykg ZXF1YWxzIGl0ZW0gRVNXSVRDSF9QT1JUDQo+IChldGhkZXZfaWQ9MSkuDQo+ID4+IMKgPiA+Pj4N Cj4gPj4gwqA+ID4+IEkgdGhpbmsgdGhpcyB3YXMgbXkgZmlyc3QgdW5kZXN0YW5pbmcsIGxldHMg c2VlIGlmIEkgY2FuDQo+ID4+IGV4cGxhaW4gaXQgdXNpbmcgbXkgd29yZHMuDQo+ID4+IMKgPiA+ PiBFVEhERVYgLSBtZWFucyB0aGF0IHRoZSBzb3VyY2UgcG9ydCB0aGF0IHdlIGFyZSBtYXRjaGlu ZyBvbiBpcw0KPiA+PiB0aGUgY2xvc2VzdCBvbmUNCj4gPj4gwqA+ID4+IHRoZSBkcGRrIGFwcGxp Y2F0aW9uLg0KPiA+PiDCoD4gPg0KPiA+PiDCoD4gPiBZZXMsIGl0IHNvdW5kcyByaWdodC4NCj4g Pj4gwqA+ID4NCj4gPj4gwqA+ID4+IEV4YW1wbGUgbGlrZSBhYm92ZSBFVEhERVYoZXRoZGV2X2lk PTEpIG1lYW5zIG1hdGNoaW5nDQo+ID4+IMKgPiA+PiBvbiB0cmFmZmljIGNvbWluZyBmcm9tIHRo ZSBQRiB3aXRoIHNvbWUgbWV0YWRhdGEgdGhhdCBtYXJrcw0KPiA+PiB0aGlzIERQREsgcG9ydC4N Cj4gPj4gwqA+DQo+ID4+IMKgPiBTb21lIHZlbmRvcnMgc3VwcG9ydCBhbGxvY2F0aW9uIG9mIHNl cGFyYXRlIGxvZ2ljYWwgZS1zd2l0Y2ggcG9ydHMNCj4gPj4gZm9yDQo+ID4+IMKgPiByZXByZXNl bnRvcnMuIE90aGVyIHZlbmRvcnMgY2FuJ3Qgc3VwcG9ydCB0aGF0LCBhbmQsIGluIHRoaXMgY2Fz ZSwNCj4gPj4gdGhleQ0KPiA+PiDCoD4gaW5kZWVkIGhhdmUgdG8gZGV2aXNlICJQRiArIG1ldGFk YXRhIiBzb2x1dGlvbi4gQnV0IERQREsgZnJhbWV3b3JrDQo+ID4+IChJDQo+ID4+IMKgPiBtZWFu LCB2ZW5kb3ItYWdub3N0aWMgY29kZSkgY2FuJ3QgYXNzdW1lIGFueSBvZiB0aGVzZSBvcHRpb25z IGFzIGENCj4gPj4gwqA+ICJzdGFuZGFyZCIuIE5laXRoZXIgY2FuIGFwcGxpY2F0aW9ucyBkbyB0 aGF0LiBJdCdzIHRydWx5DQo+ID4+IHZlbmRvci1zcGVjaWZpYy4NCj4gPj4gwqA+DQo+ID4+IMKg PiA+DQo+ID4+IMKgPiA+IE5vLCBubywgbm8uIEl0IGlzIHRoZSBwcm9ibGVtIG9mIHRvbyBtdWNo IGtub3dsZWRnZSBhbmQNCj4gPj4gwqA+ID4gZGl2aW5nIHRvbyBkZWVwLiBOZWl0aGVyIHlvdSBu b3IgQVBJIHVzZXIgc2hvdWxkIG5vdA0KPiA+PiDCoD4gPiB0aGluayBhYm91dCBpdC4gUmVwcmVz ZW50b3IgZXRoZGV2KDEpIGlzIGEgRFBESyBldGhkZXYNCj4gPj4gwqA+ID4gcG9ydCB0aGF0J3Mg aXQuIEFuIGFwcGxpY2F0aW9uIGNhbiBzZW5kIHRyYWZmaWMgdmlhIHRoZQ0KPiA+PiDCoD4gPiBl dGhkZXYgcG9ydCBhbmQgcmVjZWl2ZSB0cmFmZmljIGZyb20gaXQuIEhvdyB0aGUgdHJhZmZpYw0K PiA+PiDCoD4gPiBnb2VzIGluc2lkZSBpcyB2ZW5kb3Itc3BlY2lmaWMgaW1wbGVtZW50YXRpb24g ZGV0YWlsLg0KPiA+PiDCoD4gPiBBcHBsaWNhdGlvbiBqdXN0IGtub3cgdGhhdCBpZiBpdCBzZW5k cyB0cmFmZmljIHRvIFZGMQ0KPiA+PiDCoD4gPiByZXByZXNlbnRvciBldGhkZXYoMSksIHRoZSB0 cmFmZmljIHdpbGwgYmUgcmVjZWl2ZWQNCj4gPj4gwqA+ID4gZnJvbSBWRjEgYnkgZGVmYXVsdC4g SWYgaXQgc2VuZHMgdHJhZmZpYyBmcm9tIFZGMSwNCj4gPj4gwqA+ID4gdGhlIHRyYWZmaWMgd2ls bCBiZSByZWNlaXZlZCBmcm9tIFZGMSByZXByZXNlbnRvcg0KPiA+PiDCoD4gPiBieSBkZWZhdWx0 LiBJdCBpcyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgcmVwcmVzZW50b3IuDQo+ID4+IMKgPg0KPiA+ PiDCoD4gKzENCj4gPj4gwqA+DQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+PiBFVEhERVYoZXRoZGV2 X2lkPTMpIG1lYW5zIG1hdGNoaW5nIG9uIHRyYWZmaWMgY29taW5nIGZyb20gVkYxLg0KPiA+PiDC oD4gPg0KPiA+PiDCoD4gPiBZZXMuDQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+Pg0KPiA+PiDCoD4g Pj4gRVNXSVRDSF9QT1JUIG1lYW5pbmcgbWF0Y2hpbmcgb24gdGhlIHBvcnQgdGhhdCBpcyBjb25u ZWN0ZWQgdG8NCj4gPj4gdGhlIERQREsgcG9ydA0KPiA+PiDCoD4gPj4gKHRoZSBvdGhlciBzaWRl IG9mIHRoZSB3aXJlKS4gRXhhbXBsZSBFU1dJVENIX1BPUlQoZXRoZGV2X2lkPTEpDQo+ID4+IG1l YW5zIG1hdGNoaW5nDQo+ID4+IMKgPiA+PiBvbiB0cmFmZmljIGNvbWluZyBmcm9tIFZGMQ0KPiA+ PiDCoD4gPg0KPiA+PiDCoD4gPiBZZXMsIHNpbmNlIGV0aGRldigxKSBpcyBWRjEgcmVwcmVzZW50 b3IuDQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+PiBXaGlsZSBtYXRjaGluZyBvbiBFU1dJVENIX1BP UlQoZXRoZGV2X2lkPTMpIG1lYW5zIG1hdGNoaW5nIG9uDQo+ID4+IFBGIHdpdGggc29tZQ0KPiA+ PiDCoD4gPj4gbWV0YWRhdGEuDQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+IEFnYWluLCB5ZXMgYW5k IG5vLiBObywgc2luY2UgeW91IHNob3VsZCBub3QgdGhpbmsgYWJvdXQgaXQgdGhpcw0KPiA+PiB3 YXkuIEl0DQo+ID4+IMKgPiA+IGlzIGp1c3QgdHJhZmZpYyBzZW50IHZpYSBWRjEgcmVwcmVzZW50 b3IgKHNpbmNlIGV0aGRldigzKSBpcyBWRjENCj4gPj4gYW5kIGl0cw0KPiA+PiDCoD4gPiBvdGhl ciBzaWRlIG9mIHRoZSBsb2dpY2FsIHdpcmUgaXMgVkYxDQo+ID4+IMKgPiA+IHJlcHJlc2VudG9y KS4gTm8gdmVuZG9yLXNwZWNpZmljIGltcGxlbWVudGF0aW9uIGRldGFpbHMuDQo+ID4+IMKgPiA+ DQo+ID4+IMKgPiA+Pg0KPiA+PiDCoD4gPj4gRXZlcnl0aGluZyBhc3N1bWUgdGhhdCByZXByZXNl bnRvcnMgYXJlIG9uIHRoZSBQRiBhbmQgdXNlIHNvbWUNCj4gPj4gbWV0YWRhdGEuDQo+ID4+IMKg PiA+DQo+ID4+IMKgPiA+IE5vLCBpdCBpcyBhIHZlbmRvci1zcGVjaWZpYyBpbXBsZW1lbnRhdGlv biBkZXRhaWxzLg0KPiA+PiDCoD4gPiBGbG93IEFQSSBkZWZpbml0aW9ucyBzaG91bGQgbm90IG1l bnRpb24gaXQuDQo+ID4+IMKgPg0KPiA+PiDCoD4gKzENCj4gPj4gwqA+DQo+ID4+IMKgPiA+DQo+ ID4+IMKgPiA+Pg0KPiA+PiDCoD4gPj4gRGlkIEkgZ2V0IGl0IHJpZ2h0Pw0KPiA+PiDCoD4NCj4g Pj4gwqA+IExldCdzIHRyeSB0byBsb29rIGF0IHRoZSBvdmVyYWxsIGlkZWEgb25lIG1vcmUgdGlt ZS4gSnVzdCB0byBnZXQNCj4gPj4gdXMgb24NCj4gPj4gwqA+IHRoZSBzYW1lIHBhZ2UuDQo+ID4+ IMKgPg0KPiA+PiDCoD4gSW4gZ2VuZXJhbCwgZm9yIGFueSBnaXZlbiBldGhkZXYgeW91IGhhdmU6 DQo+ID4+IMKgPg0KPiA+PiDCoD4NCj4gPj4gwqA+IEVUSERFViAoQSkNCj4gPj4gwqA+IHwNCj4g Pj4gwqA+IHzCoMKgwqAgKFBNRCBhcmVhKQ0KPiA+PiDCoD4gfA0KPiA+PiDCoD4gQ0xPU0VTVCBF U1dJVENIX1BPUlQgKEIpDQo+ID4+IMKgPiB8DQo+ID4+IMKgPiB8wqDCoMKgIChlLXN3aXRjaCBh cmVhKQ0KPiA+PiDCoD4gfA0KPiA+PiDCoD4gUkVNT1RFIEVTV0lUQ0hfUE9SVCAoQykNCj4gPj4g wqA+IHwNCj4gPj4gwqA+IFgNCj4gPj4gwqA+DQo+ID4+IMKgPg0KPiA+PiDCoD4gVGhlIHBvaW50 ICJCIiBpcyBsb2NhdGVkIGNsb3Nlc3QgdG8gdGhlIGV0aGRldiAoQSkuIE5vdCB0byB0aGUNCj4g Pj4gwqA+IGFwcGxpY2F0aW9uIGluIGdlbmVyYWwsIGJ1dCB0byB0aGUgZ2l2ZW4gZXRoZGV2Lg0K PiA+PiDCoD4NCj4gPj4gwqA+IFRoZSBwb2ludCAiQyIgaXMgdGhlIG1vc3QgcmVtb3RlIHBvaW50 IGZyb20gdGhlIGV0aGRldidzIHBlcnNwZWN0aXZlLg0KPiA+PiDCoD4gQWdhaW4sIGl0J3Mgbm90 IHRoZSBtb3N0IHJlbW90ZSBmcm9tIHRoZSBhcHBsaWNhdGlvbi4gSXQncyB0aGUNCj4gPj4gbW9z dA0KPiA+PiDCoD4gcmVtb3RlIGZyb20gdGhpcyBzcGVjaWZpYyBldGhkZXYuDQo+ID4+IMKgPg0K PiA+PiDCoD7CoCBGcm9tIHRoZSBhcHBsaWNhdGlvbiBwZXJzcGVjdGl2ZSwgdGhlIG5hdHVyZSBv ZiAoQikgYW5kIChDKSBpcw0KPiA+PiB1bmtub3duLg0KPiA+PiDCoD4gQnV0IHRoZSBhcHBsaWNh dGlvbiBrbm93cyBmb3Igc3VyZSB0aGF0IHRoZXNlIHBvaW50cyBqdXN0IGV4aXN0Lg0KPiA+PiBU byBpdCwNCj4gPj4gwqA+IHRoZXNlIHBvaW50cyBhcmUgc29tZSAqbG9naWNhbCogZS1zd2l0Y2gg cG9ydHMuDQo+ID4+IMKgPg0KPiA+PiDCoD4gTm93Lg0KPiA+PiDCoD4NCj4gPj4gwqA+IFdoZW4g eW91IHNheSAiaXRlbSBFVEhERVYiLCB5b3UgdGVsbCB0aGUgUE1EIHRoYXQgeW91IHdhbnQgdG8N Cj4gPj4gbWF0Y2gNCj4gPj4gwqA+IHBhY2tldHMgZW50ZXJpbmcgdGhlICpQTUQgYXJlYSogRlJP TSBwb2ludCAoQSkuIEJ1dCB5b3UgYWxzbyBhZGQNCj4gPj4gwqA+ICJ0cmFuc2ZlciIgYXR0cmli dXRlLiBUaGlzIGF0dHJpYnV0ZSBtYWtlcyB0aGUgUE1EIHRyYW5zbGF0ZSB5b3VyDQo+ID4+IMKg PiByZXF1ZXN0IHRvIHRoZSBlLXN3aXRjaCB2aWV3cG9pbnQgYnkgInRyYW5zZmVycmluZyIgcG9p bnQgIkEiIG9uZQ0KPiA+PiBsZXZlbA0KPiA+PiDCoD4gYmVsb3cuIFdoYXQgd2FzICJBIiBiZWNv bWVzICJCIi4gVGhpcyB3YXksIGFuIGltYWdpbmFyeSBvYnNlcnZlcg0KPiA+PiDCoD4gc3RhbmRp bmcgaW5zaWRlIHRoZSAqZS1zd2l0Y2ggYXJlYSogaW50ZXJjZXB0cyBwYWNrZXRzIHdoaWNoIGVu dGVyDQo+ID4+IHRoaXMNCj4gPj4gwqA+IGFyZWEgRlJPTSAoQikuDQo+ID4+IMKgPiBTdW1tYXJ5 OiB0aGlzIHdheSwgeW91IG1hdGNoIHBhY2tldHMgZ29pbmcgKkRPV04qIGZyb20gKEEpLg0KPiA+ PiDCoD4NCj4gPj4gwqA+IFdoZW4geW91IHNheSAiaXRlbSBFU1dJVENIX1BPUlQiLCB5b3UgdGVs bCB0aGUgUE1EIHRoYXQgeW91IHdhbnQNCj4gPj4gdG8NCj4gPj4gwqA+IG1hdGNoIHBhY2tldHMg ZW50ZXJpbmcgdGhlICpQTUQgYXJlYSogRlJPTSBwb2ludCAoQikuIE9uY2UgYWdhaW4sDQo+ID4+ IMKgPiAidHJhbnNmZXIiIHRyYW5zbGF0ZXMgdGhpcyB0byB0aGUgZS1zd2l0Y2ggdmlld3BvaW50 LCB0aGF0IGlzLCAoQikNCj4gPj4gwqA+IGJlY29tZXMgKEMpLiBTbywgdGhlIGUtc3dpdGNoIGtu b3dzIHRoYXQgaXQgc2hvdWxkIGludGVyY2VwdA0KPiA+PiBwYWNrZXRzDQo+ID4+IMKgPiBlbnRl cmluZyBpdHMgYXJlYSBGUk9NIHBvaW50IChDKS4NCj4gPj4gwqA+IFN1bW1hcnk6IHRoaXMgd2F5 LCB5b3UgbWF0Y2ggcGFja2V0cyBnb2luZyAqVVAqIGZyb20gKFgpLg0KPiA+PiDCoD4NCj4gPj4g wqA+DQo+ID4+IMKgPiBTb21lIHVzZSBjYXNlIGV4YW1wbGVzOg0KPiA+PiDCoD4NCj4gPj4gwqA+ IC0gVGhlIGV0aGRldiAoQSkgaXMgYSBEUERLIHBvcnQgYmFzZWQgb24gYSBQRiBhc3NvY2lhdGVk IHdpdGggYQ0KPiA+PiBuZXR3b3JrDQo+ID4+IMKgPiBwb3J0LiBJbiB0aGlzIGNhc2UsIChCKSA9 PSBQRiBhbmQgKEMpID09IChYKSA9PSBuZXR3b3JrIHBvcnQuDQo+ID4+IMKgPg0KPiA+PiDCoD4g LSBUaGUgZXRoZGV2IChBKSBpcyBhIHJlcHJlc2VudG9yIG9mIFZGMSB3aGljaCBpcyBwYXNzZWQg dG8gYSBWTS4NCj4gPj4gSW4NCj4gPj4gwqA+IHRoaXMgY2FzZSwgKEIpIGlzIGp1c3QgYW4gZS1z d2l0Y2ggbG9naWNhbCBwb3J0LiBJdCdzIG5hdHVyZSBpcw0KPiA+PiB2ZW5kb3INCj4gPj4gwqA+ IHNwZWNpZmljLiBJdCBjYW4gYmUgYSBQRiwgaXQgY2FuIGJlIG5vdC4gSXQgZGVwZW5kcy4gKEMp ID09IFZGLA0KPiA+PiAoWCkgPT0gVk0uDQo+ID4+IMKgPg0KPiA+PiDCoD4gLSBUaGUgZXRoZGV2 IChBKSBpcyBhIHJlcHJlc2VudG9yIG9mIFZGMSB3aGljaCBpcyBwbHVnZ2VkIHRvIHRoZQ0KPiA+ PiBzYW1lDQo+ID4+IMKgPiBEUERLIGFwcGxpY2F0aW9uLiBJbiB0aGlzIGNhc2UsIChCKSBpcywg b25jZSBhZ2Fpbiwgc29tZSBsb2dpY2FsDQo+ID4+IMKgPiBlLXN3aXRjaCBwb3J0LiAoQykgPT0g VkYuIEJ1dCAoWCkgaGVyZSBpcyBhbm90aGVyIGV0aGRldi4gU28sIHRoaXMNCj4gPj4gd2F5LA0K PiA+PiDCoD4gZXRoZGV2IChBKSBpcyBhIHJlcHJlc2VudG9yJ3MgZXRoZGV2IGFuZCBldGhkZXYg KFgpIGlzIGEgVkYncyBldGhkZXYuDQo+ID4+IMKgPg0KPiA+PiDCoD4gSW4gYWxsIGNhc2VzIHRo ZSBhcHBsaWNhdGlvbiBkb2Vzbid0IGNhcmUgYWJvdXQgdGhlIG5hdHVyZSBvZiB0aGUNCj4gPj4g wqA+IGUtc3dpdGNoIHBvcnRzIChCKSBhbmQgKEMpLiBJdCBqdXN0IGtub3dzIHRoYXQgdGhleSBl eGlzdC4NCj4gPj4gwqA+DQo+ID4+IMKgPiA+DQo+ID4+IMKgPiA+IEkgdGhpbmsgeW91IGdldCBv dmVyYWxsIGlkZWEgcmlnaHQsIGJ1dCBleHBsYW5hdGlvbnMNCj4gPj4gwqA+ID4gYXJlIHRvbyBj b21wbGljYXRlZC4gSXQgaXMgc2ltcGxlciBpbiBmYWN0Lg0KPiA+PiDCoD4gPg0KPiA+PiDCoD4g Pj4+Pg0KPiA+PiDCoD4gPj4+PiBBbmQganVzdCB0byBjb21wbGV0ZSB0aGUgcGljdHVyZSwgbWF0 Y2hpbmcgb24gZXRoZGV2KDIpIHdpbGwNCj4gPj4gcmVzdWx0IGluDQo+ID4+IMKgPiA+Pj4+IHRy YWZmaWMgY29taW5nIGZyb20gdGhlIGRwZGsgcG9ydCBhbmQgbWF0Y2hpbmcgb24NCj4gPj4gZXN3 aXRjaF9wb3J0KDIpIHdpbGwNCj4gPj4gwqA+ID4+Pj4gbWF0Y2ggb24gdHJhZmZpYyBjb21pbmcg ZnJvbSBWRjINCj4gPj4gwqA+ID4+Pg0KPiA+PiDCoD4gPj4+IEV4YWN0bHkuDQo+ID4+IMKgPiA+ Pj4NCj4gPj4gwqA+ID4+Pg0KPiA+PiDCoD4gPj4+IEJ1dCwgT3JpLCBsZXQgbWUgZHJhdyB5b3Vy IGF0dGVudGlvbiB0byB0aGUgZm9sbG93aW5nIGlzc3VlLg0KPiA+PiBJbiBvcmRlciB0bw0KPiA+ PiDCoD4gPj4+IHNpbXBsaWZ5IHVuZGVyc3RhbmRpbmcsIEkgc3VnZ2VzdCB0aGF0IHdlIHJlZnJh aW4gZnJvbSBzYXlpbmcNCj4gPj4gInRyYWZmaWMgdGhhdA0KPiA+PiDCoD4gPj4+IEdPRVMgVE8i LiBXaGVyZSBpdCBnb2VzIGRlcGVuZHMgb24gZGVmYXVsdCBydWxlcyB0aGF0IGFyZQ0KPiA+PiBz dXBwb3NlZCB0byBiZQ0KPiA+PiDCoD4gPj4+IG1haW50YWluZWQgYnkgdGhlIFBNRCB3aGVuIHBv cnRzIGdldCBwbHVnZ2VkIC8gdW5wbHVnZ2VkLg0KPiA+PiDCoD4gPj4+DQo+ID4+IMKgPiA+Pj4g VGhlIGZsb3cgaXRlbXMgRVRIREVWIGFuZCBFU1dJVEhfUE9SVCBkZWZpbmUgdGhlIFNPVVJDRSBv Zg0KPiA+PiB0cmFmZmljLg0KPiA+PiDCoD4gPj4+IFRoYXQncyBpdC4gVGhleSBkZWZpbmUgd2hl cmUgdGhlIHRyYWZmaWMgImdvZXMgRlJPTSIuDQo+ID4+IMKgPiA+Pj4NCj4gPj4gwqA+ID4+PiBT YXksIHRoZSBEUERLIGFwcGxpY2F0aW9uIHNlbmRzIGEgcGFja2V0IGZyb20gZXRoZGV2IDAuIFRo aXMNCj4gPj4gcGFja2V0IGVudGVycw0KPiA+PiDCoD4gPj4+IHRoZSBlLXN3aXRjaC4gTWF0Y2gg ZW5naW5lIHNpdHMgaW4gdGhlIGUtc3dpdGNoIGFuZCBpbnRlcmNlcHRzDQo+ID4+IHRoZSBwYWNr ZXQuIEl0DQo+ID4+IMKgPiA+Pj4gZG9lc24ndCBjYXJlIHdoZXJlIHRoZSBwYWNrZXQgKndvdWxk IGdvKiBpZiBpdCB3YXNuJ3QNCj4gPj4gaW50ZXJjZXB0ZWQuIEl0IGNhcmVzDQo+ID4+IMKgPiA+ Pj4gYWJvdXQgd2hlcmUgdGhlIHBhY2tldCBjb21lcyBmcm9tLiBBbmQgaXQgY29tZXMgZnJvbSBl dGhkZXYgMC4NCj4gPj4gU28sIGluIHRoZQ0KPiA+PiDCoD4gPj4+IGZvY3VzLCB3ZSBoYXZlIHRo ZSBTT1VSQ0Ugb2YgdGhlIHBhY2tldC4NCj4gPj4gwqA+ID4+Pg0KPiA+PiDCoD4gPj4NCj4gPj4g wqA+ID4+IEFncmVlIHdpdGggeW91IHdlIHNob3VsZCBvbmx5IGxvb2sgYXQgY29taW5nIGZyb20s DQo+ID4+IMKgPiA+PiBidXQgc29tZXRoaW5nIGluIHRoZSBwYXRjaCBtYWRlIG1lIHRoaW5nIG90 aGVyd2lzZSAobm90IHN1cmUNCj4gPj4gd2hhdCBwYXJ0KQ0KPiA+PiDCoD4gPg0KPiA+PiDCoD4g PiBJJ3ZlIHJlcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgZmFpbGVkIHRvIGZpbmQsDQo+ID4+ IMKgPiA+IGJ1dCBpdCB3aWxsIGJlIGhhcmQgZm9yIG1lIHRvIGRvIGl0LCBzaW5jZSBJIHJlYWQN Cj4gPj4gwqA+ID4gaXQgdG9vIG1hbnkgdGltZXMgYWxyZWFkeS4NCj4gPj4gwqA+ID4NCj4gPj4g wqA+ID4gVGhhbmtzLA0KPiA+PiDCoD4gPiBBbmRyZXcuDQo+ID4+IMKgPiA+DQo+ID4+DQo+ID4N Cj4gDQo+IC0tDQo+IEl2YW4gTQ0KDQpCZXN0LA0KT3JpDQo=