Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 362C7C433FE for ; Tue, 30 Nov 2021 13:38:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240938AbhK3NlU (ORCPT ); Tue, 30 Nov 2021 08:41:20 -0500 Received: from mail-mw2nam12on2093.outbound.protection.outlook.com ([40.107.244.93]:28001 "EHLO NAM12-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S229473AbhK3NlT (ORCPT ); Tue, 30 Nov 2021 08:41:19 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oQ1V+Ljvs4heg7PFUmse+hp061jK2uV/T7cTuHZsWyB4e8uN2cSruzFJ2ngzomePPsCiI4Db5AM1eekz1MziGVPQJLThQer07e8ex0mhz8c8rXbR+Tfj62DmQXf8crbf7gwm+xFl2vN4nWC623g90+jW7LzydzF8b7DKQIs3JhiBpyt9ezyrYMASuhMlGBiBFJxNeRIYIA7xfZyD4fp8T5rWVbmtCVJOM3B4VVDF73+dgGWygusLRHWTIXDhhGbERomQ5v4wOyUhhuYhSpEmSWONbGbghCIjo0vOAqRMTjbqElcakXMyiDvqMFRO4HTjgxI5xy1FEZvS5RHgR/wGmg== 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=kyIPdnPRDmwZB5j0/ZU4Q69uIjVde1mEUNeh3bhMHEM=; b=aEjbfdW+1O188U1wZZl4f0ZC6LpHrpScLLguaZfaPSL6IiUO6agery1UwBlmt1y17LkU2h68uv+D8f0znaZ6490U6AfbPZZeoiSrrJXUTY1Lyy3PWZsc3lHzFrwt0c7scr+sIGKTUtt9bvqVrUIxx6X65l+qfbtMRo2Oj/IBX41BD7R4DAQdjdLd6b3fwJrB03JpYDkSv4qw1EDVkkHbGcCfoILI1xiUyAHUwyj95mQlf921bd6yKedUG/P1CR4B7KQgiKTDjMboOzPT9r1DH7DZB0mf2PW1+IuLbp3OShJ7qMexjQ1hRnm7Rlb7K4dH47JXBBBjmEoCmKIgE9stfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kyIPdnPRDmwZB5j0/ZU4Q69uIjVde1mEUNeh3bhMHEM=; b=RYMIZf6ovmIcvlOr3e1yxOLXQEQoUYx1uvqjyNs9D1tQQboEV84K15B4Jm6yJ+XTB5OZBzMggM7u2m0/FcoXzR2V6Af2vNILPcmAh/vzhg53qW4Siw0sQIVkUSQzOrebSh+K16l956Fq/3GmSFEDS8uLt2lX7a1YryM+8ozfuuA= Received: from CH0PR13MB5084.namprd13.prod.outlook.com (2603:10b6:610:111::7) by CH2PR13MB3829.namprd13.prod.outlook.com (2603:10b6:610:92::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.10; Tue, 30 Nov 2021 13:37:57 +0000 Received: from CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::288c:e4f1:334a:a08]) by CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::288c:e4f1:334a:a08%3]) with mapi id 15.20.4755.012; Tue, 30 Nov 2021 13:37:57 +0000 From: Trond Myklebust To: "dai.ngo@oracle.com" , "chuck.lever@oracle.com" CC: "bfields@fieldses.org" , "linux-nfs@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" Subject: Re: [PATCH RFC v5 0/2] nfsd: Initial implementation of NFSv4 Courteous Server Thread-Topic: [PATCH RFC v5 0/2] nfsd: Initial implementation of NFSv4 Courteous Server Thread-Index: AQHXtMzkc4v6dd1KNEyHoBK8G4XROqu+oymAgAANi4CASGLiAIAA/bOAgAA+8oCAAD8yAIAALy8AgAZzIQCAC+10AIAAFrcQgAAIAACAAAk2AIAAGm6AgAAyloCAABlkgIAAKLsAgAAK4QCAAAK5gIAAKI4AgABo8oA= Date: Tue, 30 Nov 2021 13:37:56 +0000 Message-ID: <3302102abac40bfbbd861f6ed942b2536db2e59a.camel@hammerspace.com> References: <20210929005641.60861-1-dai.ngo@oracle.com> <20211001205327.GN959@fieldses.org> <33c8ea5a-4187-a9fa-d507-a2dcec06416c@oracle.com> <20211117141433.GB24762@fieldses.org> <400143c8-c12a-6224-1b36-3e19f20a7ee4@oracle.com> <908ded64-6412-66d3-6ad5-429700610660@oracle.com> <20211118003454.GA29787@fieldses.org> <20211129173058.GD24258@fieldses.org> <1285F7E2-5D5F-4971-9195-BA664CAFF65F@oracle.com> <22000fe0-9b17-3d88-1730-c8704417cb92@oracle.com> <0B58F7BC-A946-4FE6-8AC2-4C694A2120A3@oracle.com> <3afa1db55ccdf52eff7afb7b684eb961f878b68a.camel@hammerspace.com> <7548c291-cc0a-ed7a-ca37-63afe1d88c27@oracle.com> In-Reply-To: <7548c291-cc0a-ed7a-ca37-63afe1d88c27@oracle.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=hammerspace.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a8fb9f71-35fd-4a16-55c6-08d9b4069eaa x-ms-traffictypediagnostic: CH2PR13MB3829: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0Or3SpG7jdvgANw7VkldiPNOHET2uS/gqb32Aa0HjUBx0Xq5ZEwL9tNfvsYHK7r6Po26lrzxaqmH4mFRdFcnNkskN6tpqYDaM5WW+jB0DegUnNypmFprXYZGfdwJYfX1DHslapWaFaUC3BNaqam4hIRcpH483Jvuj7SqUiPWKkEiG/brY4CiYJlZVRenOcQKDiCyWFVi4VtnFWfUfws6eX6ttwBCpU3OxJPdra6afWWr6VJZDC23lqvkQPeOrFXnY6F1enoehEheYJPfPhJcDg+cjoKNTByuJpvu4ankN8ssKZx/T66/Lj5j3RcroxCukMDujrubLSGFsUzNAUsobNHuzszjhhhHwf4rNXlRKAEKvGA0qp6o1JbW5L27SNtO9FG+e939rJcd4OUx4kYXD/swE0PgRVtUQEjfg7Xt5JtDA0mFKmcwbFtcP5oQJ8I9rUl/qZvxRIsWmdnbWrdyx07666tn9HYxmbGk0mAmg4V+AvzmQqRLsjLK/E+8ddDt0pNk4Ese5grrfNuIgp7whQpo8D30PoR2hK3o2UH5kUC6UFdFPnuso4HemyOsUwef24teqzLwFwEdZnvjl45yFXJ83R/luaJ7ygXHQBTP7RIr6+es3My6RzL0BfNK0TiQ7m85gItkl2UVlp9q/Q3f1iBxWgI9FeukzimvfNFWlXw7zLFNqzPSwWYLHd3YSPUhAARo2r3P9sngQuw7/vs7tg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR13MB5084.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(396003)(39840400004)(366004)(136003)(2616005)(38070700005)(508600001)(53546011)(26005)(4326008)(186003)(2906002)(54906003)(110136005)(66476007)(66446008)(6512007)(30864003)(71200400001)(38100700002)(66946007)(8936002)(64756008)(122000001)(66556008)(83380400001)(6486002)(8676002)(76116006)(4001150100001)(6506007)(86362001)(36756003)(5660300002)(316002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b3NNZk14OHdqV1lMMXpERWZoeVo2TnZOTDJwREtrazZ4aCtyY0NkdGZiMUNO?= =?utf-8?B?UzJKcUo1S0dpcXBBbWhsR292YkpOcEcvMUJCMzhzOVFGbXNIMUhmM1AxdDl5?= =?utf-8?B?OVZ2MDFqUGN0Mlg2bHdyTlJTbGR4bnpxOFpCK1YwdjRGVFk2YS9uMitzMEd4?= =?utf-8?B?d2ZhL3JSY2Rad2NEdXBhYWhxbVFMeDF1Smg0TzNGSDhaWWdRdmRGUUdTT0V6?= =?utf-8?B?WUJKSGt5RUhIRFpYcXhyRCtkUVpKay8yK3lSZER4aWtTek5GejVvbUpFVlFB?= =?utf-8?B?d3VhSmpzbVV0TGVSNEtPbk5MYUoxOWp2NTl1aW1iLzJCc3N3N1dLVWUwTS9F?= =?utf-8?B?eGltUFhWMmgxMW5EalVVcEhvQk0yUk9RMHg4VWMzWGlJWDhjdXNmb0tDM0g5?= =?utf-8?B?QXNZb3hSNmZ6KzYxZXBUdWlORFlTWFdyb1daSXhtckRZZ0pnNW4zWnBQelFI?= =?utf-8?B?NUdYcTA2K1E0b3JCNndiOUxvQU9xWTZFM1dzSEJaTFVSRFdQM3p2RVlkSDN5?= =?utf-8?B?VnlGdC9wTWdnVXlVcmFvaEVkUW0vdThIVk83V1hCV21MLzYxZnlEZWZvVGFv?= =?utf-8?B?dWFKT3RZTUNsaDQ2d0c1QVRGdlNiRDlIY1pnRXJaVkhtRUxnU0FGUjZES2xi?= =?utf-8?B?cUNLWExId1VpdUQ3UzFIcTFVR0xkY2lRbjdRdG81VjRWQ3d0bWNOZ0ZXTTNz?= =?utf-8?B?VXdqTTNkaWlFazh4bHQ2TlpFOUViN3oySFc3ZE9OYVJQUWhGZy9LVUdqSVpW?= =?utf-8?B?Y3drL0dGMWFVNTdvTmljaXphT0xlMVFzbHRha2JFVm9WRnZsVFRmV0tUbEwr?= =?utf-8?B?Y0hRSTVqcmNPT3E2Qmg3NE1EaUVhekhCbnBKeC81emVPTFFqaEx4ZEpYd0E0?= =?utf-8?B?VzJVR1ZFQ0lNQXEwSlh1cDliZTVjYkJWVHdIVmVWQnEvNU9CcmxJQ3RsdG9t?= =?utf-8?B?K1JocDd3V0M2VFlKeDRDdUZyT0U3Nm5JQlAxUkZJR0hkQ1lTUlpsMHhuSkpC?= =?utf-8?B?VlE1ZmhFakdXcE9FWFhzSnhFWFhEMUUzNmVxSEJ4S2NVYmJLSGg3UDVPZUtN?= =?utf-8?B?ME1TMXJta0F0VTl2V0FJRnA5SGxCVG80VGJ3SUVZbGlNRjZjb1NiM3VwdGQw?= =?utf-8?B?SDhLK3Z3eVIya3QwSmtXZk5qYU9JN3NYT0RSb0Q0Y2M2cTBOcldhRldXVmJB?= =?utf-8?B?YW1ObUhyaVJMS0VoZ0VsTTRLZDdMcWNiSVBkT1ZESGROZjl3SjRadXppT1J0?= =?utf-8?B?MmIvTkxlU3FQbEcybHpxQ1FhUk9SN0dDdzNrMVlOSkw1ajk2NUtuK01LV0Fx?= =?utf-8?B?Wkw5WnY4WjZVUmRBT3Vib3VHaDhnOUEvRVRQMFByZm1GTG9FUW1iWlE5bFJR?= =?utf-8?B?VUkyMmcvS1hsWXNLR2ZTQ3VLM0FLa1dFYkhIU2VvYmtVYU5NRTZNb2x0bkpM?= =?utf-8?B?Z2hTc2oxcis4S1FJSjdKc01DOUFESnZtQ2R5NzNvWnBZZ05EdzdiYUZ1bm1y?= =?utf-8?B?MmRhT3I5SVlBV0hRV0JJSnUzbW1RUFJzdHd4djh2S1pYUUtweDZzTmJIakk3?= =?utf-8?B?SGxMbTZBU2x3clVmQ044Z293T0hZSlJMK3RMMHFDZlN6d0RkNWVKTzBmTkk3?= =?utf-8?B?ZjNSdWVvUDdINUhKYlpuZHVTaVFOUE1QblZJQlVZTklRMktyVlFxcEJRTGM5?= =?utf-8?B?MGk3eDB4YjJPYTBXMjdMcXFXMUt0Nm5mMHVCWWNheGJ2N3gzZE9NVHJnZXBs?= =?utf-8?B?M2pmK0xLWXhSZSsvLzVTUTh1WGt6Z3lkdGVrVm53TXhTMmxRRlJuL3N6Z2VL?= =?utf-8?B?cllUVVhKbXl0MGlYc0hCbFdVaXRkdkE1T1FxLzJzRnVzbWM4YVlDaFlUVUtE?= =?utf-8?B?d2JwdTZ3RG1SeGhuSXJrQWZkVlhUMGxvOTNENzB3YzRyTDBmNEtkdFk1ZnJY?= =?utf-8?B?KzI1VWxBL3U4eGVGV0Q4SHFwZHRna2twc3M4cHQrWVZLQk9lb2UxcnVlYlQr?= =?utf-8?B?T3dkc2xzWlA3Rzh1SFBoYXVBSndLUlBTNGV3VVN4SGJFYnVRWk9ySzBoTzZx?= =?utf-8?B?Zk9INE5ZUzlqRWhia0V1UGI4RzUxNnRBMHFPS3RtajltQ0Z5eitoS0hJSU9M?= =?utf-8?B?a2hPTGNLRWU5OVJnaWhRRC8xazBBN1VKWGVnK3JlVTVGMUNMTHBZS3VyVktw?= =?utf-8?Q?SqFPFJxwCTJv3uQT2GIOAFU=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR13MB5084.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a8fb9f71-35fd-4a16-55c6-08d9b4069eaa X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2021 13:37:56.9384 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Oh0LjODN8F5BrOnBjQEaRU5DonjF4y+zv4AxELC9LQ2CEI0xrcKLa2aaoc5qw79KT44YYedRJF3Ww1cUDJasBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR13MB3829 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gTW9uLCAyMDIxLTExLTI5IGF0IDIzOjIyIC0wODAwLCBkYWkubmdvQG9yYWNsZS5jb20gd3Jv dGU6DQo+IA0KPiBPbiAxMS8yOS8yMSA4OjU3IFBNLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6DQo+ ID4gT24gVHVlLCAyMDIxLTExLTMwIGF0IDA0OjQ3ICswMDAwLCBDaHVjayBMZXZlciBJSUkgd3Jv dGU6DQo+ID4gPiA+IE9uIE5vdiAyOSwgMjAyMSwgYXQgMTE6MDggUE0sIFRyb25kIE15a2xlYnVz dA0KPiA+ID4gPiA8dHJvbmRteUBoYW1tZXJzcGFjZS5jb20+IHdyb3RlOg0KPiA+ID4gPiANCj4g PiA+ID4g77u/T24gVHVlLCAyMDIxLTExLTMwIGF0IDAxOjQyICswMDAwLCBDaHVjayBMZXZlciBJ SUkgd3JvdGU6DQo+ID4gPiA+ID4gPiA+IE9uIE5vdiAyOSwgMjAyMSwgYXQgNzoxMSBQTSwgRGFp IE5nbyA8ZGFpLm5nb0BvcmFjbGUuY29tPg0KPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+ID4g PiA+IO+7vw0KPiA+ID4gPiA+ID4gPiBPbiAxMS8yOS8yMSAxOjEwIFBNLCBDaHVjayBMZXZlciBJ SUkgd3JvdGU6DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gT24gTm92IDI5LCAy MDIxLCBhdCAyOjM2IFBNLCBEYWkgTmdvDQo+ID4gPiA+ID4gPiA+ID4gPiA8ZGFpLm5nb0BvcmFj bGUuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+ID4gT24gMTEvMjkvMjEgMTE6MDMgQU0sIENodWNrIExldmVyIElJSSB3cm90ZToN Cj4gPiA+ID4gPiA+ID4gPiA+IEhlbGxvIERhaSENCj4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIE5vdiAyOSwgMjAyMSwgYXQgMToz MiBQTSwgRGFpIE5nbw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA8ZGFpLm5nb0BvcmFjbGUuY29tPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiAxMS8yOS8yMSA5OjMwIEFNLCBK LiBCcnVjZSBGaWVsZHMgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT24gTW9uLCBOb3Yg MjksIDIwMjEgYXQgMDk6MTM6MTZBTSAtMDgwMCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkYWku bmdvQG9yYWNsZS5jb23CoHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSGkgQnJ1Y2Us DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIDEx LzIxLzIxIDc6MDQgUE0sIGRhaS5uZ29Ab3JhY2xlLmNvbcKgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IE9uIDExLzE3LzIxIDQ6MzQgUE0sIEouIEJydWNlIEZpZWxkcyB3cm90ZToN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBXZWQsIE5vdiAxNywgMjAyMSBhdCAwMTo0 NjowMlBNIC0wODAwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRhaS5uZ29Ab3JhY2xl LmNvbcKgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiAxMS8xNy8yMSA5 OjU5IEFNLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZGFpLm5nb0BvcmFjbGUuY29t wqB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT24gMTEvMTcvMjEgNjox NCBBTSwgSi4gQnJ1Y2UgRmllbGRzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdy b3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIFR1ZSwgTm92IDE2LCAy MDIxIGF0IDAzOjA2OjMyUE0gLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDA4 MDAsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZGFpLm5nb0BvcmFjbGUuY29t wqB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEp1c3QgYSByZW1p bmRlciB0aGF0IHRoaXMgcGF0Y2ggaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IHN0aWxsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3YWl0aW5nIGZv ciB5b3VyIHJldmlldy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBZZWFoLCBJ IHdhcyBwcm9jcmFzdGluYXRpbmcgYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gaG9waW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4geW8ndWQNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmaWd1cmUgb3V0IHRoZSBweW5mcw0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZhaWx1cmUgZm9yIG1lLi4uLg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBMYXN0IHRpbWUgSSByYW4gNC4wIE9QRU4xOCB0ZXN0IGJ5 DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGl0c2VsZg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaXQg cGFzc2VkLiBJIHdpbGwgcnVuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFsbCBP UEVOIHRlc3RzIHRvZ2V0aGVyIHdpdGggNS4xNS1yYzcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2VlIGlmDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBwcm9ibGVtIHlvdSd2ZQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzZWVuIHN0aWxsIHRoZXJlLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gSSByYW4gYWxsIHRlc3RzIGluIG5mc3Y0LjEgYW5kIG5mc3Y0LjANCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdpdGgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IGNvdXJ0ZW91cyBhbmQgbm9uLWNvdXJ0ZW91cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gNS4xNS1yYzcgc2VydmVyLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBOZnM0LjEgcmVzdWx0cyBhcmUgdGhlIHNh bWUgZm9yIGJvdGgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvdXJ0ZW91cw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBub24tY291cnRlb3VzIHNlcnZlcjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gT2YgdGhvc2U6IDAgU2tpcHBlZCwgMCBGYWlsZWQsIDANCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gV2FybmVkLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAxNjkN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUGFzc2VkDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiBSZXN1bHRzIG9mIG5mczQuMCB3aXRoIG5vbi1jb3VydGVvdXMNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNlcnZlcjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gT2YgdGhvc2U6IDggU2tpcHBlZCwgMSBGYWlsZWQsIDANCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gV2FybmVkLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA1NzcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUGFzc2VkDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiB0ZXN0IGZhaWxlZDogTE9DSzI0DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFJlc3VsdHMgb2Yg bmZzNC4wIHdpdGggY291cnRlb3VzIHNlcnZlcjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gT2YgdGhvc2U6IDggU2tpcHBlZCwgMyBGYWlsZWQsIDANCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gV2FybmVkLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA1 NzUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUGFzc2VkDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiB0ZXN0cyBmYWlsZWQ6IExPQ0syNCwgT1BFTjE4LCBPUEVOMzANCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gT1BFTjE4IGFuZCBPUEVOMzAgdGVzdCBwYXNzIGlmIGVhY2ggaXMNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IHJ1biBieQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaXRz ZWxmLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IENvdWxkIHdlbGwgYmUgYSBidWcgaW4g dGhlIHRlc3RzLCBJIGRvbid0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4ga25vdy4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIHJlYXNvbiBPUEVOMTggZmFpbGVkIHdhcyBiZWNh dXNlIHRoZSB0ZXN0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRpbWVkDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IG91dCB3YWl0aW5nIGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiB0aGUgcmVwbHkgb2YgYW4gT1BFTiBjYWxsLiBUaGUgUlBDIGNvbm5lY3Rpb24NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gdXNlZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmb3IgdGhl IHRlc3Qgd2FzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvbmZpZ3VyZWQgd2l0aCAxNSBz ZWNzIHRpbWVvdXQuIE5vdGUgdGhhdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPUEVOMTgN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb25seSBmYWlscyB3aGVuDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IHRoZSB0ZXN0cyB3ZXJlIHJ1biB3aXRoICdhbGwnIG9wdGlvbiwgdGhpcw0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0ZXN0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHBhc3NlcyBpZiBpdCdzIHJ1bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBieSBpdHNlbGYu DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBX aXRoIGNvdXJ0ZW91cyBzZXJ2ZXIsIGJ5IHRoZSB0aW1lIE9QRU4xOA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBydW5zLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGVyZQ0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBhcmUgYWJvdXQgMTAyNg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBjb3VydGVzeSA0LjAgY2xpZW50cyBvbiB0aGUgc2VydmVyIGFuZCBhbGwgb2YNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlc2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY2xp ZW50cyBoYXZlIG9wZW5lZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgc2FtZSBmaWxl IFggd2l0aCBXUklURSBhY2Nlc3MuIFRoZXNlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNs aWVudHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gd2VyZQ0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBjcmVhdGVkIGJ5IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBwcmV2aW91 cyB0ZXN0cy4gQWZ0ZXIgZWFjaCB0ZXN0IGNvbXBsZXRlZCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gc2luY2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gNC4wDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGRvZXMgbm90IGhhdmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2Vz c2lvbiwgdGhlIGNsaWVudCBzdGF0ZXMgYXJlIG5vdCBjbGVhbmVkIHVwDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGltbWVkaWF0ZWx5IG9uIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiBzZXJ2ZXIgYW5kIGFyZSBhbGxvd2VkIHRvIGJlY29tZSBjb3VydGVzeQ0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiBjbGllbnRzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gV2hlbiBPUEVOMTggcnVucyAoYWJvdXQgMjAgbWludXRlcyBh ZnRlciB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMXN0DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IHRlc3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3RhcnRlZCksIGl0DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNlbmRzIE9QRU4gb2YgZmlsZSBYIHdpdGgNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gT1BFTjRfU0hBUkVfREVOWV9XUklURQ0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiB3aGljaCBjYXVzZXMgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHNlcnZlciB0byBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggY291cnRlc3kNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gY2xpZW50cy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIGxv b3AgdGhhdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjaGVja3MgMTAyNiBjb3VydGVzeSBj bGllbnRzIGZvciBzaGFyZS9hY2Nlc3MNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29uZmxp Y3QgdG9vayBsZXNzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoYW4gMSBzZWMuIEJ1dCBp dCB0b29rIGFib3V0IDU1IHNlY3MsIG9uIG15DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFZN LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gdGhlIHNlcnZlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0byBleHBpcmUgYWxsIDEw MjYgY291cnRlc3kgY2xpZW50cy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IEkgbW9kaWZpZWQgcHluZnMgdG8gY29uZmlndXJlIHRoZSA0LjAg UlBDDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvbm5lY3Rpb24NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gd2l0aCA2MCBzZWNvbmRzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRp bWVvdXQgYW5kIE9QRU4xOCBub3cgY29uc2lzdGVudGx5IHBhc3NlZC4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gVGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDQuMA0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiB0ZXN0IHJlc3VsdHMgYXJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IG5vdyB0aGUgc2FtZSBmb3IgY291cnRlb3VzIGFuZCBub24tY291cnRlb3VzDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IHNlcnZlcjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDggU2tpcHBlZCwgMSBGYWlsZWQsIDAgV2FybmVkLCA1 NzcgUGFzc2VkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBOb3RlIHRoYXQgNC4xIHRlc3RzIGRvIG5vdCBzdWZmZXIgdGhpcw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiB0aW1lb3V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHByb2Js ZW0gYmVjYXVzZSB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gNC4xIGNsaWVudHMgYW5k IHNlc3Npb25zIGFyZSBkZXN0cm95ZWQgYWZ0ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g ZWFjaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0ZXN0IGNvbXBsZXRlcy4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IERvIHlvdSB3YW50IG1lIHRvIHNlbmQgdGhlIHBhdGNoIHRvIGluY3Jl YXNlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHRpbWVvdXQgZm9yIHB5bmZzPw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb3IgaXMgdGhlcmUg YW55IG90aGVyIHRoaW5ncyB5b3UgdGhpbmsgd2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNo b3VsZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZG8/DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g SSBkb24ndCBrbm93Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+IDU1IHNlY29uZHMgdG8gY2xlYW4gdXAgMTAyNiBjbGllbnRzIGlzIGFib3V0IDUwbXMNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBwZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjbGllbnQsIHdo aWNoIGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcHJldHR5IHNsb3cuwqAgSSB3b25kZXIgd2h5 LsKgIEkgZ3Vlc3MgaXQncw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHByb2JhYmx5DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gdXBkYXRpbmcgdGhlIHN0YWJsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHN0b3JhZ2UgaW5mb3JtYXRpb24uwqAgSXMgL3Zhci9saWIvbmZzLyBvbiB5b3VyDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gc2VydmVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYmFja2VkIGJ5IGEg aGFyZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRyaXZlIG9yIGFuIFNTRCBvciBzb21ldGhpbmcg ZWxzZT8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gTXkgc2VydmVyIGlzIGEgdmlydHVhbGJveCBWTSB0 aGF0IGhhcyAxIENQVSwgNEdCDQo+ID4gPiA+ID4gPiA+ID4gPiA+IFJBTQ0KPiA+ID4gPiA+ID4g PiA+ID4gPiBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gNjRHQiBvZiBoYXJkDQo+ID4gPiA+ID4g PiA+ID4gPiA+IGRpc2suIEkgdGhpbmsgYSBwcm9kdWN0aW9uIHN5c3RlbSB0aGF0IHN1cHBvcnRz DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gbWFueQ0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBjbGllbnRzIHNob3VsZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBoYXZl IGZhc3RlciBDUFVzLCBmYXN0ZXIgc3RvcmFnZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gSSB3b25kZXIgaWYgdGhhdCdzIGFuIGFyZ3VtZW50IGZvciBsaW1p dGluZyB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBudW1iZXIgb2YNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiBjb3VydGVzeQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNsaWVudHMuDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IEkgdGhpbmsgd2UgbWlnaHQgd2FudCB0byB0cmVhdCA0LjAgY2xpZW50cyBh IGJpdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkaWZmZXJlbnQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g ZnJvbSA0LjENCj4gPiA+ID4gPiA+ID4gPiA+ID4gY2xpZW50cy4gV2l0aCA0LjAsIGV2ZXJ5IGNs aWVudCB3aWxsIGJlY29tZSBhDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGNvdXJ0ZXN5DQo+ID4gPiA+ ID4gPiA+ID4gPiA+IGNsaWVudCBhZnRlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgY2xpZW50 IGlzIGRvbmUgd2l0aCB0aGUgZXhwb3J0IGFuZCB1bm1vdW50cyBpdC4NCj4gPiA+ID4gPiA+ID4g PiA+IEl0IHNob3VsZCBiZSBzYWZlIGZvciBhIHNlcnZlciB0byBwdXJnZSBhIGNsaWVudCdzDQo+ ID4gPiA+ID4gPiA+ID4gPiBsZWFzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gaW1tZWRpYXRlbHkNCj4g PiA+ID4gPiA+ID4gPiA+IGlmIHRoZXJlIGlzIG5vIG9wZW4gb3IgbG9jayBzdGF0ZSBhc3NvY2lh dGVkIHdpdGggaXQuDQo+ID4gPiA+ID4gPiA+ID4gSW4gdGhpcyBjYXNlLCBlYWNoIGNsaWVudCBo YXMgb3BlbmVkIGZpbGVzIHNvIHRoZXJlIGFyZQ0KPiA+ID4gPiA+ID4gPiA+IG9wZW4NCj4gPiA+ ID4gPiA+ID4gPiBzdGF0ZXMNCj4gPiA+ID4gPiA+ID4gPiBhc3NvY2lhdGVkIHdpdGggdGhlbS4N Cj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IFdoZW4gYW4gTkZTdjQuMCBjbGll bnQgdW5tb3VudHMsIGFsbCBmaWxlcyBzaG91bGQgYmUNCj4gPiA+ID4gPiA+ID4gPiA+IGNsb3Nl ZA0KPiA+ID4gPiA+ID4gPiA+ID4gYXQgdGhhdA0KPiA+ID4gPiA+ID4gPiA+ID4gcG9pbnQsDQo+ ID4gPiA+ID4gPiA+ID4gSSdtIG5vdCBzdXJlIHB5bmZzIGRvZXMgcHJvcGVyIGNsZWFuIHVwIGFm dGVyIGVhY2gNCj4gPiA+ID4gPiA+ID4gPiBzdWJ0ZXN0LA0KPiA+ID4gPiA+ID4gPiA+IEkNCj4g PiA+ID4gPiA+ID4gPiB3aWxsDQo+ID4gPiA+ID4gPiA+ID4gY2hlY2suIFRoZXJlIG11c3QgYmUg c3RhdGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQNCj4gPiA+ID4gPiA+ID4gPiBpbg0KPiA+ ID4gPiA+ID4gPiA+IG9yZGVyDQo+ID4gPiA+ID4gPiA+ID4gZm9yDQo+ID4gPiA+ID4gPiA+ID4g aXQgdG8gYmVjb21lIGNvdXJ0ZXN5IGNsaWVudC4NCj4gPiA+ID4gPiA+ID4gTWFrZXMgc2Vuc2Uu IFRoZW4gYSBzeW50aGV0aWMgY2xpZW50IGxpa2UgcHluZnMgY2FuIERvUyBhDQo+ID4gPiA+ID4g PiA+IGNvdXJ0ZW91cw0KPiA+ID4gPiA+ID4gPiBzZXJ2ZXIuDQo+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IHNvIHRoZSBzZXJ2ZXIgY2FuIHdhaXQgZm9y IHRoZSBsZWFzZSB0byBleHBpcmUgYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiBwdXJnZQ0KPiA+ID4g PiA+ID4gPiA+ID4gaXQNCj4gPiA+ID4gPiA+ID4gPiA+IG5vcm1hbGx5LiBPciBhbSBJIG1pc3Np bmcgc29tZXRoaW5nPw0KPiA+ID4gPiA+ID4gPiA+IFdoZW4gNC4wIGNsaWVudCBsZWFzZSBleHBp cmVzIGFuZCB0aGVyZSBhcmUgc3RpbGwNCj4gPiA+ID4gPiA+ID4gPiBzdGF0ZXMNCj4gPiA+ID4g PiA+ID4gPiBhc3NvY2lhdGVkDQo+ID4gPiA+ID4gPiA+ID4gd2l0aCB0aGUgY2xpZW50IHRoZW4g dGhlIHNlcnZlciBhbGxvd3MgdGhpcyBjbGllbnQgdG8NCj4gPiA+ID4gPiA+ID4gPiBiZWNvbWUN Cj4gPiA+ID4gPiA+ID4gPiBjb3VydGVzeQ0KPiA+ID4gPiA+ID4gPiA+IGNsaWVudC4NCj4gPiA+ ID4gPiA+ID4gSSB0aGluayB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIGlmIGFuIE5GU3Y0LjEgY2xp ZW50DQo+ID4gPiA+ID4gPiA+IG5lZ2xlY3RzDQo+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4g PiA+IHNlbmQNCj4gPiA+ID4gPiA+ID4gREVTVFJPWV9TRVNTSU9OIC8gREVTVFJPWV9DTElFTlRJ RC4gRWl0aGVyIHN1Y2ggYSBjbGllbnQNCj4gPiA+ID4gPiA+ID4gaXMNCj4gPiA+ID4gPiA+ID4g YnJva2VuDQo+ID4gPiA+ID4gPiA+IG9yIG1hbGljaW91cywgYnV0IHRoZSBzZXJ2ZXIgZmFjZXMg dGhlIHNhbWUgaXNzdWUgb2YNCj4gPiA+ID4gPiA+ID4gcHJvdGVjdGluZw0KPiA+ID4gPiA+ID4g PiBpdHNlbGYgZnJvbSBhIERvUyBhdHRhY2suDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g PiBJTU8geW91IHNob3VsZCBjb25zaWRlciBsaW1pdGluZyB0aGUgbnVtYmVyIG9mIGNvdXJ0ZW91 cw0KPiA+ID4gPiA+ID4gPiBjbGllbnRzDQo+ID4gPiA+ID4gPiA+IHRoZSBzZXJ2ZXIgY2FuIGhv bGQgb250by4gTGV0J3Mgc2F5IHRoYXQgbnVtYmVyIGlzIDEwMDAuDQo+ID4gPiA+ID4gPiA+IFdo ZW4NCj4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+IHNlcnZlciB3YW50cyB0byB0dXJu IGEgMTAwMXN0IGNsaWVudCBpbnRvIGEgY291cnRlb3VzDQo+ID4gPiA+ID4gPiA+IGNsaWVudCwN Cj4gPiA+ID4gPiA+ID4gaXQNCj4gPiA+ID4gPiA+ID4gY2FuIHNpbXBseSBleHBpcmUgYW5kIHB1 cmdlIHRoZSBvbGRlc3QgY291cnRlb3VzIGNsaWVudA0KPiA+ID4gPiA+ID4gPiBvbg0KPiA+ID4g PiA+ID4gPiBpdHMNCj4gPiA+ID4gPiA+ID4gbGlzdC4gT3RoZXJ3aXNlLCBvdmVyIHRpbWUsIHRo ZSAyNC1ob3VyIGV4cGlyeSB3aWxsDQo+ID4gPiA+ID4gPiA+IHJlZHVjZQ0KPiA+ID4gPiA+ID4g PiB0aGUNCj4gPiA+ID4gPiA+ID4gc2V0IG9mIGNvdXJ0ZW91cyBjbGllbnRzIGJhY2sgdG8gemVy by4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IFdoYXQgZG8geW91IHRoaW5rPw0KPiA+ ID4gPiA+ID4gTGltaXRpbmcgdGhlIG51bWJlciBvZiBjb3VydGVvdXMgY2xpZW50cyB0byBoYW5k bGUgdGhlDQo+ID4gPiA+ID4gPiBjYXNlcyBvZg0KPiA+ID4gPiA+ID4gYnJva2VuL21hbGljaW91 cyA0LjEgY2xpZW50cyBzZWVtcyByZWFzb25hYmxlIGFzIHRoZSBsYXN0DQo+ID4gPiA+ID4gPiBy ZXNvcnQuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEkgdGhpbmsgaWYgYSBtYWxpY2lvdXMg NC4xIGNsaWVudHMgY291bGQgbW91bnQgdGhlIHNlcnZlcidzDQo+ID4gPiA+ID4gPiBleHBvcnQs DQo+ID4gPiA+ID4gPiBvcGVucyBhIGZpbGUgKHRvIGNyZWF0ZSBzdGF0ZSkgYW5kIHJlcGVhdHMg dGhlIHNhbWUgd2l0aCBhDQo+ID4gPiA+ID4gPiBkaWZmZXJlbnQNCj4gPiA+ID4gPiA+IGNsaWVu dCBpZCB0aGVuIGl0IHNlZW1zIGxpa2Ugc29tZSBiYXNpYyBzZWN1cml0eSB3YXMNCj4gPiA+ID4g PiA+IGFscmVhZHkNCj4gPiA+ID4gPiA+IGJyb2tlbjsNCj4gPiA+ID4gPiA+IGFsbG93aW5nIHVu YXV0aG9yaXplZCBjbGllbnRzIHRvIG1vdW50IHNlcnZlcidzIGV4cG9ydHMuDQo+ID4gPiA+ID4g WW91IGNhbiBkbyB0aGlzIHRvZGF5IHdpdGggQVVUSF9TWVMuIEkgY29uc2lkZXIgaXQgYSBnZW51 aW5lDQo+ID4gPiA+ID4gYXR0YWNrDQo+ID4gPiA+ID4gc3VyZmFjZS4NCj4gPiA+ID4gPiANCj4g PiA+ID4gPiANCj4gPiA+ID4gPiA+IEkgdGhpbmsgaWYgd2UgaGF2ZSB0byBlbmZvcmNlIGEgbGlt aXQsIHRoZW4gaXQncyBvbmx5IGZvcg0KPiA+ID4gPiA+ID4gaGFuZGxpbmcNCj4gPiA+ID4gPiA+ IG9mIHNlcmlvdXNseSBidWdneSA0LjEgY2xpZW50cyB3aGljaCBzaG91bGQgbm90IGJlIHRoZQ0K PiA+ID4gPiA+ID4gbm9ybS4NCj4gPiA+ID4gPiA+IFRoZQ0KPiA+ID4gPiA+ID4gaXNzdWUgd2l0 aCB0aGlzIGlzIGhvdyB0byBwaWNrIGFuIG9wdGltYWwgbnVtYmVyIHRoYXQgaXMNCj4gPiA+ID4g PiA+IHN1aXRhYmxlDQo+ID4gPiA+ID4gPiBmb3IgdGhlIHJ1bm5pbmcgc2VydmVyIHdoaWNoIGNh biBiZSBhIHZlcnkgc2xvdyBvciBhIHZlcnkNCj4gPiA+ID4gPiA+IGZhc3QNCj4gPiA+ID4gPiA+ IHNlcnZlci4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gTm90ZSB0aGF0IGV2ZW4gaWYgd2Ug aW1wb3NlIGFuIGxpbWl0LCB0aGF0IGRvZXMgbm90DQo+ID4gPiA+ID4gPiBjb21wbGV0ZWx5DQo+ ID4gPiA+ID4gPiBzb2x2ZQ0KPiA+ID4gPiA+ID4gdGhlIHByb2JsZW0gd2l0aCBweW5mcyA0LjAg dGVzdCBzaW5jZSBpdHMgUlBDIHRpbWVvdXQgaXMNCj4gPiA+ID4gPiA+IGNvbmZpZ3VyZWQNCj4g PiA+ID4gPiA+IHdpdGggMTUgc2VjcyB3aGljaCBqdXN0IGVub3VnaCB0byBleHBpcmUgMjc3IGNs aWVudHMgYmFzZWQNCj4gPiA+ID4gPiA+IG9uDQo+ID4gPiA+ID4gPiA1M21zDQo+ID4gPiA+ID4g PiBmb3IgZWFjaCBjbGllbnQsIHVubGVzcyB3ZSBsaW1pdCBpdCB+MjcwIGNsaWVudHMgd2hpY2gg SQ0KPiA+ID4gPiA+ID4gdGhpbmsNCj4gPiA+ID4gPiA+IGl0J3MNCj4gPiA+ID4gPiA+IHRvbyBs b3cuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFRoaXMgaXMgd2hhdCBJIHBsYW4gdG8gZG86 DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IDEuIGRvIG5vdCBzdXBwb3J0IDQuMCBjb3VydGVv dXMgY2xpZW50cywgZm9yIHN1cmUuDQo+ID4gPiA+ID4gTm90IHN1cHBvcnRpbmcgNC4wIGlzbuKA mXQgYW4gb3B0aW9uLCBJTUhPLiBJdCBpcyBhIGZ1bGx5DQo+ID4gPiA+ID4gc3VwcG9ydGVkDQo+ ID4gPiA+ID4gcHJvdG9jb2wgYXQgdGhpcyB0aW1lLCBhbmQgdGhlIHNhbWUgZXhwb3N1cmUgZXhp c3RzIGZvciA0LjEsDQo+ID4gPiA+ID4gaXTigJlzDQo+ID4gPiA+ID4ganVzdCBhIGxpdHRsZSBo YXJkZXIgdG8gZXhwbG9pdC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBJZiB5b3Ugc3VibWl0IHRo ZSBjb3VydGVvdXMgc2VydmVyIHBhdGNoIHdpdGhvdXQgc3VwcG9ydCBmb3INCj4gPiA+ID4gPiA0 LjAsDQo+ID4gPiA+ID4gSQ0KPiA+ID4gPiA+IHRoaW5rIGl0IG5lZWRzIHRvIGluY2x1ZGUgYSBw bGFuIGZvciBob3cgNC4wIHdpbGwgYmUgYWRkZWQNCj4gPiA+ID4gPiBsYXRlci4NCj4gPiA+ID4g PiANCj4gPiA+ID4gV2h5IGlzIHRoZXJlIGEgcHJvYmxlbSBoZXJlPyBUaGUgcmVxdWlyZW1lbnRz IGFyZSB0aGUgc2FtZSBmb3INCj4gPiA+ID4gNC4wDQo+ID4gPiA+IGFuZA0KPiA+ID4gPiA0LjEg KG9yIDQuMikuIElmIHRoZSBsZWFzZSB1bmRlciB3aGljaCB0aGUgY291cnRlc3kgbG9jayB3YXMN Cj4gPiA+ID4gZXN0YWJsaXNoZWQgaGFzIGV4cGlyZWQsIHRoZW4gdGhhdCBjb3VydGVzeSBsb2Nr IG11c3QgYmUNCj4gPiA+ID4gcmVsZWFzZWQNCj4gPiA+ID4gaWYNCj4gPiA+ID4gc29tZSBvdGhl ciBjbGllbnQgcmVxdWVzdHMgYSBsb2NrIHRoYXQgY29uZmxpY3RzIHdpdGggdGhlDQo+ID4gPiA+ IGNhY2hlZA0KPiA+ID4gPiBsb2NrDQo+ID4gPiA+ICh1bmxlc3MgdGhlIGNsaWVudCBicmVha3Mg dGhlIGNvdXJ0ZXN5IGZyYW1ld29yayBieSByZW5ld2luZw0KPiA+ID4gPiB0aGF0DQo+ID4gPiA+ IG9yaWdpbmFsIGxlYXNlIGJlZm9yZSB0aGUgY29uZmxpY3Qgb2NjdXJzKS4gT3RoZXJ3aXNlLCBp dCBpcw0KPiA+ID4gPiBjb21wbGV0ZWx5DQo+ID4gPiA+IHVwIHRvIHRoZSBzZXJ2ZXIgd2hlbiBp dCBkZWNpZGVzIHRvIGFjdHVhbGx5IHJlbGVhc2UgdGhlIGxvY2suDQo+ID4gPiA+IA0KPiA+ID4g PiBGb3IgTkZTdjQuMSBhbmQgTkZTdjQuMiwgd2UgaGF2ZSBERVNUUk9ZX0NMSUVOVElELCB3aGlj aCB0ZWxscw0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gc2VydmVyIHdoZW4gdGhlIGNsaWVudCBpcyBh Y3R1YWxseSBkb25lIHdpdGggdGhlIGxlYXNlLCBtYWtpbmcNCj4gPiA+ID4gaXQNCj4gPiA+ID4g ZWFzeQ0KPiA+ID4gPiB0byBkZXRlcm1pbmUgd2hlbiBpdCBpcyBzYWZlIHRvIHJlbGVhc2UgYWxs IHRoZSBjb3VydGVzeSBsb2Nrcy4NCj4gPiA+ID4gSG93ZXZlcg0KPiA+ID4gPiBpZiB0aGUgY2xp ZW50IGRvZXMgbm90IHNlbmQgREVTVFJPWV9DTElFTlRJRCwgdGhlbiB3ZSdyZSBpbiB0aGUNCj4g PiA+ID4gc2FtZQ0KPiA+ID4gPiBzaXR1YXRpb24gd2l0aCA0LnggKHg+MCkgYXMgd2Ugd291bGQg YmUgd2l0aCBib2cgc3RhbmRhcmQNCj4gPiA+ID4gTkZTdjQuMC4NCj4gPiA+ID4gVGhlDQo+ID4g PiA+IGxlYXNlIGhhcyBleHBpcmVkLCBhbmQgc28gdGhlIGNvdXJ0ZXN5IGxvY2tzIGFyZSBsaWFi bGUgdG8NCj4gPiA+ID4gYmVpbmcNCj4gPiA+ID4gZHJvcHBlZC4NCj4gPiA+IEkgYWdyZWUgdGhl IHNpdHVhdGlvbiBpcyB0aGUgc2FtZSBmb3IgYWxsIG1pbm9yIHZlcnNpb25zLg0KPiA+ID4gDQo+ ID4gPiANCj4gPiA+ID4gQXQgSGFtbWVyc3BhY2Ugd2UgaGF2ZSBpbXBsZW1lbnRlZCBjb3VydGVz eSBsb2NrcywgYW5kIG91cg0KPiA+ID4gPiBzdHJhdGVneQ0KPiA+ID4gPiBpcw0KPiA+ID4gPiB0 aGF0IHdoZW4gYSBjb25mbGljdCBvY2N1cnMsIHdlIGRyb3AgdGhlIGVudGlyZSBzZXQgb2YgY291 cnRlc3kNCj4gPiA+ID4gbG9ja3MNCj4gPiA+ID4gc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGRl YWwgd2l0aCB0aGUgInNvbWUgbG9ja3Mgd2VyZQ0KPiA+ID4gPiByZXZva2VkIg0KPiA+ID4gPiBz Y2VuYXJpby4gVGhlIHJlYXNvbiBpcyB0aGF0IHdoZW4gd2Ugb3JpZ2luYWxseSBpbXBsZW1lbnRl ZA0KPiA+ID4gPiBjb3VydGVzeQ0KPiA+ID4gPiBsb2NrcywgdGhlIExpbnV4IE5GU3Y0IGNsaWVu dCBzdXBwb3J0IGZvciBsb2NrIHJldm9jYXRpb24gd2FzIGENCj4gPiA+ID4gbG90DQo+ID4gPiA+ IGxlc3Mgc29waGlzdGljYXRlZCB0aGFuIHRvZGF5LiBNeSBzdWdnZXN0aW9uIGlzIHRoYXQgeW91 IG1pZ2h0DQo+ID4gPiA+IHRoZXJlZm9yZSBjb25zaWRlciBzdGFydGluZyBhbG9uZyB0aGlzIHBh dGgsIGFuZCB0aGVuIHJlZmluaW5nDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiBzdXBwb3J0IHRvIG1h a2UgcmV2b2NhdGlvbiBtb3JlIG51YW5jZWQgb25jZSB5b3UgYXJlIGNvbmZpZGVudA0KPiA+ID4g PiB0aGF0DQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiBjb2Fyc2VyIHN0cmF0ZWd5IGlzIHdvcmtpbmcg YXMgZXhwZWN0ZWQuDQo+ID4gPiBEYWnigJlzIGltcGxlbWVudGF0aW9uIGRvZXMgYWxsIHRoYXQs IGFuZCB0YWtlcyB0aGUgY29hcnNlcg0KPiA+ID4gYXBwcm9hY2ggYXQNCj4gPiA+IHRoZSBtb21l bnQuIFRoZXJlIGFyZSBwbGFucyB0byBleHBsb3JlIHRoZSBtb3JlIG51YW5jZWQgYmVoYXZpb3IN Cj4gPiA+IChieQ0KPiA+ID4gcmV2b2tpbmcgb25seSB0aGUgY29uZmxpY3RpbmcgbG9jayBpbnN0 ZWFkIG9mIGRyb3BwaW5nIHRoZSB3aG9sZQ0KPiA+ID4gbGVhc2UpIGFmdGVyIHRoaXMgaW5pdGlh bCB3b3JrIGlzIG1lcmdlZC4NCj4gPiA+IA0KPiA+ID4gVGhlIGlzc3VlIGlzIHRoZXJlIGFyZSBj ZXJ0YWluIHBhdGhvbG9naWNhbCBjbGllbnQgYmVoYXZpb3JzDQo+ID4gPiAod2hldGhlcg0KPiA+ ID4gbWFsaWNpb3VzIG9yIGFjY2lkZW50YWwpIHRoYXQgY2FuIHJ1biB0aGUgc2VydmVyIG91dCBv Zg0KPiA+ID4gcmVzb3VyY2VzLA0KPiA+ID4gc2luY2UgaXQgaXMgaG9sZGluZyBvbnRvIGxlYXNl IHN0YXRlIGZvciBhIG11Y2ggbG9uZ2VyIHRpbWUuIFdlDQo+ID4gPiBhcmUNCj4gPiA+IHNpbXBs eSB0cnlpbmcgdG8gZGVzaWduIGEgbGVhc2UgZ2FyYmFnZSBjb2xsZWN0aW9uIHNjaGVtZSB0byBt ZWV0DQo+ID4gPiB0aGF0IGNoYWxsZW5nZS4NCj4gPiA+IA0KPiA+ID4gSSB0aGluayBsaW1pdGlu ZyB0aGUgbnVtYmVyIG9mIGNvdXJ0ZW91cyBjbGllbnRzIGlzIGEgc2ltcGxlIHdheQ0KPiA+ID4g dG8NCj4gPiA+IGRvIHRoaXMsIGJ1dCB3ZSBjb3VsZCBhbHNvIHNob3J0ZW4gdGhlIGNvdXJ0ZXN5 IGxpZmV0aW1lIGFzIG1vcmUNCj4gPiA+IGNsaWVudHMgZW50ZXIgdGhhdCBzdGF0ZSwgdG8gZW5z dXJlIHRoYXQgdGhleSBkb27igJl0IG92ZXJydW4gdGhlDQo+ID4gPiBzZXJ2ZXLigJlzIG1lbW9y eS4gQW5vdGhlciBhcHByb2FjaCBtaWdodCBiZSB0byBhZGQgYSBzaHJpbmtlciB0aGF0DQo+ID4g PiBwdXJnZXMgdGhlIG9sZGVzdCBjb3VydGVvdXMgY2xpZW50cyB3aGVuIHRoZSBzZXJ2ZXIgY29t ZXMgdW5kZXINCj4gPiA+IG1lbW9yeSBwcmVzc3VyZS4NCj4gPiA+IA0KPiA+ID4gDQo+ID4gV2Ug YWxyZWFkeSBoYXZlIGEgc2Nhbm5lciB0aGF0IHRyaWVzIHRvIHJlbGVhc2UgYWxsIGNsaWVudCBz dGF0ZQ0KPiA+IGFmdGVyDQo+ID4gMSBsZWFzZSBwZXJpb2QuIEp1c3QgZXh0ZW5kIHRoYXQgdG8g ZG8gaXQgYWZ0ZXIgMTAgbGVhc2UgcGVyaW9kcy4NCj4gPiBJZiBhDQo+ID4gbmV0d29yayBwYXJ0 aXRpb24gaGFzbid0IHJlY292ZXJlZCBhZnRlciAxMCBtaW51dGVzLCB5b3UgcHJvYmFibHkNCj4g PiBoYXZlDQo+ID4gYmlnZ2VyIHByb2JsZW1zLg0KPiANCj4gQ3VycmVudGx5IHRoZSBjb3VydGVv dXMgc2VydmVyIGFsbG93cyAyNGhyIGZvciB0aGUgbmV0d29yayBwYXJ0aXRpb24NCj4gdG8NCj4g aGVhbCBiZWZvcmUgcmVsZWFzaW5nIGFsbCBjbGllbnQgc3RhdGUuIFRoYXQgc2VlbXMgdG8gYmUg ZXhjZXNzaXZlDQo+IGJ1dA0KPiBpdCB3YXMgc3VnZ2VzdGVkIGZvciBsb25nZXIgbmV0d29yayBw YXJ0aXRpb24gY29uZGl0aW9ucyB3aGVuDQo+IHN3aXRjaC9yb3V0ZXJzDQo+IGJlaW5nIHJlcGFp cmVkL3VwZ3JhZGVkLg0KPiANCj4gPiANCj4gPiBZb3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgb2Yg Y2xpZW50cyBhcyB3ZWxsLCBidXQgdGhhdCBsZWFkcyBpbnRvIGENCj4gPiByYXRzDQo+ID4gbmVz dCBvZiBvdGhlciBpc3N1ZXMgdGhhdCBoYXZlIG5vdGhpbmcgdG8gZG8gd2l0aCBjb3VydGVzeSBs b2Nrcw0KPiA+IGFuZA0KPiA+IGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCB0aGUgZmFjdCB0aGF0IGFu eSBjbGllbnQgY2FuIGhvbGQgYSBsb3Qgb2YNCj4gPiBzdGF0ZS4NCj4gDQo+IFRoZSBpc3N1ZSB3 ZSBjdXJyZW50bHkgaGF2ZSB3aXRoIGNvdXJ0ZW91cyBzZXJ2ZXIgYW5kIHB5bmZzIDQuMCB0ZXN0 cw0KPiBpcyB0aGUgbnVtYmVyIG9mIGNvdXJ0ZW91cyA0LjAgY2xpZW50cyB0aGUgc2VydmVyIGhh cyB0byBleHBpcmUgd2hlbg0KPiBhDQo+IHNoYXJlIHJlc2VydmF0aW9uIGNvbmZsaWN0IG9jY3Vy cyB3aGVuIHNlcnZpY2luZyB0aGUgT1BFTi4gRWFjaA0KPiBjbGllbnQNCj4gb3ducyBvbmx5IGZl dyBzdGF0ZSBpbiB0aGlzIGNhc2Ugc28gd2UgdGhpbmsgdGhlIHNlcnZlciBzcGVudCBtb3N0DQo+ IHRpbWUNCj4gZm9yIGRlbGV0aW5nIGNsaWVudCdzIHJlY29yZCBpbiAvdmFyL2xpYi9uZnMuIFRo aXMgaXMgd2h5IHdlIHBsYW4gdG8NCj4gbGltaXQgdGhlIG51bWJlciBvZiBjb3VydGVvdXMgY2xp ZW50cyBmb3Igbm93LiBBcyBhIHNpZGUgZWZmZWN0LCBpdA0KPiBtaWdodA0KPiBhbHNvIGhlbHAg dG8gcmVkdWNlIHJlc291cmNlIGNvbnN1bXB0aW9uIHRvby4NCg0KVGhlbiBraWNrIG9mZiBhIHRo cmVhZCBvciB3b3JrIGl0ZW0gdG8gZG8gdGhhdCBhc3luY2hyb25vdXNseSBpbiB0aGUNCmJhY2tn cm91bmQsIGFuZCByZXR1cm4gTkZTNEVSUl9ERUxBWSB0byB0aGUgY2xpZW50cyB0aGF0IHdlcmUg dHJ5aW5nIHRvDQpncmFiIGxvY2tzIGluIHRoZSBtZWFudGltZS4NCg0KVGhlIGFib3ZlIHByb2Nl c3MgaXMgaGFyZGx5IGp1c3QgY29uZmluZWQgdG8gTkZTdjQuMCBjbGllbnRzLiBJZiB0aGVyZQ0K aXMgYSBuZXR3b3JrIHBhcnRpdGlvbiwgdGhlbiB0aGUgZXhhY3Qgc2FtZSByZWNvcmQgZGVsZXRp bmcgbmVlZHMgdG8gYmUNCmFwcGxpZWQgdG8gYWxsIE5GU3Y0LjEgYW5kIE5GU3Y0LjIgY2xpZW50 cyB0aGF0IGhvbGQgbG9ja3MgYW5kIGFyZQ0KdW5hYmxlIHRvIHJlbmV3IHRoZWlyIGxlYXNlcywg c28geW91IG1pZ2h0IGFzIHdlbGwgbWFrZSBpdCB3b3JrIGZvcg0KZXZlcnlvbmUuDQoNCi0tIA0K VHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWluZXIsIEhhbW1lcnNwYWNl DQp0cm9uZC5teWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tDQoNCg0K