From owner-freebsd-transport@freebsd.org Tue Sep 15 14:35:13 2020 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 DAE113D4AD3 for ; Tue, 15 Sep 2020 14:35:13 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-eopbgr770050.outbound.protection.outlook.com [40.107.77.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-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 4BrQk86lbyz49kB for ; Tue, 15 Sep 2020 14:35:12 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O8sgRuJGb7lh5KB/LZoetMRbhJd3yU5Gd4tdAdWQYwsh49OKu7zLBhZE4DBznqfhjMHva6Yhu2B0PGPB+L/h1SawDjWSQ4Ki/jyCAEB4I/ovh+E/jkuSNs8G4U/UgVU0tSddAvA84KBy4Hjzr/N/DA6TST6kFQdeyEp+qeCAGsKekwatojCO+tPK9mSYVYUxYx+my+oq75xw6aClyEEZbsx/gskXGdPOSq+nOO7zBEwLIN/41rx2zwjqjW9wgfafRnDTsi+xtaMVD5EY6P/UXdvdmALbU7gMkkmO0YhvUdf1hlsnt10IYGZoY/PG5H6gFXr2CRD/jzVi8Vd3Gs3xPA== 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=7G4lSOtg9kx5G5B+jQBeusW7+wqsDr2DPNcN3Y+jc2U=; b=kpY6y4aQ4a9UFgxwNWMMydWQE+IqGV4pHx+YCklUhmFV1rFak/EoIynQ00yhmkhmMlh51FhSCif2U3imvtVu+yjx8CyKmBacgA7kHLUqbjTdiAmPmnAh3564EXP8tdRXgg3mWBxqeZg5q2hp/yahKYDgl3XeVtgtomaDhOf9cdClFfKHzVTBTUTBoDPCndoL6EIMjP68StXxcXsH1iSgLrsolBvnwycRXleJvY/tW7STHTP7rf1xl/SW3egjrXX55jKK3AIBiBbr/Q9vVtZjo5lyH/dgJ9U7iLzC6MwuaxG06wyaieofrJykjyDmy/uux1ymdP2ohwcJExe5aO/Ndg== 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=selector1-netapp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7G4lSOtg9kx5G5B+jQBeusW7+wqsDr2DPNcN3Y+jc2U=; b=XiWYKBF8JGAXUgLXA58v/b3asrn/RPKzZ7aOHZj7MMAJj2wOfmdFSnXAKqi+AQ16i3ruAY4IsZxVmcA375zKtVaYsw/CtmQPhyapLHU3sRSmPs8YE/qJapcStxC8AmKe1O/J4/lB17N1uhABkQiJ57mBEbz6wkgoejms2EJWxA8= Received: from SN4PR0601MB3728.namprd06.prod.outlook.com (2603:10b6:803:51::24) by SN6PR06MB4541.namprd06.prod.outlook.com (2603:10b6:805:95::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.11; Tue, 15 Sep 2020 14:35:10 +0000 Received: from SN4PR0601MB3728.namprd06.prod.outlook.com ([fe80::84a9:fc74:7eed:ca3a]) by SN4PR0601MB3728.namprd06.prod.outlook.com ([fe80::84a9:fc74:7eed:ca3a%7]) with mapi id 15.20.3370.019; Tue, 15 Sep 2020 14:35:10 +0000 From: "Scheffenegger, Richard" To: Liang Tian CC: FreeBSD Transport Subject: RE: Fast recovery ssthresh value Thread-Topic: Fast recovery ssthresh value Thread-Index: AQHWeNGXKLXrd0Ypk0G/FpBfyhwhfqlGGMBAgBqPXACAARNjQIABNHEAgAA7XmCAAJ24gIAF8pSg Date: Tue, 15 Sep 2020 14:35:10 +0000 Message-ID: References: In-Reply-To: Accept-Language: de-AT, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [185.236.167.136] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9b5e69f4-1c11-473c-3d23-08d859848cd0 x-ms-traffictypediagnostic: SN6PR06MB4541: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 26m5hxAyIm1hUuJAFfDa1hvaWIFJE8fukzhwpq5vjC6nfx15dz5QRNxRDe/hJ+HeGnTdHO20+DDDfbgP6m9XMTyaCmTHn4ZVxCy0JJ3BQhBO9/bEroupED2o1avh7kAl3fQ6rnwMwQkKGGRd/OxdpBEzb6mO0LKnPHH7LXmCWolwPQbdCgOXVm0cG+O2MeIgVOm8k6DfqjQHUFhzh6NILwwz9R27KU2lnCF5cplUxFwoWCKPjDQLASlx8O9TaPIwAzzYYm9ojB9EhP3/0sGguVykahgbHQzqxIJHBguC9OLChxqK4rXubMvRh01J6sB3VpiFPRP3cOuORmhrNwsWu9W2ctoJLD/Fj/XpYEmUue2WYMKvgdUmMpZaH5vhPI7qPPgKf7CdOPJWtK+bAvdiwg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN4PR0601MB3728.namprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(136003)(366004)(39860400002)(376002)(396003)(186003)(9686003)(55016002)(30864003)(7696005)(966005)(33656002)(26005)(53546011)(478600001)(6506007)(76116006)(86362001)(2906002)(316002)(66946007)(4326008)(5660300002)(66556008)(64756008)(66446008)(8676002)(52536014)(83380400001)(8936002)(6916009)(3480700007)(71200400001)(66476007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: HGLBOs3d75vmi0Ri0PRgNfX7WIgNRixnKB+HnzEDYkoERVfns4dNHm7WW5cCQkuWTq/oXn9/T3QCwrmtDH4VLkJqRo6Sls0cPzCKEtHGYPjkWStpSCL9wEP4WSSs7RbUq461tZLatqadcFt64goWLlD4lwwPl43GCiFv/JhjBt4AwZ5JsgX00loLzSUG5NZZMWGY5d3I7YBYVgd623YFZl2yG63IpTrNXx2jKNKSg66syHrBC2t37Z9D8mVn0j5CPxgQC3fbsl17ja9cdim8DqUWiwqGqdY4g3RRaWzmPuXurCtSSxoAV5I3k+jB0+gWCAxdggg/Lq5c9P+kTlXsAoriV36yfv3h0q9Cen7xquud3VreNZ/mHCVs77gDk7R8XX1o0nEPmex+L2sG6O/fNQnyL46baVIIjLGcBqHHywHz6z9yT9JfOjjD0caCkD591F2CASf39Jr54A/gNgck6GQMnRdL3IG3EgsWaKtwB6MBVoLEzkupA0+N++2T/G3QJ2xCJoq90/jEYF/hn5MFBW2zLNsC5BZg1wLVl4rPFmIVkdPNLiErf8vDWg0XdHvW9j/hjX428ZXWyw4eDYkS7zOnmlCN0bOvu2QRfrE0kr4+5ENfQxzxuIDcxnHiuXbU8AFr9yibVxUICUYtpnMmXg== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: netapp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN4PR0601MB3728.namprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b5e69f4-1c11-473c-3d23-08d859848cd0 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Sep 2020 14:35:10.4548 (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: nHiepB+Hp+CcHe0xCt2KlT5O/3hDPgfnSj9ahd49YyCfuVQO2usB9PCBx8BMiNIBWV/NVP1j/UkaSBU/u8YX0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR06MB4541 X-Rspamd-Queue-Id: 4BrQk86lbyz49kB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=netapp.onmicrosoft.com header.s=selector1-netapp-onmicrosoft-com header.b=XiWYKBF8; dmarc=none; spf=pass (mx1.freebsd.org: domain of Richard.Scheffenegger@netapp.com designates 40.107.77.50 as permitted sender) smtp.mailfrom=Richard.Scheffenegger@netapp.com X-Spamd-Result: default: False [-2.62 / 15.00]; HAS_XOIP(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; MIME_BASE64_TEXT_BOGUS(1.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[netapp.onmicrosoft.com:+]; MIME_BASE64_TEXT(0.10)[]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.23)[-0.233]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; NEURAL_HAM_MEDIUM(-0.96)[-0.962]; R_DKIM_ALLOW(-0.20)[netapp.onmicrosoft.com:s=selector1-netapp-onmicrosoft-com]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.02)[-1.022]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[netapp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[40.107.77.50:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.77.50:from]; MAILMAN_DEST(0.00)[freebsd-transport] X-BeenThere: freebsd-transport@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Discussions of transport level network protocols in FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Sep 2020 14:35:13 -0000 SGkgTGlhbmcsDQoNCkkgd2FzIGFib3V0IHRvIHNlbmQgb3V0IHRoaXMgZW1haWwgbm90aWZ5aW5n IHlvdSBvZiB0aGUgY2hhbmdlcyB0byB0aGUgcGF0Y2gsIHdoZXJlIHlvdSB1bmNvdmVyZWQgdGhl IGlzc3VlcyB3aXRoIFRTb3B0IGVuYWJsZWQgVENQIGZsb3dzLg0KDQpodHRwczovL3Jldmlld3Mu ZnJlZWJzZC5vcmcvRDE4ODkyDQoNCkNhbiB5b3UgcGxlYXNlIHJlLXBhdGNoIHlvdXIgdGVzdCBt YWNoaW5lIHdpdGggdGhpcyB1cGRhdGVkIHZlcnNpb24gKEkgZml4ZWQgb25lIG1lcmdlIGlzc3Vl IGR1ZSB0byB3aGl0ZXNwYWNlIGNsZWFudXAgcmVjZW50bHkgdG9vLCBzbyBpdCBzaG91bGQgYXBw bHkgY2xlYW5seSB0byBIRUFEIG5vdykuDQoNClBsZWFzZSBsZXQgdXMga25vdyBhbmQgc2hhcmUg YW55IGNvbW1lbnRzIGFuZCBjcml0aWNpc20gYWJvdXQgdGhpcyBwYXRjaCENCg0KVGhhbmtzIGFn YWluIGZvciB0ZXN0aW5nIC0gYW5kIGZpbmRpbmcgdGhlIG92ZXJsb29rZWQgY29tYmluYXRpb24g d2l0aCB0aW1lc3RhbXBzLg0KDQoNClJpY2hhcmQgU2NoZWZmZW5lZ2dlcg0KDQotLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTGlhbmcgVGlhbiA8bC50aWFuLmVtYWlsQGdtYWlsLmNv bT4gDQpTZW50OiBGcmVpdGFnLCAxMS4gU2VwdGVtYmVyIDIwMjAgMTk6MDINClRvOiBTY2hlZmZl bmVnZ2VyLCBSaWNoYXJkIDxSaWNoYXJkLlNjaGVmZmVuZWdnZXJAbmV0YXBwLmNvbT4NCkNjOiBG cmVlQlNEIFRyYW5zcG9ydCA8ZnJlZWJzZC10cmFuc3BvcnRAZnJlZWJzZC5vcmc+DQpTdWJqZWN0 OiBSZTogRmFzdCByZWNvdmVyeSBzc3RocmVzaCB2YWx1ZQ0KDQpOZXRBcHAgU2VjdXJpdHkgV0FS TklORzogVGhpcyBpcyBhbiBleHRlcm5hbCBlbWFpbC4gRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9w ZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNvZ25pemUgdGhlIHNlbmRlciBhbmQga25vdyB0 aGUgY29udGVudCBpcyBzYWZlLg0KDQoNCg0KDQpIaSBSaWNoYXJkLA0KDQpJbml0aWFsIHRlc3Rz IHNob3cgUFJSIGlzIGRvaW5nIHF1aXRlIHdlbGwuIFNlZSB0cmFjZSBiZWxvdyBzaG93aW5nIHJl c3BvbnNlIHRvIFRTdmFsIDI3MTMzODE5MTYgYW5kIDI3MTMzODE5MTcuDQpJIGhhdmUgYSBjb21t ZW50IG9uIHRoZSBwYXRjaDogSSB0aGluayBhbGwgdGhlIHRwLT50X21heHNlZyBzaG91bGQgYmUg cmVwbGFjZWQgd2l0aCBtYXhzZWcgaW4gdGhlIGRpZmYgKGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNk Lm9yZy9EMTg4OTIpLA0Kd2hlcmUgbWF4c2VnID0gdGNwX21heHNlZyh0cCkuIFRoaXMgd2lsbCB0 YWtlIFRDUCBvcHRpb25zKHRpbWVzdGFtcCBpbiB0aGlzIGNhc2UpIGludG8gYWNjb3VudCBhbmQg YXZvaWQgc2VuZGluZyB0aGUgdGlueWdyYW1zIHdpdGggbGVuIDEyMCBhbmQgMzYgaW4gdGhlIHRy YWNlIGJlbG93Lg0KSW50ZXJlc3RpbmdseSB3ZSB3ZXJlIGFsc28gY2hhc2luZyBhbm90aGVyIGlz c3VlIHdoZXJlIHdlIHNlZSBhIGxvdCBvZg0KMTIgYnl0ZXMgc2VnbWVudHMgd2hlbiByZXRyYW5z bWlzc2lvbiBoYXBwZW5zKGJlZm9yZSBhcHBseWluZyBQUlQgcGF0Y2gpLCB3ZSBhcmUgc3VzcGVj dGluZyB0aGUgbWl4ZWQgdXNhZ2Ugb2YgdF9tYXhzZWcgYW5kIG1heHNlZyA9DQp0Y3BfbWF4c2Vn KHRwKSBpbiB0aGUgdGNwIGNvZGUgaXMgY2F1c2luZyB0aGlzOiB0aGUgQ0NBIG1vZHVsZXMgYXJl IGFsbCB1c2luZyB0X21heHNlZyBmb3IgQ1dORCBpbmNyZWFzZSBpbnN0ZWFkIG9mIGVmZmVjdGl2 ZSBTTVNTLg0KDQpbVENQIER1cCBBQ0sgNDE1NDEjM10gNTI0NjYgID4gIDgwIFtBQ0tdIFNlcT0x NTYgQWNrPTQ0NTk2NDQxDQpXaW49MzE0NDcwNCBMZW49MCBUU3ZhbD0yNzEzMzgxOTE0IFRTZWNy PTE2MzY2MDQ3MzAgU0xFPTQ2Nzg1MzE3DQpTUkU9NDY3OTA4NjkNCltUQ1AgRHVwIEFDSyA0MTU0 MSM0XSA1MjQ2NiAgPiAgODAgW0FDS10gU2VxPTE1NiBBY2s9NDQ1OTY0NDENCldpbj0zMTQ0NzA0 IExlbj0wIFRTdmFsPTI3MTMzODE5MTYgVFNlY3I9MTYzNjYwNDczMCBTTEU9NDY3ODUzMTcNClNS RT00NjgwNDc0OQ0KW1RDUCBEdXAgQUNLIDQxNTQxIzVdIDUyNDY2ICA+ICA4MCBbQUNLXSBTZXE9 MTU2IEFjaz00NDU5NjQ0MQ0KV2luPTMxNDQ3MDQgTGVuPTAgVFN2YWw9MjcxMzM4MTkxNyBUU2Vj cj0xNjM2NjA0NzMwIFNMRT00Njc4NTMxNw0KU1JFPTQ2ODA4OTEzDQpbVENQIE91dC1PZi1PcmRl cl0gODAgID4gIDUyNDY2IFtBQ0tdIFNlcT00NDU5Nzg1MyBBY2s9MTU2IFdpbj0xMDQ4NTc2DQpM ZW49MTM4OCBUU3ZhbD0xNjM2NjA0OTA0IFRTZWNyPTI3MTMzODE5MTYgW1RDUCBPdXQtT2YtT3Jk ZXJdIDgwICA+ICA1MjQ2NiBbQUNLXSBTZXE9NDQ1OTkyNDEgQWNrPTE1NiBXaW49MTA0ODU3Ng0K TGVuPTEzODggVFN2YWw9MTYzNjYwNDkwNCBUU2Vjcj0yNzEzMzgxOTE2IFtUQ1AgT3V0LU9mLU9y ZGVyXSA4MCAgPiAgNTI0NjYgW0FDS10gU2VxPTQ0NjAwNjI5IEFjaz0xNTYgV2luPTEwNDg1NzYN Ckxlbj0xMzg4IFRTdmFsPTE2MzY2MDQ5MDQgVFNlY3I9MjcxMzM4MTkxNiBbVENQIE91dC1PZi1P cmRlcl0gODAgID4gIDUyNDY2IFtBQ0tdIFNlcT00NDYwMjAxNyBBY2s9MTU2IFdpbj0xMDQ4NTc2 DQpMZW49MTM4OCBUU3ZhbD0xNjM2NjA0OTA0IFRTZWNyPTI3MTMzODE5MTYgW1RDUCBPdXQtT2Yt T3JkZXJdIDgwICA+ICA1MjQ2NiBbQUNLXSBTZXE9NDQ2MDM0MDUgQWNrPTE1NiBXaW49MTA0ODU3 Ng0KTGVuPTEzODggVFN2YWw9MTYzNjYwNDkwNCBUU2Vjcj0yNzEzMzgxOTE2IFtUQ1AgT3V0LU9m LU9yZGVyXSA4MCAgPiAgNTI0NjYgW0FDS10gU2VxPTQ0NjA0NzkzIEFjaz0xNTYgV2luPTEwNDg1 NzYNCkxlbj0xMzg4IFRTdmFsPTE2MzY2MDQ5MDQgVFNlY3I9MjcxMzM4MTkxNiBbVENQIE91dC1P Zi1PcmRlcl0gODAgID4gIDUyNDY2IFtBQ0tdIFNlcT00NDYwNjE4MSBBY2s9MTU2IFdpbj0xMDQ4 NTc2DQpMZW49MTM4OCBUU3ZhbD0xNjM2NjA0OTA0IFRTZWNyPTI3MTMzODE5MTYgW1RDUCBPdXQt T2YtT3JkZXJdIDgwICA+ICA1MjQ2NiBbQUNLXSBTZXE9NDQ2MDc1NjkgQWNrPTE1NiBXaW49MTA0 ODU3Ng0KTGVuPTEzODggVFN2YWw9MTYzNjYwNDkwNCBUU2Vjcj0yNzEzMzgxOTE2IFtUQ1AgT3V0 LU9mLU9yZGVyXSA4MCAgPiAgNTI0NjYgW0FDS10gU2VxPTQ0NjA4OTU3IEFjaz0xNTYgV2luPTEw NDg1NzYNCkxlbj0xMzg4IFRTdmFsPTE2MzY2MDQ5MDQgVFNlY3I9MjcxMzM4MTkxNiBbVENQIE91 dC1PZi1PcmRlcl0gODAgID4gIDUyNDY2IFtBQ0tdIFNlcT00NDYxMDM0NSBBY2s9MTU2IFdpbj0x MDQ4NTc2DQpMZW49MTM4OCBUU3ZhbD0xNjM2NjA0OTA0IFRTZWNyPTI3MTMzODE5MTYgW1RDUCBP dXQtT2YtT3JkZXJdIDgwICA+ICA1MjQ2NiBbQUNLXSBTZXE9NDQ2MTE3MzMgQWNrPTE1NiBXaW49 MTA0ODU3Ng0KTGVuPTEyMCBUU3ZhbD0xNjM2NjA0OTA0IFRTZWNyPTI3MTMzODE5MTYgW1RDUCBP dXQtT2YtT3JkZXJdIDgwICA+ICA1MjQ2NiBbQUNLXSBTZXE9NDQ2MTE4NTMgQWNrPTE1NiBXaW49 MTA0ODU3Ng0KTGVuPTEzODggVFN2YWw9MTYzNjYwNDkwNSBUU2Vjcj0yNzEzMzgxOTE3IFtUQ1Ag T3V0LU9mLU9yZGVyXSA4MCAgPiAgNTI0NjYgW0FDS10gU2VxPTQ0NjEzMjQxIEFjaz0xNTYgV2lu PTEwNDg1NzYNCkxlbj0xMzg4IFRTdmFsPTE2MzY2MDQ5MDUgVFNlY3I9MjcxMzM4MTkxNyBbVENQ IE91dC1PZi1PcmRlcl0gODAgID4gIDUyNDY2IFtBQ0tdIFNlcT00NDYxNDYyOSBBY2s9MTU2IFdp bj0xMDQ4NTc2DQpMZW49MTM4OCBUU3ZhbD0xNjM2NjA0OTA1IFRTZWNyPTI3MTMzODE5MTcgW1RD UCBPdXQtT2YtT3JkZXJdIDgwICA+ICA1MjQ2NiBbQUNLXSBTZXE9NDQ2MTYwMTcgQWNrPTE1NiBX aW49MTA0ODU3Ng0KTGVuPTM2IFRTdmFsPTE2MzY2MDQ5MDUgVFNlY3I9MjcxMzM4MTkxNyBbVENQ IER1cCBBQ0sgNDE1NDEjNl0gNTI0NjYgID4gIDgwIFtBQ0tdIFNlcT0xNTYgQWNrPTQ0NTk2NDQx DQpXaW49MzE0NDcwNCBMZW49MCBUU3ZhbD0yNzEzMzgxOTI1IFRTZWNyPTE2MzY2MDQ3MzAgU0xF PTQ2Nzg1MzE3DQpTUkU9NDY4NjcyMDkNCltUQ1AgT3V0LU9mLU9yZGVyXSA4MCAgPiAgNTI0NjYg W0FDS10gU2VxPTQ0NjE2MDUzIEFjaz0xNTYgV2luPTEwNDg1NzYNCkxlbj0xMzg4IFRTdmFsPTE2 MzY2MDQ5MTIgVFNlY3I9MjcxMzM4MTkyNSBbVENQIE91dC1PZi1PcmRlcl0gODAgID4gIDUyNDY2 IFtBQ0tdIFNlcT00NDYxNzQ0MSBBY2s9MTU2IFdpbj0xMDQ4NTc2DQpMZW49MTM4OCBUU3ZhbD0x NjM2NjA0OTEyIFRTZWNyPTI3MTMzODE5MjUNCg0KVGhhbmtzLA0KTGlhbmcNCi4uLg0KDQpPbiBG cmksIFNlcCAxMSwgMjAyMCBhdCAzOjQwIEFNIFNjaGVmZmVuZWdnZXIsIFJpY2hhcmQgPFJpY2hh cmQuU2NoZWZmZW5lZ2dlckBuZXRhcHAuY29tPiB3cm90ZToNCj4NCj4gUGVyZmVjdCENCj4NCj4g UGxlYXNlIHNoYXJlIHlvdXIgZmluZGluZ3MgdGhlbiwgYXMgcmV2aWV3cyAoaW5jbHVkaW5nIGlu Zm9ybWFsIG9uZXMpIGFyZSBuZWVkZWQgcHJpb3IgdG8gbWUgY29tbWl0dGluZyB0aGlzIHBhdGNo Lg0KPg0KPiBOb3RlIHRoYXQgaXQgYnVpbGRzIHVwb24gRDE4NjI0LCB3aGljaCBpcyBjdXJyZW50 bHkgaW4gc3RhYmxlLzEyIGFuZCBoZWFkLCBidXQgbm90IGFueSByZWxlYXNlZCBicmFuY2hlcy4g U28geW91IG1heSBuZWVkIHRvIGFwcGx5IHRoYXQgdG9vIGlmIHlvdSBhcmVuJ3QgdXNpbmcgaGVh ZC4NCj4NCj4gQmVzdCByZWdhcmRzLA0KPg0KPg0KPiBSaWNoYXJkIFNjaGVmZmVuZWdnZXINCj4N Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGlhbmcgVGlhbiA8bC50aWFu LmVtYWlsQGdtYWlsLmNvbT4NCj4gU2VudDogRnJlaXRhZywgMTEuIFNlcHRlbWJlciAyMDIwIDA2 OjA2DQo+IFRvOiBTY2hlZmZlbmVnZ2VyLCBSaWNoYXJkIDxSaWNoYXJkLlNjaGVmZmVuZWdnZXJA bmV0YXBwLmNvbT47IEZyZWVCU0QgDQo+IFRyYW5zcG9ydCA8ZnJlZWJzZC10cmFuc3BvcnRAZnJl ZWJzZC5vcmc+DQo+IFN1YmplY3Q6IFJlOiBGYXN0IHJlY292ZXJ5IHNzdGhyZXNoIHZhbHVlDQo+ DQo+IE5ldEFwcCBTZWN1cml0eSBXQVJOSU5HOiBUaGlzIGlzIGFuIGV4dGVybmFsIGVtYWlsLiBE byBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IHJlY29nbml6 ZSB0aGUgc2VuZGVyIGFuZCBrbm93IHRoZSBjb250ZW50IGlzIHNhZmUuDQo+DQo+DQo+DQo+DQo+ IEhpIFJpY2hhcmQsDQo+DQo+IFRoYW5rcyEgSSdtIGFibGUgdG8gYXBwbHkgdGhlIHBhdGNoZXMu IEknbGwgdGVzdCBpdC4NCj4NCj4gUmVnYXJkcywNCj4gTGlhbmcNCj4NCj4NCj4NCj4gT24gVGh1 LCBTZXAgMTAsIDIwMjAgYXQgNTo0OSBBTSBTY2hlZmZlbmVnZ2VyLCBSaWNoYXJkIDxSaWNoYXJk LlNjaGVmZmVuZWdnZXJAbmV0YXBwLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBIaSBMaWFuZywNCj4g Pg0KPiA+IFllcywgeW91IGFyZSBhYnNvbHV0ZWx5IGNvcnJlY3QgYWJvdXQgdGhpcyBvYnNlcnZh dGlvbi4gVGhlIFNBQ0sgbG9zcyByZWNvdmVyeSB3aWxsIG9ubHkgc2VuZCAgb25lIE1TUyBwZXIg cmVjZWl2ZWQgQUNLIHJpZ2h0IG5vdyAtIGFuZCB3aGVuIHRoZXJlIGlzIEFDSyB0aGlubmluZyBw cmVzZW50LCB3aWxsIGZhaWwgdG8gdGltZWx5IHJlY292ZXIgYWxsIHRoZSBtaXNzaW5nIHBhY2tl dHMsIGV2ZW50dWFsbHkgcmVjZWl2aW5nIG5vIG1vcmUgQUNLIHRvIGNsb2NrIG91dCBtb3JlIHJl dHJhbnNtaXNzaW9ucy4uLg0KPiA+DQo+ID4gSSBoYXZlIGEgRGlmZiBpbiByZXZpZXcsIHRvIGlt cGxlbWVudCBQcm9wb3J0aW9uYWwgUmF0ZSBSZWR1Y3Rpb246DQo+ID4NCj4gPiBodHRwczovL3Jl dmlld3MuZnJlZWJzZC5vcmcvRDE4ODkyDQo+ID4NCj4gPiBXaGljaCBzaG91bGQgYWRkcmVzcyBu b3Qgb25seSB0aGF0IGlzc3VlIGFib3V0IEFDSyB0aGlubmluZywgYnV0IGFsc28gdGhlIGlzc3Vl IHRoYXQgY3VycmVudCBTQUNLIGxvc3MgcmVjb3ZlcnkgaGFzIHRvIHdhaXQgdW50aWwgcGlwZSBk cm9wcyBiZWxvdyBzc3RocmVzaCwgYmVmb3JlIHRoZSByZXRyYW5zbWlzc2lvbnMgYXJlIGNsb2Nr ZWQgb3V0LiBBbmQgdGhlbiwgdGhleSB3b3VsZCBhY3R1YWxseSBiZSBjbG9ja2VkIG91dCBhdCB0 aGUgc2FtZSByYXRlIGF0IHRoZSBpbmNvbWluZyBBQ0tzLiBUaGlzIHdvdWxkIGJlIHRoZSBzYW1l IHJhdGUgYXMgd2hlbiB0aGUgb3ZlcmxvYWQgaGFwcGVuZWQgKGJhcnJpbmcgYW55IEFDSyB0aGlu bmluZyksIGFuZCBhcyBhIHNlY29uZGFyeSBlZmZlY3QsIGl0IHdhcyBvYnNlcnZlZCB0aGF0IHRo aXMgYmVoYXZpb3IgdG9vIGNhbiBsZWFkIHRvIHNlbGYtaW5mbGljdGVkIGxvc3MgLSBvZiByZXRy YW5zbWlzc2lvbnMuDQo+ID4NCj4gPiBJZiB5b3UgaGF2ZSB0aGUgYWJpbGl0eSB0byBwYXRjaCB5 b3VyIGtlcm5lbCB3aXRoIEQxODg5MiBhbmQgb2JzZXJ2ZSBob3cgdGhlIHJlYWN0aW9uIGlzIGlu IHlvdXIgZHJhbWF0aWMgQUNLIHRoaW5uaW5nIHNjZW5hcmlvLCB0aGF0IHdvdWxkIGJlIGdvb2Qg dG8ga25vdyEgVGhlIGFzc3VtcHRpb24gb2YgdGhlIFBhdGNoIHdhcywgdGhhdCAtIGFzIHBlciBU Q1AgUkZDIHJlcXVpcmVtZW50cyAtIHRoZXJlIGlzIG9uZSBBQ0sgZm9yIGVhY2ggcmVjZWl2ZWQg b3V0LW9mLXNlcXVlbmNlIGRhdGEgc2VnbWVudCwgYW5kIEFDSyBkcm9wcyAvIHRoaW5uaW5nIGFy ZSBub3QgaGFwcGVuaW5nIG9uIHN1Y2ggYSBtYXNzaXZlIHNjYWxlIGFzIHlvdSBkZXNjcmliZSBp dC4NCj4gPg0KPiA+IEJlc3QgcmVnYXJkcywNCj4gPg0KPiA+IFJpY2hhcmQgU2NoZWZmZW5lZ2dl cg0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBvd25lci1m cmVlYnNkLXRyYW5zcG9ydEBmcmVlYnNkLm9yZw0KPiA+IDxvd25lci1mcmVlYnNkLXRyYW5zcG9y dEBmcmVlYnNkLm9yZz4gT24gQmVoYWxmIE9mIExpYW5nIFRpYW4NCj4gPiBTZW50OiBNaXR0d29j aCwgOS4gU2VwdGVtYmVyIDIwMjAgMTk6MTYNCj4gPiBUbzogU2NoZWZmZW5lZ2dlciwgUmljaGFy ZCA8UmljaGFyZC5TY2hlZmZlbmVnZ2VyQG5ldGFwcC5jb20+DQo+ID4gQ2M6IEZyZWVCU0QgVHJh bnNwb3J0IDxmcmVlYnNkLXRyYW5zcG9ydEBmcmVlYnNkLm9yZz4NCj4gPiBTdWJqZWN0OiBSZTog RmFzdCByZWNvdmVyeSBzc3RocmVzaCB2YWx1ZQ0KPiA+DQo+ID4gSGkgUmljaGFyZCwNCj4gPg0K PiA+IFRoYW5rcyBmb3IgdGhlIGV4cGxhbmF0aW9uIGFuZCBzb3JyeSBmb3IgdGhlIGxhdGUgcmVw bHkuDQo+ID4gSSd2ZSBiZWVuIGludmVzdGlnYXRpbmcgU0FDSyBsb3NzIHJlY292ZXJ5IGFuZCBJ IHRoaW5rIEknbSBzZWVpbmcgYW4gDQo+ID4gaXNzdWUgc2ltaWxhciB0byB0aGUgQUJDIEwgdmFs dWUgaXNzdWUgdGhhdCBJIHJlcG9ydGVkDQo+ID4gcHJldmlvdXNseShodHRwczovL3Jldmlld3Mu ZnJlZWJzZC5vcmcvRDI2MTIwKSBhbmQgSSBkbyBiZWxpZXZlIHRoZXJlIGlzIGEgZGV2aWF0aW9u IHRvIFJGQzM1MTc6DQo+ID4gVGhlIGlzc3VlIGhhcHBlbnMgd2hlbiBhIER1cEFjayBpcyByZWNl aXZlZCBkdXJpbmcgU0FDSyBsb3NzIHJlY292ZXJ5IGluIHRoZSBwcmVzZW5jZSBvZiBBQ0sgVGhp bm5pbmcgb3IgcmVjZWl2ZXIgZW5hYmxpbmcgTFJPLCB3aGljaCBtZWFucyB0aGUgU0FDSyBibG9j ayBlZGdlcyBjb3VsZCBleHBhbmQgYnkgbW9yZSB0aGFuIDEgU01TUyhXZSd2ZSBzZWVuIDMwKlNN U1MpLCBpLmUuIGEgc2luZ2xlIER1cEFjayBjb3VsZCBkZWNyZW1lbnQgYHBpcGVgIGJ5IG1vcmUg dGhhbiAxIFNNU1MuDQo+ID4gSW4gUkZDMzUxNywNCj4gPiAoQykgSWYgY3duZCAtIHBpcGUgPj0g MSBTTVNTLCB0aGUgc2VuZGVyIFNIT1VMRCB0cmFuc21pdCBvbmUgb3IgbW9yZSBzZWdtZW50cy4u Lg0KPiA+ICAgICAgICAgKEMuNSkgSWYgY3duZCAtIHBpcGUgPj0gMSBTTVNTLCByZXR1cm4gdG8g KEMuMSkgU28gYmFzZWQgb24gUkZDLCB0aGUgc2VuZGVyIHNob3VsZCBiZSBhYmxlIHRvIHNlbmQg bW9yZSBzZWdtZW50cyBpZiBzdWNoIER1cEFjayBpcyByZWNlaXZlZCwgYmVjYXVzZSBvZiB0aGUg YmlnIGNoYW5nZSB0byBgcGlwZWAuDQo+ID4NCj4gPiBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRh dGlvbiwgdGhlIGN3aW4gdmFyaWFibGUsIHdoaWNoIGNvbnRyb2xzIHRoZSBhbW91bnQgb2YgZGF0 YSB0aGF0IGNhbiBiZSB0cmFuc21pdHRlZCBiYXNlZCBvbiB0aGUgbmV3IGluZm9ybWF0aW9uLCBp cyBkaWN0YXRlZCBieSBzbmRfY3duZC4gVGhlIHNuZF9jd25kIGlzIGluY3JlbWVudGVkIGJ5IDEg U01TUyBmb3IgZWFjaCBEdXBBY2sgcmVjZWl2ZWQuIEkgYmVsaWV2ZSB0aGlzIGVmZmVjdGl2ZWx5 IGxpbWl0cyB0aGUgcmV0cmFuc21pc3Npb24gdHJpZ2dlcmVkIGJ5IGVhY2ggRHVwQWNrIHRvIDEg U01TUyAtICBkZXZpYXRpb24uDQo+ID4gIDMwNyAgICAgICAgIGN3aW4gPQ0KPiA+ICAzMDggICAg ICAgICAgICAgaW1heChtaW4odHAtPnNuZF93bmQsIHRwLT5zbmRfY3duZCkgLSBzYWNrX2J5dGVz X3J4bXQsIDApOw0KPiA+DQo+ID4gQXMgYSByZXN1bHQsIFNBQ0sgaXMgbm90IGRvaW5nIGVub3Vn aCByZWNvdmVyeSBpbiB0aGlzIHNjZW5hcmlvIGFuZCBsb3NzIGhhcyB0byBiZSByZWNvdmVyZWQg YnkgUlRPLg0KPiA+IEFnYWluLCBJJ2QgYXBwcmVjaWF0ZSBmZWVkYmFjayBmcm9tIHRoZSBjb21t dW5pdHkuDQo+ID4NCj4gPiBSZWdhcmRzLA0KPiA+IExpYW5nIFRpYW4NCj4gPg0KPiA+DQo+ID4N Cj4gPg0KPiA+IE9uIFN1biwgQXVnIDIzLCAyMDIwIGF0IDM6NTYgUE0gU2NoZWZmZW5lZ2dlciwg UmljaGFyZCA8UmljaGFyZC5TY2hlZmZlbmVnZ2VyQG5ldGFwcC5jb20+IHdyb3RlOg0KPiA+ID4N Cj4gPiA+IEhpIExpYW5nLA0KPiA+ID4NCj4gPiA+IEluIFNBQ0sgbG9zcyByZWNvdmVyeSwgeW91 IGNhbiByZWNvdmVyIHVwIHRvIHNzdGhyZXNoIChwcmlvciBjd25kLzIgW29yIDcwJSBpbiBjYXNl IG9mIGN1YmljXSkgbG9zdCBieXRlcyAtIGF0IGxlYXN0IGluIHRoZW9yeS4NCj4gPiA+DQo+ID4g PiBJbiBjb21wYXJpc29uLCAoTmV3KVJlbm8gY2FuIG9ubHkgcmVjb3ZlciBvbmUgbG9zdCBwYWNr ZXQgcGVyIHdpbmRvdywgYW5kIHRoZW4ga2VlcHMgb24gdHJhbnNtaXR0aW5nIG5ldyBzZWdtZW50 cyAoYWNrICsgY3duZCksIGV2ZW4gYmVmb3JlIHRoZSByZWNlaXB0IG9mIHRoZSByZXRyYW5zbWl0 dGVkIHBhY2tldCBpcyBhY2tlZC4NCj4gPiA+DQo+ID4gPiBGb3IgaGlzdG9yaWMgcmVhc29ucywg dGhlIHNlbWFudGljIG9mIHRoZSB2YXJpYWJsZSBjd25kIGlzIG92ZXJsb2FkZWQgZHVyaW5nIGxv c3MgcmVjb3ZlcnksIGFuZCBpdCBkb2Vzbid0ICJyZWFsbHkiIGluZGljYXRlIGN3bmQsIGJ1dCBy YXRoZXIgaW5kaWNhdGVzIGlmL3doZW4gcmV0cmFuc21pc3Npb25zIGNhbiBoYXBwZW4uDQo+ID4g Pg0KPiA+ID4NCj4gPiA+IEluIGJvdGggY2FzZXMgKGFsc28gdGhlIHNpbXBsZSBvbmUsIHdpdGgg b25seSBvbmUgcGFja2V0IGxvc3MpLCBjd25kIHNob3VsZCBiZSBlcXVhbCAob3IgbmVhciBlcXVh bCkgdG8gc3N0aHJlc2ggYnkgdGhlIHRpbWUgbG9zcyByZWNvdmVyeSBpcyBmaW5pc2hlZCAtIGJ1 dCBOT1QgYmVmb3JlISBXaGlsZSBpdCBtYXkgYXBwZWFyIGxpa2Ugc2xvdy1zdGFydCwgdGhlIHZh bHVlIG9mIHRoZSBjd25kIHZhcmlhYmxlIHJlYWxseSBpbmNyZWFzZXMgYnkgYWNrZWRfYnl0ZXMg b25seSBwZXIgQUNLIChub3QgYWNrZWRfYnl0ZXMgKyBTTVNTKSwgc2luY2UgdGhlIGxlZnQgZWRn ZSAoc25kX3VuYSkgZG9lc24ndCBtb3ZlIHJpZ2h0IC0gdW5saWtlIGR1cmluZyBzbG93LXN0YXJ0 LiBCdXQgbnVtZXJpY2FsbHksIHRoZXNlIGRpZmZlcmVudCBwaGFzZXMgKHNsb3ctc3RhcnQgLyBz YWNrIGxvc3MtcmVjb3ZlcnkpIG1heSBhcHBlYXIgdmVyeSBzaW1pbGFyLg0KPiA+ID4NCj4gPiA+ IFlvdSBjb3VsZCBjaGVjayB0aGlzIHVzaW5nIHRoZSAobG9hZGFibGUpIFNJRlRSIG1vZHVsZSwg d2hpY2ggY2FwdHVyZXMgdF9mbGFncyAoaW5kaWNhdGluZyBpZiBjb25nL2xvc3MgcmVjb3Zlcnkg aXMgYWN0aXZlKSwgc3N0aHJlc2gsIGN3bmQsIGFuZCBvdGhlciBwYXJhbWV0ZXJzLg0KPiA+ID4N Cj4gPiA+IFRoYXQgaXMgYXQgbGVhc3QgaG93IHRoaW5ncyBhcmUgc3VwcG9zZWQgdG8gd29yazsg b3IgaGF2ZSB5b3UgaW52ZXN0aWdhdGVkIHRoZSB0aW1pbmcgYW5kIGJlaGF2aW9yIG9mIFNBQ0sg bG9zcyByZWNvdmVyeSBhbmQgZm91bmQgYSBkZXZpYXRpb24gdG8gUkZDMzUxNz8gTm90ZSB0aGF0 IEZCU0QgY3VycmVudGx5IGhhcyBub3QgZnVsbHkgaW1wbGVtZW50ZWQgUkZDNjY3NSBzdXBwb3J0 ICh3aGljaCBkZXZpYXRlcyBzbGlnaHRseSBmcm9tIDM1MTcgdW5kZXIgc3BlY2lmaWMgY2lyY3Vt c3RhbmNlczsgSSBoYXZlIGEgcGF0Y2ggcGVuZGluZyB0byBpbXBsZW1lbnRlIDY2NzUgcmVzY3Vl IHJldHJhbnNtaXNzaW9ucywgYnV0IGhhdmVuJ3QgdHdlYWtlZCB0aGUgb3RoZXIgYXNwZWN0cyBv ZiA2Njc1IHZzLiAzNTE3Lg0KPiA+ID4NCj4gPiA+IEJUVzogV2hpbGUgZnJlZWJzZC1uZXQgaXMg bm90IHRoZSB3cm9uZyBETCBwZXIgc2UsIFRDUCwgVURQLCBTQ1RQIHNwZWNpZmljIHF1ZXN0aW9u cyBjYW4gYWxzbyBiZSBwb3N0ZWQgdG8gZnJlZWJzZC10cmFuc3BvcnQsIHdoaWNoIGlzIG1vcmUg bmFycm93bHkgZm9jdXNlZC4NCj4gPiA+DQo+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gPg0KPiA+ ID4gUmljaGFyZCBTY2hlZmZlbmVnZ2VyDQo+ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+IEZyb206IG93bmVyLWZyZWVic2QtbmV0QGZyZWVic2Qub3JnIA0KPiA+ ID4gPG93bmVyLWZyZWVic2QtbmV0QGZyZWVic2Qub3JnPiBPbiBCZWhhbGYgT2YgTGlhbmcgVGlh bg0KPiA+ID4gU2VudDogU29ubnRhZywgMjMuIEF1Z3VzdCAyMDIwIDAwOjE0DQo+ID4gPiBUbzog ZnJlZWJzZC1uZXQgPGZyZWVic2QtbmV0QGZyZWVic2Qub3JnPg0KPiA+ID4gU3ViamVjdDogRmFz dCByZWNvdmVyeSBzc3RocmVzaCB2YWx1ZQ0KPiA+ID4NCj4gPiA+IEhpIGFsbCwNCj4gPiA+DQo+ ID4gPiBXaGVuIDMgZHVwYWNrcyBhcmUgcmVjZWl2ZWQgYW5kIFRDUCBlbnRlciBmYXN0IHJlY292 ZXJ5LCBpZiBTQUNLIGlzIHVzZWQsIHRoZSBDV05EIGlzIHNldCB0byBtYXhzZWc6DQo+ID4gPg0K PiA+ID4gMjU5MyAgICAgICAgICAgICAgICAgICAgIGlmICh0cC0+dF9mbGFncyAmIFRGX1NBQ0tf UEVSTUlUKSB7DQo+ID4gPiAyNTk0ICAgICAgICAgICAgICAgICAgICAgICAgIFRDUFNUQVRfSU5D KA0KPiA+ID4gMjU5NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGNwc19zYWNrX3JlY292 ZXJ5X2VwaXNvZGUpOw0KPiA+ID4gMjU5NiAgICAgICAgICAgICAgICAgICAgICAgICB0cC0+c25k X3JlY292ZXIgPSB0cC0+c25kX254dDsNCj4gPiA+IDI1OTcgICAgICAgICAgICAgICAgICAgICAg ICAgdHAtPnNuZF9jd25kID0gbWF4c2VnOw0KPiA+ID4gMjU5OCAgICAgICAgICAgICAgICAgICAg ICAgICAodm9pZCkgdHAtPnRfZmItPnRmYl90Y3Bfb3V0cHV0KHRwKTsNCj4gPiA+IDI1OTkgICAg ICAgICAgICAgICAgICAgICAgICAgZ290byBkcm9wOw0KPiA+ID4gMjYwMCAgICAgICAgICAgICAg ICAgICAgIH0NCj4gPiA+DQo+ID4gPiBPdGhlcndpc2UoU0FDSyBpcyBub3QgaW4gdXNlKSwgQ1dO RCBpcyBzZXQgdG8gbWF4c2VnIGJlZm9yZQ0KPiA+ID4gdGNwX291dHB1dCgpIGFuZCB0aGVuIHNl dCBiYWNrIHRvIHNuZF9zc3RocmVzaCtpbmZsYXRpb24NCj4gPiA+IDI2MDEgICAgICAgICAgICAg ICAgICAgICB0cC0+c25kX254dCA9IHRoLT50aF9hY2s7DQo+ID4gPiAyNjAyICAgICAgICAgICAg ICAgICAgICAgdHAtPnNuZF9jd25kID0gbWF4c2VnOw0KPiA+ID4gMjYwMyAgICAgICAgICAgICAg ICAgICAgICh2b2lkKSB0cC0+dF9mYi0+dGZiX3RjcF9vdXRwdXQodHApOw0KPiA+ID4gMjYwNCAg ICAgICAgICAgICAgICAgICAgIEtBU1NFUlQodHAtPnNuZF9saW1pdGVkIDw9IDIsDQo+ID4gPiAy NjA1ICAgICAgICAgICAgICAgICAgICAgICAgICgiJXM6IHRwLT5zbmRfbGltaXRlZCB0b28gYmln IiwNCj4gPiA+IDI2MDYgICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18pKTsNCj4gPiA+ IDI2MDcgICAgICAgICAgICAgICAgICAgICB0cC0+c25kX2N3bmQgPSB0cC0+c25kX3NzdGhyZXNo ICsNCj4gPiA+IDI2MDggICAgICAgICAgICAgICAgICAgICAgICAgIG1heHNlZyAqDQo+ID4gPiAy NjA5ICAgICAgICAgICAgICAgICAgICAgICAgICAodHAtPnRfZHVwYWNrcyAtIHRwLT5zbmRfbGlt aXRlZCk7DQo+ID4gPiAyNjEwICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUV9HVChvbnh0LCB0 cC0+c25kX254dCkpDQo+ID4gPiAyNjExICAgICAgICAgICAgICAgICAgICAgICAgIHRwLT5zbmRf bnh0ID0gb254dDsNCj4gPiA+IDI2MTIgICAgICAgICAgICAgICAgICAgICBnb3RvIGRyb3A7DQo+ ID4gPg0KPiA+ID4gSSdtIHdvbmRlcmluZyBpbiB0aGUgU0FDSyBjYXNlLCBzaG91bGQgQ1dORCBi ZSBzZXQgYmFjayB0byBzc3RocmVzaCh3aGljaCBoYXMgYmVlbiBzbGFzaGVkIGluIGNjX2Nvbmdf c2lnbmFsKCkgYSBmZXcgbGluZXMgYWJvdmUpIGJlZm9yZSBsaW5lIDI1OTksIGxpa2Ugbm9uLVNB Q0sgY2FzZSwgaW5zdGVhZCBvZiBkb2luZyBzbG93IHN0YXJ0IGZyb20gbWF4c2VnPw0KPiA+ID4g SSByZWFkIHJmYzY2NzUgYW5kIGEgZmV3IG90aGVycywgYW5kIGl0IGxvb2tzIGxpa2UgdGhhdCdz IHRoZSBjYXNlLiBJIGFwcHJlY2lhdGUgeW91ciBvcGluaW9uLCBhZ2Fpbi4NCj4gPiA+DQo+ID4g PiBUaGFua3MsDQo+ID4gPiBMaWFuZw0KPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCj4gPiA+IGZyZWVic2QtbmV0QGZyZWVic2Qub3JnIG1haWxp bmcgbGlzdCANCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5m by9mcmVlYnNkLW5ldA0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8gImZy ZWVic2QtbmV0LXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg0KPiA+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gZnJlZWJzZC10cmFuc3BvcnRAZnJl ZWJzZC5vcmcgbWFpbGluZyBsaXN0IA0KPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFp bG1hbi9saXN0aW5mby9mcmVlYnNkLXRyYW5zcG9ydA0KPiA+IFRvIHVuc3Vic2NyaWJlLCBzZW5k IGFueSBtYWlsIHRvICJmcmVlYnNkLXRyYW5zcG9ydC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyIN Cg==