From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0067.outbound.protection.outlook.com [157.56.112.67]) by lists.bufferbloat.net (Postfix) with ESMTPS id 721063B2B2 for ; Mon, 11 Jan 2016 15:33:29 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=DarbyshireBryant.onmicrosoft.com; s=selector1-darbyshirebryant-me-uk02e; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=JgdAljfRzyaAvgsnrCkLEvWUuB8x1zNVDUeprU7jrwg=; b=dvWpEuyhHkG4A6n2QHHGrclh4IJRuCr+5T2L61cd3n4nFaf510L+ekdXMp+fx4Xl2q3iWidTufHQVyVTNxf4QP9MsjlQd+zv5l/1w+YgimrRfYLrpgP6P5oIylktDXKTAgcpphzIJGV9WyNxVzgmh1XfTUfXeTdUtm0oGJ87NxE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kevin@darbyshire-bryant.me.uk; Received: from [IPv6:2001:470:183f:da2b::632f:a7da] (2001:470:183f:da2b::632f:a7da) by HE1PR07MB0939.eurprd07.prod.outlook.com (10.162.27.145) with Microsoft SMTP Server (TLS) id 15.1.361.13; Mon, 11 Jan 2016 20:33:27 +0000 To: References: <5693E8FA.4000803@darbyshire-bryant.me.uk> From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <56941191.1010601@darbyshire-bryant.me.uk> Date: Mon, 11 Jan 2016 20:33:21 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms090806090209020008060001" X-Originating-IP: [2001:470:183f:da2b::632f:a7da] X-ClientProxiedBy: AM3PR06CA034.eurprd06.prod.outlook.com (10.141.192.152) To HE1PR07MB0939.eurprd07.prod.outlook.com (25.162.27.145) X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0939; 2:LjezHCEFk2ZRsqLIo4KHDcocZhQv9nmq60h3jgH/dVQKezw34AnUzIS6NKsIlq/tlLQ6L+L1WQTHyrSm4WyucwN5A+TvH8/qbmlFXCrRGSwpXLC8dCu7YDcvio0cylQ1Vub4T4+dADbFFcGn9exitA==; 3:Ku/RbN2TkIrk3iZZ/JbYYsdFl+K/SNs6j+y1c7mAbD2nu12mRKJxG/BbUc5F6Yx5xTy16H8Xfs6txtfLy7B5stLwoDEYPFKY1ZmJtPKhv2Ar9raxIyOxHZcDvvZEKkTj; 25:dJCrZAHwY44q5Z07KYEokUT0dJFZziRKIHokbI9leiaYpzNcANai79jOl9I3+u/MmvRYUPsDi6TghpxhU/8n5Vw97AkhJyyKeEoG/FalMv0ninrKaTSeRuVtykqjks4t5yuXrjhOFqzCoEHMLprF1mp+gZkWM7IpdKPhe3g5pb/+sgQBeE7ovvQXt+zT6oODv9Mq5wN+jHFQy6DvU/oIpycGkyDOpFzRReIcFiNjY7QsBBMV2AJqAZXJkCmyDSIN; 4:cj8eRCo3WwfKKSt9zrNf4cv+o95TTjd0PMdp/LC+pXo392u+zrpexhrYU/mDKaELnsn6g/cMBGr2FEcXzLhxHgwYAZ0nHuHcr5wa2shbdwTh1rhLSOG8lO5u6WH2pSzjW9QFDhvhE+LCLgxxEZSP7yUc4yQsIUSQ1Q6x8yGLS9TIPAvSNz1et20IPR1pc4eunvM1Edm1xZ+Iy4Xz1F8XsaP9XQ4e3Ex9aoUXyDZuO+Qj9nOK/dqLSTzNTPJtPNzd9CwwmkcUqzp+t//L8CQewDMadp+TTXqaOfeSLThVbdWG4ishKW/bDxvUsKg7adBwkr+GH8lEPyd3Qd5Ju7ioi6nGE46lZCaBME8AMccswAzen9t+MkJc2+GC8hdb255X X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR07MB0939; X-MS-Office365-Filtering-Correlation-Id: 684d73da-a5ed-4d35-d79b-08d31ac675e3 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001); SRVR:HE1PR07MB0939; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB0939; X-Forefront-PRVS: 0818724663 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(479174004)(24454002)(189002)(199003)(1096002)(97736004)(92566002)(101416001)(74482002)(87266999)(107886002)(6116002)(19580405001)(512874002)(4001350100001)(76176999)(5004730100002)(59896002)(54356999)(50986999)(5001960100002)(64126003)(77096005)(19580395003)(122386002)(40100003)(110136002)(65816999)(99136001)(81156007)(450100001)(86362001)(1706002)(106356001)(65956001)(2950100001)(568964002)(5890100001)(586003)(105586002)(5008740100001)(36756003)(189998001)(65806001)(84326002)(83506001)(117636001)(87976001)(2351001)(42186005)(2906002)(3826002)(62816006); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR07MB0939; H:[IPv6:2001:470:183f:da2b::632f:a7da]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: darbyshire-bryant.me.uk does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB0939; 23:gc5bkm6jmx3o0RAGnCI+kn91O8DLtMIuJxSZwElch?= =?us-ascii?Q?GzOTZwJy2JFF4/fy4GRXX78SnCSzsMcp+4LcBKcU7gdPls6kBt35racCQdE6?= =?us-ascii?Q?jh5eegP5cc7/xftzw/SkWEiqIn3LbYZWMU/+MC9rzrPLS1ykZbt9YkiPzbZC?= =?us-ascii?Q?TvjtfvdsYt6/UKk5yRJwHKfF8YP3O1+aNAf9Ml+kZchcZBAfLxtEjEIJ5CId?= =?us-ascii?Q?ycZGDwz3Sb5m5X7Luj0KGWNaPg2istvY+toyqsSX8d7rdzGEu/NPU3K722Bx?= =?us-ascii?Q?1CetDqoCcoL3oHFxKrkbLRNSAXTuRlCRKVL4gRwo+AnsAEpVpdY3XJmaQydI?= =?us-ascii?Q?sJiUEGdkvpv0RZGWCc3AGP3dnxjQ6dbWThGl7rkDU4ERO3sUVRpk8XIRTNVM?= =?us-ascii?Q?NztXQ+NHaCjkn+CMJH61wqujo+dRXeh7FyTVF5BEN8IqCsy0Q8TMAV/ZxMPN?= =?us-ascii?Q?dvr/iyZa4iHNJ0hNqvY/RP9Og6MBiKyNNrsMixDYzPxvo+meHesDk5w9MEr0?= =?us-ascii?Q?IQmnuLA0v8lGbtVlgYm0s4DBFdnbUh4MuLd++t+BvhzccD/N91K2siFPeiT7?= =?us-ascii?Q?29ZBNPuVKLq0UfowAkjhXE9RA29m+SJ8cgMj7R9q+cH57ofACnLuDGiydQkc?= =?us-ascii?Q?b8dDI704SLKoJCGH2b4VAgXw2cpAXFFVKcbGx7QACQ179Jux1QmFrhnmRuuv?= =?us-ascii?Q?pNQSBCIWYYnk+KlqD/0XY3x6s5RkOfKr1DFRmWYJs/k+SKlIWvUMiv1zf93N?= =?us-ascii?Q?dR0svrfvIi+A4qXLW91h8ekBwlFTyRQZ0TSPYrxM7/BtoB+tl/zL8mfjIdLe?= =?us-ascii?Q?wtMqyby6xwRgY5sTfl4X/wTiP3E9aqCLlmiwqoWnkEGNOBF1RNKckoGfm4mA?= =?us-ascii?Q?SkOymEZ783ruNJ9ZlLhcdb2WaG+cLGutrhQ2GDZvNNbDghXmqjcgCbVa5uqF?= =?us-ascii?Q?x3D4zSgmpMCXyZrg3XJov/MvY1nbUmbWoM8kw7/1ax/Rgcg4phjGGtXT3Ba/?= =?us-ascii?Q?mpeZLPcyvPID+wdMGr35U/lDjDzd3glBorOtOWqZAdOLSltCKEbtSqSt/XRZ?= =?us-ascii?Q?noszZkM5qv9trX8mg8jfFaM/HeSBhg7WJ0W1L9k/UrQSYy4yTbV3g9DueM43?= =?us-ascii?Q?0oHiYPgryQLOcwQQlfFMdYMRyY8lTMlHs4UMxpc9bRto6Kbd3le/FB/dIFQd?= =?us-ascii?Q?My9Q0Fu/+ZORBh1iXQl/YKWl3H68CTFeWTHvZHbPtZsmJvz9u1zpw7bH+gcf?= =?us-ascii?Q?ZjaG6Cg29brXG5c7w+/QUzTZvhukIRv1wFVmrM/ePBTO07LK9EUqdeAtpEaJ?= =?us-ascii?Q?Mi3j8G3cU8cFEVznUwr3XVmHsDtlvC/5lG3ZBhHr+NTxLzR1niLz6Emcw7BL?= =?us-ascii?Q?AOSo54Yo6U6EteF/n6sbMqXov8=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0939; 5:8TpwK6HTOCppivOXJsuBSphsB1sovhj1PfIZcaWbTMS8iAJtuqJLp3LA2BYx5j0jj0Q9thbcbC5wU7i1YAfGUZ59V0R3ZeB/mA1dLoeWxoTdYrcAiBA+pqyWVTAIfLwXEenOixjAf8IyOPYZG3t1+w==; 24:Wh65CfzVqA2JUswNEWTmzZBY+tp86RQr7RUjha2A1uJ0iknnwJ0hLTF94axc6dnvP719WgLrrshM2qExDaDpgsGRP0ih4A2exRKsatVehfU= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2016 20:33:27.1209 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB0939 Subject: Re: [Cake] triple flow isolation X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jan 2016 20:33:29 -0000 --------------ms090806090209020008060001 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 11/01/16 18:16, moeller0 wrote: > Hi Kevin, > > I agree the triple mode seems under-documented ;) Yes that's true but it is experimental after all - and I'm experimenting with it :-) >> On Jan 11, 2016, at 18:40 , Kevin Darbyshire-Bryant wrote: >> >> Hello List, >> >> I've been looking at latest 'triple flow isolation' features in latest= >> cake git and find myself confused. It's very likely to be a >> misunderstanding on my part, although if I'm confused I'm sure others >> will, sooner or later, fall into the same trap. >> >> I thought that triple flow was a solution such that a host with many >> elephant flows couldn't dominate the bandwidth consumption thus starvi= ng >> another host with just one elephant flow. I guess the typical example= >> is a 'bittorrent' host pulling data from many places vs a host pulling= >> data from a single place. My recent 'test' example was a host doing 4= >> simulatenous pulls of 9GByte+ files vs my wife downloading a movie via= >> the TV box downstairs. The bandwidth was evenly divided by the 5 flow= s, >> however my host got 4/5ths of the share. I didn't think this was >> supposed to happen with triple flow isolation? Ideally we'd both get >> 50% of the ISP bandwidth managed by my router (cake is running on the >> WAN facing interface to the ISP modem with appropriate bandwidth limit= s set) > I believe you would want src_host on egress and (post-NAT) dat-host on= ingress, assuming your goal is fairness by internal host, not external h= osts ;). Now the challenges are to get the post-NAT IP addresses on ingre= ss and how to counteract IPv6=E2=80=99s tendency to grow incredible amoun= ts of addresses by host. In theory all of this could be solved with fairn= ess by internal MAC addresses, except these will only work in a shallow n= etworks (as far as I understand). I would argue that wifi aggregation has= the same issue regarding IPv6, but I digress... Ah, yes, silly me - NAT. As you say pre-NAT internal source address on egress and post-NAT internal destination address on ingress. So the shaping to work, cake needs to be on the wan interface but that's too late to obtain the internal pre-NATed addresses. Oh dear. Help! --------------ms090806090209020008060001 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC DYEwggY0MIIEHKADAgECAgEeMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYD VQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0 ZSBTaWduaW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe Fw0wNzEwMjQyMTAxNTVaFw0xNzEwMjQyMTAxNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UE ChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUg U2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0 ZSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHCYPMzi3YGrEp pC4Tq5a+ijKDjKaIQZZVR63UbxIP6uq/I0fhCu+cQhoUfE6ERKKnu8zPf1Jwuk0tsvVCk6U9 b+0UjM0dLep3ZdE1gblK/1FwYT5Pipsu2yOMluLqwvsuz9/9f1+1PKHG/FaR/wpbfuIqu54q zHDYeqiUfsYzoVflR80DAC7hmJ+SmZnNTWyUGHJbBpA8Q89lGxahNvuryGaC/o2/ceD2uYDX 9U8Eg5DpIpGQdcbQeGarV04WgAUjjXX5r/2dabmtxWMZwhZna//jdiSyrrSMTGKkDiXm6/3/ 4ebfeZuCYKzN2P8O2F/Xe2AC/Y7zeEsnR7FOp+uXAgMBAAGjggGtMIIBqTAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUU3Ltkpzg2ssBXHx+ljVO8tS4UYIw HwYDVR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsG AQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6 Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8v d3d3LnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wu Y29tL3Nmc2NhLmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIB FiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRw Oi8vd3d3LnN0YXJ0c3NsLmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4IC AQAKgwh9eKssBly4Y4xerhy5I3dNoXHYfYa8PlVLL/qtXnkFgdtY1o95CfegFJTwqBBmf8py TUnFsukDFUI22zF5bVHzuJ+GxhnSqN2sD1qetbYwBYK2iyYA5Pg7Er1A+hKMIzEzcduRkIMm CeUTyMyikfbUFvIBivtvkR8ZFAk22BZy+pJfAoedO61HTz4qSfQoCRcLN5A0t4DkuVhTMXIz uQ8CnykhExD6x4e6ebIbrjZLb7L+ocR0y4YjCl/Pd4MXU91y0vTipgr/O75CDUHDRHCCKBVm z/Rzkc/b970MEeHt5LC3NiWTgBSvrLEuVzBKM586YoRD9Dy3OHQgWI270g+5MYA8GfgI/EPT 5G7xPbCDz+zjdH89PeR3U4So4lSXur6H6vp+m9TQXPF3a0LwZrp8MQ+Z77U1uL7TelWO5lAp sbAonrqASfTpaprFVkL4nyGH+NHST2ZJPWIBk81i6Vw0ny0qZW2Niy/QvVNKbb43A43ny076 khXO7cNbBIRdJ/6qQNq9Bqb5C0Q5nEsFcj75oxQRqlKf6TcvGbjxkJh8BYtv9ePsXklAxtm8 J7GCUBthHSQgepbkOexhJ0wP8imUkyiPHQ0GvEnd83129fZjoEhdGwXV27ioRKbj/cIq7JRX un0NbeY+UdMYu9jGfIpDLtUUGSgsg2zMGs5R4jCCB0UwggYtoAMCAQICAw5ySjANBgkqhkiG 9w0BAQsFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNV BAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0 Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBMB4XDTE1MDYyMDIw MzA1MloXDTE2MDYyMDE0MjY0N1owVjEmMCQGA1UEAwwda2V2aW5AZGFyYnlzaGlyZS1icnlh bnQubWUudWsxLDAqBgkqhkiG9w0BCQEWHWtldmluQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVr MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAugCNtDhytCJ9HOfenUHr/vUGUECv PL1IJXgHMl4cIJmwgLOkXhIcTMxHnX+kFweqvT+eDWv1hzA9yMWhvjLFC4eLoFaV0xiAat8O XQ7t3MwKY5DW0mB1dOnjiFIcc/XMwyYI4KfEGnFMJQkzon0rDVpkl/Q1f/hu1sELO7Zc6TFL wuuDuiP7S73zrz50TRoq0+Ob3x0uOMW2uVwVzf6NLwHgBE2LFleMXblyUMx0IlIcLan2nWiI Vsa3XYd+C6KAGGwlmO4VAZ25KuX7hkj8f82lSapvtKTtvrSoDghXlHH2JXiIQX+Sn0UgOmbX 1KyOe9vN7WzQ+tpPRzpFRffnnnp1VQye3wVRPBumjDxQSFTOhUtslnvbefUQSPw6p5w9ZiXI GJICLkX/MkYN/TwGCvuUG2PxBybSR1A2I5ap+VI/zGSG3XGVEA69SOZQyD+8YjJZfaY2nCu+ DuM64JrJUi2CvX6fwcdHNschJNrrfetpnrx3JrGnG9o+pWuUG1phBg+KKN2bhrdzY79qm7ha 86EMKSUOn5nBdGY3YxdXq/naoUQeOCUV2JMFGOulu7sKpiWcz7HVFacXjd9ebisVLv+jOwll z14BWRb87s1+LBEJn/Ybn3ekhtgyEAhB4kgj0scl4hI8xCU6zrZyDnbXmxSvDXbClZA0PACt f/jhGvUCAwEAAaOCAuMwggLfMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQG CCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQULkW2CpDiQpRNumQ7wdspjFfgX+AwHwYD VR0jBBgwFoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwKAYDVR0RBCEwH4Eda2V2aW5AZGFyYnlz aGlyZS1icnlhbnQubWUudWswggFMBgNVHSAEggFDMIIBPzCCATsGCysGAQQBgbU3AQIDMIIB KjAuBggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjCB9wYI KwYBBQUHAgIwgeowJxYgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwAwIBARqB vlRoaXMgY2VydGlmaWNhdGUgd2FzIGlzc3VlZCBhY2NvcmRpbmcgdG8gdGhlIENsYXNzIDEg VmFsaWRhdGlvbiByZXF1aXJlbWVudHMgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeSwgcmVs aWFuY2Ugb25seSBmb3IgdGhlIGludGVuZGVkIHB1cnBvc2UgaW4gY29tcGxpYW5jZSBvZiB0 aGUgcmVseWluZyBwYXJ0eSBvYmxpZ2F0aW9ucy4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov L2NybC5zdGFydHNzbC5jb20vY3J0dTEtY3JsLmNybDCBjgYIKwYBBQUHAQEEgYEwfzA5Bggr BgEFBQcwAYYtaHR0cDovL29jc3Auc3RhcnRzc2wuY29tL3N1Yi9jbGFzczEvY2xpZW50L2Nh MEIGCCsGAQUFBzAChjZodHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9jZXJ0cy9zdWIuY2xhc3Mx LmNsaWVudC5jYS5jcnQwIwYDVR0SBBwwGoYYaHR0cDovL3d3dy5zdGFydHNzbC5jb20vMA0G CSqGSIb3DQEBCwUAA4IBAQBicQWe98eF/o09TXFsExc+WSyYjt3oSnXyocLzXQp82CQhIg21 5RqNZ1e+hsO7tq8S6hdItUDbKpecpIV59+57ke1zVl2slTRIT19fhYINHH78rVVRPzuHoiDt MXnGrp9hbq3Cz8P4mm8INKDiYK46kyplRAQ3ZMouPG1lsnDzgQAvbCj74H8yAp7fK8if6cxs 28BCUmdP8D3c6M1ffdNNaqNT+4Z3mtOujXXg7zOfmXN0Zg/mEtZ0NrWE2uICGdWjTv9KZiI7 fi4hk2CRpCL63qzmu6BwtcgtwhgYYtuAk2N43+SiyDkyLKGAcjEor3t5f9HivN29E0F0MXTH 1OdgMYIFDTCCBQkCAQEwgZQwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBM dGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYD VQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQID DnJKMA0GCWCGSAFlAwQCAwUAoIICSTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG SIb3DQEJBTEPFw0xNjAxMTEyMDMzMjFaME8GCSqGSIb3DQEJBDFCBECLX1xlu+JcS7ZyF1Bp CqifMVDpHDv3N5lj11rFuhuzW5b2rpeXYgkrR3/fjFeV7pBojbM0rj2DeBP9Inc3JBPVMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgCRWeY+Fgsb5c37yJ2hN0MXRF4t5tL+ R6toKZg745FMggGrGJ6I453iWb9d+L4E0l//76ADYXBJ+5IiKTRBKDI3lwDYIf5q54naBaRg rrpVVrMUFJP8llRuAQ50ticMtFpa3dwM768FJ8+Pr31h4wSYhFl+YgSxfECA6gsmZH6yMkI5 V6XDKe5owbZMbgbuYFbeWMzcmiLIctNMcBRsBlajRb3fw7RMXyzehQNpJoNubMj0hfe6DQLO oasIeVccApm+Xfe2W2F4GfwsF/0w+Xw8X3XtrCaU+eg3SRAI963fYGvB6KREcYU7mNjICA/U fBEtNtPBjoc5PT2bHQoWgYIGJGrwzK2lvRdk+RPAXdv9hONQ47YeMTKAWzzoscQHf6+NlUfk hRwUyG3qnPt1uCB5Lr/3wI1RXaN1Mh/LKZt4IpZxTBZ18Adm4Q0TAQGjCOhROmBMN+TB/Cxi XvaBocyS3+S2yRI7HRdiNbDyfj9sk0j1fBVQmVdjiH6XXvQJxD2oIqHeEZ449AMEvMsyXHsZ CfGs+IHeUK7RayWtCNNFojPxQ47iY84/CE7uBFYsb7FpalLR5ezo2+RPL9rBR0KxEN6mNh4a Mhz5i0R5P1BTMamS+VG92mHscni752YIIUiI+xsUhutfOU2GfQ+vqPaO/KwgFezanEjwCrwm Z5kgEQAAAAAAAA== --------------ms090806090209020008060001--