From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2119.outbound.protection.outlook.com [40.107.96.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 898B83B2A4 for ; Wed, 15 May 2024 10:55:16 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WLz71XtyGOp+LNAF0k8HoUJ8jPfXnKjPDNUS+Gqg2ByN3j+9IHKKzqJ3C0GqGQ4aKMCIePMApmeEduMZ080sc3gn5H2SCiyJs/NT37XdYfOZY+MqTkqoTGGNHmu8omQRH21Y4VWwCilXhbofF2v5uzoiwrPN89WSYMxlU+LtjbhuaW6eqGgV625GDdeClaMB87Qla/7HpRQu5ak7gB8dAMELyBygs105ZLViFGL61l59niledC957nTyb1qdtWdVKpqp2bKmrIsXAaDK+bEgovp4Vf/HEKsc84wa7Tf0u5sFeBoleZfjDRH1s9/SrT0078KnESGnUMWeXZjrALWv8w== 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=ywetLSu1ghE7mK3xBqzI29ocmyqMid4wTvN1ngulbNU=; b=bgef6nzwAj6CugbHVmzE2G4XVBnKDVc0+bcS/USbkpIgbljZdCM0jY2ezBXTPNrEASRwGD6FJTIMNTmBj7Mw6OuiyhpH6uXY+qYhhdAvWuYJ2cGBuRTXabU0pumxdU0G2mipquUha3kukTI8EvAFBLoErb9D7d7Ri260cWEpCm9n/OAdXpxoav9TGc7k0SJ4ZKywG603W3wOsrJsawxK+5/KeyofgY1Hz9vvHNdZhIMsH7N15SMBJPqVXKjA02K1ealnRXBxdjB9FhPPJkSCmzb4kNA0TOAcdIlOoiDhZYQyMCPsn1+65zMQTsIzmbrWtQFeQSTBJFuYgw/gCT/X6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=higbie.name; dmarc=pass action=none header.from=higbie.name; dkim=pass header.d=higbie.name; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=higbie.name; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ywetLSu1ghE7mK3xBqzI29ocmyqMid4wTvN1ngulbNU=; b=uMnvZTk/5rkySedHjs2F3goUYANtenTf2VyVZnYAnjWQEZ5mNeEmnuZ1DNIMnXs9q0HDGOgN2yUJzie57PoItOAjOObwqRukNq8DHlk3HQngwnY1wVy1rYSClNXuVf5z33ZSDDRlcjsbZL3vL6ahB96ZgXxXapIO1ANnszeCKnukFbq1FkqFV5EWsrPykJup8K/AIZ5lDATqnw6RyCK4HIX7wV3tnf4/bX878pW358Di4ILPwlJj6x2cuPpBDyUvmPT2zn4gyMUk5uQLmUzmJ4AlevyugSPu87mdPM+L4RZPzG0WHo9jY+U5tEZKd5zOHFHPpYEbrDx4FUnWA5Ausw== Received: from MN2PR16MB3391.namprd16.prod.outlook.com (2603:10b6:208:150::23) by BLAPR16MB3779.namprd16.prod.outlook.com (2603:10b6:208:276::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.26; Wed, 15 May 2024 14:55:12 +0000 Received: from MN2PR16MB3391.namprd16.prod.outlook.com ([fe80::d7d5:e542:18c9:497f]) by MN2PR16MB3391.namprd16.prod.outlook.com ([fe80::d7d5:e542:18c9:497f%5]) with mapi id 15.20.7587.025; Wed, 15 May 2024 14:55:12 +0000 From: Colin_Higbie To: Sebastian Moeller CC: Alexandre Petrescu , Frantisek Borsik , "starlink@lists.bufferbloat.net" Thread-Topic: =?utf-8?B?W1N0YXJsaW5rXSBJdOKAmXMgdGhlIExhdGVuY3ksIEZDQw==?= Thread-Index: AQHanJ+0zLlFshbKn0qpr4Zm5TC+FLGEWqEAgAW6nwCADQRs4IAA1eAAgABmSvA= Date: Wed, 15 May 2024 14:55:11 +0000 Message-ID: References: <298126c9-7854-47c5-a965-c0f89a855939@gmail.com> In-Reply-To: Accept-Language: en-US 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=Higbie.name; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR16MB3391:EE_|BLAPR16MB3779:EE_ x-ms-office365-filtering-correlation-id: 9308ceca-8dad-4e8b-ca02-08dc74ef059a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|376005|1800799015|366007|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?Rjc3Q3hmMm16Y0FoQnp4eWZTWWUxdWZHMkRUM2JNbm9vMzg5UTllaGNDZGkv?= =?utf-8?B?MDJ2aVBEeGJtSUxBTXlQeFZrZy9sbDZtdHg1cUVkaWFtQU51UWVqejVLZmY5?= =?utf-8?B?RFRiMEtuZW5DZjdVTi9UUS9vOWlzYU5GMmp3eFovb3krMHRHdHc1RzZabXVE?= =?utf-8?B?UTRsY24rV1BVUzZXTHZQZTBIZWxodTRCNGFId3hkTVpBNXF6dzcwUDcyMVhy?= =?utf-8?B?eWw1RHMwMTRNeE5jamVnd25ESnF3TmRadFFXQmdYVkZxcmFxUEkySlVYOVZQ?= =?utf-8?B?NzFSWUNmNG9TcmNxdUJaamQ0ZGtxWEROUHRSRGx4QXJUeENwUlIxUjExa3ZX?= =?utf-8?B?N3J5ekszekF6U2svZm5TQTYveldENlZVNXREditOK0FZa2V3Z0VGMUdPL3RQ?= =?utf-8?B?L1BKNEpBVUpGcm11T3l0b3Z0cnJtQUxGYU1ZYmkrMVlaMnc5ZEwyS3Z3L25u?= =?utf-8?B?clMvRTkrQ3Ixb2g1N0FLQU8wUml0RTZuYXFjNjBoWVV0M3V1YnZ4SDhvc2Qz?= =?utf-8?B?bkN5am4zaFpPdlh5YkcrejgvV2ZXaTlXVVlaNklDSTd1WkZTNHpTSmMrTjdi?= =?utf-8?B?cHBqamNmWklSeUhDbjFDVUw1V3BhS3FyOUsyUk52ZXgyZFlzVll3Vk55VlFt?= =?utf-8?B?WVltQUpxWXFoWHVMVTFJSEhLUGxBRG1HS0c4MUQ5N3piSUFWcXE4M3V0T3RF?= =?utf-8?B?THBJOUdMWUdoZ1VCdXY3MnVLZU9Pc0JaYWZ2aEF0U0R4clNoNTJMUWJHTzl3?= =?utf-8?B?NnB0UkJWcEdlRE1BQ25vVllQZDdFR0RzVFdJMHlvUzBkWjdiK3dEbXowN2Q3?= =?utf-8?B?VWV5UXl6by9zMjlSQ2NDU1ZkNnZ0UTIwVjlLeTJIWDdCeHJ0K3hRQy9DL2xU?= =?utf-8?B?NFpCaXVIV3FXZnVMa1VKK3Y0WHpCUzRSQUlRUXRVNnBCZUR5dW1LQTZsTDlW?= =?utf-8?B?T0IvODJzR013YUhDNmZ5MjZRRVpLcGRWTmoxdHJPY3VqS0FWUXNoa3ZFckFt?= =?utf-8?B?UnVNR05NSzZBbVFWUXE3OVRyeTk5ck5xMkwvcHMxM2ZRSjNhNGFkV0locHBL?= =?utf-8?B?NnJYNEtFOEw1ZEtvUnpmQUlSZ0E1WUVIWiszTWpFck0rMXZKYXIrZ2JNbTBY?= =?utf-8?B?eldIbkhEWjBDRlE5TTdvMjc2UElSa05oa3ZGNHFES3NwY0RKc0hHVFJKb0Rl?= =?utf-8?B?cjRrRGxnbVpJb1ZLNldJUmUvYkkxVGUvUmxKaDF1REJLVHZacHFCS2pKT0lG?= =?utf-8?B?SExoTTVzUC9QOEYxYmlEbjdSRGcyQWVxY1JXeUFOYlB2MWlZTXpybFZZbVJF?= =?utf-8?B?Z1N1eW5CdFpkblF0ODl1VUhrU0dRVzM0VStDd0pKMEdCcXpjUVJ3NlZoRGw4?= =?utf-8?B?SW5UVzdrNittZHJ2eStvS01rMmtSd1AzTDhMU0dhbWFXNXUyZ0dyMkpPbmpR?= =?utf-8?B?S1ZTVUZ0Q2hreDhMc3hpZXRSQ2ZGU0I4Unh0YWEvS3ZBRFJZc3htUno2MEFZ?= =?utf-8?B?cEJNdWVZelhtZEs4Q3dEaWFZaU55YU1yUlNocm0yLzFMRUlOMDNEczFNWDVr?= =?utf-8?B?ZlpyWCs0ZFE4MTdQUFNQcmtqSC9PSSttUkNHRHJuYjJyQ3h5WUo3czZWNDJN?= =?utf-8?B?UEJJdVY5T28xTE94YkFwN0o0b1lHTE4rNzlpc1BGVWpWeHBvcHVKU2xqQU95?= =?utf-8?B?MlJHTWR2WUNGREdraFRLb213NzZTemlGejZuTDFNVDJGRFRVYTFHdTJ0c292?= =?utf-8?B?MHA5R2FXT0JaRCtkMHlsb0xGVTJhMSttWGg3VnVRN0xHeUxTTUtablZkd2Nn?= =?utf-8?B?S3BzN0lkWWlQRExKWTJFdz09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR16MB3391.namprd16.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(1800799015)(366007)(38070700009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZnV4UlFWTlJ5MktWWTliQTdVcUtzY3NxdXZwM0M0aXZOSlNpR0pLUWhwWmh4?= =?utf-8?B?bjlKbHdXYkF5enVaRVhFSCtoL1o2TjFiU21zbVNpK1V4eldJZFZseDFtU05Y?= =?utf-8?B?cHBRYXluTEJEbnUrZjQyNjlBZm8xdlRuT0ZWQnU4TDRVYmlzOWUwU1p0RlFk?= =?utf-8?B?bHJUaXFWRDRXNHBoTnIwQUpHR1hKdklDRUNQaWloSGdEMU5mcXVGT2YvME9J?= =?utf-8?B?YUhmNW40cW9LUEM1SUsvc1N6V0tKTnh3Z2tXSXVObFFMbHVLUjFTM01sem9W?= =?utf-8?B?M1hLVDN1Tmw5bk5rL1ZWd1o0SVJ4dlQyTng5c0dnOWIzSEs3Q2lpQ05tSHpO?= =?utf-8?B?NXEyZU9xT2dDZmRSVERnbHBXY2NaN0FOUXRGRTB3MlFMMlQ3bnExVTZlU1lI?= =?utf-8?B?QXFFY0c5Q25HOWt2ZlVHWTZuU1JsL1ZFVjBIZi9aRUlTMERJbjdUNFhvY21N?= =?utf-8?B?aUdyYTd2R25SMnVLbGlRK0FVQ2Jzdk1NS3RPTnNCMHZxelNEdEc2YUJlZ2R0?= =?utf-8?B?eXZXdTBKdUZwNUVZd3BDVkVHanlqVjJENFdIR1ZUQm1RU0NMSEFDa2dkcGNQ?= =?utf-8?B?SDdnT2dReHNNa1pwTE1PQW44YUE3K2lFVUJIeXkzS1BkZXYxQk1reE9CMHVW?= =?utf-8?B?RGpqeWxpekVSUTNROXpRenIxSkxBYkx2L0Vkbmlma1BFd1ZBMFpFVksxWnQ4?= =?utf-8?B?V2dpQkJ1N3N3T1BHQ2FjWEE0RTZlQlJvWUxJbW55azgvNmo2QzV2R1gxa3ZU?= =?utf-8?B?RlZ5OWlubmh2ZjVtcnFuLzJoQ1NsRXhZc1VJb3oveUYrb3dPd1lPYTh1MDRs?= =?utf-8?B?YURyejV4bUQ4WGFOU2xEN3RsYVljeHMza21mSERpUVNONHI3MTQ0U1JNTUlo?= =?utf-8?B?QWNZaUF6VE9aQkJGNHJUR042N0pwM0hBQmY0RjdWZ2x3N3hIaGJ2eW9xYzZk?= =?utf-8?B?c28yQXh0V0dlblhDZWZLb09pUkJ4Y3pDRjZkejhyTnd1VGNUM0tYQ0wzcC9Y?= =?utf-8?B?MTVxcGkybE5iWi9laUJ3Ly9uTk9yZzljUWcyMW13cTZxa0FaODhSUDhXOWRJ?= =?utf-8?B?WC9xWk1aamZIcCtDbGUyYW5MUGZXQ21JK2wzQk16SkJKTVBxSWk1QTVOMUFT?= =?utf-8?B?dy84bTh5TDR2SzdkUm9ScUlNWldCQmJiUWZLUjN3OUUzN2JxR0lGWTZQWmRF?= =?utf-8?B?NmhFRWJhdWMvd0UvOGFiZWtnQ0U4Z1cwYlg2RTJPYkdUMHlQdFVXc2ZDclA1?= =?utf-8?B?dTdma1FOK3ZTNTd3WVZjRUxZakw5MjZ4aDBEc0lhUm54REtUSXJJdXROUkJH?= =?utf-8?B?ZzFUQndMc3NQWkpaUmNkeWhJWU8xSkZtaXBCbGVkTHZqSFpQa2kranBqQmdo?= =?utf-8?B?d1hnaHBXV1dOTWRBdXhxUjM1ZHFTN2s3TEVKWGN6MnhUR2RmQlVmblh1aExv?= =?utf-8?B?UmZuVDQvRk1ueVJrSVpnMkFiR2RibmEwb2ZxdHhBUDRUMzg3bUhNb1RNSnZH?= =?utf-8?B?TC9YbGZQZmhsQzNVZmw4bjlQLzdlS1B0TkFoRDhBRUl2Q2VxS1RUQ2ZnWUFw?= =?utf-8?B?YmtwMkh3bU9NdmVERUQyeUJMRkI3ZEhnMnJhYWx5c0VUYlNRMldXUGVrRmpJ?= =?utf-8?B?NGJJamV4WjdSbUFNWXVDblBPOTY0dVA4YXQrWWFnRWIwNzJlL0N5VEZWQ2lq?= =?utf-8?B?YmUvTU9NYitBTUZhZVBmSkRsOC80cU5qZ241SHZWMlRVbG1lR3RCK0F2OVBp?= =?utf-8?B?elVaYkM4dER5WStoWnB4b0lVKzdVU3NlTnI2M1FzeFo1dzRIMmVZRDZRck9H?= =?utf-8?B?ZFI3Tk5RQzhQaENGOG4xUnVXSTVUS1FPcW5adFVVSDhsWDFJM1ZVWkUraG0y?= =?utf-8?B?WmxrckVUNi80Q2xTWmxUYjZ1MFlkdjQwYWlLcUkveU0wSzE5SVFtS0oyaU1I?= =?utf-8?B?ZDRiM3lmNUV3RUc1UnhNb3puWlhjWWY2cHRSNHU0UkQ5VVo4T1lCTFZHUkUw?= =?utf-8?B?d2FqQitESkpZaCswVmdvUTdxQy8vS1hUWkljS0h0a0szT0tMbURyampQUUNy?= =?utf-8?Q?K36KD6?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: higbie.name X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR16MB3391.namprd16.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9308ceca-8dad-4e8b-ca02-08dc74ef059a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2024 14:55:11.9225 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 223bbcd9-6252-452c-afb2-140040991a08 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: nAQL1xM+4ebluB9SBek/UlXPjru/DnUWWyfec6thWE7T7yzyWZvPywflGQYGpEmvbF4lXGIoqooTTMn7OVfViw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR16MB3779 Subject: Re: [Starlink] =?utf-8?q?It=E2=80=99s_the_Latency=2C_FCC?= X-BeenThere: starlink@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Starlink has bufferbloat. Bad." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 May 2024 14:55:16 -0000 U2ViYXN0aWFuLA0KDQpZb3UgYXJlLCBvZiBjb3Vyc2UsIGNvcnJlY3QgdGhhdCBjb250ZW50IHBy b3ZpZGVycyBoYXZlIG5vIGNvbnRyYWN0dWFsIG9yIG90aGVyIGRpcmVjdCBDT05UUk9MIG92ZXIg SVNQcyBpbiB0ZXJtcyBvZiBiYW5kd2lkdGguIFRoZSB0ZXJtIEkndmUgYmVlbiB1c2luZyBpcyB0 aGF0IHRoZSBNQVJLRVQgZGljdGF0ZXMgdGhlIGJhbmR3aWR0aCByZXF1aXJlbWVudHMgYW4gSVNQ IG11c3QgbWVldCB0byBiZSBjb25zaWRlcmVkIG9wZXJhdGluZyBhdCBhIG1hcmtldC1hY2NlcHRh YmxlIGxldmVsLiBJZiB0aGF0IHNvdW5kcyBsaWtlIGl0J3MgYSBzZWxmLWZ1bGZpbGxpbmcgdGF1 dG9sb2d5LCBpbiBhIHdheSBpdCBpcy4gVGhlIG1hcmtldCBkZXRlcm1pbmVzIHdoYXQgaXQgbmVl ZHMgYW5kIGFsbCB0aGUgcGxheWVycyBuZWVkIHRvIGRlbGl2ZXIgd2hhdCB0aGUgbWFya2V0IGRl bWFuZHMgdG8gYmUgZWZmZWN0aXZlIHBhcnRpY2lwYW50cy4gVGhhdCByZXF1aXJlbWVudCBjYW4g KGFuZCB3aWxsKSBjaGFuZ2Ugb3ZlciB0aW1lLCBidXQgYXQgYW55IGdpdmVuIG1vbWVudCwgdG8g cGFydGljaXBhdGUgaW4gdGhlIG1hcmtldCBhcyBhIHNlcmlvdXMgcGxheWVyLCB0aGUgZW50cmFu dCBtdXN0IG1lZXQgdGhvc2UgbWFya2V0IHJlcXVpcmVtZW50cywgb3IgcmVjb2duaXplIHRoYXQg dGhleSBhcmVuJ3QgYSBzZXJpb3VzIHBsYXllciByZWxhdGl2ZSB0byB0aGUgY29tcGV0aXRpb24u DQoNCkl0J3MgdGhlIHNhbWUgdGhpbmcgaW4gdGhlIGNvbW1vZGl0eSBpbmR1c3RyeS4gSWYgSSBn cm93IGNvcm4gb3IgbWluZSBnb2xkLCBJIHdvdWxkIGhhdmUgdG8gbWVldCwgd2l0aGluIGEgZmV3 IHBlcmNlbnQsIHRoZSBzcGVjcyBvZiBldmVyeW9uZSBlbHNlIGFuZCBzZWxsIGl0IGZvciB0aGUg c2FtZSBwcmljZSAob3Igc2VsbCBmb3IgYSBsaXR0bGUgYml0IGxlc3MgdG8gbWFzc2l2ZWx5IG91 dC1lYXJuIG15IGNvbXBldGl0b3IgcHJvdmlkZXJzLCB3aGljaCByZXN1bHRzIGluIHRoZSBtYXJr ZXQgcHJpY2UgZHJvcHBpbmcgZm9yIGV2ZXJ5b25lKS4gRmFyIGZyb20gYSBwZXJmZWN0IGFuYWxv Z3ksIG9mIGNvdXJzZSwgYmVjYXVzZSBhIGNvbW1vZGl0eSBpcyBkZWZpbmVkIGFzIGEgbWFya2V0 IHdoZXJlIHN1cHBsaWVycyBoYXZlIG5vIGNvbnRyb2wgb3ZlciBpdCwgd2hpY2ggaXMgcXVpdGUg ZGlmZmVyZW50IGZyb20gdGhlIHNlbWktbW9ub3BvbGlzdGljIG1hcmtldCBmb3IgSVNQIHNlcnZp Y2VzLiBTdGlsbCwgaXQgaGVscHMgdG8gaWxsdXN0cmF0ZSB0aGUgbm90aW9uIG9mIG1hcmtldCBz dGFuZGFyZCByZXF1aXJlbWVudHMuDQoNCkkgd291bGQgc2F5IGFueW9uZSB3aG8gc2VsbHMgb3Ig cmVsZWFzZXMgcHJvZHVjdHMgb3IgZGVmaW5lcyBnby10by1tYXJrZXQgc3RyYXRlZ3kgaW4gYW55 IGluZHVzdHJ5IHdvdWxkIGFncmVlIHdpdGggdGhlIHN0YXRlbWVudCB0aGF0IHRoZSBtYXJrZXQg ZGljdGF0ZXMgdGhlIG1pbmltdW0gcmVxdWlyZW1lbnRzIGZvciB0aGVpciBpbmR1c3RyeS4gVGhl IG1hcmtldCBpc24ndCBhbnkgZ29vZCBhdCBpbm5vdmF0aW9uIChhIHJlYWxtIHdoZXJlIGVuZ2lu ZWVycyBhbmQgc29tZSBhY2FkZW1pY3Mgc2hpbmUpLCBidXQgaXQncyB0aGUgcGVlcmxlc3MgYmVz dCBhdCBlc3RhYmxpc2hpbmcgaXRzIG93biByZXF1aXJlbWVudHMuIA0KDQpUaGF0IGRvZXNuJ3Qg bWVhbiBzb21lb25lIGNhbid0IGNvbWUgYWxvbmcgYW5kIGRlbGl2ZXIgbGVzcyBpbiBwYXJ0aWN1 bGFyIGNhc2VzOiBpZiBjdXN0b21lcnMgYXJlIGRlc3BlcmF0ZSB3aXRoIG5vIGFsdGVybmF0aXZl cyBvciB0aGUgYWx0ZXJuYXRpdmVzIGFyZSBleHBlbnNpdmUgaW4gYSBjZXJ0YWluIHJlZ2lvbiwg dGhvc2UgY3VzdG9tZXJzIG1heSBhY2NlcHQgYSBzZXJ2aWNlIHRoYXQgZmFsbHMgc2hvcnQgb2Yg Z2VuZXJhbCBtYXJrZXQgcmVxdWlyZW1lbnRzIGJlY2F1c2UgaXQncyBzdGlsbCBiZXR0ZXIgdGhh biB0aGVpciBhbHRlcm5hdGl2ZXMuIA0KDQpCdXQgaW4gb3JkZXIgdG8gcHJvdmlkZSBtYXJrZXQt c3RhbmRhcmQgc2VydmljZSwgSVNQcyBuZWVkIHRvIG1lZXQgdGhlIG1hcmtldCBzdGFuZGFyZHMg b24gYmFuZHdpZHRoIGp1c3QgYXMgbXVjaCBhcyBvbiBsYXRlbmN5IChhbmQgcmVsaWFiaWxpdHkg YW5kIG90aGVyIGZlYXR1cmVzLCBlLmcuLCBtYXJrZXQgc3RhbmRhcmQgaXMgYSB2YXJpYWJsZSBJ UDQgYWRkcmVzcyDigJMgbWFueSBvZiB1cyBtYXkgd2FudCBhIHN0YXRpYyBJUCMsIGJ1dCB0aGF0 J3Mgbm90IGEgc3RhbmRhcmQpLiBBbmQgdGhlIG1hcmtldCBzdGFuZGFyZCBvbiBiYW5kd2lkdGgg aXMgZXN0YWJsaXNoZWQgYnkgdGhlIG1haW5zdHJlYW0gc2VydmljZXMgdGhhdCBjdXN0b21lcnMg Y2FuIGdldCB2aWEgdGhlIEludGVybmV0LiBUaG9zZSBhcmUgc2V0IGJ5IHRoZSBzdHJlYW1pbmcg c2VydmljZXMgaW4gdGhlIGFnZ3JlZ2F0ZSAobm90IGJ5IGFueSBvbmUgY29tcGFueSBkaWN0YXRp bmcgaXQpLg0KDQpOb3RlIHRoYXQgdGhleSBhcmUgTk9UIHNldCBpbiBhIHZhY3V1bS4gVGhlIHN0 cmVhbWluZyBzZXJ2aWNlcyBoYXZlIHNldCAyNU1icHMgYmVjYXVzZSBhIHNpZ25pZmljYW50IGVu b3VnaCBwb3J0aW9uIG9mIHRoZWlyIGN1c3RvbWVycyBhbHJlYWR5IGhhdmUgYWNjZXNzIHRvIDI1 TWJwcyBvciBncmVhdGVyIGJhbmR3aWR0aCwgY29tcHJlc3Npb24gYWxnb3JpdGhtcyBhbGxvdyBm b3IgNEsgSERSIHRvIGJlIGRlbGl2ZXJlZCByZWxpYWJseSB3aXRoaW4gdGhhdCAyNU1icHMgYml0 cmF0ZSwgYW5kIG1vdmllIGFuZCB0ZWxldmlzaW9uIHN0dWRpb3MgaGF2ZSBtYXhlZCBvdXQgdmlk ZW8gcmVzb2x1dGlvbnMgYW5kIGNvbG9yIGRlcHRoIGF0IDRLIEhEUi4gTm8gb3RoZXIgcG9wdWxh ciBzZXJ2aWNlIHJlcXVpcmVzIG1vcmUgYmFuZHdpZHRoIHRoYW4gNEsgSERSIHZpZGVvIHN0cmVh bWluZywgc28gdGhhdCdzIHRoZSBiZW5jaG1hcmsuIFRoZSBjb25mbHVlbmNlIG9mIGFsbCB0aGVz ZSBmYWN0b3JzIHRvZ2V0aGVyIGhhdmUgbGVkIHRvIGEgbWFya2V0IFJFUVVJUkVNRU5UIG9mIDI1 TWJwcy4gDQoNClRoYXQgcmVxdWlyZWQgYml0cmF0ZSBsaWtlbHkgd2lsbCBpbmNyZWFzZSBpbiB0 aGUgZnV0dXJlLCBidXQgd2UgY2FuIHNlZSB0aGF0IGl0IHdpbGwgYXQgbGVhc3QgYmUgeWVhcnMg YmVmb3JlIDI1TWJwcyB3aWxsIGJlIGEgcGFpbmZ1bCBjb25zdHJhaW50IGZvciBhbnkgb25lIHN0 cmVhbSAoaWYgeW91IGhhdmUgbXVsdGlwbGUgZmFtaWx5IG1lbWJlcnMgd2hvIGFsbCBuZWVkIGFj Y2VzcyB0byB0aGUgc2FtZSBzZXJ2aWNlcyBhdCB0aGUgc2FtZSB0aW1lLCBpdCdzIGFscmVhZHkg dG9vIHNtYWxsKSwgd2hldGhlciBiZWNhdXNlIGV2ZW50dWFsbHkgd2Ugd2lsbCBleHBlY3QgZ3Jl YXRlciB0aGFuIDRLIHBpY3R1cmVzLCBvciBtYXliZSBiZWNhdXNlIGdhbWUgc3RyZWFtaW5nIGJl Y29tZXMgbW9yZSBwb3B1bGFyIChlLmcuLCBYYm94IGFuZCBQUyBjb25zb2xlcyBoYXZlIGEgNi04 IHllYXIgZ2VuZXJhdGlvbiwgYnkgdGhlIGVuZCBvZiB3aGljaCB0aGV5IHNlZW0gdGVycmlibHkg b2Jzb2xldGUgY29tcGFyZWQgdG8gdGhlaXIgUEMtZ2FtaW5nIGNvbnRlbXBvcmFyaWVzOyBzdHJl YW1pbmcgd291bGQgZW5zdXJlIGdhbWVycyBhbHdheXMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGxhdGVz dCB0ZWNoKSwgSW9UIHRha2VzIG9mZiBkdWUgdG8gc29tZSB1bmZvcmVzZWVuIGtpbGxlciBhcHAs IGV0Yy4gQmFuZHdpZHRoIG5lZWRzIHdpbGwgYWxtb3N0IGNlcnRhaW5seSBpbmNyZWFzZSwgbm90 IGRlY3JlYXNlLCBvdmVyIHRpbWUsIGluIHNwaXRlIG9mIGNvbXByZXNzaW9uIGltcHJvdmVtZW50 cy4gSW4gZmFjdCwgY29tcHJlc3Npb24gZ2VuZXJhbGx5IGZvbGxvd3MgYXMgbmVlZHMgZ3JvdyBm YXN0ZXIgd2l0aCBhbiBhc3N1bWVkIHN0YXRpYyBjYXBhY2l0eSwgc28gY29tcHJlc3Npb24gaGFz IG5ldmVyIGhpc3RvcmljYWxseSByZWR1Y2VkIGJhbmR3aWR0aCByZXF1aXJlbWVudHMsIGl0IGp1 c3QgaW5jcmVhc2VzIHRoZSBxdWFsaXR5IG9mIHdoYXQgY2FuIGJlIGRvbmUgd2l0aCBleGlzdGlu ZyBiYW5kd2lkdGguDQoNCllvdSBhbHNvIHJpZ2h0bHkgcG9pbnQgb3V0IHRoYXQgbWFueSBjdXN0 b21lcnMgZG9uJ3QgZG8gNEsuIFRoYXQncyBmaW5lLiBBbmQgSSBoYXZlIG5vIG9iamVjdGlvbiB0 byBJU1BzIG9mZmVyaW5nIGEgbG93ZXIgYmFuZHdpZHRoIG9wdGlvbiBhdCBhIGxvd2VyIHByaWNl LiBXaGF0IHRoZSBtYXJrZXQgaGFzIGRlZmluaXRpdmVseSBzZXQgaXMgdGhhdCBpbiBhbnkgcmVn aW9uLCBhdCBsZWFzdCBpbiB0aGUgVS5TLiAoSSBrbm93IGxlc3MgYWJvdXQgb3RoZXIgcGFydHMg b2YgdGhlIHdvcmxkKSwgYSBzaWduaWZpY2FudCAlIG9mIHVzZXJzIHdpbGwgbmVlZCAyNU1icHMg c2VydmljZSBpbiBvcmRlciB0byBhY2Nlc3MgdGhlIG1haW5zdHJlYW0gc3RyZWFtaW5nIHNlcnZp Y2VzLiBTZWUgYWJvdmUgZm9yIHJlYXNvbmluZy4gDQoNClRoaXMgaXMgbm90IGRlYmF0YWJsZSBv dGhlciB0aGFuIGFzIGFuIG9waW5pb24gKGxpa2Ugc2F5aW5nIGNob2NvbGF0ZSBpcyBiZXR0ZXIg dGhhbiBtaW50IGNoaXAgaWNlIGNyZWFtKSBhcyBldmlkZW5jZWQgYnkgdGhlIGZhY3QgdGhhdCBB TEwgVEhFIE1BSk9SIFNUUkVBTUlORyBTRVJWSUNFUyBhcmUgYXQgdGhlIHNhbWUgcGxhY2UuIEtl ZXAgaW4gbWluZCB0aGF0IHRoZXkgY29tcGV0ZSB3aXRoIGVhY2ggb3RoZXIuIElmIERpc25leSB0 aG91Z2h0IHRoYXQgaXQgY291bGQgZ2V0IGEgbGVnIHVwIG9uIE5ldGZsaXggYnkgc2F5aW5nIHdl J3JlIGJldHRlciBiZWNhdXNlIHdlIG9ubHkgcmVxdWlyZSAxME1icHMgb3IgMjBNYnBzIGZvciB0 aGUgc2FtZSBxdWFsaXR5LCB0aGV5IHdvdWxkIHByb21vdGUgdGhhdC4gVGhpcyB3b3VsZCBnaXZl IHRoZW0gYSBzYWxlcyBhZHZhbnRhZ2Ugb3ZlciB0aGVpciBhcmNoY29tcGV0aXRvciBpbiByZWdp b25zIHdoZXJlIGJhbmR3aWR0aHMgYXJlIGxpbWl0ZWQuIFRoZXkgZG9uJ3QgYmVjYXVzZSAyNU1i cHMgaXMgbWFya2V0LXNldCBhcyB0aGUgcmVxdWlyZW1lbnQuIA0KDQpBZ2FpbiwgYnkgZGVmaW5p dGlvbiBvZiB3aGF0IHRoZSBtYXJrZXQgc2V0cywgaXQgaGFzIHNldCBpdC4NCg0KV2hpbGUgeW91 IGFyZSBjb3JyZWN0IGFuZCBJIGFncmVlIHdpdGggeW91IG9uIHRoZSB0ZWNobmljYWwgZmFjZXRz IHRvIHRoaXMsIEkgY2FuJ3Qgc3VwcG9ydCB5b3VyIHN0YXRlbWVudCB0aGF0IHRoZXJlIGlzICJl bm91Z2ggdW5jZXJ0YWludHkiIGluIHRoZSBtYXJrZXQuIFRoZXJlIGlzIHplcm8gdW5jZXJ0YWlu dHkgZm9yIHRoZSByZWFzb25zIEkgaGF2ZSBvdXRsaW5lZCBhYm92ZS4gSSBjYW4gZHJpbGwgbXVj aCBkZWVwZXIgaW50byBhbnkgb2YgdGhlc2UgaWYgeW91IGxpa2UgKGFzIGxvbmcgYXMgbXkgb3Zl cmx5LXZlcmJvc2UgZW1haWxzIGFyZSwgdGhleSBhcmUganVzdCBzY3JhdGNoaW5nIHRoZSBzdXJm YWNlIG9uIGFsbCB0aGUgcmVhc29ucyB0aGF0IGNhbiBiZSBwcm92aWRlZCksIGJ1dCBiZSBhd2Fy ZSB0aGF0IHRoZSBmYWN0IHRoYXQgbm90IGFsbCBjdXN0b21lcnMgaGF2ZSB0aGUgc2FtZSBwcmVm ZXJlbmNlcyBpcyBub3QgYSByZWxldmFudCBmYWN0b3IuIE9mIGNvdXJzZSwgZGlmZmVyZW50IGN1 c3RvbWVycyBoYXZlIGRpZmZlcmVudCBwcmVmZXJlbmNlcyAoYW5kIHRoYXQncyBhIGdvb2QgdGhp bmcpLg0KDQpZb3UgYXNrZWQgYWJvdXQgZmlsbWluZyBjYW1lcmFzIGFuZCA0SyB2cyA4Sy4gTGVu cyBhYmVycmF0aW9uIGlzIHRoZSBwcmltYXJ5IGNvbmNlcm4gYXMgeW91IGdldCBtdWNoIGFib3Zl IDRLLiBPcmlnaW5hbCBmaWxtaW5nIGlzIGRvbmUgZm9yIFRWIG5vdyBnZW5lcmFsbHkgYXQgSEQg b3IgNEsuIE1vdmllIHByb2R1Y3Rpb24gZG9lcyB0ZW5kIHRvIHVzZXIgaGlnaGVyICh1c3VhbGx5 IHZlcnkgZXhwZW5zaXZlIElNQVgpIGNhbWVyYXMgdGhhdCBhcmUgaW4gdGhlIDhLIGFyZWEuIEJ1 dCBub3RlIHRoYXQgSU1BWCBpcyB0YWxsZXIgKG1vcmUgc3F1YXJlKSB0aGFuICJub3JtYWwiIDIx Ojkgb3IgMTY6OSBjYW1lcmFzLCBzbyB0aGUgdG90YWwgcmVzb2x1dGlvbiBpcyBub3QgYXMgbXVj aCBoaWdoZXIgYXMgdGhhdCBzb3VuZHMgKGkuZS4sIElNQVggOEsgaXMgbGVzcyB0aGFuIGZvdXIg NEsgaW1hZ2VzKS4gT24gdGhlIGZpbG0gc2lkZSwgSU1BWCBhcmUgc2FpZCB0byBwcm9kdWNlIHVw IHRvIGFuIDEySyBkaWdpdGFsIGVxdWl2YWxlbnQuIEJleW9uZCAxMkssIGV2ZW4gaW4gYnJpZ2h0 IGxpZ2h0IHdpdGggaGlnaC1zcGVlZCBmaWxtLCB0aGVyZSBpcyBqdXN0IHRvbyBtdWNoIGxlbnMg YWJlcnJhdGlvbiBmb3IgbW9yZSBwaXhlbHMgdG8gYWRkIGFueXRoaW5nIHRvIGltYWdlIHF1YWxp dHkuIEFuZCBpbiBsZXNzIHRoYW4gaWRlYWwgbGlnaHRpbmcsIGVzcGVjaWFsbHkgd2l0aCBmYXN0 LW1vdmluZyBzY2VuZXMsIHRoZSBwcm9ibGVtcyBnZXQgd29yc2UuIFRoYXQgaXMsIHRoZSBuYXR1 cmFsIHNoYXJwbmVzcy9ibHVycmluZXNzIHRvIHRoZSBpbWFnZSBjYW4ndCBiZW5lZml0IGZyb20g bW9yZSBwaXhlbHMsIGJlY2F1c2UgdGhvc2UgZXh0cmEgcGl4ZWxzIGFyZSBqdXN0IHN0b3Jpbmcg dGhlIGJsdXIsIHdoaWNoIGRvZXMgbm90IHByb3ZpZGUgYW55IGFkZGl0aW9uYWwgaW5mb3JtYXRp b24uDQoNCkltcG9ydGFudCBpbmR1c3RyeSBwb2ludCBoZXJlIHRob3VnaDogaW4gZ2VuZXJhbCAo c29tZSBwb3NzaWJsZSBvY2Nhc2lvbmFsIGV4Y2VwdGlvbnMgZm9yIERpc25leSBhbmQgV2FybmVy IEJyb3MgRGlzY292ZXJ5IChvd25zIE1BWCkgd2hvIGFyZSBib3RoIG1vdmllIHN0dWRpb3MgYW5k IHN0cmVhbWluZyBzZXJ2aWNlcyksIHRoZSBzdHVkaW9zIGRvbid0IHdhbnQgaG9tZSB2aWV3ZXJz IHRvIGhhdmUgYWNjZXNzIHRvIHBpY3R1cmUgcXVhbGl0eSBhcyBnb29kIGFzIGluIHRoZWF0ZXJz LiA0SyBvbmx5IGJlY2FtZSBhbiBvcHRpb24gZm9yIGhvbWUgdmlld2luZyBhcyBJTUFYIGJlY2Ft ZSBwb3B1bGFyIGZvciB0aGVhdGVycy4gTm93LCB0byBiZSBmYWlyLCB0aGUgZGVsdGEgaW4gcXVh bGl0eSBiZXR3ZWVuIGhvbWUgYW5kIHRoZWF0ZXIgaGF2ZSBwbHVtbWV0ZWQsIHNvIHRoaXMgYXJn dW1lbnQgbWF5IGJlIGZhZGluZywgYnV0IHRoZXNlIGNoYW5nZXMgdGFrZSB0aW1lLiBFdmVuIGlm IGFsbCBtb3ZpZXMgd2VyZSBJTUFYIGFuZCBzaG93ZWQgOEsgbW92aWVzLCBtYW55IHN0dWRpb3Mg d291bGQgZG8gZXZlcnl0aGluZyB3aXRoaW4gdGhlaXIgcG93ZXIgdG8gcmV0YWluIDhLIGFzIGEg dGhlYXRlci1vbmx5IGV4cGVyaWVuY2UuIA0KDQpCeSAxSywgZG8geW91IG1lYW4gSEQgLSAxOTIw eDEwODA/IElmIHNvLCB5ZWFoLCBJIHN0cm9uZ2x5IGFncmVlIHdpdGggeW91IHdpbiB0aGF0IHRo ZSBiaWcganVtcCBpbiBxdWFsaXR5IHVwIHRvIEhELiBGcm9tIEhEIHRvIDRLIGlzIGEgbXVjaCBs ZXNzIG5vdGljZWFibGUganVtcCAoZXZlbiAxMDgwcCBmcm9tIDcyMHAgaXMgYSBtb3JlIGRpc3Rp bmN0IGp1bXAgdGhhbiAxMDgwcCB0byA0SyBmb3IgbW9zdCBleWVzIG9uIDY1IiBUVnMpLiBXaGF0 IG1vc3QgcGVvcGxlIGFzc3VtZSBpcyB0aGUgaW1wcm92ZW1lbnQgYmV0d2VlbiBIRCBhbmQgNEsg aXMgYWN0dWFsbHkgdGhlIHJlbW92YWwgb2YgY29tcHJlc3Npb24gYXJ0aWZhY3RzLiBUeXBpY2Fs IGNhYmxlIGFuZCBzYXRlbGxpdGUgVFYgY2hhbm5lbHMgYXJlIGV4dHJlbWVseSBjb21wcmVzc2Vk IHRvIHNhdmUgbW9uZXkgaW4gdGhlIHRyYW5zbWlzc2lvbiwgbG9zaW5nIGEgdHJlbWVuZG91cyBh bW91bnQgb2YgZGF0YS4gRm9yIG1vc3Qgb2YgdGhlaXIgY2hhbm5lbHMsIHRoZXkgdGhyb3cgb3V0 IGEgbG90IG1vcmUgZGF0YSB0aGFuIHRoZSBzdHJlYW1pbmcgc2VydmljZXMgKHNvIEhEIE5ldGZs aXggbG9va3MgYmV0dGVyIHRoYW4gSEQgU3lGeSBjaGFubmVsKS4gWW91IHdpbGwgb2Z0ZW4gc2Vl IHRoZW0gcHJpb3JpdGl6ZSBzb21lIGNoYW5uZWxzIChsZXNzIGNvbXByZXNzaW9uKSBhdCB0aGUg ZXhwZW5zZSBvZiBvdGhlcnMgKGhpZ2hseSBjb21wcmVzc2VkLCB0eXBpY2FsbHkgbmV3cyBvciBs aXR0bGUtd2F0Y2hlZCBzdGF0aW9ucyB3aGVyZSBwaWN0dXJlIHF1YWxpdHkgbWF0dGVycyBsZXNz KS4gMTA4MHAgSEQgY2FuIGxvb2sgZmFudGFzdGljIHdoZW4gdGhlcmUgYXJlIG5vIG9yIG1pbmlt YWwgY29tcHJlc3Npb24gYXJ0aWZhY3RzLiBNb3N0IHNlcmlvdXMgZ2FtZXJzIGdhbWUgaXQgMTA4 MHAgTk9UIDRLLCBiZWNhdXNlIHRoYXQgYWxsb3dzIHRoZW0gdG8gYWNoaWV2ZSAxMjArIGZwcywg d2hlcmUgYWxtb3N0IGV2ZXJ5IHNlcmlvdXMgZ2FtZXIgd2lsbCB0ZWxsIHlvdSB0aGF0IGZyYW1l cyBwZXIgc2Vjb25kIGFyZSBtb3JlIGltcG9ydGFudCB0aGFuIGltYWdlIHF1YWxpdHksIGFuZCA0 SyBpcyBhIHBvaW50bGVzc2x5IGhpZ2ggaW1hZ2UgcXVhbGl0eS4gV2hlbiB0aGV5IGRvIGdvIGFi b3ZlIDEwODBwLCBpdCdzIHVzdWFsbHkgdG8gMTQ0MHAsIGFuZCBvbmx5IGZvciBnYW1lcyB0aGF0 IGNhbiBzdGlsbCBoaXQgYXQgbGVhc3QgMTIwZnBzIGF0IDE0NDAuIE1hbnkgZ2FtZXJzIHByZWZl ciAyNDBmcHMsIGJ1dCBhdCB0aGF0IHBvaW50LCBsaWtlIGdvaW5nIGJleW9uZCA0SyBpbiB0ZXJt cyBvZiByZXNvbHV0aW9uLCB5b3UncmUgYmFzaWNhbGx5IHBhc3Qgd2hhdCBtb3N0IGh1bWFuIGV5 ZXMgY2FuIGRpc2Nlcm4uIChwZXJzb25hbGx5LCBJIGNhbid0IHRlbGwgdGhlIGRpZmZlcmVuY2Ug YmV0d2VlbiAxMjBmcHMgYW5kIDI0MGZwcywgYnV0IHlvdW5nZXIgZXllcyBjYW4pLiANCg0KT24g OEsgZ2FtaW5nLCBJIGRvIGFncmVlIHdpdGggeW91ciBzdGF0ZW1lbnQgdGhhdCBldmVuIGlmIGl0 J3MgaW5jbHVkZWQgb24gYm90aCBuZXh0LWdlbiBYYm94IGFuZCBQUzYsIEkgd291bGQgbm90IGRl c2NyaWJlIHRoYXQgYXMgYSAibWFya2V0IHJlcXVpcmVtZW50IiBpbiB0aGUgd2F5IEkgZGVzY3Jp YmUgMjVNYnBzIGZvciBJU1AgYmFuZHdpZHRoIGFzIGEgbWFya2V0IHJlcXVpcmVtZW50LiBJbiB0 aGF0IGNhc2UgKGFzc3VtaW5nIG15IHByZWRpY3Rpb24gaXMgY29ycmVjdCwgd2hpY2ggaXQgbWF5 IG5vdCBiZSksIGl0IHdvdWxkIGp1c3QgYmUgYSBoaWdoLWVuZCBmZWF0dXJlLiBBc3N1bWluZyBu ZXh0LWdlbiBYYm94IGFuZCBQUzYgdXNlIHRoZSBzYW1lIHRlY2huaWNhbCByZXF1aXJlbWVudHMg b2YgdGhlIFRWIHRvIGdldCB0aGVyZSwgaG93ZXZlciwgSSB3b3VsZCBjYWxsIGl0IGEgc3RhbmRh cmQsIGp1c3Qgbm90IGEgbWFya2V0LXJlcXVpcmVkIHN0YW5kYXJkLCBZRVQuDQoNCkFsc28sIHBs ZWFzZSBub3RlIHRoYXQgYW4gb3B0aW9uIGFueW9uZSBjYW4gYWRkcmVzcyBieSBnb2luZyB0byB0 aGUgc3RvcmUgYW5kIHB1cmNoYXNpbmcgc29tZXRoaW5nIChpLmUsIGEgbmV3IDhLIFRWKSBpcyBk aWZmZXJlbnQgZnJvbSB0aGUgbWF4aW11bSBhdmFpbGFibGUgYmFuZHdpZHRoIGZyb20gdGhlIElT UCwgd2hpY2ggb25jZSBlc3RhYmxpc2hlZCBjYW4ndCBlYXNpbHkgY2hhbmdlIGluIG1hbnkgY2Fz ZXMgZm9yIG1hbnksIG1hbnkgeWVhcnMuIElmIElTUCBYWVogYnVpbGRzLW91dCBuZXcgSW50ZXJu ZXQgY2FwYWNpdHkgaW50byBhIGZvcm1lcmx5IHVuc2VydmVkIHJ1cmFsIGFyZWEgYXQgMjBNYnBz LCB0aGV5IHByb2JhYmx5IHdvbid0IGNpcmNsZSBiYWNrIHRvIHVwZ3JhZGUgdGhhdCBmb3IgbW9y ZSB0aGFuIGEgZGVjYWRlLiBUaGVyZSBpcyBub3RoaW5nIHRob3NlIHJlc2lkZW50cyBjYW4gZG8g dG8gZml4IHRoZSBwcm9ibGVtICh3ZWxsLCB0aGV5IGNvdWxkIGdldCBTdGFybGluaywgYnV0IEkg bWVhbiB0aGVyZSBpcyBub3RoaW5nIHRoZXkgY2FuIGRvIHdpdGggdGhhdCBJU1ApLiBJdCdzIHRo ZSBzZW1pLXBlcm1hbmVudCBuYXR1cmUgb2YgdGhlIHJvbGxvdXQgdGhhdCBjb25jZXJucyBtZSBz byBtdWNoIGFuZCB3aHkgSSBzYXkgSVNQcyBuZWVkIHRvIGF0IGxlYXN0IGhpdCB0aGUgbWFya2V0 IHJlcXVpcmVtZW50IGluIHRoZWlyIHRvcC10aWVyIG9mZmVyaW5nLCBiZWNhdXNlIGlmIHRoZXkg ZG9uJ3QsIHRoZXJlJ3Mgbm8gc29sdXRpb24gZm9yIHRob3NlIGN1c3RvbWVycyB3aXRoIHRoYXQg SVNQLCBhbmQgYmVjYXVzZSBtYW55IElTUCdzIGRvIGhhdmUgZGUgZmFjdG8gcmVnaW9uYWwgbW9u b3BvbGllcywgdGhpcyBpcyBhIHNlcmlvdXMgcHJvYmxlbS4NCg0KQ2hlZXJzLA0KQ29saW4NCg0K LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFNlYmFzdGlhbiBNb2VsbGVyIDxtb2Vs bGVyMEBnbXguZGU+IA0KU2VudDogV2VkbmVzZGF5LCBNYXkgMTUsIDIwMjQgMjo1MiBBTQ0KVG86 IENvbGluX0hpZ2JpZSA8Q0hpZ2JpZTFASGlnYmllLm5hbWU+DQpDYzogQWxleGFuZHJlIFBldHJl c2N1IDxhbGV4YW5kcmUucGV0cmVzY3VAZ21haWwuY29tPjsgRnJhbnRpc2VrIEJvcnNpayA8ZnJh bnRpc2VrLmJvcnNpa0BnbWFpbC5jb20+OyBzdGFybGlua0BsaXN0cy5idWZmZXJibG9hdC5uZXQN ClN1YmplY3Q6IFJlOiBbU3RhcmxpbmtdIEl04oCZcyB0aGUgTGF0ZW5jeSwgRkNDDQoNCkhpIENv bGluLA0KDQpzaW5jZSB5b3UgYnJpbmcgdGhpcyB1cCBhZ2FpbiwgSSB3YW50IHRvIGFkZHJlc3Mg YSBmZXcgcG9pbnRzIGJlbG93Li4uDQoNCg0KPiBPbiAxNC4gTWF5IDIwMjQsIGF0IDIxOjIzLCBD b2xpbl9IaWdiaWUgdmlhIFN0YXJsaW5rIDxzdGFybGlua0BsaXN0cy5idWZmZXJibG9hdC5uZXQ+ IHdyb3RlOg0KPiANCj4gQXBvbG9naWVzLCB0aGVzZSBoYWQgYmVlbiByb3V0ZWQgdG8gbXkganVu ayBmb2xkZXIuIEp1c3Qgc2F3IHRoZW0sIHNvIHRoaXMgaXMgYSBiaXQgYmVoaW5kLg0KPiAgTm90 aGluZyB3cm9uZyB3aXRoIG11c2luZ3MgYW5kIG9waW5pb25zICh3ZSBhbGwgZG8gaXQgYW5kIGhh dmUgdGhlbSkgYnV0IGZydXN0cmF0ZWQgYnkgdGhlIHJlbHVjdGFuY2UgdG8gYWNjZXB0IGRhdGEg YW5kIHdoZW4gcGVvcGxlIHRyeSB0byByZXBsYWNlIGRhdGEgd2l0aCB0aGVpciBvcGluaW9ucyB3 aXRoIGNvbW1lbnRzIGxpa2UsIOKAnFRoaXMgbWVhbnMgdGhhdCBwcm9iYWJseSBJU1BzIGFyZSBp bmNsaW5lZCB0byBkbyBtb3JlIHRoYW4gdGhhdCA0SyBvdmVyIHRoZSBJbnRlcm5ldCwgbWF5YmUg OEssIHRvIGRpc3Rpbmd1aXNoIHRoZWlyIHNlcnZpY2UgZnJvbSBEVkIu4oCdDQo+ICBJU1DigJlz IGRvIE5PVCBwcm92aWRlIGFueSBzaWduaWZpY2FudCBwb3J0aW9uIG9mIHN0cmVhbWluZyB2aWRl by4gVGhhdCBjb21lcyBmcm9tIE5ldGZsaXgsIERpc25leSwgQW1hem9uIFByaW1lLCBNQVgsIEh1 bHUsIFBhcmFtb3VudCBQbHVzLCBQZWFjb2NrLCBhbmQgb3RoZXIgY29tbWVyY2lhbCBzdHJlYW1p bmcgc2VydmljZXMgdGhhdCBkaXN0cmlidXRlIFRWIHNob3dzIGFuZCBtb3ZpZXMuIFRoZSBJU1Ag bmVlZHMgdG8gb2ZmZXIgYSBiYW5kd2lkdGggbGV2ZWwgc3VmZmljaWVudCB0byBtZWV0IHRob3Nl IGNvbnRlbnQgcHJvdmlkZXJzIHJlcXVpcmVtZW50cy4NCg0KW1NNXSBUaGlzIGlzIG5vdCBob3cg dGhpcyB3b3JrcyBJTUhPLCBhcyBsb25nIGFzIHRoZSBzdHJlYW1pbmcgcHJvdmlkZXJzIGRvIG5v dCBwYXkgdGhlIElTUHMgdGhleSBjYW4gbm90IGJyaW5nIHRoZWlyIHJlcXVpcmVtZW50cyB0byB0 aGUgSVNQcyBkaXJlY3RseS4gSSBhc3N1bWUgaG93ZXZlciB5b3UgYWxsb3cgZm9yIGFuIGluZGly ZWN0IHBhdGggdmlhIHRoZSBJU1AncyBlbmQgY3VzdG9tZXJzLiBCdXQgYXQgdGhhdCBwb2ludCB0 aGUgcmVxdWlyZW1lbnQgaXMgYWxyZWFkeSBkaWx1dGVkLCBhcyB0aGF0IGVuZCBjdXN0b21lciBt aWdodCBub3QgY2FyZSBmb3IgVUhEIHF1YWxpdHkuDQoNCg0KPiAgQWdhaW4sIEkgd291bGQgZmVl bCBsaWtlIEnigJltIGJlYXRpbmcgYSBkZWFkIGhvcnNlIGhlcmUsIGV4Y2VwdCB0aGF0IHBlb3Bs ZSBrZWVwIHJlc3VzY2l0YXRpbmcgdGhlIGhvcnNlIGJ5IHBvc3RpbmcgYXMgaWYgdGhhdCBiYW5k d2lkdGggcmVxdWlyZW1lbnQgaXMganVzdCBteSBvcGluaW9uLiBUaGF0IGJhbmR3aWR0aCByZXF1 aXJlbWVudCBpcyAyNU1icHMgYW5kIG5vdCBteSBvcGluaW9uLiAgQWxleCB3cm90ZTog4oCcLSBh Ym91dCAyNW1iaXQvcyBidyBuZWVkcyBmb3IgNEs6ICBoZG1pIGNhYmxlcyBmb3IgNEsgSERSMTAg KGhpZ2ggZHluYW1pYyByYW5nZSkgYXJlIHNwZWNpZmllZCBhdCAxOGdiaXQvcyBhbmQgbm90IDI1 bWJpdC9zIChtYnl0ZT8pLiAgVGhlc2UgSERNSSBjYWJsZXMgZG9udCBydW4gSVAuICBCdXQsIHN1 cHBvc2VkbHksIHRoZSBkaXNwbGF5ZWQgNEsgaW1hZ2UgaXMgb2YgYSBoaWdoZXIgcXVhbGl0eSBp ZiBwbGF5ZWQgb3ZlciBoZG1pIChwcmVzdW1hYmx5IGZyb20gYSBwbGF5ZXIpIHRoYW4gZnJvbSBh IHNlcnZlciAgcmVtb3RlIG9uIHRoZSBJbnRlcm5ldC4gICBUbyBhY2hpZXZlIHBhcml0eSwgbWF5 YmUgb25lIHdhbnRzIHRvIHJ1biB0aGF0IGhkbWkgZmxvdyBmcm9tIHRoZSBzZXJ2ZXIgd2l0aCBJ UCwgYW5kIGF0IHRoYXQgcG9pbnQgdGhlIGJhbmR3aWR0aCByZXF1aXJlbWVudCBpcyBoaWdoZXIg dGhhbiAyNW1iaXQvcy4gIFRoaXMgZ29lcyBoYW5kIGluIGhhbmQgd2l0aCB0aGUgZGlzYyBldm9s dXRpb25zICh0cmlwbGUtbGF5ZXIgYmx1cmF5IGRpc2NzIG9mIDEyMEdieXRlIGNhcGFjaXR5IGlz IHRoZSBtb3N0IHJlY2VudDsgSSBkb250IHNlZSBzaWducyBvZiB0aGF0IHRvIHNsb3cpLuKAnQ0K DQpbU01dIEkgZnVsbHkgYWdyZWUgd2l0aCB0aGUgbG9zc3kgY29tcHJlc3Npb24gdmVyc3VzICdy YXcnIGFyZ3VtZW50LCBldmVuIGEgbWVhc2x5IFZHQSBzdHJlYW0gYXQgMzAgSHogd291bGQgZWF0 ICg2NDAqNDgwKjMwKjMqOCkvKDEwMDBeMikgPSAyMjEuMTg0IE1icHMsIHNvIHVuY29tcHJlc3Nl ZCB2aWRlbyBpcyBzdGlsbCBuZWl0aGVyIGRlc2lyZWQgYnkgdGhlIGVuZCBjdXN0b21lciAoaW4g dGhlIG1hc3MgbWFya2V0LCBpbmRpdmlkdWFsIGV4Y2VwdGlvbnMgbWlnaHQgZXhpb3N0IGJ1dCBJ TUhPIGFyZSBub3QgcmVsZXZhbnQgaGVyZSkgbm9yIGJ5IHRoZSBjb250ZW50IHByb3ZpZGVycywg YXMgdGhlc2UgaGF2ZSB0byBwYXkgZm9yIHRyYWZmaWMgY2FwYWNpdHkuDQoNCj4gIFllcywgaWYg eW91IHB1dCBhIFVIRCBkaXNjIGluIGEgQmx1LXJheSBwbGF5ZXIgb3IgY29udmV5IGdhbWluZyB2 aWRlbyBhdCA0SyBIRFIxMCAxMjBmcHMsIGl0IHdpbGwgc2VuZCBhbiBVTkNPTVBSRVNTRUQgdmlk ZW8gc2lnbmFsIHRoYXQgdXNlcyBhbiAxOCAtIDQ4R2JwcyBjYWJsZSAoc21hbGwg4oCYYuKAmSA9 IGJpdHMsIGNhcGl0YWwg4oCYQuKAmSA9IGJ5dGVzIGluIHRoZXNlIGFiYnJldmlhdGlvbnMpLiBU aGF0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggc3RyZWFtaW5nIGJhbmR3aWR0aCwgd2hpY2ggaXMg Q09NUFJFU1NFRCB2aWRlbyB1c2luZywgcHJpbWFyaWx5IHRoZXNlIGRheXMsIEguMjY1L0hFVkMu IEguMjY1IGlzIGFuIGFtYXppbmdseSBlZmZpY2llbnQgY29tcHJlc3Npb24gc3lzdGVtIChlZmZl Y3RpdmVseSByZWR1Y2luZyBzdHJlYW0gc2l6ZSBieSBhIGZhY3RvciBvZiBzZXZlcmFsIGh1bmRy ZWQsIGFwcHJvYWNoaW5nIDEsMDAwIG92ZXIgdGhlIHJhdyB1bmNvbXByZXNzZWQgc3RyZWFtKS4g SSBkb27igJl0IGRvdWJ0IHRoZXJlIHdpbGwgYmUgZnVydGhlciBpbXByb3ZlbWVudHMgaW4gdGhl IGZ1dHVyZSwgYnV0IEkgd291bGQgbm90IGV4cGVjdCBkcmFtYXRpYyBhZGRpdGlvbmFsIGJhbmR3 aWR0aCBzYXZpbmdzLiBILjI2NSBpcyBhIGxvc3N5IGNvbXByZXNzaW9uIHNjaGVtZSB3aXRoIGEg dmFyaWFibGUgYml0cmF0ZSB0aGF0IGRlcGVuZHMgb24gdGhlIHNjZW5lIGFuZCBhbW91bnQgb2Yg bW92ZW1lbnQuIFRoZSByZXF1aXJlbWVudCB0aGUgc3RyZWFtZXJzIGhhdmUgZm9yIDI1TWJwcyBp cyBhIHJlYXNvbmFibHkgc2FmZSB1cHBlciBsaW1pdCBmb3IgNEsgSERSIHZpZGVvIGNvbXByZXNz ZWQgdmlhIEguMjY1LiBJIGJlbGlldmUgKG5vdCAxMDAlIHN1cmUgYW5kIHNvbWV3aGF0IHN1Ympl Y3RpdmUpIHRoYXQgdGhlIG1vc3QgaW50ZW5zaXZlIHNjZW5lcyBzdGFydCB0byBub3RpY2VhYmx5 IGxvc2UgZmlkZWxpdHkgdG8gZml0IHdpdGhpbiAyNU1icHMsIGJ1dCB3aXRoIGJ1ZmZlcmluZyBp dOKAmXMgbmV2ZXIgYSByZWFsLXdvcmxkIHByb2JsZW0uICBGYXIgbW9yZSBpbXBvcnRhbnQsIHRo YXTigJlzIGFsbCBtb290OiB3aGF0IG9uZSBwZXJzb24gbWF5IFdBTlQgaW4gdGVybXMgb2YgYmFu ZHdpZHRoIG9yIHBpY3R1cmUgcXVhbGl0eSBpcyBjb21wbGV0ZWx5IGlycmVsZXZhbnQuIFRISVMg SVMgRElDVEFURUQgQlkgVEhFIE1BUktFVC4NCg0KW1NNXSBMZXQgbWUgZ2VudGx5IHB1c2ggYmFj ayBoZXJlLi4uIHRoaXMgYXNzdW1lcyBwdGlvbiBhc3N1bWVzIGEgcGVyZmVjdCBtYXJrZXQsIGJ1 dCB0aGF0IGlzIGFuIGVjb25vbWlzdHMgcGhhbnRhc3kgYW5kIGRvZXMgbm90IGV4aXN0IGluIHJl YWwgbGlmZS4NCg0KDQo+IEkgZG9u4oCZdCBrbm93IGlmIGl04oCZcyBiZWNhdXNlIHRoaXMgaXMg cHJpbWFyaWx5IGFuIGFjYWRlbWljIGdyb3VwIHRoYXQgZHJpdmVzIGEgcmVsdWN0YW5jZSBoZXJl IHRvIGFjY2VwdCB0aGUgbWFya2V0IGFzIHRoZSBkZWZpbml0aXZlIGFuc3dlciB0byB3aGF04oCZ cyByZXF1aXJlZCwgYnV0IGlmIHlvdeKAmXJlIHRhcmdldCBpcyBjb25zdW1lciBJbnRlcm5ldCBh bmQgbm90IHRoZSBET0QgZm9yIG1pbGl0YXJ5IHVzZSwgdGhlbiB0aGUgTUFSS0VUIElTIFRIRSBP TkxZIEZBQ1RPUiBUSEFUIE1BVFRFUlMgaW4gZGV0ZXJtaW5pbmcgd2hhdCBiYW5kd2lkdGggaXMg bmVlZGVkLg0KDQpbU01dIExldCdzIHRhbGsgZGF0YSwgd2Ugd291bGQgbmVlZCB0byBrbm93Og0K YSkgdGhlIHBlcmNlbnRhZ2Ugb2Ygc3RyZWFtcyA+PSA0SyB2ZXJzdXMgPDRLLCBhcyBmYXIgYXMg SSBjYW4gdGVsbCB0aGF0IG51bWJlciBpcyBub3QgcHVibGljIGZvciBpbmRpdmlkdWFsIHN0cmVh bWluZyBzZXJ2aWNlcyBsZXQgYWxvbmUgZm9yIGFsbCB0b2dldGhlcg0KYikgdGhlIGZyYWN0aW9u IG9mIHRoZXNlIHN0cmVhbXMgdGhhdCBhcmUgYWNjaWRlbnRhbGx5IDRLIGNvbXBlcmVkIHRvIGNv bnNjaW91c2x5IHNlbGVjdGVkLg0KYykgYXMgYSBwcm94eSB3ZSBtaWdodCBiZSB0ZW1wdGVkIHRv IGxvb2sgYXQgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgZGlmZmVyZW50IHN0cmVhbWluZyB0aWVy cyBhbmQgdGhlIHBlcmNlbnRhZ2UgdGhlc2UgYXJlIGJvb2tlZDsgaG93ZXZlciB3ZSBydW4gaW50 byB0byBzaG93IHN0b3BwZXIgcXVpY2tseSwgMSkgd2UgZG8gbm90IGtub3cgdGhlIG51bWJlciBv ZiBjdXN0b21lcnMgcGVyIHRpZXIgYW5kIHN0cmVhbWluZyBzZXJ2aWNlIDIpIHRoZXNlIHRpZXIg ZGllIG5vdCBvbmx5IGRpZmZlciBpbiBtYXhpbXVtIHZpZGVvIHF1YWxpdHkgYnV0IG9mdGVuIGFs c28gaW4gdGhpbmdzIGxpa2UgbnVtYmVyIG9mIHBhcmFsbGVsIHN0cmVhbXMsIHNvIHdlIHdvdWxk IGFsc28gbmVlZCB0byBrbm93IHRoZSBicmVhayBkb3duIG9mIHdoeSBjdXN0b21lcnMgc2VsZWN0 ZWQgYSA0Sy1jYXBhYmxlIHRpZXINCg0KSU1ITyB0aGlzIGlzIGVub3VnaCB1bmNlcnRhaW50eSB0 byBtYWtlIGFueSAndGhlIG1hcmtldCBoYXMgc3Bva2VuJyAgYXJndW1lbnQgc29tZXdoYXQgc3Vi IG9wdGltYWwsIGl0IG1pZ2h0IGhhdmUgdXR0ZXJlZCBzb21ldGhpbmcsIGJ1dCB1bmZvcnR1bmF0 ZWx5IG11bWJsZWQgc28gYmFkbHkgaXQgaXMgaGFzIHRvIG1ha2Ugc2Vuc2Ugb3V0IG9mIHRoaXMu DQoNCldoYXQgSU1ITyBpcyBjbGVhciwgYWxsL21vc3Qgc3RyZWFtaW5nIHByb3ZpZGVycyBvZmZl ciA0SyB0aWVycyBhbmQgaGVuY2UgZG8gaGF2ZSBhbiBpbnRlcmVzdCBpbiB0aGlzIHRpZXIgYmVp bmcgdXNhYmxlIGJ5IHRoZWlyIGN1c3RvbWVycyAoYnV0IGNsZWFybHkgbm90IGJhZCBlbm91Z2gg dG8gYWN0dWFsbHkgdGFsayB0byB0aG9zZSB0aGF0IGFyZSBleHBlY3RlZCB0byBtYWtlIHRoaXMg aGFwcGVuKikuDQoNCiopIEFuZCB0aGF0IGlzIE9LIHdpdGggbWUsIGFzIGVuZCBjdXN0b21lciBJ IGV4cGVjdCBteSBJU1AgdG8gZGVsaXZlciBvbiBpdHMgY29udHJhY3RlZCByYXRlcyBhbmQgb3Ro ZXJ3aXNlIGdldCBvdXQgb2YgdGhlIHdheSBvZiBteSB0cmFmZmljLCBhc2tpbmcgY29udGVudCBw b3ZpZGVycyBmb3IgZXh0cmEgbW9uZXkgcGVyIGN1c3RvbWVyIHdvdWxkIGJlIGRvdWJsZSBkaXBw aW5nIEkgYW0gb3Bwb3NlZCB0by4gV2hhdCBJIGNvdWxkIGFjY2VwdCBpcyBzdHJlYW1pbmcgcHJv dmlkZXJzIGdyYW50aW5nIGx1bXAgc3VtcyB0byBJU1BzIHRvIGltcHJvdmUgdGhlIGNvbm5lY3Rp dml0eSBvZiB0aGUgdW5kZXItc2VydmVkIGFyZWFzLCB0byBlbmxhcmdlIHRoZSBzZXQgb2YgcG90 ZW50aWFsIHN0cmVhbWluZyBjdXN0b21lcnMsIGJ1dCBJIGRpZ3Jlc3MuDQoNCj4gIEFsZXggd3Jv dGU6IOKAnGEgcmVkdWNlZCBhdWRpZW5jZSwgeWV0IGltcG9ydGFudCwgIGlzIHRoYXQgb2YgOEsg VFYgdmlhIHNhdGVsbGl0ZXMuICAgVGhlcmUgaXMgb25lIGphcGFuZXNlIDhLIFRWIHNhdGNvbSBw cm92aWRlciwgYW5kIHRoZSBhdWRpZW5jZSAobnVtYmVyIG9mIHdhdGNoZXJzKSBpcyBwcm9iYWJs eSBzbWFsbGVyIHRoYW4gdGhhdCBvZiBEVkIgNEsgSERSLiAgU3RpbGwsIGl0IGNvbnN0aXR1dGVz IGNvbXBldGl0aW9uIGZvciBJUFRWIGZyb20gSVNQcy7igJ0NCj4gIFRoaXMgYWxzbyBkb2VzbuKA mXQgbWF0dGVyIGlmIHRoZXJlIGlzIG5vIDhLIGNvbnRlbnQgYXZhaWxhYmxlIGZyb20gc3R1ZGlv cy4NCg0KW1NNXSBPSywgc2luY2UgeW91IHNlZW0gdG8gYmUgaW4gdGhlIGtub3csIGlzIGl0IHRy dWUgdGhhdCBtb3ZpZSBwcm9kdWN0aW9uIGlzIGxpbWl0ZWQgdG8gNC01SyBjYW1lcmFzLCBJIHRo b3VnaHQgSSByZWFkIHNvbWV3aGVyZSB0aGF0IDhLIGNhbWVyYXMgYXJlIHVzZWQgaW4gbW92aWUg cHJvZHVjdGlvbi4gU25kIEkgbmFpdmVseT8gYXNzdW1lZCB0aGV5IHdvdWxkIGhhdmUgdGhlIG1v bmV5IHRvIGdldCBlcXVpcG1lbnQgbGlrZSBsZW5zZXMgdGhhdCBhY3R1YWxseSB3b3JrIGF0IHRo YXQgcmVzb2x1dGlvbiAoSUlVQyBtb3ZpZSBnZWFyIGlzIG9mdGVuIHJlbnRlZCwgc28gY2FuIGJl IGFtb3J0aXNlZCBvdmVyIG1hbnkgcHJvZHVjdGlvbnMsIHdoaWNoIHdvdWxkIGFsbG93IGZvciAn Z2xvZy1wbGF0ZWQnIGxlbnNlcykuDQoNCj4gVGhhdCBtZWFucyBpdOKAmXMgZXF1aXZhbGVudCB0 byB0aGUgZGVtbyA4SywgMTJLLCBhbmQgMTZLIEhEUiBjb250ZW50IHlvdSBjYW4gYWxyZWFkeSBz dHJlYW0gZnJvbSBZb3VUdWJlLCB3aGljaCBjYW4gKGRlcGVuZGluZyBvbiBtb3Rpb24gb2YgdGhl IHNjZW5lIOKAkyB5b3XigJlsbCBnZW5lcmFsbHkgbm90aWNlIHRob3NlIGhpZ2gtcmVzb2x1dGlv biBkZW1vcyBhcmUgYnJpZ2h0bHkgbGl0IGFuZCB2ZXJ5IHNsb3ctbW92aW5nKSByZXF1aXJlIG1v cmUgdGhhbiAyNU1icHMsIGJ1dCB0aGF04oCZcyBub3QgbWFya2V0LWRlbWFuZGVkIGNvbnRlbnQg ZnJvbSBhIHByb2R1Y3Rpb24gc3R1ZGlvLiBUaGVzZSBhcmUganVzdCB0ZWNoIGRlbW9zLg0KPiAg VGhlIG9ubHkgbWFpbnN0cmVhbSBjb250ZW50IHByb3ZpZGVyIHRlc3RpbmcgOEsgc3RyZWFtaW5n IGlzIFdhcm5lciBCcm9zIERpc2NvdmVyeSBmb3IgdGhlaXIgTUFYIGNoYW5uZWwgYXMgYSBzcGVj aWFsIHNldCBvZiB0cmFpbGVycyBpbiBjb25qdW5jdGlvbiBTYW1zdW5nIHRvIGhlbHAgU2Ftc3Vu ZyBzZWxsIDhLIFRWcy4gQ3VycmVudGx5LCB0aGlzIGlzIGludGVuZGVkIGZvciBzdG9yZSBkZW1v cyBvZiB0aG9zZSBTYW1zdW5nIDhLIFRWcywgbm90IGZvciBob21lIHVzZSwgYnV0IHRoaXMgaXMg dGhlIGZpcnN0IGluZGljYXRvciB0aGF0IDhLIHN0cmVhbWluZyBNSUdIVCBiZSBjb21pbmcgdG8g aG9tZSB1c2Ugc29vbmVyIHRoYW4gSSBoYWQgYXJndWVkIGluIG15IHByaW9yIG1lc3NhZ2VzLiBJ ZiB5b3UgYmVsaWV2ZSA4SyBjb250ZW50IGlzIHNvbWV0aGluZyBJU1DigJlzIG5lZWQgdG8gc3Vw cG9ydCB3aXRoIHN1ZmZpY2llbnQgYmFuZHdpZHRoLCB0aGF0IHdvdWxkIGJlIHRoZSBtb3N0IGNv bXBlbGxpbmcgZGF0YSBwb2ludCB0byByZWZlcmVuY2UuDQo+ICBUaGUgb3RoZXIgd291bGQgYmUg Z2FtZSBzdHJlYW1pbmcgKGRpZmZlcmVudCBmcm9tIEV1Z2VuZeKAmXMgZXNwb3J0cywgd2hpY2gg ZG9lcyBub3Qgc3RyZWFtIHRoZSB2aWRlbyBhbmQgb25seSBuZWVkcyBhIGZldyBNYnBzLCBvZnRl biBsZXNzIHRoYW4gMU1icHMpLiBQbGVhc2Ugbm90ZSB0aGF0IGdhbWUgU1RSRUFNSU5HIGlzIGRp ZmZlcmVudCBmcm9tIGdhbWUgUExBWUlORy4gR2FtZSBTdHJlYW1pbmcgbWVhbnMgYWxsIHRoZSBn YW1lcGxheSB3b3JrIGlzIGhhbmRsZWQgcmVtb3RlbHkuIFRoZSBnYW1lciBqdXN0IGhhcyBhIGNv bnRyb2xsZXIgYW5kIGEgZHVtYiB0ZXJtaW5hbCAobGlrZSBhIHNtYXJ0IFRWKSwgd2hpY2ggc2Vu ZHMgdGhlIGNvbnRyb2xsZXIgZGF0YSB0byB0aGUgc2VydmVyIGFuZCB0aGVuIHJlY2VpdmVzIHRo ZSBzdHJlYW1pbmcgdmlkZW8gb2YgdGhlIGdhbWUuIEdhbWUgc3RyZWFtaW5nIGNhbiBleGNlZWQg MjVNYnBzIGV2ZW4gYXQgNEssIGJlY2F1c2UgZ2FtZXJzIHdhbnQgdG8gcGxheSBhdCAxMjBmcHMs IHdoaWNoIGlzIGJhbmR3aWR0aCBlcXVpdmFsZW50IHRvIDhLIEAgMzBmcHMuDQoNCltTTV0gUHJl dHR5IHN1cmUgdGhhdCBpcyBub3QgaG93IHRoYXQgd29ya3MgZm9yIHByZSByZW5kZXJlZCBzdHJl YW1pbmcgY29udGVudC4uLiA4SyBkb2VzIG5vdCBzZWVtIHRvIHJlcXVpcmUgNCB0aW1lcyB0aGUg YmFuZHdpZHRoIG9mIDRLIGF0IGVxdWFsIGZyYW1lcmF0ZSBhbmQgZXF1YWwgcGVyY2VwdHVhbCBx dWFsaXR5LiBGb3Igb24tbGluZSByZW5kZXJlZCBtYXRlcmlhbCBpbiBnYW1lcyBob3dldmVyIHRo YXQgbWlnaHQgYmUgY29ycmVjdCwgZ2l2ZW4gcmVsYXRpdmUgdGlnaHQgbGF0ZW5jeSByZXF1aXJl bWVudHMgdGhlcmUgaXMgbGl0dGxlIGJ1ZmZlciBzcGFjZS90aW1lIHRvIGVtcGxveSBjbGV2ZXIg ZW5jb2RpbmcgdHJpY2tzLg0KDQoNCj4gVGhlIHRleHQgYW5kIG90aGVyIEhVRCBlbGVtZW50cyBp biBnYW1lcyBhcmUgYWxzbyBtb3JlIHN1c2NlcHRpYmxlIHRvIGNvbXByZXNzaW9uIGFydGlmYWN0 cyB0aGFuIFRWL21vdmllIHNjZW5lcywgc28gdGhleSBkb27igJl0IGNvbXByZXNzIGFzIHdlbGwg YXMgc3RyZWFtaW5nIHZpZGVvLg0KPiAgSW1wb3J0YW50IGZvciB0aGlzIGdyb3VwOiBMYXRlbmN5 IGlzIGFic29sdXRlbHkgY3JpdGljYWwgdG8gZ2FtaW5nIChlc3BlY2lhbGx5IGVzcG9ydHMsIGJ1 dCBpbXBvcnRhbnQgZm9yIG90aGVyIGZvcm1zIG9mIGdhbWluZyB0b28pLg0KPiAgSSBkb27igJl0 IHBlcnNvbmFsbHkgYmVsaWV2ZSB0aGVyZSB3aWxsIGJlIG11Y2ggbWFya2V0IGludGVyZXN0IGlu IDhLIHN0cmVhbWluZyBpbiB0aGUgbmV4dCBmZXcgeWVhcnMsIGJlY2F1c2U6DQo+ICANCj4gICAg IOKAoiBhIHZpZXdlciBjYW7igJl0IHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiA0SyBhbmQg OEsgb24gYSANCj4gc3RhbmRhcmQgc2l6ZSB0ZWxldmlzaW9uIGFuZCBub3JtYWwgdmlldyBkaXN0 YW5jZXMNCg0KW1NNXSBGdWxseSBhZ3JlZSwgYnV0IHRoZW4gSSBhbHNvIGFyZ3VlIHRoaXMgZm9y IDFLIHZlcnN1cyA0Sywgd2hlcmUgdGhlIGRpZmZlcmVuY2UgZm9yIG1hbnkgdXNlcnMgaXMgbm90 IGltcG9ydGFudC4uLiAob3ZlciBoZXJlIGNhYmxlIFRWIHN0aWxsIHRvcHMgb3V0IGF0IDFLLCBh bmQgdmlld2VycyBkbyBub3Qgc2VlbSB0byBxdWFudGl0YXRpdmVseSBzd2l0Y2ggdG8gc3RyZWFt aW5nIHByb3ZpZGVycykuIFRoZW4gbW9zdCB2aWRlbyBtYXRlcmlhbCB0ZWxscyBhIHN0b3J5LCBh bmQgaWYgdGhhdCBpcyBjb21wZWxsaW5nIGVub3VnaCB2aWV3ZXJzIGFyZSB3aWxsaW5nIHRvIHN1 c3BlbmQgdGhlaXIgZGlzYmVsaWV2ZS4uLiB0aGF0IHdvcmtlZCBpbiB0aGUgb2xkIFNEICgwLjVL PykgZGF5cyBhbmQgd2lsbCBzdGlsbCB3b3JrIHRvZGF5Lg0KDQoNCj4gICAgIOKAoiBjYW1lcmEg bGVuc2VzIGFuZCBzZW5zb3JzIChmaWxtIG9yIGRpZ2l0YWwpIGFyZSBub3QgZ29vZCBlbm91Z2gg DQo+IHRvIGNhcHR1cmUgYSBub3RhYmx5IGNsZWFyZXIgcGljdHVyZSBhdCA4SyBvdmVyIDRLIChh Y3R1YWxseSwgdGhleSBjYW4gDQo+IGNhcHR1cmUgdXAgdG8gYWJvdXQgNS41Sywgc28gdGhhdCBp cyBzbGlnaHRseSBiZXR0ZXIgdGhhbiA0SykgZXhjZXB0IA0KPiBpbiBicmlnaHQgc3VubGlnaHQg 4oCTIHNvIHRoYXQgbmV4dCBNYXggTWF4IG1vdmllLCBjbGFzc2ljYWxseSBoYXZpbmcgDQo+IG1v c3Qgc2NlbmVzIHJlY29yZGVkIGluIHZlcnkgYnJpZ2h0IGVudmlyb25tZW50cywgbWlnaHQgYmUg YSBnb29kIA0KPiBleGFtcGxlIGZvciBhbiA4SyBtb3ZpZVtdDQoNCltTTV0gU2VlIGFib3ZlLiBJ IHdvdWxkIGhhdmUgdGhvdWdodCB0aGF0IHRoaXMgaXMgcHJpbWFyaWx5IGEgcXVlc3Rpb24gb2Yg bW9uZXksIGFuZCB3aGljaCBsZW5zIHNpemVzIG9uZSBpcyB3aWxsaW5nIHRvIGFjY2VwdD8NCg0K PiAgICAg4oCiIDhLIFRW4oCZcyBzdGlsbCBjb3N0IHF1aXRlIGEgYml0IG1vcmUgdGhhbiA0SyBU VuKAmXMNCg0KW1NNXSBCdXQgdGhhdCBpcyB0aGVpciB3aG9sZSByZWFzb24gdG8gZXhpc3QsIHRv ICdqdXN0aWZ5JyB0aGUgaGlnaGVyIHByaWNlcyBvZiB0aGUgdG9wIGVuZCBUVnMuLi4gaWYgOEsg YmVjYW1lIG1haW5zdHJlYW0sIHdlIHN0aWxsIHdvdWxkIG5lZWQgc29tZXRoaW5nIG5vdmVsIGZv ciB0aGUgdG9wIGVuZC4uLg0KDQo+IGFuZCBhcmUganVzdCBzdGFydGluZyB0byBoaXQgdGhlIG1h cmtldCwgd2hpbGUgY29udGVudCBwcm92aWRlcnMgd2FudCB0byBrbm93IHRoYXQgYXQgbGVhc3Qg YSByZWFzb25hYmxlICUgb2YgdGhlIHZpZXdpbmcgbWFya2V0IHdpbGwgd2F0Y2ggb24gOEsgYmVm b3JlIHRoZXkgZ28gdGhyb3VnaCB0aGUgZXhwZW5zZSBvZiB0cnlpbmcgdG8gY3JlYXRlIGl0IFt0 aGlzIGlzIHRoZSBsZWFzdCBvZiB0aGVzZSBmYWN0b3JzLCBhcyBoaWdoLWVuZCBwdXJjaGFzZXMg b2YgOEsgVFZzIGFyZSBncm93aW5nIGFuZCBzdHJlYW1pbmcgc2VydmljZXMgZG8gdHJ5IHRvIGFw cGVhbCB0byB0aGUgaGlnaCBlbmQsIHByb3ZpZGVkIGl0IHdpbGwgYmUgbWFya2V0IGRyaXZpbmcg YW5kIG5vdCBqdXN0IGJyYWdnaW5nIHJpZ2h0cyB3aXRoIGEgZmV3IHZpZGVvcGhpbGVzXQ0KPiAg ICAg4oCiIEZvciBnYW1pbmcsIHRoZSBlc3BvcnRzIHBsYXllcnMgZG9u4oCZdCBwYXJ0aWN1bGFy bHkgY2FyZSBhYm91dCByZXNvbHV0aW9uLCB0aGV5IGNhcmUgYWJvdXQgcmVmcmVzaCByYXRlcyBh bmQgbGF0ZW5jeSwgaGFwcGlseSBwbGF5aW5nIDEwODBwIGF0IDEyMCsgRlBTIHdpdGggYSBzdWIt MTBtcyAodGhleeKAmWQgcHJlZmVyIHN1Yi01bXMpIGxhdGVuY3kuIA0KDQpbU01dIEkgaGF2ZSBu byByZWxpYWJsZSBudW1iZXJzIG9uIHRoaXMsIGJ1dCB0aGlzIHNvdW5kcyByZWFzb25hYmxlLg0K DQo+ICAgICDigKIgRm9yIHRoZSBvdGhlciBzaWRlIG9mIGdhbWluZywgZ2FtZSBzdHJlYW1pbmcs IHRoaXMgaXMgbW9zdGx5IGEgY29zdC1zYXZpbmdzIHNvbHV0aW9uLCB3aGljaCBtZWFucyB0aGUg cGVvcGxlIGRvaW5nIHRoZSBzdHJlYW1pbmcgdGVuZCBub3QgdG8gaGF2ZSB0aGUgbGF0ZXN0IGRp c3BsYXkgdGVjaCBzbyBhbHNvIHdvbuKAmXQgdXNlIDhLLCBidXQganVzdCBoYXBwZW4gdG8gbGl2 ZSB3aGVyZSBoaWdoLXNwZWVkIEludGVybmV0IGlzIHJlYWRpbHkgYXZhaWxhYmxlIOKAkyBlLmcu LCBpbm5lciBjaXRpZXMuDQo+ICBJbiBzcGl0ZSBvZiBEIGFuZCBFIGFib3ZlLCBteSBleHBlY3Rh dGlvbiBpcyB0aGF0IDhLIG9uIGEgVFYgd2lsbCBiZSANCj4gdXNlZCBmb3IgZ2FtaW5nIHNpZ25p ZmljYW50bHkgYmVmb3JlIGl04oCZcyBhIHdpZGVseSBzdXBwb3J0ZWQgc3RyZWFtaW5nIA0KPiBz dGFuZGFyZCBsaWtlIDRLLA0KDQpbU01dIEdpdmVuIHRoZSB1c2Ugb2YgYXNzaXN0ZWQgdXBzYW1w bGluZyBhbHJlYWR5IHVzZWQgaW4gZ2FtZXMgaXQgaXMgbm90IGEgc3RyZXRjaCB0b3IgZXhwZWN0 IHRoaXMgdG8gaGFwcGVuIGZvciA4SyBhcyB3ZWxsLCBob3cgZGVjZW50IHRoYXQgbG9va3MgaW4g dGhlIGVuZCBpcyBhIGRpZmZlcmVudCBxdWVzdGlvbi4uLg0KDQo+IGJ1dCB0aGF04oCZcyBteSBv cGluaW9uIChpbmZvcm1lZCBmcm9tIHdvcmtpbmcgaW4gdGhpcyBzcGFjZSwgYnV0IHN0aWxsIGp1 c3QgbXkgb3BpbmlvbikgYW5kIHN1YmplY3QgdG8gZXJyb3IuIFdpdGggZ2FtaW5nLCB0aGUgY2Ft ZXJhIGFuZCByZWNvcmRpbmcgcHJvYmxlbXMgZG9u4oCZdCBleGlzdC4gSSBleHBlY3QgdGhlIG5l eHQgWGJveCBhbmQgUFM2IHdpbGwgc3VwcG9ydCA4SyBnYW1pbmcuDQoNCltTTV0gV2hpY2ggSU1I TyBpcyBsaWtlbHksIGJ1dCB3b3VsZCBub3QgdGVsbCB0aGF0IHRoZSBjdXN0b21lciBkZW1hbmRz IHRoYXQsIGJ1dCB3b3VsZCBzaW1wbHkgYmUgYW4gZWFzeSBkaWZmZXJlbnRpYXRvciB0byB1c2Ug dG8gc2V0IHRoZSBuZXcgbW9kZWxzIGFwYXJ0IGZyb20gdGhlaXIgcHJlZGVjZXNzb3JzLCBubz8N Cg0KPiAgQWxleCBhbHNvIHdyb3RlLCDigJxTdGlsbCwgdGhhdCBncm93dGggaW4gYmFuZHdpZHRo IHJlcXVpcmVtZW50IGRvZXMgbm90IHNheSBhbnl0aGluZyBhYm91dCB0aGUgbGF0ZW5jeSByZXF1 aXJlbWVudC4gIFRoYXQgY2FuIGJlIGZvdW5kIGVsc2V3aGVyZSwgYW5kIHByb2JhYmx5IGl0IGlz IHZlcnkgbGl0dGxlIHJlbGF0ZWQgdG8gVFYu4oCdDQo+ICBJIHN0cm9uZ2x5IGFncmVlIHdpdGgg dGhhdCBzdGF0ZW1lbnQuIER1ZSB0byB0aGUgZWFzZSBvZiBidWZmZXJpbmcgdmlkZW8gKGJ1dCBu b3QgZ2FtaW5nKSwgbGF0ZW5jeSBhbmQgZXZlbiBqaXR0ZXIgYXJlIGxhcmdlbHkgaXJyZWxldmFu dCB0byBzdHJlYW1pbmcgdmlkZW8gKGFnYWluLCBub3QgZm9yIGdhbWluZyB0aG91Z2gpLg0KDQpb U01dIFRoaXMgaXMsIHRvIG15IHN1cnByaXNlLCBhIGNvbnRlbnRpb3VzIHBvaW50LiBJIHRlbmQg dG8gYWdyZWUgdGhhdCB0aGUgbGF0ZW5jeSByZXF1aXJlbWVudHMgYXJlIG1pbGRlciB0aGFuIGlu IGdhbWluZywgSSBkbyBoZWFyIGZvbGtzIHRoYXQgYXJndWUgdGhhdCB0aGUgZGVsYXkgaW4gc3dp dGNoaW5nIGNoYW5uZWxzLCBqdW1waW5nIGFyb3VuZCBpbiBhIHRpbWVsaW5lIG9yIGZhc3QgZm9y d2FyZGluZy9yZXZlcnNpbmcgbWFrZXMgc3RyZWFtaW5nIHZpZGVvIGxhdGVuY3kgc2Vuc2l0aXZl LiAoTXkgdGFrZSBpcyB0aGF0IGZvciBub3JtYWwgdmlkZW8gY29uc3VtcHRpb24gdGhlc2Ugc2hv dWxkIGJlIHJhcmUgZXZlbnRzLCBhbmQgdmlkZW8gcHJvZHVjdGlvbiB3aGVyZSBJIHdvdWxkIGVj cGVjdHIgdGhhdCB0byBoYXBwZW4gb2Z0ZW4sIHByb2JhYmx5IHNob3VsZCBub3QgaGFwcGVuIG92 ZXIgdGhlIGludGVybmV0IDspICkuDQoNCg0KPiBNeSBwb2ludCBpbiBwdXNoaW5nIHRoZSAyNU1i cHMgZmxvb3IgZm9yIGEgbmV3IHRvcC10aWVyIG9mZmVyaW5nIGZyb20gDQo+IGFuIElTUA0KDQpb U01dIEkgbWlnaHQgaGF2ZSBtaXN1bmRlcnN0b29kIHRoZSBkaXNjdXNzaW9uLCBJIHRob3VnaHQg d2Ugd2hlcmUgZGlzY3Vzc2luZyB0aGUgbWluaW1hbCByZXF1aXJlbWVudCBoZXJlLCBub3QgdGhl IHRvcCBlbmQ/DQoNCj4gKGkuZS4sIHRoZXkgbWF5IG9mZmVyIGNoZWFwZXIgcGxhbnMgdGhhdCBk b27igJl0IHJlYWNoIHRoYXQgc3BlZWQsIGJ1dCBtdXN0IGF0IGxlYXN0IG9mZmVyIGEgMjVNYnBz IG9yIGhpZ2hlciB0aWVyKSBpcyB0byBlbnN1cmUgdGhhdCBtZW1iZXJzIG9mIHRoaXMgZ3JvdXAg dHJ5aW5nIHRvIHBlcnN1YWRlIHRob3NlIElTUHMgdG8gYWRvcHQgQ2FrZSBhbmQgRlEtQ29kZWwg YW5kIGFueXRoaW5nIGVsc2UgdGhhdCBpbXByb3ZlcyBsYXRlbmN5IHVuZGVyIGxvYWQgYXJlIGFy bWVkIHdpdGggdGhhdCBrbm93bGVkZ2Ugc28geW91IGFwcGVhciB3ZWxsLWluZm9ybWVkIG9uIHRo ZSBpbnRlcmVzdHMgb2YgdGhlIElTUHMgQU5EIHRvIHJlZHVjZSB0aGUgcmlzayBvZiBhbnlvbmUg aW5hZHZlcnRlbnRseSBsZWFkaW5nIHNvbWUgaWxsLWluZm9ybWVkIElTUCB0byBhY3R1YWxseSBh ZGRpbmcgbmV3IHNlcnZpY2VzIHRoYXQgZmFsbCBzaG9ydCBvZiAyNU1icHMsIGh1cnRpbmcgdGhl IHBlb3BsZSBpbiB0aG9zZSByZWdpb25zIGZvciB5ZWFycyB0byBjb21lLCBkdWUgdG8gaW5mcmVx dWVudCB1cGdyYWRlcyBpbiB0aGUgcGxhY2VzIHRoYXQgc3RpbGwgdG9kYXkgbGFjayBoaWdoIHNw ZWVkIEludGVybmV0IGFjY2Vzcy4gIA0KDQpbU01dIFByZXR0eSBzdXJlIG5vIElTUCB3aWxsIG5l ZWQgYW55IG9mIHVzIHRvIHVuZGVyc3RhbmQgJ2NhcGFjaXR5IHNlbGxzJywgYWZ0ZXIgYWxsIHRo YXQgaXMgd2hhdCB0aGV5IGhhdmUgYmVlbiBtYXJrZXRpbmcgb24gZm9yIHRoZSBsYXN0IHR3byBk ZWNhZGVzLiBXaGF0IEkgZXhwZWN0IGlzIHRoYXQgc29tZSBJU1BzIG1pZ2h0IHN3aXRjaCBmcm9t IG1vcmUgYW5kIG1vcmUgbWVhbmluZ2xlc3MgbnVtYmVycyBhbmQgd2lsbCBtYXJrZXQgc29tZXRo aW5nIGxpa2UgNEstc3RyZWFtaW5nIGNhcGFibGUuDQoNClJlZ2FyZHMNCglTZWJhc3RpYW4NCg0K PiAgSeKAmW0gc3VyZSBhbGwgdGhpbmdzIGJlaW5nIGVxdWFsLCB3aXRoIG5vIGNoYW5nZSB0byBj b3N0LCB3ZeKAmWQgYWxsIHJhdGhlciBoYXZlIG1vcmUgYmFuZHdpZHRoIGFuZCBsb3dlciBsYXRl bmN5LiAyNU1icHMgaXMgbm90IGdyZWF0LiBJdOKAmXMgb25seSBlbm91Z2ggZm9yIG9uZSA0SyBI RFIgc3RyZWFtIHBsdXMgc29tZSBtb2Rlc3QgYWRkaXRpb25hbCBhY3Rpdml0eSBpbiB0aGUgYmFj a2dyb3VuZC4gQnV0IGl04oCZcyBhIHN1ZmZpY2llbnQgbWluaW11bSB0byBkbyBhbGwgdGhlIG1h aW5zdHJlYW0gYWN0aXZpdGllcyB0aGF0IHRoZSBtYXJrZXQgcHJvdmlkZXMgb3ZlciB0aGUgSW50 ZXJuZXQuIEFuZCB0aGF04oCZcyB0aGUga2V5Lg0KPiAgLSBDb2xpbg0K