From owner-freebsd-transport@freebsd.org Thu Sep 12 18:50:01 2019 Return-Path: Delivered-To: freebsd-transport@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F1422D6C6C for ; Thu, 12 Sep 2019 18:50:01 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730056.outbound.protection.outlook.com [40.107.73.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46TnrS5GLDz4bSC; Thu, 12 Sep 2019 18:50:00 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ad0G2dLH29Gjqz5TebdLdFnQAtpE7Hu87oMxdNiU7Jfk+XalwQwLP5FuUxeFeaVgKv9OvRzShAzzp09rqVDvlZZAqc81w+uCRj0gvg3zZWXm/SNpDgp9ilOJhnhkPzq+h5E3mE3+DUTAXQYOsPAInuBKyooUcCAkGXdGmS3LSH77VxY+egsv9Rx+yjkTf+Bv3VahXTwmYGb6Xwur85DZwFF0esDqR7/GGhaO7Y4ZL6WKu3jeRlaR7YQWtjvs/E728Nw5ku8VnuZDyVM4dPvm7B26BzgNX2sxSaNPcuLizjLrIfmyi72ddkuuRAyzaosaEcWSN8CqpNOdiR1BbKctLw== 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-SenderADCheck; bh=Bypb6EqvpcpmL9ALxm76/MmXuJvBzhDRhkgAKp81WDA=; b=NaQTuxD1VZRptMQDAVI8r/kd1pB/xjdOfVO5qcCk0RU7ydnKg0uJ3geDA5oUBdaO6sVS7eBsPkxen+ld589L33RpebSlPQSQqBr4NifrFlA0MJPTYN6nlB3uPWdV9ff0hW73YiwWYMHKWcOZoQu/OoPE3gxAovnrzFWnou7tHMihT9Rb+2AuGqvmlJ5X8zI6gxu/w5pvTZc/80Sq6bbcQ5FpoRQ3mM2kdT971iqDkkoqLt6Az17uBUToxyFF1PrpxT6YWs9QlSeWFDdyegF11hS/hE27LYV8pppOFTpoBxZ0qsI0JP4zxE9p3AADOt0AxrfqOBg0lsxG1oJzQ9zWYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=netapp.com; dmarc=pass action=none header.from=netapp.com; dkim=pass header.d=netapp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector2-netapp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Bypb6EqvpcpmL9ALxm76/MmXuJvBzhDRhkgAKp81WDA=; b=jxXvByMG45WrNBr3RE6GCBCGcAd1w3AJqfHqaPMeuu/FH0HKYFgsapfszHxleWcyx4NgTHcKH5RXFPi3R8+uNGz/hwbQ+EbZ3Y/8SHz2T5t2RyCQwM+waaGIzqG8yHZCYXFsjL5e0BuvPyW6pYxX0DbMq9ZHOQeLBbOGzln2zOk= Received: from SN4PR0601MB3728.namprd06.prod.outlook.com (10.167.151.152) by SN4PR0601MB3775.namprd06.prod.outlook.com (10.167.141.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.13; Thu, 12 Sep 2019 18:49:58 +0000 Received: from SN4PR0601MB3728.namprd06.prod.outlook.com ([fe80::344b:f99a:6c23:a837]) by SN4PR0601MB3728.namprd06.prod.outlook.com ([fe80::344b:f99a:6c23:a837%7]) with mapi id 15.20.2263.016; Thu, 12 Sep 2019 18:49:58 +0000 From: "Scheffenegger, Richard" To: Randall Stewart , Michael Tuexen CC: Lawrence Stewart , Jonathan Looney , "freebsd-transport@freebsd.org" , "Cui, Cheng" , Tom Jones , "bz@freebsd.org" , "Eggert, Lars" Subject: RE: reno cwnd growth while app limited... Thread-Topic: reno cwnd growth while app limited... Thread-Index: AdVol0YZlgizeTZ3S0afXPdfEBACLgAA69iAAD3r1EA= Message-ID: References: In-Reply-To: Accept-Language: de-AT, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-dg-ref: PG1ldGE+PGF0IG5tPSJpbWFnZTAwNC5wbmciIHA9IiIgc3o9IjAiIHQ9IjAiIGg9IiIgaWQ9IiIgYmw9IjAiIGJvPSIwIi8+PGF0IG5tPSJpbWFnZTAwNS5wbmciIHA9IiIgc3o9IjAiIHQ9IjAiIGg9IiIgaWQ9IiIgYmw9IjAiIGJvPSIwIi8+PGF0IG5tPSJpbWFnZTAwOS5wbmciIHA9IiIgc3o9IjAiIHQ9IjAiIGg9IiIgaWQ9IiIgYmw9IjAiIGJvPSIwIi8+PGF0IG5tPSJib2R5Lmh0bWwiIHA9ImM6XHVzZXJzXHNyaWNoYXJkXGFwcGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVlZS02Yjg0YmEyOWUzNWJcbXNnc1xtc2ctMWI1M2ZiNzMtZDU4ZS0xMWU5LWI2MDktMDAxOWQyZTRlY2Q3XGFtZS10ZXN0XDFiNTNmYjc0LWQ1OGUtMTFlOS1iNjA5LTAwMTlkMmU0ZWNkN2JvZHkuaHRtbCIgc3o9IjEzODQ5IiB0PSIxMzIxMjc4Nzc5NDQwMzc5MTQiIGg9IlVmeDlHdmQ0VkZxR28xdGtFQ3FUSHU3OFFFMD0iIGlkPSIiIGJsPSIwIiBibz0iMSIvPjwvbWV0YT4= x-dg-rorf: x-originating-ip: [213.143.121.76] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9fd41d3a-5ebf-48e7-2e6a-08d737b202d2 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(49563074)(7193020); SRVR:SN4PR0601MB3775; x-ms-traffictypediagnostic: SN4PR0601MB3775: x-ms-exchange-purlcount: 3 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 01583E185C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(366004)(136003)(376002)(39860400002)(346002)(199004)(189003)(54094003)(13464003)(6246003)(25786009)(66556008)(64756008)(66446008)(66476007)(107886003)(2906002)(33656002)(76116006)(66576008)(316002)(229853002)(4326008)(52536014)(66946007)(486006)(446003)(11346002)(476003)(14454004)(966005)(478600001)(110136005)(54906003)(8936002)(99286004)(7696005)(74316002)(7736002)(256004)(14444005)(5024004)(5660300002)(76176011)(8676002)(81166006)(81156014)(26005)(53546011)(99936001)(66574012)(102836004)(6506007)(9686003)(71190400001)(71200400001)(6436002)(54896002)(6306002)(55016002)(53936002)(6116002)(66066001)(790700001)(86362001)(733005)(3846002)(186003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN4PR0601MB3775; H:SN4PR0601MB3728.namprd06.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: netapp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: vffGjmTrsv5RfJ+RJnGN6+U+SXib09JBEka7WyhloSZ8+HE5qipqi3WOiyk3S0Tbbnb//jTDbhMPZ+mcDR2rcsnWEQiiyF9U3LNDt1n50/qvV6iqCeip22gkgBXgNPSzXn7kviTgIYDW/1mkmRfltZbZsiVNshmgOGrC63FKrMWz2H86uioSY+LD1GqNeO2X1Ny+Ih0jWS8JWdffq3aSN9g4Uxj9mzFSXHHbunVTHwkkcmmd+3EkqkxMjarsXsC1Idns1d8WFUJKUJbPoyzhO3XnG7sLcUobuvqG6U7iMNQU3dtnk8CZRdcmzwF+xhpZ8nXqxaKgN01QMUUMrBqW+bjp2YuTCSk2g9UxCfj/DDVB0XfNs+WVsR7dJryph41OX0TGzG8LhkYfb0E9z0DmZz1ROelZz1eyY0NPTtOgyvs= MIME-Version: 1.0 X-OriginatorOrg: netapp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9fd41d3a-5ebf-48e7-2e6a-08d737b202d2 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Sep 2019 18:49:58.5750 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8awMnu3IKQsI1/f73j1YAvD67zzbBod4Z2aEoyyN7T8VARpnhFcyC3sl7WsXL8IVv0bFiot/zCm2tb1D7DCshg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR0601MB3775 X-Rspamd-Queue-Id: 46TnrS5GLDz4bSC X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=netapp.onmicrosoft.com header.s=selector2-netapp-onmicrosoft-com header.b=jxXvByMG; dmarc=none; spf=pass (mx1.freebsd.org: domain of Richard.Scheffenegger@netapp.com designates 40.107.73.56 as permitted sender) smtp.mailfrom=Richard.Scheffenegger@netapp.com X-Spamd-Result: default: False [-2.67 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[netapp.onmicrosoft.com:s=selector2-netapp-onmicrosoft-com]; HAS_XOIP(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; MIME_GOOD(-0.10)[multipart/related,multipart/alternative,text/plain]; DMARC_NA(0.00)[netapp.com]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[netapp.onmicrosoft.com:+]; MIME_BASE64_TEXT(0.10)[]; RCPT_COUNT_SEVEN(0.00)[9]; RCVD_IN_DNSWL_NONE(0.00)[56.73.107.40.list.dnswl.org : 127.0.3.0]; NEURAL_SPAM_LONG(0.97)[0.969,0]; IP_SCORE(-1.24)[ipnet: 40.64.0.0/10(-3.65), asn: 8075(-2.51), country: US(-0.05)]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:~,5:~,6:~]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:8075, ipnet:40.64.0.0/10, country:US]; ARC_ALLOW(-1.00)[i=1] X-Mailman-Approved-At: Sun, 13 Oct 2019 15:14:13 +0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-transport@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussions of transport level network protocols in FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 12 Sep 2019 18:50:02 -0000 X-Original-Date: Thu, 12 Sep 2019 18:49:58 +0000 X-List-Received-Date: Thu, 12 Sep 2019 18:50:02 -0000 TWljaGFlbCwNCg0KDQoNClRoYW5rcyBhIGxvdCBmb3IgcG9pbnRpbmcgb3V0IHRoZSB1cGVyZiB1 dGlsaXR5IC0gdGhpcyBjb3VsZCBiZSBjb25maWd1cmVkIGV4YWN0bHkgaW4gdGhlIHdheSBJIHdh bnRlZCB0byBkZW1vbnN0cmF0ZSB0aGlzLi4uDQoNCg0KDQpJbiB0aGUgYmVsb3cgZ3JhcGhzLCBJ IHRyYWNlZCB0aGUgZXZvbHV0aW9uIG9mIGN3bmQgZm9yIGEgZmxvdyBhY3Jvc3MgdGhlIGxvb3Bi YWNrIGluIGEgVk0uDQoNCg0KDQpUaGUgYXBwbGljYXRpb24gaXMgZG9pbmcgMzA2MCB0aW1lcyAx MGtCIHdyaXRlcywgMTBtcyBwYXVzaW5nICh3ZWxsIGJlbG93IHRoZSAyMzBtcyBtaW5pbXVtIFRD UCBpZGxlIHBlcmlvZCksIGFuZCBvbmNlIHRoYXQgcGhhc2UgaXMgb3ZlciwgZmxvb2RzIHRoZSBz ZXNzaW9uIHdpdGggOHggd3JpdGVzIG9mIDEwTUIgZWFjaC4NCg0KDQoNCkN1cnJlbnRseSwgdGhl IHN0YWNrIHdpbGwgaW5pdGlhbGx5IGdyb3cgY3duZCB1cCB0byB0aGUgbGltaXQgc2V0IGJ5IHRo ZSByZWNlaXZlcidzIHdpbmRvdyAoc2V0IHRvIDEuMiBNQikgLSBkdXJpbmcgdGhlIGxvdyBiYW5k d2lkdGggcmF0ZSBwaGFzZSwgd2hlcmUgbm8gbG9zcyBvY2N1cnMuLi4NCg0KDQoNClRodXMgdGhl IGFwcGxpY2F0aW9uIGNhbiBzZW5kIG91dCBhIG1hc3NpdmUgYnVyc3Qgb2YgZGF0YSBpbiBhIHNp bmdsZSBSVFQgKG9yIGF0IGxpbmVyYXRlKSB3aGVuIGl0IGNob29zZXMgdG8gZG8gc28uLi4NCg0K DQoNCg0KDQpVc2luZyB0aGUgZ3VpZGFuY2UgZ2l2ZW4gYnkgTmV3Q1dWIChSRkM3NjYxKSwgYW5k IGdyb3dpbmcgY3duZCBvbmx5LCB3aGVuIGZsaWdodHNpemUgaXMgbGFyZ2VyIHRoYW4gaGFsZiBv ZiBjd25kLCB0aGUgY29uZ2VzdGlvbiB3aW5kb3cgcmVtYWlucyBpbiBtb3JlIHJlYXNvbmFibGUg cmFuZ2VzIGR1cmluZyB0aGUgYXBwbGljYXRpb24gbGltaXRlZCBwaGFzZSwgdGh1cyBsaW1pdGlu ZyB0aGUgbWF4aW11bSBidXJzdCBzaXplLg0KDQoNCg0KR3Jvd3RoIG9mIGN3bmQgaW4gU1Mgb3Ig Q0Egb3RoZXJ3aXNlIGlzIG5vcm1hbCwgYnV0IHRoZSBpbnZlcnNlIGNhc2UgKGFwcGxpY2F0aW9u IHRyYW5zaXNpb25pbmcgZnJvbSBoaWdoIHRocm91Z2hwdXQgdG8gbG93KSBpcyBub3QgYWRkcmVz c2VkOyBidXQgSSB3b25kZXIgaWYgYSByZWR1Y3Rpb24gY291bGQgYmUgYWNoaWV2ZWQgd2l0aG91 dCB0aGUgdGltZXIgaW5mcmFzdHJ1Y3R1cmUgZGVzY3JpYmVkIGluIDc2NjEgKGUuZy4gcmVkdWNp bmcgY3duZCBieSAxIG1zcywgd2hlbiBmbGlnaHRzaXplIGlzIDwgwr0gY3duZCwgd2hpbGUgbm90 IGRvaW5nIHJlY292ZXJ54oCmDQoNCg0KDQpbY2lkOmltYWdlMDA0LnBuZ0AwMUQ1NjlBQi5BMTBC RDkxMF0NCg0KVW5saW1pdGVkIHNzdGhyZXNoOg0KDQpbY2lkOmltYWdlMDA1LnBuZ0AwMUQ1NjlB Qi5BMTBCRDkxMF0NCg0KDQoNCg0KDQpbY2lkOmltYWdlMDA5LnBuZ0AwMUQ1NjlBQi5BMTBCRDkx MF0NCg0KDQoNCg0KDQpSaWNoYXJkIFNjaGVmZmVuZWdnZXINCg0KQ29uc3VsdGluZyBTb2x1dGlv biBBcmNoaXRlY3QNCg0KTkFTICYgTmV0d29ya2luZw0KDQoNCg0KTmV0QXBwDQoNCis0MyAxIDM2 NzYgODExIDMxNTcgRGlyZWN0IFBob25lDQoNCis0MyA2NjQgODg2NiAxODU3IE1vYmlsZSBQaG9u ZQ0KDQpSaWNoYXJkLlNjaGVmZmVuZWdnZXJAbmV0YXBwLmNvbQ0KDQoNCg0KaHR0cHM6Ly90cy5s YS9yaWNoYXJkNDk4OTINCg0KDQoNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJv bTogUmFuZGFsbCBTdGV3YXJ0IDxycnNAbmV0ZmxpeC5jb20+DQpTZW50OiBNaXR0d29jaCwgMTEu IFNlcHRlbWJlciAyMDE5IDE0OjE4DQpUbzogU2NoZWZmZW5lZ2dlciwgUmljaGFyZCA8UmljaGFy ZC5TY2hlZmZlbmVnZ2VyQG5ldGFwcC5jb20+DQpDYzogTGF3cmVuY2UgU3Rld2FydCA8bHN0ZXdh cnRAbmV0ZmxpeC5jb20+OyBNaWNoYWVsIFR1ZXhlbiA8dHVleGVuQEZyZWVCU0Qub3JnPjsgSm9u YXRoYW4gTG9vbmV5IDxqdGxAbmV0ZmxpeC5jb20+OyBmcmVlYnNkLXRyYW5zcG9ydEBmcmVlYnNk Lm9yZzsgQ3VpLCBDaGVuZyA8Q2hlbmcuQ3VpQG5ldGFwcC5jb20+OyBUb20gSm9uZXMgPHRoakBm cmVlYnNkLm9yZz47IGJ6QGZyZWVic2Qub3JnOyBFZ2dlcnQsIExhcnMgPGxhcnNAbmV0YXBwLmNv bT4NClN1YmplY3Q6IFJlOiByZW5vIGN3bmQgZ3Jvd3RoIHdoaWxlIGFwcCBsaW1pdGVkLi4uDQoN Cg0KDQpOZXRBcHAgU2VjdXJpdHkgV0FSTklORzogVGhpcyBpcyBhbiBleHRlcm5hbCBlbWFpbC4g RG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNvZ25p emUgdGhlIHNlbmRlciBhbmQga25vdyB0aGUgY29udGVudCBpcyBzYWZlLg0KDQoNCg0KDQoNCg0K DQoNCg0KSW50ZXJlc3RpbmcgZ3JhcGggOikNCg0KDQoNCg0KDQpJIGtub3cgdGhhdCB5ZWFycyBh Z28gSSBoYWQgYSBkaXNjdXNzaW9uIGFsb25nIHRoZXNlIGxpbmVzICh0YWxraW5nIGFib3V0IGJ1 cnN0LWxpbWl0cykgd2l0aA0KDQpLYWNoZW9uZyBQb29uIGFuZCBNYXJrIEFsbG1hbi4gSUlSUiBL YWNoZW9uZyBzYWlkLCBhdCB0aGF0IHRpbWUsIHN1biBsaW1pdGVkIHRoZSBjd25kIHRvDQoNCnNv bWV0aGluZyBsaWtlIDRNU1MgbW9yZSB0aGFuIHRoZSBmbGlnaHQgc2l6ZSAoSSBjb3VsZCBoYXZl IHRoYXQgbWl4ZWQgdXAgdGhvdWdoIGFuZCBpdCBtaWdodA0KDQpoYXZlIGJlZW4gTWFyayBwcm9w b3NpbmcgdGhhdC4uIGl0cyBiZWVuIGEgd2hpbGUgc3VuIHdhcyBzdGlsbCBhIGNvbXBhbnkgdGhl biA6RCkuDQoNCg0KDQpPbiB0aGUgb3RoZXIgaGFuZCBJIGFtIG5vdCBzdXJlIHRoYXQgc3VjaCBh IHRpZ2h0IGxpbWl0IHRha2VzIGludG8gYWNjb3VudCBhbGwgb2YgdGhlIGFjay1hcnRpZmFjdHMg dGhhdA0KDQpzZWVtIHRvIGJlIHJhYmlkIGluIHRoZSBpbnRlcm5ldCBub3cuLiAgQkJSIHRvb2sg dGhlIGFwcHJvYWNoIG9mIGxpbWl0aW5nIGl0cyBjd25kIHRvIDJ4QkRQIChvciBhdA0KDQpsZWFz dCB3aGF0IGl0IHRob3VnaHQgd2FzIHRoZSBCRFApLi4gd2hpY2ggaXMgbW9yZSBhbG9uZyB0aGUg bGluZXMgb2YgeW91ciAuNSBpZiBJIGFtIHJlYWRpbmcgeW91IHJpZ2h0Lg0KDQoNCg0KSXQgbWln aHQgYmUgc29tZXRoaW5nIHdvcnRoIGxvb2tpbmcgaW50byBidXQgSSB3b3VsZCB3YW50IHRvIGNv bnRlbXBsYXRlIGl0IGZvciBhIHdoaWxlIDopDQoNCg0KDQpSDQoNCg0KDQo+IE9uIFNlcCAxMSwg MjAxOSwgYXQgODowNCBBTSwgU2NoZWZmZW5lZ2dlciwgUmljaGFyZCA8UmljaGFyZC5TY2hlZmZl bmVnZ2VyQG5ldGFwcC5jb20+IHdyb3RlOg0KDQo+DQoNCj4gSGksDQoNCj4NCg0KPiBJIHdhcyBq dXN0IGxvb2tpbmcgYXQgc29tZSBncmFwaCBkYXRhIHJ1bm5pbmcgdHdvIHBhcmFsbGVsIGRjdGNw IGZsb3dzIGFnYWluc3QgYSBjdWJpYyByZWNlaXZlciAoc29tZSBpbnRlcm5hbCB2YWxpZGF0aW9u KSB3aXRoIHRyYWRpdGlvbmFsIGVjbiBmZWVkYmFjay4NCg0KPg0KDQo+IDxpbWFnZTAwMi5qcGc+ DQoNCj4NCg0KPg0KDQo+IE5vdywgaW4gdGhlIGJlZ2lubmluZywgYSBzaW5nbGUgZmxvdyBjYW4g bm90IG92ZXJ1dGlsaXplIHRoZSBsaW5rIGNhcGFjaXR5LCBhbmQgbmV2ZXIgcnVucyBpbnRvIGFu eSBsb3NzL21hcmvigKYgYnV0IHRoZSBzbmRfY3duZCBncm93cyB1bmJvdW5kZWQgKHNpbmNlIERD VENQIGlzIHVzaW5nIHRoZSBuZXdyZW5vIOKAnGNjX2Fja19yZWNlaXZlZOKAnSBtZWNoYW5pc20p Lg0KDQo+DQoNCj4gSG93ZXZlciwgbmV3cmVub19hY2tfcmVjZWl2ZWQgaXMgb25seSB0byBncm93 IHNuZF9jd25kLCB3aGVuIENDRl9DV05EX0xJTUlURUQgaXMgc2V0LCB3aGljaCByZW1haW5zIHNl dCBhcyBsb25nIGFzIHNuZF9jd25kIDwgc25kX3duZCAodGhlIHJlY2VpdmVyIHNpZ25hbGVkIHJl Y2VpdmUtd2luZG93KS4NCg0KPg0KDQo+IEJ1dCBpcyB0aGlzIHN0aWxsKiB0aGUgY29ycmVjdCBi ZWhhdmlvcj8NCg0KPg0KDQo+IFNheSwgdGhlIGRhdGEgZmxvdyByYXRlIGlzIGFwcGxpY2F0aW9u IGxpbWl0ZWQgKGV2ZXIgbiBtaWxsaXNlY29uZHMsIGEgZmV3IGtCKSwgYW5kIHRoZSByZWNlaXZl ciBoYXMgYSBsYXJnZSB3aW5kb3cgc2lnbmFsbGVkIOKAkyBjd25kIHdpbGwgZ3JvdyB1bnRpbCBp dCBtYXRjaGVzIHRoZSByZWNlaXZlcnMgd2luZG93LiBJZiB0aGVuIHRoZSBhcHBsaWNhdGlvbiBj aG9vc2VzIHRvIG5vIGxvbmdlciByZXN0cmljdCBpdHNlbGYsIGl0IHdvdWxkIHBvc3NpYmx5IGJ1 cnN0IG91dCBzaWduaWZpY2FudGx5IG1vcmUgZGF0YSB0aGFuIHRoZSBxdWV1aW5nIG9mIHRoZSBw YXRoIGNhbiBoYW5kbGXigKYNCg0KPg0KDQo+IFNvLCBzaG91bGRu4oCZdCB0aGVyZSBiZSBhIHNl Y29uZCBjb25kaXRpb24gZm9yIGN3bmQgZ3Jvd3RoLCB0aGF0IGUuZy4gcGlwZSAoZmxpZ2h0c2l6 ZSkgaXMgY2xvc2UgdG8gY3duZCAoZmFjdG9yIDAuNSBkdXJpbmcgc2xvdyBzdGFydCwgYW5kIHNh eSAwLjg1IGR1cmluZyBjb25nZXN0aW9uIGF2b2lkYW5jZSksIHRvIHByZXZlbnQgc3VkZGVuIGxh cmdlIGJ1cnN0cyB3aGVuIGEgZmxvdyBjb21lcyBvdXQgb2YgYmVpbmcgYXBwbGljYXRpb24gbGlt aXRlZD8gVGhlIGludGVudGlvbiBoZXJlIHdvdWxkIGJlIHRvIHJlc3RyaWN0IHRoZSB3b3JzdCBj YXNlIGJ1cnN0IHRoYXQgY291bGQgYmUgc2VudCBvdXQgKHdoaWNoIGlzIGRlYWx0IHdpbGwgZGlm ZmVyZW50bHkgaW4gb3RoZXIgc3RhY2tzKSwgdG8gaWRlYWxseSBzdGlsbCBmaXQgaW50byB0aGUg cGF0aOKAmXMgcXVldWVz4oCmDQoNCj4NCg0KPiBSRkM1NjgxIGlzIHNpbGVudCBvbiBhcHBsaWNh dGlvbiBsaW1pdGVkIGZsb3dzIHRob3VnaCAoYnV0IG9uZSBjb3VsZCB0aGluZyBvZiBhcHBsaWNh dGlvbiBsaW1pdGluZyBhIGZsb3cgYmVpbmcgYW5vdGhlciBmb3JtIG9mIGNvbmdlc3Rpb24sIGR1 cmluZyB3aGljaCBjd25kIHNob3VsZG7igJl0IGdyb3figKYpDQoNCj4NCg0KPiBJbiB0aGUgZXhh bXBsZSBhYm92ZSwgZ3Jvd2luZyBjd25kIHVwIHRvIGFib3V0IDUwMCBrQiBhbmQgdGhlbiByZW1h aW5pbmcgdGhlcmUgc2hvdWxkIGJlIGFwcHJveGltYXRlbHkgdGhlIGV4cGVjdGVkIHNldHRpbmcg 4oCTIGJhc2VkIG9uIHRoZSBhdmVyYWdlIG9mIHR3byBjb21wZXRpbmcgZmxvd3MgaG92ZXJpbmcg YXQgYXJvdWQgMjAwLTI1MCBrQuKApg0KDQo+DQoNCj4gKikgSeKAmW0gcmVmZXJyaW5nIHRvIHRo ZSBtdWNoIGhpZ2hlciBsaWtlbGlob29kIG5vd2FkYXlzLCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBp dHNlbGYgcGFjaW5nIGFuZCB0cmFuc2ZlciB2b2x1bWUgdmlvbGF0ZXMgdGhlIGRlc2lnbiBwcmlu Y2lwbGUgb2YgVENQLCB3aGVyZSB0aGUgaW1wbGljaXQgYXNzdW1wdGlvbiB3YXMgdGhhdCB0aGUg c2VuZGVyIGhhcyB1bmxpbWl0ZWQgZGF0YSB0byBzZW5kLCB3aXRoIHRoZSB0aW1pbmcgY29udHJv bGxlZCBhdCB0aGUgZnVsbCBkaXNncmVzc2lvbiBvZiBUQ1AuDQoNCj4NCg0KPg0KDQo+IFJpY2hh cmQgU2NoZWZmZW5lZ2dlcg0KDQo+IENvbnN1bHRpbmcgU29sdXRpb24gQXJjaGl0ZWN0DQoNCj4g TkFTICYgTmV0d29ya2luZw0KDQo+DQoNCj4gTmV0QXBwDQoNCj4gKzQzIDEgMzY3NiA4MTEgMzE1 NyBEaXJlY3QgUGhvbmUNCg0KPiArNDMgNjY0IDg4NjYgMTg1NyBNb2JpbGUgUGhvbmUNCg0KPiBS aWNoYXJkLlNjaGVmZmVuZWdnZXJAbmV0YXBwLmNvbQ0KDQo+DQoNCj4NCg0KPiA8aW1hZ2UwMDQu anBnPg0KDQo+DQoNCj4gPGltYWdlMDA2LmpwZz4gPGltYWdlMDEyLmpwZz4NCg0KPiAgI0RhdGFE cml2ZW4NCg0KPg0KDQo+IGh0dHBzOi8vdHMubGEvcmljaGFyZDQ5ODkyDQoNCg0KDQotLS0tLS0N Cg0KUmFuZGFsbCBTdGV3YXJ0DQoNCnJyc0BuZXRmbGl4LmNvbQ0KDQoNCg0KDQoNCg0K