From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0085.outbound.protection.outlook.com [157.55.234.85]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 0D17121F792 for ; Thu, 10 Dec 2015 04:35:49 -0800 (PST) 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 DB5PR07MB0936.eurprd07.prod.outlook.com (10.161.200.143) with Microsoft SMTP Server (TLS) id 15.1.337.19; Thu, 10 Dec 2015 12:35:45 +0000 To: Dave Taht References: <5664173D.40808@darbyshire-bryant.me.uk> <56695F78.5020802@darbyshire-bryant.me.uk> <56696B65.4040608@darbyshire-bryant.me.uk> From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <5669719D.9030609@darbyshire-bryant.me.uk> Date: Thu, 10 Dec 2015 12:35:41 +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="------------ms030806010108010502080805" X-Originating-IP: [2001:470:183f:da2b::632f:a7da] X-ClientProxiedBy: VI1PR07CA0008.eurprd07.prod.outlook.com (25.163.160.146) To DB5PR07MB0936.eurprd07.prod.outlook.com (25.161.200.143) X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0936; 2:F3vu9Xu9GXDXmMDquHJgQU4yeWuw7DESkI6MCWJ0WtGom4Bz9pInqefKExtS8+5Br+VZZq7vd3fvVcWvbcMd033iIqWBOL/IaAvRAfwCOmyZw53YiqpKLe0phH7cx2Mfuc88uxAaJzD/HQ/M9JRJWw==; 3:XgUGS6+1JtbFLCbM/4uOy4+y+ve/yX1kJWOC1bSXf6h8kx/uTIk7NG+uudq9OVybC4f8HL69oyTIDRv+Kt3PsotkrHnLnWL07++Yt3y+nEHRHWuq5HZE4gbgrkYaEAOR; 25:x6YyQdLisywJQ7OGrZcncJS42XocUqsPh9Fw813/1HGqAi4GL+1YjyDYlXV8hZV8lPaQucmEgmiJ59OmQ0V15vZIHV+9yxmWAIQHY53msFmXer3jDaeUMQ1Sy55Z8s3VuB76tI2aN24Uck3QrOcee4UYKKNIZKNobcCNOXTzV/Fg1WmV8vtxvMnmh+Jd057o6ghQ80tI3nhtRA9whwII4LEM3ygk71Zkn0bmS+yOoDrNTpoG+8hWlg4IX0CbqkYtHpHDpGAL+JyAu8UlJI3knQ==; 4:sppQ78mEDcmCM3/qbawlQZERBnzrM/8ozobuiCunMwEGyNx/xWYw8wI/LttFzLrT0dbneCM093Z9y0oIlbwtdhTa1X06JQdmKu13jlLiUfWB0g1U4BOrnF8KTFaXSKKRTfim4Qm6u3vL9XEMdkg52ghSbWnc4uzkRiGhnbApd5zEFJ7kLWHhm/Ma99dSXWG+mAY4iDJV2i6IPJmeQicn5liSjx2y/BlY+b/nUT0/VsXB/hzC6iS2kL/2XInwTIfaLtBXDHxh2aaiZKHw630xzYOOEfmxKY4tk9cSbsBy6TeqTmI9MxaP4t62fnDTCNgBAEECLuky9EdgkJl16mXUKLzHg4yPvrgQbgXcLgg1HPosz0ZOtVrYXa5yKl562z3I X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB0936; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(10201501046)(3002001); SRVR:DB5PR07MB0936; BCL:0; PCL:0; RULEID:; SRVR:DB5PR07MB0936; X-Forefront-PRVS: 078693968A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(24454002)(479174004)(377454003)(199003)(52314003)(87266999)(93886004)(92566002)(50986999)(99136001)(83506001)(19580405001)(54356999)(40100003)(5001960100002)(65956001)(76176999)(122386002)(36756003)(5890100001)(65806001)(19580395003)(105586002)(74482002)(106356001)(80316001)(1706002)(110136002)(64126003)(77096005)(59896002)(189998001)(4001350100001)(6116002)(586003)(1096002)(33656002)(42186005)(5008740100001)(84326002)(81156007)(2950100001)(568964002)(65816999)(101416001)(512874002)(86362001)(87976001)(5004730100002)(97736004)(3826002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR07MB0936; 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; DB5PR07MB0936; 23:wKT2p5ptukv2E4r5XTxMXU/tF2iu9Zlpn1OeL0Yty?= =?us-ascii?Q?8vlc6NsSG02eBRl+8RIC3nuiLqMcemgYA2RIePnPnkNOApEF4AlRd5N8dtLu?= =?us-ascii?Q?OgeVgtLQRMCpw+M7A1bPej2TNEora+CtQWwpFiS16ufk5/o1f1rN3LN0qQMS?= =?us-ascii?Q?IuPxi1Tp5VCSWL3rt4CI8a1gqIo41UnP//J/OcSYzhCyEq/FwNBpO3c8rv0v?= =?us-ascii?Q?kOpm40uTfyNsoZKShdldIYJMwTkwDaRHLnvasBpkdtpV0xP+PXGTH8TR4fED?= =?us-ascii?Q?z30IESXH/4cks8EnV479evyAdVCcKGmakDMR3SlxZwRC+FSBJdl3O8kzpLl2?= =?us-ascii?Q?5O+9jd6mFJhhguTzGUXAd9Q5EX8jk4NV1Pkxk2HzjeX5yd6bMsbpT1jNfzwS?= =?us-ascii?Q?vLw6akkiM+Uv5tqBdwDYswy7Bdag199sshUirLVTOMH03/9Hk4U0RIkQea8A?= =?us-ascii?Q?wSBJ2O33Sb2eGb4Um6Jsp4yySVPwq3j5lxMoQYASoCjLoVHJfjfmaaUa9goO?= =?us-ascii?Q?JUbIaH1llMeBVCKXVDSS7HfXiqUBzljnwRbqMWLTu14Q03z+QDRoYJt3RFqf?= =?us-ascii?Q?J9gw3wPTBXcQeytP4o9M1gS76JCs1OGsXsgoGEjP5ddAJBkOV/hXxFvoHHnM?= =?us-ascii?Q?K97J8V644gYLsBmXcq9zMgHOswy9o1AG4P9OxZ1nAYar5WiIVWYQa06x6HwS?= =?us-ascii?Q?yYwMf01p/z8ejjR6fVzhvbr9V1GS343OSZhiCxEIgt/k1bTUFOfMO4UCb8jr?= =?us-ascii?Q?aHZpMyxYXdXdhhHyS10dI7bleAgdmKbH9yfOTZ2azm1JazevFY0QGZJm3Py6?= =?us-ascii?Q?NLY1JvAf657QFGwsJQ2U0AtqVhKl4CfUUn3p5h4ndoHT3g9p9S0zb7xTed3d?= =?us-ascii?Q?EYxcPxictaIArBMKTPpo/G7eQpeGupzXyO4XQJHIseljbQ4276Fd1bZ9sNf+?= =?us-ascii?Q?w4X+F9l0pzfms6tuEVGCrszwZe6LfdxGBDBXL/0O7qWn4ckF1VK/uldYx0BL?= =?us-ascii?Q?xOFye8cgMX/jsGHO/R3nnud5smp04/ExJx2GFyfnmB2bbFmHtiQmdthQzERA?= =?us-ascii?Q?89J+70DU8NTbvVN8MsHAhOBaWCpDNhTxI/AL8pLJyZCvY81iaJLiKQHVRuIM?= =?us-ascii?Q?tt8auVp1QkTa53h4ZpB2v+nNlzcz+aeVwjEn86uF5tVFJCdaxedjJuurLueG?= =?us-ascii?Q?+jn0LLM3FN+LSAbgye3N9L9PFfCajwu03bLS2c0NLQbDDpld5Uwe6d7gAgPB?= =?us-ascii?Q?URkvOdxDu530XbiXjp5sMuvi3Rfuv9NG9u133Gso8l6ziLdoZ2lK2LY3esGc?= =?us-ascii?Q?s7N6AqGHhiBUzygXfil3nHIhqV5QxT9OkUzjRVe13fUq02oyuMMXgEFc3NGF?= =?us-ascii?Q?fMmHQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0936; 5:zAJrgtroGZNmt96vFNXQhCTSiyciJmkc6dkOWusIEl79Q3XMlqWqIGIRGPko/p7NfegMqohdHjwg1Xr/ZZWMFjCxELIn2+yhcBSBgZEPXysbmtKcaB5DicIVBp1pBEMtQK41ytn/CcJSvzVUo0Hyvg==; 24:i/OhxmD1te4mP3KbkJDfhzF54AOYwd2C9CjSt0CqGfGbCQWBL7I4UurJBy4BWYZe7O6bgaj0e+kiJTS6jhGHkLX1GXUTIXSRS42gJvaRSVc= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2015 12:35:45.6540 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB0936 Cc: cake@lists.bufferbloat.net Subject: Re: [Cake] dscp & tunneling X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Dec 2015 12:36:20 -0000 --------------ms030806010108010502080805 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 10/12/15 12:22, Dave Taht wrote: > On Thu, Dec 10, 2015 at 1:09 PM, Kevin Darbyshire-Bryant > wrote: > >> the same test shows all those flows going in the best effort tin and >> nothing being split out according to dscp. Things are split out >> correctly with ipv4. Assuming that my installation of flent is doing >> the right thing (putting dscp on its outbound ipv6 packets) and knowin= g >> that both flent & cake handle the ipv4 version of the test correctly a= nd >> that by the time 'cake' sees my tunnel it's all ipv4 outer packets >> anyway, this suggests dscp from inner ipv6 to outer ipv4 isn't taking >> place, at least for 6in4 'sit' tunnels :-( > Wireshark is your friend here. I shall befriend it once again :-) > > It would not surprise me if dscp inherit had broken again, or, it was > borked on decapsulation. Not a widely tested feature, that. I'm only 'testing' the encapsulation side...ipv6 into router, router encapsulates into ipv6, cake then sits across 'eth0' the Internet facing interface and isn't classifying the flows - and I swear this used to work= =2E > > I remember making it work several years ago, remember sort of seeing > the patches go upstream somewhere.... it was a long time ago. Is there anyone lurking on this list, with the time, who can help me with net/ipv6/sit.c? It looks like this is the relevant area: Need to see what INET_ECN_encapsulate does (and where tos gets set) if (ttl =3D=3D 0) ttl =3D iph6->hop_limit; tos =3D INET_ECN_encapsulate(tos, ipv6_get_dsfield(iph6)); if (ip_tunnel_encap(skb, tunnel, &protocol, &fl4) < 0) { ip_rt_put(rt); goto tx_error; } skb_set_inner_ipproto(skb, IPPROTO_IPV6); err =3D iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, protocol, tos, ttl, df, !net_eq(tunnel->net, dev_net(dev))); iptunnel_xmit_stats(err, &dev->stats, dev->tstats); return NETDEV_TX_OK; >> >>> VPNs like ipsec or openvpn are not handled this way, not enough data.= >>> Arguably you could pull apart some forms of tinc (stalled out researc= h >>> project) in a really sane way... >> --------------ms030806010108010502080805 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 SIb3DQEJBTEPFw0xNTEyMTAxMjM1NDFaME8GCSqGSIb3DQEJBDFCBEAJMONdNz/CHHGJefz9 t+XHxUxAdAHr/47o3t5JvGOov/NwP/mhXi+iZ9B9h8kX2ehIa67u02puWlx+Ye52TwoZMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgBvbOOg843qd2W0NxbT/PPyH36NI4PF VS0YMY9SRR9KTQUyuOANUjd8ev1XffFQXwZubxQVq2NbJLnDtZxjkykZZFvAtFQ47ZZoUnA9 A4iARf6pNZm4BVAJmD/HCmOFB9TK7ubCK7mjaNG9hz53oIl9pqO6wDTHxITT1IP6e3iD+kAH 2+nvFifOVnq/KYCDdrjFfw2wTCdyfBJgD6tTGclE5E16PLV6YZYaJIAHpeduv8nJqHATBzFK AHEcQSqBn1SBLOyB6BBW+v7ndPGHGoPKcudlgn0aVSMfCjp8R54JHXSnBT4F6BZEpxt+/g/E HNIcdhKsdL5Ysa2QQ4wV5M5N3l1U8U/9UXSEWZ+GItF8ovms68Z4HQ9bN19Zh7anUS3maT0O u0r2CTk+6q67K2Rf9TJIB815KgNweXFDoXVuRZKDWv1LfglLV8Wm8dw1FWnejukJsoFFNyEJ ETg6m+0A3xzjOXWQ7bW5rSX4HSluP8Fa2q60pnEoHJjyk8PRnUt4gAHIAIb0PGdQZAtJyNug Yqh9l9tx/dOiA8/89th+4701obph8+iV6Ui9dblWd8lcT8h51ZLe/QUHVYT6yLVbDs7KbUfS KkR40krkiNsNfTiWfyhTZfXf/XkjxVqzeLoC5IJU3e8IALHlGfIuuDH5RSRmB3Vb0ePIpa7y 33ozrAAAAAAAAA== --------------ms030806010108010502080805--