From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailout41.telekom.de (mailout41.telekom.de [194.25.225.151]) (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 5DD5C3B2A4 for ; Thu, 3 Nov 2022 07:25:22 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telekom.de; i=@telekom.de; q=dns/txt; s=dtag1; t=1667474723; x=1699010723; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=qyaghV4/KYawlVsMV6aPoVvO7sLwhPWY799kdVOr/Nk=; b=y1YFovacebMB5cRnYnyyNOTgTUz6LAFxfkwOXXCdg38/gtiNuaZeJ8Ye 6yCDNq0n3fO+BhUu84WhLe6NzxxEEe33r4mU/ankC9IMWmxT4jxENK3gE hkSHXfH2Lqh4b+bzMdvDj8aAhQ31j6GqqoBIw0vKqazI0n9ZWgZZNbXNZ yMeF5r99FtldiXadA8XYuliW5CHa36DaCda8zV6T/au0eH+EH90Aay3k/ W3apXgfvkoJCkJ90kL1H5zZ6g+l7nwkIMQVU6rJc8cQUelGoprE3cjGbp Y3bGy/F6Yj/Vo046ev39kNaXypRyyBnvG4uxyZSfqsn2oKmTdD3u+3rK0 A==; Received: from qde9xy.de.t-internal.com ([10.171.254.32]) by mailout41.dmznet.de.t-internal.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 03 Nov 2022 12:25:21 +0100 IronPort-SDR: APsKOYBOF6T0Vs71Sq3odNizGDUXq9owkmskZrCarP3erGCGRQuAKbJ+yQsL0+r+XCfMXcy2/9 g8e6tHOj4KR8OqclXx5WQRsDaa4l6uVTU= X-IronPort-AV: E=Sophos;i="5.95,235,1661810400"; d="scan'208";a="600349451" X-MGA-submission: =?us-ascii?q?MDFKc2pcNyLz/lRbSFWdoOYUd5sqtRN0UOdawT?= =?us-ascii?q?389GAiR6/1dQ2Vub0fZGSSPzV+Lbd2IKOY2NA2l2MLzt0UAaOkBZyzgL?= =?us-ascii?q?Q22g7nssXBsgOdWJkpDot/id4F8Zay2wlnWw8tqmNwyiQxQYQGBcLoav?= =?us-ascii?q?vPuuDUObrosekqAv4OdTCVzg=3D=3D?= Received: from he105717.emea1.cds.t-internal.com ([10.169.118.53]) by QDE9Y1.de.t-internal.com with ESMTP/TLS/ECDHE-RSA-AES128-SHA256; 03 Nov 2022 12:25:21 +0100 Received: from HE105716.EMEA1.cds.t-internal.com (10.169.118.52) by HE105717.emea1.cds.t-internal.com (10.169.118.53) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Thu, 3 Nov 2022 12:25:20 +0100 Received: from HE106564.emea1.cds.t-internal.com (10.171.40.16) by HE105716.EMEA1.cds.t-internal.com (10.169.118.52) with Microsoft SMTP Server (TLS) id 15.0.1497.42 via Frontend Transport; Thu, 3 Nov 2022 12:25:20 +0100 Received: from DEU01-FR2-obe.outbound.protection.outlook.com (104.47.11.172) by O365mail01.telekom.de (172.30.0.234) with Microsoft SMTP Server (TLS) id 15.0.1497.36; Thu, 3 Nov 2022 12:25:20 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cuInbYyluCwzjs5wz/bDTJEbYI2kitTLg0eRX0DkZWg3OVbFCrWMqCcV4DcD12aVwU/QYB7KkdXeHnBq7VexVE9AFtz4LcJvcN9uIKo23nRJm2pQF+m15m0ZlJOa92Ez9r31ErI2mX9CjnFpAtU5EtMS5Z3BaLtOzar4H9VNMVc0cZTO5LY66Sdt4CH763+kpLQzWSpAmZtssrLan3JOq36AEPijEGA6p0PUbzNHJkFpsepGyYo8as/lxR1oODYgaoZj942Hw/CTgE3sax53s3LH7RMcj+Bl75SnyohgzA6/+glmGqieX8JoX6AqbPuJRmGnYA7fZ+XqBqQqs8NE9A== 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=qyaghV4/KYawlVsMV6aPoVvO7sLwhPWY799kdVOr/Nk=; b=mgA8pNm6ttrHCYGpxiK0UtAe3QOiNXEbOgqUFN7WScFl1lIDFFuHTpxViYTQ1JY3t5PZQuZs286Gy7VboZX51hT+CpaqR8q7nSHF54GgRhsV/B1kXAxt8n9GSZxWusG2f4ZVlkiNyM+pmnqIgsb/tIKyOFHpZhkvgPV+3/tCWiQZkVim+B2hxQQ66az5cGkQiftL6fdTcZwQpmqQndL21fIAAgBgfbA8ukAvwkNuCt3MNJ8wSf290tBV9pG8HmelnheN6pcEBaKmlYRgXQjBHZ/AINd9b1P1Z1fn56tm9VcQipQuSl2H6y3evbd4q5fVdEG8zyEkF/D64dz7CeAJ4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=telekom.de; dmarc=pass action=none header.from=telekom.de; dkim=pass header.d=telekom.de; arc=none Received: from FR2P281MB1527.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:8b::11) by BEZP281MB2482.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:71::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.22; Thu, 3 Nov 2022 11:25:19 +0000 Received: from FR2P281MB1527.DEUP281.PROD.OUTLOOK.COM ([fe80::54f3:8989:c087:dabf]) by FR2P281MB1527.DEUP281.PROD.OUTLOOK.COM ([fe80::54f3:8989:c087:dabf%3]) with mapi id 15.20.5791.022; Thu, 3 Nov 2022 11:25:19 +0000 From: To: CC: , , , Thread-Topic: [ippm] [Rpm] lightweight active sensing of bandwidth and buffering Thread-Index: AQHY7pSSe1jemA1+oU+yIbz2XUvgw64rWCuggADST4CAAK+jMIAADTyAgAAlLpA= Date: Thu, 3 Nov 2022 11:25:19 +0000 Message-ID: References: <0a8cc31c7077918bf84fddf9db50db02@rjmcmahon.com> <344f2a33b6bcae4ad4390dcb96f92589@rjmcmahon.com> <261B90F5-FD4E-46D5-BEFE-6BF12D249A28@gmx.de> <6DEE77BC-2E17-4192-9173-3E78D0164AD6@gmx.de> In-Reply-To: <6DEE77BC-2E17-4192-9173-3E78D0164AD6@gmx.de> Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=telekom.de; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: FR2P281MB1527:EE_|BEZP281MB2482:EE_ x-ms-office365-filtering-correlation-id: a57239ea-2f28-4d5b-cdb6-08dabd8e16df x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IsSscXoA+0p6VFw38bj4oL24meCs0deHQy0/MZl2R2UBzyObOJnns+Ybab+jUyVwBBVUoNpx0bJl7PHKghXtIvZY4FCTWoGNFNKMfduf4/gy4Nr6taCS4SInSyYqrjxeELXye92uh0e7nMItwzscQiPnY438RxIS9h0c1hUzbuFsal85JPf7Ra4pfZQdRgweTd4MgLs8nyQ0y1HNjXRi/yY/Hvl0u2nkZ9hsD9gxf5wPqmKD+KSm6EEuH13a4ou4yjI72yyGMncQ1HxXXzYPR32kvF6fdoIz8jyyYFp+4MHy76xecRsa1zz1ujZYV0hnqt0NssaMLLXjRs9O7g4V4YmMmCkRlXT7nwV9OC3SDEJAY+IHYZImjXe7qEKpIkwkgf9XIKwlU0Tcji+6XRmufsiuxKFZw73P0tl5jEDXJndN7jqldQQOooF37+bqklJvf1iITiIjEFZp7hf6z7+VGhg9Ll5wcF9yG72pb7DEeep5x6LT635brSvNJbYGHCg5KlqSMvvH3vR+sDToA0zhLr7CsIMpYuSWj7jGWjHhXBzy/GDITxnF59mL4kh6YS0XbBmGfpw458sxId21wfMHLmh9X55fKH34F7ocTtHc22R6PfTOO1C+kEzsynWf8oQgFnLU9oatoh9nF9wE2/xgTdLuzba7ANmkf66ksCu5RuE1o30vt/d2a9R//FOaB17cX1DI0doDF3EjX5FyCqhptgvGMpYJ4PcPgpgB2va3yd4qSnbov6KT6KyYfI/hOeunz+2+2sB2s3uOgeKmwCWlRIFCQZR85PISOiI36Ob7WghjNxRavI6pRpYjT6gOv8ArBB+yX3w1m0Tc0v24CcxglQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:FR2P281MB1527.DEUP281.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230022)(4636009)(346002)(396003)(366004)(39860400002)(136003)(376002)(451199015)(1590799012)(1580799009)(86362001)(85182001)(33656002)(85202003)(82960400001)(38070700005)(83380400001)(38100700002)(122000001)(186003)(66574015)(6506007)(26005)(7696005)(71200400001)(478600001)(966005)(53546011)(6916009)(54906003)(41300700001)(76116006)(4326008)(66556008)(66476007)(66946007)(66446008)(64756008)(8676002)(316002)(9686003)(52536014)(30864003)(8936002)(5660300002)(2906002)(55016003)(87944006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U3hjcUd3VGF4TVg5U09RSnRURXVMNE9vU3JMVklTRWxhb2RyMnE4cGJRTkI3?= =?utf-8?B?MWtuWDl6RVhVekRiWllZMVhiR3VjUzBUcm1rYzduMTlrck5sekYvR1V2SDZQ?= =?utf-8?B?dW1kR0xUOVJsN2wyaU9BUDUxUHdQdEZSdmRrRkdBMkljcTUxdEdPbEh2Nmd2?= =?utf-8?B?TW04TU5RMHRlaG11TnE1RHFDYjV2UGpQZ0hOSnNqSUl3UVFEamo1S0IyRDBL?= =?utf-8?B?TGI5MEp0UDB0c003L1RpSVZlV3VUZE1oSW9hRWF3M0NOWXdEYWE1Zm9jTWxS?= =?utf-8?B?a0VxQzg1NVZldXlIS2lNZkNWZlp4UHg4Tk1hQ2x0aDVDblE3MXZuZnl1dDJI?= =?utf-8?B?bzBMa09uTkxEbzZpUDdVcXRIekFFTyt1L0t0V3QwOWdXRHJ4aWRObnNDdHNB?= =?utf-8?B?RjFoWTF5ZG1XT0ZBWk5pZUZTbTdxQ24wK1hmdlVSaDhqR1NHbU5SYU9xS0xz?= =?utf-8?B?c2lPWDZNSVgrVG16OUpoaXVWM0RqUHRHWDBnbTN4a2xTVHF5cUZoemNrbC9J?= =?utf-8?B?Y3FiVnBwSFZWY1JpUGFHNzhQcW1NT3ovMGd4TmRBMUNTZFcwc05sLy9zYTZo?= =?utf-8?B?NDN3dlkzTU1BZjBCOTNDMW9LakRvMmxIekhpYUV0a0d2UnlxenV4SnhDaXFU?= =?utf-8?B?V3JrODFPcGo4ZHhFN0dVcXhCRGlKRE8zRDRKYTNTRTN2N2ZYRU5QUllJS2RZ?= =?utf-8?B?cGVhSTFEK3E4QzBzQkVwRGFCeThqdEN6TCtlYkE5SDdpZWdnOExCdnFtYVhR?= =?utf-8?B?Ym9tTTNVR3dDSEY3VUU4WHp0N1dxUzI3RFkvSHFGY24wSllRVU5Cdjh6Kzlt?= =?utf-8?B?ZGh3Ym1KRG10Q0RnSHRVTVVqWm94VUdycjVxWjNGckwzTmR0V1lDMHNCZ3Jj?= =?utf-8?B?WFpVeVA3M1dWR01YVzhuTnJVNGNVSS9iS2t5OGdtbWdJeEZrb2JIZ0pqUURi?= =?utf-8?B?NXVVcXd4MXMveTNkK29FTGtReHNmd3BQNmUrcHFCMmxMZHNVSTNramp5cGtP?= =?utf-8?B?ckIxbWFTeGZPZnVxQnZoQW1NOTNlT2w1ZldSMzgwaWV2a0ZlNnVvZjBnR1Ft?= =?utf-8?B?dkpobWI1cTQ1ekk5M2xGV2s5aEs3RVYxN0xCR0VmbytvaTFpVzVWa1UvSTd2?= =?utf-8?B?YlREdGQwQVZiODArbzQwbmJCU2VWMHQ4bXhMWmZJMGE0aXorVFcvand2NVpu?= =?utf-8?B?UGJQQ0IxaGNwd1B1azNSTUNPYngrL2UvSkxFK2dCaGo5dEtkanRJM2hhc1Aw?= =?utf-8?B?WnBuL2krMnRjeTUzdlRVNFF6aUVzempoaXZncFhjVlFQSjJmUU5IZ3lYQmQw?= =?utf-8?B?NXZ6OS9jbWl6MjlQY1JVNzV5djJ4OXpHZDhDY1A3RllQNmE2T1M0YmU3dkM4?= =?utf-8?B?MFA4VitCcTh6L1BKSHlhN3BIMGRaREUwdG1ScUwvOE04a2Rtc09uaUh4U0ty?= =?utf-8?B?S3dtM2x6UDhDVWNON3NyR014NXVBcTMzUVR3QWkwNzU0Zld5TEpWbUViNFpQ?= =?utf-8?B?eENiS0VtVGd2VGV5VDc0bzVGMzc4UWNzUDhpYUljcXV3Sm1FWmdvcU4vdXJ0?= =?utf-8?B?bytCb2U2NDdCQ1oyKzdDQ2MxMWNTRW51Y1pRRURiZ3JzYzMrTS9wY1h5cWlP?= =?utf-8?B?ais2dTMyY09lMFV2dUF2MytrREl1eUY5ZEJlT0pVcmVnOUg2NzN3a3EzTjFU?= =?utf-8?B?d3RIT3ZhajhGbWw0Q2xDaG1zSDdwaEQ1Y04rdUxIUTMrTGE1VG9ndmJMZ25S?= =?utf-8?B?b2EvT21rMFZyaUdpdlBJOVdiSWlGSGVzMnE0SFA3RVY0WEtZRnFKSXFXTndM?= =?utf-8?B?K2FTQUhCd2hERGI3RDc1ZmpyTW9MZzBWRnBVdVpDY1dNUHFQREljQ1BRUjZ5?= =?utf-8?B?Qis1V3ZMaHZha0p5OFBDQXE5a1Nyd0NlVmhud0RJNXpUU2RON0ZHaUgwL3d3?= =?utf-8?B?TTNuUDVCd2U3NkN0TTE1di9wSnNyVklvZ0ZJZTVvaWxPeU1aZ1QwOEdWaUN6?= =?utf-8?B?TVhpaHJsaFNCdEJlT3hCTDllWkhpQ3VJUjA0ZWVoSVYxb2I2b0gwd05rVW1C?= =?utf-8?B?SWVkRVVXaVlDYXVFTlYyMjFlOGtxRnA1VTdKNUljSDJKNzRzRFUwanpBc0FV?= =?utf-8?B?bC9tWEwyZHIrazk5TlQ5dUlpVEZsSUZwenhSSDhiM28rcUNLOEZGMnMwTEw5?= =?utf-8?B?OWc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: FR2P281MB1527.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: a57239ea-2f28-4d5b-cdb6-08dabd8e16df X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2022 11:25:19.2961 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bde4dffc-4b60-4cf6-8b04-a5eeb25f5c4f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8ctDLyoYOzzI1W6WonrWKzYLrhroCHHy7aWtWCx35S/ezhIDRZa2pfwJzE5pcHMx8PdbnEC8hT5L69iqMVKjy3ws9ozOQKJ6DLzYAfQ82Kc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB2482 X-OriginatorOrg: telekom.de Subject: Re: [Rpm] [ippm] lightweight active sensing of bandwidth and buffering X-BeenThere: rpm@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: revolutions per minute - a new metric for measuring responsiveness List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Nov 2022 11:25:22 -0000 SGkgU2ViYXN0aWFuLA0KDQpRdWljayBmZWVkYmFjayBbUkcyXQ0KDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSGkgUnVlZGlnZXIsDQoNCj4gT24gTm92IDMsIDIw MjIsIGF0IDA5OjIwLCA8UnVlZGlnZXIuR2VpYkB0ZWxla29tLmRlPiA8UnVlZGlnZXIuR2VpYkB0 ZWxla29tLmRlPiB3cm90ZToNCj4gDQo+IEhpIFNlYmFzdGlhbiwNCj4gDQo+IFtTTV0gUHJhZ21h dGljYWxseSB3ZSB3b3JrIHdpdGggZGVsYXkgaW5jcmVhc2Ugb3ZlciBiYXNlbGluZSwgd2hpY2gg c2VlbXMgdG8gd29yayB3ZWxsIGVub3VnaCB0byBiZSB1c2VmdWwsIHdoaWxlIGl0IGlzIHVubGlr ZWx5IHRvIGJlIHBlcmZlY3QuDQo+IA0KPiBSRzogSSBhZ3JlZS4gQW5kIEkgYXBwcmVjaWF0ZSAi d2VsbCBlbm91Z2giIC0gbWFueSBmYWN0b3JzIG1heSBpbXBhY3QgZGVsYXlzIGFsb25nIGEgbWVh c3VyZW1lbnQgcGF0aCwgY2F1c2luZyBlLmcuIHRlbXBvcmFsIG5vaXNlIG9yIHBlcm1hbmVudCBj aGFuZ2UuDQoNCglbU01dIEV4YWN0bHkhIFdlIGRvIHRyeSB0byBhY2NvdW50IGZvciBzb21lIG9m IHRoZXNlIGZhY3RvcnMgdG8gc29tZSBkZWdyZWU6DQphKSB3ZSB1c2UgYSBzZXQgb2YgZGl2ZXJz ZSByZWZsZWN0b3JzIGJ5IGRlZmF1bHQgYW5kIHVzZSBhIHZvdGluZyBtZWNoYW5pc20gYW5kIGRl Y2xhcmUgImNvbmdlc3RlZF9zdGF0ZSIgb25seSBpZiBXIG91dCBvZiB0aGUgbGFzdCBYIGRlbGF5 IHNhbXBsZXMgKGZyb20gWSByZWZsZWN0b3JzKSB3ZXJlIGFib3ZlIHRocmVzaG9sZCBaIChhbGwg b2YgVywgWCwgWSwgYW5kIFogYXJlIGNvbmZpZ3VyYWJsZSB0byB0dW5lIHRoZSBjb2RlIGZvciBz cGVjaWZpYyBsaW5rcywgYnV0IHRoZSBkZWZhdWx0cyBzZWVtIHRvIGFscmVhZHkgaW1wcm92ZSBw ZXJjZWl2ZWQgbGF0ZW5jeS11bmRlci1sb2FkIG5vdGljZWFibHkgZm9yIG1hbnkvbW9zdCB1c2Vy cyB0aGF0IHJlcG9ydGVkIGJhY2sgdG8gdXMpLg0KW1JHMl0gQWxscmlnaHQsIHRoYXQgYXBwcm9h Y2ggaXMgcmVhc29uYWJsZS4NCg0KYikgd2Uga2VlcCBpbmRpdmlkdWFsICJiYXNlbGluZSIgdmFs dWVzIGZvciBlYWNoIHJlZmxlY3RvciB0aGF0IGlpbnRlbmQgdG8gbW9kZWwgdGhlIHBhdGgtZGVw ZW5kZW50IGRlbGF5IGNvbXBvbmVudCwgd2UgYWRqdXN0IHRoZSBiYXNlbGluZSB3aXRoIHR3byBy dWxlczoNCglBKSBpZiBhIHNhbXBsZSB3YXMgbGFyZ2VyIHRoYXQgYmFzZWxpbmUsIHdlIGZlZWQg aXQgaW50byBhbiBFV01BIHRvIHVwZGF0ZS9pbmNyZWFzZSB0aGUgYmFzZWxpbmUgc2xpZ2h0bHkg KHdoaWNoIHdpbGwgYWxsb3cgdGhlIGJhc2VsaW5lIHRvIHNsb3dseSBncm93IHRvIGxhcmdlciB2 YWx1ZXMgaWYgZS5nLiBhIHBhdGggY2hhbmdlZCBhbmQgbm93IGlzIGxvbmdlcik7IHRoZSBhc3N1 bXB0aW9uIGhlcmUgaXMgdGhhdCB1bmRlcmVzdGltYXRpbmcgdGhlICJ0cnVlIiBiYXNlbGluZSB3 aWxsIG1ha2UgdGhlIGNvbnRyb2xsZXIgbW9yZSAidHJpZ2dlci1oYXBweSIgd2hpY2ggd2lsbCBr ZWVwIGxhdGVuY3kgbG93IGF0IHRoZSBleHBlbnNlIG9mIHBvdGVudGlhbCB0aHJvdWdocHV0LCBh bmQgd2UgcHJlZmVyIHRoYXQgdHJhbnNpZW50IGxvc3MgaW4gcG90ZW50aWFsIHRocm91Z2hwdXQg b3ZlciBhIHNpbWlsYXJseSB0cmFuc2llbnQgZGVjcmVhc2UgaW4gcmVzcG9uc2l2ZW5lc3MuDQoJ QikgaWYgYSBzYW1wbGUgaXMgc21hbGxlciB0aGFuIHRoZSBiYXNlbGluZSB3ZSBpbW1lZGlhdGVs eSB1cGRhdGUgdGhlIGJhc2VsaW5lIHRvIHRoYXQgdmFsdWUuIChPbmUgcmF0aW9uYWxlIGZvciB0 aGF0IGlzIHRoYXQgZHVyaW5nIHByb2xvbmdlZCBjb25nZXN0aW9uIGVwb2NocyB0aGUgRVdNQSBt ZXRob2QgaW4gQSkgd2lsbCBoYXZlIGFydGlmaWNpYWxseSBpbmNyZWFzZWQgb3VyIGJhc2UgbGlu ZSBlc3RpbWF0ZSBzbyB3ZSB3YW50IHRvIGJlIHF1aWNrIHRvIGNvcnJlY3QgaXQgYWdhaW4gaWYg dGhlIGNvbmdlc3Rpb24gcmVsYXhlcyBldmVuIGZvciBhIHNob3J0IGR1cmF0aW9uOyB0aGUgb3Ro ZXIgaXMgdG8gcXVpY2tseSBhZGFwdCBpbiBjYXNlIGEgcGF0aCBjaGFuZ2UgcmVzdWx0cyBpbiBh IHNob3J0ZXIgcGF0aCBkZWxheTsgYWdhaW4gdGhlIHByaW5jaXBsZSBpcyB0aGF0IHdlIHZhbHVl IHJlc3BvbnNpdmVuZXNzIG92ZXIgdGhyb3VnaHB1dCkuDQoNCltSRzJdIFRoYXQncyBhIHRyaWNr eSBhbmQgYWJzb2x1dGVseSByZXF1aXJlZCBwYXJ0LCBkaWZmZXJlbnRpYXRpbmcgYSBwYXRoIGNo YW5nZSBmcm9tIGNvbmdlc3Rpb24uIEEgY29tbWVudCBvbiBCKSAtIHBsZWFzZSBrZWVwIGluIG1p bmQsIHRoYXQgdGhlIGJhc2VsaW5lIHBhdGggbWF5IGhhdmUgYSBzbWFsbGVyIGRlbGF5LCBidXQg aW1tZWRpYXRlbHkgZmFjZSBjb25nZXN0aW9uLiBUaGF0IG1heSBub3QgYmUgYW4gaXNzdWUsIGlm IHRoZSBjb25nZXN0aW9uIChidWZmZXItZmlsbCkgdG8gYmUgZGV0ZWN0ZWQgcmVsaWFibHkgYWRk cyBsYXRlbmN5IGluIGEgcmFuZ2Ugc2lnbmlmaWNhbnRseSBhYm92ZSB0aGUgbW9uaXRvcmVkIHBo eXNpY2FsIGRlbGF5LiAgIA0KDQo8c25pcD4gDQoNCj4gUmVnYXJkcywNCj4gDQo+IFJ1ZWRpZ2Vy DQo+IA0KPiANCj4gDQo+IC0tLS0tVXJzcHLDvG5nbGljaGUgTmFjaHJpY2h0LS0tLS0NCj4gVm9u OiBTZWJhc3RpYW4gTW9lbGxlciA8bW9lbGxlcjBAZ214LmRlPg0KPiBHZXNlbmRldDogTWl0dHdv Y2gsIDIuIE5vdmVtYmVyIDIwMjIgMjI6NDENCj4gQW46IEdlaWIsIFLDvGRpZ2VyIDxSdWVkaWdl ci5HZWliQHRlbGVrb20uZGU+DQo+IENjOiByam1jbWFob24gPHJqbWNtYWhvbkByam1jbWFob24u Y29tPjsgUnBtIA0KPiA8cnBtQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldD47IGlwcG1AaWV0Zi5vcmcN Cj4gQmV0cmVmZjogUmU6IFtpcHBtXSBbUnBtXSBsaWdodHdlaWdodCBhY3RpdmUgc2Vuc2luZyBv ZiBiYW5kd2lkdGggYW5kIA0KPiBidWZmZXJpbmcNCj4gDQo+IERlYXIgUnVlZGlnZXIsDQo+IA0K PiB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3VyIGhlbHBmdWwgaW5mb3JtYXRpb24uIEkgd2ls bCBjaGV3IG92ZXIgdGhpcyBhbmQgc2VlIGhvdy9pZiBJIGNhbiBleHBsb2l0IHRoZXNlICJkZXZl bG9wbWVudCBvZiBjb25nZXN0aW9uIG9ic2VydmF0aW9ucyIgc29tZWhvdy4gDQo+IFRoZSBnb2Fs IG9mIHRoZXNlIHBsb3RzIGlzIG5vdCBwcmltYXJpbHkgdG8gZGV0ZWN0IGNvbmdlc3Rpb24qICh0 aGF0IHdvdWxkIGJlIHRoZSBjb3JlIG9mIGF1dG9yYXRlJ3MgZnVuY3Rpb25hbGl0eSwgZGV0ZWN0 IGluY3JlYXNlcyBpbiBkZWxheSBhbmQgcmVzcG9uZCBpbiByZWR1Y2luZyB0aGUgc2hhcGVyIHJh dGUgdG8gY291bnRlciBhY3QgdGhlbSksIGJ1dCBtb3JlIHRvIHNob3cgaG93IHdlbGwgdGhpcyB3 b3JrcyAodGhlIGN1cnJlbnQgcmF0aW9uYWxlIGlzIHRoYXQgY29tcGFyZWQgdG8gYSBzaXR1YXRp b24gd2l0aG91dCB0cmFmZmljIHNoYXBpbmcgdGhlIGRpZmZlcmVuY2UgaW4gaGlnaCB2ZXJzdXMg bG93LWxvYWQgQ0RGcyBzaG91bGQgYmUgbm90aWNlYWJseSoqIHNtYWxsZXIpLg0KPiANCj4gKikg YXV0b3JhdGUgd2lsbCBiZSBpbiBjb250cm9sIG9mIGFuIGFydGlmaWNpYWwgYm90dGxlbmVjayBh bmQgd2UgZG8gbWVhc3VyZSB0aGUgYWNoaWV2ZWQgdGhyb3VnaHB1dCBwZXIgZGlyZWN0aW9uLCBz byB3ZSBjYW4gcmVhc29uIGFib3V0ICJjb25nZXN0aW9uIiBiYXNlZCBvbiB0aHJvdWdocHV0IGFu ZCBkZWxheTsgdGhlIGxvYWRpbmcgaXMgb3JnYW5pYyBpbiB0aGF0IHdlIHNpbXBseSBtZWFzdXJl IHRoZSB0cmFmZmljIHZvbHVtZSBwZXIgdGltZSBvZiB3aGF0IHRyYXZlbHMgb3ZlciB0aGUgcmVs ZXZhbnQgaW50ZXJmYWNlcywgdGhlIGRlbGF5IG1lYXN1cmVtZW50cyBob3dldmVyIGFyZSBhY3Rp dmUsIHdoaWNoIGhhcyBpdHMgcHJvcyBhbmQgY29ucy4uLg0KPiAqKikgTWF5YmUgZXZlbiBydW4g YSBmZXcgc3RhdGlzdGljYWwgdGVzdHMsIGxpa2UgTWFubi1XaXRobmV5LVUvV2lsY294b24gcmFu a3N1bSB0ZXN0IGFuZCB0aGVuIGNsYWltICJzaWduaWZpY2FudGx5IHNtYWxsZXIiLiBJIGZlZWwg YSBwYXJhbWV0cmljIHQtdGVzdCBtaWdodCBub3QgYmUgaW4gb3JkZXIgaGVyZSwgd2l0aCBkZWxh eSBQREZzIGRlY2lkZWRseSBub24tbm9ybWFsIGluIHNoYXBlICh0aGVuIGFnYWluIHRoZXkgbGlr ZWx5IGFyZSBtb25vLW1vZGFsLCBzbyB0LXRlc3Qgd291bGQgc3RpbGwgd29yayBva2F5aXNoIGlu IHNwaXRlIG9mIGl0cyBjb3JlIGFzc3VtcHRpb24gYmVpbmcgdmlvbGF0ZWQpLg0KPiANCj4gDQo+ PiBPbiBOb3YgMiwgMjAyMiwgYXQgMTA6NDEsIDxSdWVkaWdlci5HZWliQHRlbGVrb20uZGU+IDxS dWVkaWdlci5HZWliQHRlbGVrb20uZGU+IHdyb3RlOg0KPj4gDQo+PiBCb2IsIFNlYmFzdGlhbiwN Cj4+IA0KPj4gbm90IGJlaW5nIGFjdGl2ZSBvbiB5b3VyIHRvcGljLCBqdXN0IHRvIGFkZCB3aGF0 IEkgb2JzZXJ2ZWQgb24gY29uZ2VzdGlvbjoNCj4gDQo+IAlbU01dIEkgd2lsbCB0cnkgdG8gZXhw bGFpbiBob3cvaWYgd2UgY291bGQgZXhwbG9pdCB5b3VyIG9ic2VydmF0aW9ucyANCj4gZm9yIG91 ciBjb250cm9sbGVyDQo+IA0KPj4gLSBzdGFydHMgd2l0aCBhbiBpbmNyZWFzZSBvZiBqaXR0ZXIs IGJ1dCBtZWFzdXJlZCBtaW5pbXVtIGRlbGF5cyBzdGlsbCByZW1haW4gY29uc3RhbnQuIFRlY2hu aWNhbGx5LCBhIHF1ZXVlIGJ1aWxkcyB1cCBzb21lIG9mIHRoZSB0aW1lLCBidXQgaXQgaXNuJ3Qg cHJlc2VudCBwZXJtYW5lbnRseS4NCj4gDQo+IAlbU01dIFNvIGluIHRoYXQgcGhhc2Ugd2Ugd291 bGQgZXhwZWN0IENERnMgdG8gaGF2ZSBkaWZmZXJlbnQgc2xvcGVzLCBoaWdoZXIgdmFyaWFuY2Ug c2hvdWxkIHJlc3VsdCBpbiBzaGFsbG93ZXIgc2xvcGU/IEFzIGZvciB1c2luZyB0aGlzIGluc2ln aHQgZm9yIHRoZSBhY3R1YWwgY29udHJvbGxlciwgSSBhbSBub3Qgc3VyZSBob3cgdGhhdCB3b3Vs ZCB3b3JrOyBtYXliZSBtYWludGFpbmluZyBhICJqaXR0ZXIiIGJhc2UgbGluZSBwZXIgcmVmbGVj dG9yIGFuZCB0ZXN0IHdoZXRoZXIgZWFjaCBuZXcgc2FtcGxlIGRldmlhdGVzIHNpZ25pZmljYW50 bHkgZnJvbSB0aGF0IGJhc2UgbGluZT8gVGhhdCBpcyBzaW1pbGFyIHRvIHRoZSBhcHByb2FjaCB3 ZSBhcmUgY3VycmVudGx5IHRha2luZyB3aXRoIGRlbGF5L1JUVC4NCj4gDQo+PiAtIGJ1ZmZlciBm aWxsIHJlYWNoZXMgYSAic3RlYWR5IHN0YXRlIiwgY2FsbGVkIGJ1ZmZlcmJsb2F0IG9uIGFjY2Vz cyANCj4+IEkgdGhpbmsNCj4gDQo+IAlbU01dIEkgd291bGQgY2FsbCBpdCBidWZmZXIgYmxvYXQg aWYgdGhhdCBzdGVhZHktc3RhdGUgcmVzdWx0cyBpbiB0b28gaGlnaCBkZWxheXMgaW5jcmVhc2Vz ICh3aGljaCB0byBhIGRlZ3JlZSBpcyBhIHN1YmplY3RpdmUganVkZ2VtZW50KS4gQWx0aG91Z2gg aW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBOaWNob2xzL0phY29ic2VuIGFuYWxvZ3kgb2YgYnVmZmVy cy9xdWV1ZXMgYXMgc2hvY2sgYWJzb3JiZXJzIGEgcXVldWUgd2l0aCB3aXRoIGFjY2VwdGFibGUg c3RlYWR5LXN0YXRlIGluZHVjZWQgZGVsYXkgbWlnaHQgbm90IHdvcmsgdG9vIHdlbGwgdG8gZXZl biBvdXQgb2NjYXNpb25hbCBidXJzdHM/DQo+IA0KPj4gOyB0ZWNobmljYWxseSwgT1dEIGluY3Jl YXNlcyBhbHNvIGZvciB0aGUgbWluaW11bSBkZWxheXMsIGppdHRlciBub3cgZGVjcmVhc2VzICh3 aGF0IHlvdSd2ZSBkZXNjcmliZWQgdGhhdCBhcyAidGhlIGRlbGF5IG1hZ25pdHVkZSIgZGVjcmVh c2VzIG9yICJtaW5pbXVtIENERiBzaGlmdCIgcmVzcGVjdGl2ZWx5LCBpZiBJJ20gY29ycmVjdCku DQo+IA0KPiAJW1NNXSBUaGF0IGlzIHNvbWV3aGF0IHVuZm9ydHVuYXRlIGFzIGl0IGlzIGhhcmRl ciB0byBkZXRlY3QgcXVpY2tseSB0aGFuIHNvbWV0aGluZyB0aGF0IHNpbXBseSBpbmNyZWFzZXMg YW5kIHN0YXlzIGhpZ2ggKGxpa2UgUlRUKS4NCj4gDQo+PiBJJ2QgZXhwZWN0IHBhY2tldCBsb3Nz IHRvIG9jY3VyLCBvbmNlIHRoZSBidWZmZXIgZmlsbCBpcyBvbiBzdGVhZHkgc3RhdGUsIGJ1dCBs b3NzIG1pZ2h0IGJlIHJhbmRvbWx5IGRpc3RyaWJ1dGVkIGFuZCBjb3VsZCBiZSBvZiBhIGxvdyBw ZXJjZW50YWdlLg0KPiANCj4gCVtTTV0gTG9zcyBpcyBtb3N0bHkgaW52aXNpYmxlIHRvIG91ciBj b250cm9sbGVyIChpdCB3b3VsZCBuZWVkIHRvIGFmZmVjdCBvdXIgcmVsYXRpdmVseSB0aGluIGFj dGl2ZSBkZWxheSBtZWFzdXJlbWVudCB0cmFmZmljIHdlIGhhdmUgbm8gaW5zaWdodCBpbnRvIHRo ZSByZXN0IG9mIHRoZSB0cmFmZmljKSwgYnV0IG1vcmUgdGhhbiB0aGF0IHRoZSBjb250cm9sbGVy J3MgZ29hbCBpcyB0byBhdm9pZCB0aGlzIHNpdHVhdGlvbiBzbyBob3BlZnVsbHkgaXQgd2lsbCBi ZSByYXJlIGFuZCB0cmFuc2llbnQuDQo+IA0KPj4gLSBhIHN1ZGRlbiByYXRoZXIgbG9uZyBsb2Fk IGJ1cnN0IG1heSBjYXVzZSBhICBqdW1wLXN0YXJ0IHRvICJzdGVhZHktc3RhdGUiIGJ1ZmZlciBm aWxsLg0KPiANCj4gCVtTTV0gQXMgd291bGQgYSByYXRoZXIgc3RlZXAgZHJvcCBpbiBhdmFpbGFi bGUgY2FwYWNpdHkgd2l0aCB0cmFmZmljIGluLWZsaWdodCBzaXplZCB0byB0aGUgcHJldmlvdXMg bGFyZ2VyIGNhcGFjaXR5LiBUaGlzIGlzIGUuZy4gd2hhdCBjYW4gYmUgb2JzZXJ2ZWQgb3ZlciBz aGFyZWQgbWVkaWEgbGlrZSBkb2NzaXMvY2FibGUgYW5kIEdTTSBzdWNjZXNzb3JzLg0KPiANCj4g DQo+PiBUaGUgYWJvdmUgaG9sZHMgZm9yIGEgc2xvdyBidXQgc3RlYWR5IGxvYWQgaW5jcmVhc2Ug KHdoZXJlIHRoZSBtZWFzdXJlbWVudCBmcmVxdWVuY3kgZGV0ZXJtaW5lcyB0aGUgdGltZXNjYWxl IHF1YWxpZnlpbmcgInNsb3ciKS4NCj4+IC0gaW4gdGhlIGVuZCwgbWF4LW1pbiBkZWxheSBvciBk ZWxheSBkaXN0cmlidXRpb24vaml0dGVyIGxpa2VseSBpc24ndCBhbiBlYXN5IHRvIGhhbmRsZSBz aW5nbGUgbWV0cmljIHRvIGlkZW50aWZ5IGNvbmdlc3Rpb24uDQo+IA0KPiAJW1NNXSBQcmFnbWF0 aWNhbGx5IHdlIHdvcmsgd2l0aCBkZWxheSBpbmNyZWFzZSBvdmVyIGJhc2VsaW5lLCB3aGljaCBz ZWVtcyB0byB3b3JrIHdlbGwgZW5vdWdoIHRvIGJlIHVzZWZ1bCwgd2hpbGUgaXQgaXMgdW5saWtl bHkgdG8gYmUgcGVyZmVjdC4gVGhlIENERnMgSSBwbG90dGVkIGFyZSByZWFsbHkganVzdCBmb3Ig bWFraW5nIHNlbnNlIHBvc3QgaG9jIG91dCBvZiB0aGUgbG9nZ2VkIGRhdGEuLi4gKGNha2UtYXV0 b3JhdGUgaXMgY3VycmVudGx5IGRlc2lnbmVkIHRvIG1haW50YWluIGEgImZsaWdodC1yZWNvcmRl ciIgbG9nIGJ1ZmZlciB0aGF0IGNhbiBiZSBleHRyYWN0ZWQgYWZ0ZXIgbm90aWNlYWJsZSBldmVu dHMsIGFuZCBJIGFtIHRyeWluZyB0byBjb21lIHVwIHdpdGggaG93IHRvIHNsaWNlIGFuZCBkaWNl IHRoZSBkYXRhIHRvIGhlbHAgZXhwbGFpbiAibm90aWNlYWJsZSBldmVudHMiIGZyb20gdGhlIGxp bWl0ZWQgbG9nIGRhdGEgd2UgaGF2ZSkuDQo+IA0KPiBNYW55IFRoYW5rcyAmIEtpbmQgUmVnYXJk cw0KPiAJU2ViYXN0aWFuDQo+IA0KPiANCj4+IA0KPj4gUmVnYXJkcywNCj4+IA0KPj4gUnVlZGln ZXINCj4+IA0KPj4gDQo+Pj4gT24gTm92IDIsIDIwMjIsIGF0IDAwOjM5LCByam1jbWFob24gdmlh IFJwbSA8cnBtQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldD4gd3JvdGU6DQo+Pj4gDQo+Pj4gQnVmZmVy YmxvYXQgc2hpZnRzIHRoZSBtaW5pbXVtIG9mIHRoZSBsYXRlbmN5IG9yIE9XRCBDREYuDQo+PiAN Cj4+IAlbU01dIFRoYW5rIHlvdSBmb3Igc3BlbGxpbmcgdGhpcyBvdXQgZXhwbGljaXRseSwgSSBv bmx5IHdvcmtlZCBvbiBhIHZhZ2UgaW1wbGljaXQgYXNzdW1wdGlvbiBhbG9uZyB0aG9zZSBsaW5l cy4gSG93ZXZlciB3aGF0IEkgd2FudCB0byBhdm9pZCBpcyB1c2luZyBkZWxheSBtYWduaXR1ZGUg aXRzZWxmIGFzIGNsYXNzaWZpZXIgYmV0d2VlbiBoaWdoIGFuZCBsb3cgbG9hZCBjb25kaXRpb24g YXMgdGhhdCBzZWVtcyBzdGF0aXN0aWNhbGx5IHVuY291dGggdG8gdGhlbiBzaG93IHRoYXQgdGhl IGRlbGF5IGRpZmZlcnMgYmV0d2VlbiB0aGUgdHdvIGNsYXNzZXM7KS4gDQo+PiAJWWV0LCB5b3Vy IGNvbW1lbnQgY29udmluY2VkIG1lIHRoYXQgbXkgY3VycmVudCBsb2FkIHRocmVzaG9sZCAoYXQg bGVhc3QgZm9yIHRoZSBoaWdoIGxvYWQgY29uZGl0aW9uKSBwcm9iYWJseSBpcyB0b28gc21hbGws IGV4YWN0bHkgYmVjYXVzZSB0aGUgImJhc2UiIG9mIHRoZSBoaWdoLWxvYWQgQ0RGcyBjb2luY2lk ZXMgd2l0aCB0aGUgYmFzZSBvZiB0aGUgbG93LWxvYWQgQ0RGcyBpbXBseWluZyB0aGF0IHRoZSBo aWdoLWxvYWQgY2xhc3MgY29udGFpbnMgdG9vIG1hbnkgc2FtcGxlcyB3aXRoIGRlY2VudCBkZWxh eSAod2hpY2ggYWZ0ZXIgYWxsIGlzIG9uZSBvZiB0aGUgZ29hbHMgb2YgdGhlIHdob2xlIGF1dG9y YXRlIGVuZGVhdm9yKS4NCj4+IA0KPj4gDQo+Pj4gQSBzdWdnZXN0aW9uIGlzIHRvIGRpc2FibGUg eC1heGlzIGF1dG8tc2NhbGluZyBhbmQgc3RhcnQgZnJvbSB6ZXJvLg0KPj4gDQo+PiAJW1NNXSBX aWxsIHJlY29uc2lkZXIuIEkgc3RhcnRlZCB3aXRoIHN0YXJ0IGF0IHplcm8sIGVuZCB0aGVuIA0K Pj4gc3dpdGNoZWQgdG8gYW4geC1yYW5nZSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBkZWxheSBjb3Jy ZXNwb25kaW5nIHRvIA0KPj4gMC4wMSUgZm9yIHRoZSByZWZsZWN0b3IvY29uZGl0aW9uIHdpdGgg dGhlIGxvd2VzdCBzdWNoIHZhbHVlIGFuZCANCj4+IHN0b3BzIGF0IDk3LjUlIGZvciB0aGUgcmVm bGVjdG9yL2NvbmRpdGlvbiB3aXRoIHRoZSBoaWdoZXN0IGRlbGF5IA0KPj4gdmFsdWUuIE15IHJh dGlvbmFsZSBpcyB0aGF0IHRoZSBiYXNlIGRlbGF5L3BhdGggZGVsYXkgb2YgZWFjaCANCj4+IHJl ZmxlY3RvciBpcyBub3QgYWxsIHRoYXQNCj4+IGluZm9ybWF0aXZlKiAoYW5kIGl0IGNhbiBzdGls bCBiZSBsZWFybmVkIGZyb20gcmVhZGluZyB0aGUgeC1heGlzKSwgDQo+PiB0aGUgbG9uZyB0YWls ID4gNTAlIGhvd2V2ZXIgaXMgd2hlcmUgSSBleHBlY3QgbW9zdCBkaWZmZXJlbmNlcyBzbyBJIA0K Pj4gd2FudCB0byBlbXBoYXNpemUgdGhpcyBhbmQgZmluYWxseSBJIHdhbnRlZCB0byBhdm9pZCB0 aGF0IHRoZSBhY3R1YWwgDQo+PiAiY3VydnkiIHBhcnQgZ2V0cyBjb21wcmVzc2VkIHNvIG11Y2gg dGhhdCBhbGwgbGluZXMgbW9yZSBvciBsZXNzIA0KPj4gY29pbmNpZGUuIEFzIEkgc2FpZCwgSSB3 aWxsIHJlY29uc2lkZXIgdGhpcw0KPj4gDQo+PiANCj4+ICopIFdlIGFsc28gbWFpbnRhaW4gaW5k aXZpZHVhbCBiYXNlbGluZXMgcGVyIHJlZmxlY3Rvciwgc28gSSBjb3VsZCBqdXN0IHBsb3QgdGhl IGRpZmZlcmVuY2VzIGZyb20gYmFzZWxpbmUsIGJ1dCB0aGF0IHdvdWxkIGVzc2VudGlhbGx5IGVx dWFsaXplIGFsbCByZWZsZWN0b3JzLCBhbmQgSSB0aGluayBoYXZpbmcgYSBwbG90IHRoYXQgZWFz aWx5IHNob3dzIHJlZmxlY3RvcnMgd2l0aCBvdXRseWluZyBiYXNlIGRlbGF5IGNhbiBiZSBpbmZv cm1hdGl2ZSB3aGVuIHNlbGVjdGluZyByZWZsZWN0b3IgY2FuZGlkYXRlcy4gSG93ZXZlciBvbmNl IHdlIGFjdHVhbGx5IHN3aXRjaCB0byBPV0RzIGJhc2VsaW5lIGNvcnJlY3Rpb24gbWlnaHQgYmUg cmVxdWlyZWQgYW55d2F5cywgYXMgZHVlIHRvIGNvbGNrIGRpZmZlcmVuY2VzIElDTVAgdHlwZSAx My8xNCBkYXRhIGNhbiBoYXZlIG1hc3NpdmUgb2Zmc2V0cyB0aGF0IGFyZSBtb3N0bHkgaW5kaWNh dGl2ZSBvZiB1biBzeW5jaGVkIGNsb2NrcyoqLg0KPj4gDQo+PiAqKikgVGhpcyBpcyB3aHlJIHdv dWxkIHByZWZlciB0byB1c2UgTlRQIHNlcnZlcnMgYXMgcmVmbGVjdG9ycyB3aXRoIE5UUCByZXF1 ZXN0cywgbXkgZXhwZWN0YXRpb24gaXMgYWxsIG9mIHRoZXNlIHNob3VsZCBiZSByZWFzb25hYmx5 IHN5bmNlZCBieSBkZWZhdWx0IHNvIHRoYXQgb2Zmc2V0cyBzaG91bGQgYmUgaW4gdGhlIHNhbmUg cmFuZ2UuLi4uDQo+PiANCj4+IA0KPj4+IA0KPj4+IEJvYg0KPj4+PiBGb3IgYWJvdXQgMiB5ZWFy cyBub3cgdGhlIGNha2Ugdy1hZGFwdGl2ZSBiYW5kd2lkdGggcHJvamVjdCBoYXMgDQo+Pj4+IGJl ZW4gZXhwbG9yaW5nIHRlY2huaXF1ZXMgdG8gbGlnaHR3ZWlnaHRlZGx5IHNlbnNlICBiYW5kd2lk dGggYW5kIA0KPj4+PiBidWZmZXJpbmcgcHJvYmxlbXMuIE9uZSBvZiBteSBmYXZvcml0ZXMgd2Fz IHRoZWlyIGRpc2NvdmVyeSB0aGF0IA0KPj4+PiBJQ01QIHR5cGUgMTMgZ290IHRoZW0gd29ya2lu ZyBPV0QgZnJvbSBtaWxsaW9ucyBvZiBpcHY0IGRldmljZXMhDQo+Pj4+IFRoZXkndmUgYWxzbyBl eHBsb3JlZCBsZXZlcmFnaW5nIG50cCBhbmQgbXVsdGlwbGUgb3RoZXIgbWV0aG9kcywgDQo+Pj4+ IGFuZCBoYXZlIHNjcmlwdHMgYXZhaWxhYmxlIHRoYXQgZG8gYSBnb29kIGpvYiBvZiBjb21wZW5z YXRpbmcgZm9yIA0KPj4+PiA1ZyBhbmQgc3RhcmxpbmsncyBtaXNiZWhhdmlvcnMuDQo+Pj4+IFRo ZXkndmUgYWxzbyBwaW9uZWVyZWQgYSB3aG9sZSBidW5jaCBvZiBuZXcgZ3JhcGhpbmcgdGVjaG5p cXVlcywgDQo+Pj4+IHdoaWNoIEkgZG8gd2lzaCB3ZXJlIHVzZWQgbW9yZSB0aGFuIHNpbmdsZSBu dW1iZXIgc3VtbWFyaWVzIA0KPj4+PiBlc3BlY2lhbGx5IGluIGFuYWx5emluZyB0aGUgYmVoYXZp b3JzIG9mIG5ldyBtZXRyaWNzIGxpa2UgcnBtLCANCj4+Pj4gc2Fta25vd3MsIG9va2xhLCBhbmQN Cj4+Pj4gUkZDOTA5NyAtIHRvIHNlZSB3aGF0IGlzIGJlaW5nIG1pc3NlZC4NCj4+Pj4gVGhlcmUg YXJlIHRob3VzYW5kcyBvZiBwb3N0cyBhYm91dCB0aGlzIHJlc2VhcmNoIHRvcGljLCBhIG5ldyBw b3N0IA0KPj4+PiBvbiBPV0QganVzdCB3ZW50IGJ5IGhlcmUuDQo+Pj4+IGh0dHBzOi8vZm9ydW0u b3BlbndydC5vcmcvdC9jYWtlLXctYWRhcHRpdmUtYmFuZHdpZHRoLzEzNTM3OS83OTMNCj4+Pj4g YW5kIG9mIGNvdXJzZSwgSSBsb3ZlIGZsZW50J3MgZW5vcm1vdXMgZ3JhcGhpbmcgdG9vbHNldCBm b3IgDQo+Pj4+IHNpbXVsYXRpbmcgYW5kIGFuYWx5emluZyBjb21wbGV4IG5ldHdvcmsgYmVoYXZp b3JzLg0KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f DQo+Pj4gUnBtIG1haWxpbmcgbGlzdA0KPj4+IFJwbUBsaXN0cy5idWZmZXJibG9hdC5uZXQNCj4+ PiBodHRwczovL2xpc3RzLmJ1ZmZlcmJsb2F0Lm5ldC9saXN0aW5mby9ycG0NCj4+IA0KPj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IGlwcG0gbWFp bGluZyBsaXN0DQo+PiBpcHBtQGlldGYub3JnDQo+PiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWls bWFuL2xpc3RpbmZvL2lwcG0NCj4gDQoNCg==