From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0080.outbound.protection.outlook.com [157.55.234.80]) (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 D58D621F60E for ; Mon, 16 Nov 2015 06:59:15 -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 VI1PR07MB0944.eurprd07.prod.outlook.com (10.161.110.149) with Microsoft SMTP Server (TLS) id 15.1.325.17; Mon, 16 Nov 2015 14:59:10 +0000 To: References: <56420697.9080606@darbyshire-bryant.me.uk> From: Kevin Darbyshire-Bryant Message-ID: <5649EF39.3060300@darbyshire-bryant.me.uk> Date: Mon, 16 Nov 2015 14:59:05 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56420697.9080606@darbyshire-bryant.me.uk> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms070909050706020806040402" X-Originating-IP: [2001:470:183f:da2b::632f:a7da] X-ClientProxiedBy: DB4PR04CA0030.eurprd04.prod.outlook.com (25.160.41.40) To VI1PR07MB0944.eurprd07.prod.outlook.com (25.161.110.149) X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0944; 2:KU556LnOVFWGQwV4JEDbBEPHjkBV8/ACbiy2fLuSrLGsiJN53Y8Xv1hXvqCWdDEWgs/vqX4prf1LC90zqV551FCJFmv1t2GAS2GLggWmu8kHe6/yExHQLsJMOnmBCyD5caeRB56/AMtFiTn1ik0IXko8dki5iWKc6Wr0RA283Gc=; 3:sXPb0VjTLofEd++lmwtyIqndKCtappNQnlFqp8vT6FN5LdDCjVxQ8rE7YzGPpANJCUOKL/VoGFMHaNy3KMLjDFP2T9W11sqwUqItXXt3Ne3Wq6YqEF5OAcVSgJTrXaLM0w4dRsA7xrGdcV8BZ06Gdg==; 25:+Jna8TtqLrbxRW7MbHBBBhlOJ+v5eiNnlWKLrdmZijU+W7L/2iFrUrCmQOHFbrhCuZWGhF7r0JSjwfEg3wtuQw8Radfvnq3NsvUPy4Mvjgkfv2InwNMwozO4V3PPQHV+nSYbmTBI9BPlWbdVeB/L0u77hs1nkE6EfEGIEoQ/Kh97aviqDFqXp220aQ2DOChYn+7JZ3t3dZ9Oa7SmkxG10S+N3DelPTKOsvQYkBiczIhvm6Dw1yU12PuT7yoSvQwi/Q0PYqzpE+nxNU3lVr46Lw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR07MB0944; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(3002001)(10201501046); SRVR:VI1PR07MB0944; BCL:0; PCL:0; RULEID:; SRVR:VI1PR07MB0944; X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0944; 4:YOjQ36pxBS5Qj9/I9fDVGfVW+DNXYeVMlvKXfnUknx7Pfdn2B8AYEVy8iBssshvDfsIFN/t+ByodMUpqzUKDaWtLqlrG52EWimiZsFW7nhnZHeB/1bfHNXBV7tBc0EY1mlxwqj3HVhgMdF+fnNWMDu0XGyqxYvnBJitc4oBgl8zRWHBNTM5r3dKvXGm9+K1QiEO0ul1o5H8HONXGoFtd9Z48eoebbyAhUPlCQA6RvhX0XNCp6sT2mI4edhrFj+c78lRMk47ZPH9GnhBiKw4AMBS7bYj70ZF2pO3SePUSluTNe/sDP4O2GqXUbkyFXjgNf8FcoW5r8Bi7owMFSG9MgUnqrn/uIAAFYLtmgDH1PoQKo6OKaPXS6OauWWXvL+Lt X-Forefront-PRVS: 0762FFD075 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(24454002)(479174004)(189002)(199003)(122386002)(5001960100002)(36756003)(81156007)(105586002)(512944002)(65806001)(19580395003)(189998001)(74482002)(86362001)(65816999)(5890100001)(5004730100002)(65956001)(2950100001)(5007970100001)(87976001)(2351001)(586003)(84326002)(101416001)(19580405001)(54356999)(50986999)(92566002)(5008740100001)(83506001)(64126003)(110136002)(33656002)(80316001)(87266999)(4001350100001)(450100001)(107886002)(15975445007)(42186005)(97736004)(5001920100001)(77096005)(568964002)(59896002)(106356001)(76176999)(40100003)(3826002)(5001840100002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB0944; 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; VI1PR07MB0944; 23:ylQZtNw6WSM4r2UKUS7Cf8nxnyBA9txy3qc3q6xC9?= =?us-ascii?Q?pTkKSygauXLi7TL4RjzBsgF1N9ppoRvJxhjV5z/RNGPnvV9piCraLqwXB6z/?= =?us-ascii?Q?VQ9t/RDeTfUe487yOAmGjgD6M/wO0PTFqQ0He++RouBXcwTTSCW+lOOBj7gV?= =?us-ascii?Q?RLe0I97wzVvXk1xchYYOVB5xtKKj4FHfj9Lnvv3IMNkB0QjDEuKhvx3Wr8SQ?= =?us-ascii?Q?1I2nDQX7GUv/IY7CwGqYhxh4MCiPvN5c/gn7ag0Z5lpo0DDq51evpWl8cpD3?= =?us-ascii?Q?4jD+jljW5cniLbRj7IVG3/5YMFEupfOHQrjsVfRTetS/vb/1zyzYrUXczrAP?= =?us-ascii?Q?yMqBoCg4sRUpQ0lYGXnQWUpUglaD6pf7WC7wxX9MCTVcgKZqFjlsGRHenL5k?= =?us-ascii?Q?VTXakYEfebhWTBoj2V8Bef4ki3PrgVbQDK0jwTM+kzy7TIGzdUesmnXZylbp?= =?us-ascii?Q?GFkL14ygHyu5nlA645xgEF1URAKfE6BM+STl3VmODUl6IaO6md/uXuWfkDDL?= =?us-ascii?Q?zAZecBuAnr6ZQq1cHAqUvPcviPp/SOfmJuz4eVjRVZ2QVcPJd0uBlUTlAtXv?= =?us-ascii?Q?/NFcAT+gDQg3Ozcz/Chtrw9ZQKBNKLeyqPg8gg0R1s5uCt/fOyj2v+ur1c72?= =?us-ascii?Q?nXuXQtZlJsX/C8tGh3HGCQCaf7FoTehY5zBiHCpaRBYmNlpT8XO2miV+crjQ?= =?us-ascii?Q?9VuJqQGmqxyVh0FYtHI0QlDDtd1q60DQACMdIJWC6xCuw1JAhalL5swcDOyJ?= =?us-ascii?Q?iHzdLGv6y/37wNyi2hWlP5tYOwRFp4qmVAZGxVDXt+DfMlttH4I4INPJcaX9?= =?us-ascii?Q?FHU42NpCTNEBM3vVX5qV7SSQZXBRTi7XPo5K1lSgYI5EXxLqAFAEB1RSFQ9y?= =?us-ascii?Q?1nETiMhFbMfResf8vaYuSLYv0Bh06KqsjoYoWl/Tp/XvgckgcyBev+NXnh+m?= =?us-ascii?Q?MvrNyOkemfrLc+Bu5WlExpkYVSrM+fRaVUYPntkjXP3UlhSUjCG7erK1aBVG?= =?us-ascii?Q?VQ2lD90b9fL3MJB6f+gff+CzDpIZEhJi7oZulSXCviwB5rNEXb0P4dgKhs2H?= =?us-ascii?Q?xRqjhvYHZkCHabbtnNmZfeMfOMnubTBccWe0SSvI0S0G1VzJ6iWY1+wZwioo?= =?us-ascii?Q?qbIiCVe7o60PZBi0eqW+hxL6P+tbIM2Y0oqhyAdRm451xUrWMMamkdi0pqFD?= =?us-ascii?Q?lrztMHGHRv68kRgAlJxgsWr7A3EuAd5Bi8dGvw2obgklvjkB6EEPCCfK++hx?= =?us-ascii?Q?G+GyDIDK1m5eySddsEYB4V0c1DlRDyGxAzd0WWdYcHhVvBYXcKjmRKp/qg3j?= =?us-ascii?Q?hNRBW6b2w8wZSDzfA13Vu+dCh1w03hCXV4NWcOySLbvCjMGJkT8nogPWnoIY?= =?us-ascii?Q?hTLXNm8DaMt7JGjimluZf63v1p/5xOjeVEwXnX0HaZQiyf4?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0944; 5:yhiqDoNMBpgslbnG8snL607Sin1LQO53GNTgpvFcNX5yTBJOZFsFECT7mVJq5qqt90lkdkSDIUzsodF+0QG1pWxKBGko/7sn5dqflgI6KhqyMIlOzKPD8vxeFUfFiJ5egJ0OycROlG5MQSoTpm7KeQ==; 24:jD33nI6u+MPJcAQcgOPsuYc4OCclBt3qEJmX0+IOBYz7ZR+ug7G2BCBvYqJHT4iSrFyItGsFZMJwi1+arftcNzjyg0sXy0NhfY89Rf765is=; 20:V+fvUmaU6D3PWHx0S5vI+TO2pGMsK3ShptM7lElIU7iew/LmGjKqvl0vCT27YNZpz83qu7oOgKzQejPs6AmE/w== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2015 14:59:10.2824 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB0944 Subject: Re: [Cake] Announce - possible new feature - DSCP cleaning 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: Mon, 16 Nov 2015 14:59:38 -0000 --------------ms070909050706020806040402 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Does anyone have any feedback on this? Good idea/bad idea? Good/bad implementation? Any reason why 'squash' branches of both sch-cake & tc-adv shouldn't be merged? On 10/11/15 15:00, Kevin Darbyshire-Bryant wrote: > Greetings :-) > > A bit of a blast from the past this one, but one Sebastian Moeller of > this list fame wrote a while ago " > > Just played a bit with the shiny new squash option. For my limited test= ing it seems to work. I do wonder whether the automatic default to bestef= fort is the ideal behavior though. For example on egress it would be nice= to be able to use the internal set DSCP markings but clean them from the= outgoing packets as not to leak =93information=94 to the ISP, similarly = but more contrived the same could be agued for ingress " > > Well Mr Moeller, today is your lucky day because I've just pushed 'squa= sh' branches to both cake & tc-adv that separate the 'DSCP squashing' beh= aviour from diffserv behaviour. Specifying 'squash' sets diffserv mode t= o 'besteffort' (ie 1 tin only) and squashes DSCP as before, however if yo= u specify something like 'diffserv4 squash' then DSCP codings are noted a= t qdisc enqueue so tins/bandwidths are used as marked, then the DSCP mark= ing is squashed so on dequeue DSCP has been removed. > > The active bit of the change is (diff): > > /* extract the Diffserv Precedence field, if it exists */ > - if (q->tin_mode !=3D CAKE_MODE_SQUASH) { > + if (q->tin_mode !=3D CAKE_MODE_BESTEFFORT) { > tin =3D q->tin_index[cake_get_diffserv(skb)]; > if (unlikely(tin >=3D q->tin_cnt)) > tin =3D 0; > } else { > - cake_squash_diffserv(skb); > tin =3D 0; > } > =20 > + /* now clear DSCP bits if squashing */ > + if (q->squash) > + cake_squash_diffserv(skb); > > > https://github.com/dtaht/sch_cake/tree/squash & https://github.com/dt= aht/tc-adv/tree/squash > > Needs testing (I've not managed to break it yet) and *thought before me= rging* > > > > > > _______________________________________________ > Cake mailing list > Cake@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cake --------------ms070909050706020806040402 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 SIb3DQEJBTEPFw0xNTExMTYxNDU5MDVaME8GCSqGSIb3DQEJBDFCBEBEWa+ioga44Kn26vIX ch17kS/e8GoFhfiWu6DlFX8vuu1isbErE0N3kZCLutxG0vVT+ppql1IIPe8LfNyhx0GyMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgAUKLnWdL4jC7+QF1rUz2Pi2F7W/0t7 JeFwSCtY7MHVR58p1B7H+rDSiLFNxkI6uA5TLsloFy2dUsQeF26ANo4UA8H9Jrqdgac0RxB3 fANAlTXnPL/dpZbxJRt5jQ1YUfTELf+/kPtuoULvLq7kQW+V/RSmm5MiiQWs1V3M63U5+VUr W8rEJ53OMUjON4qOnTNd4Yva2XxOi/fY52WoNdhZpClDemBL/8bhIW4vkzKy8BPKTnzF/udm lZHrbk2NcEWbyxY04XihMPTqBgEm/LqVmvNujbY9BLNFtpmKhg4jrqYsVA5n1ONo8pVMH2u7 +DoTmHiHhtQtFUl7Fhg8aojUAwBbUJrDyHZCHFLPgpnwU/OlEreoI71dzozxHC3XaRZExyiX 6We5PgJBysQ/s3nJ31ilnPn6tfj+9qfQCCwEzQqbvtGWMHMI14z19PXGJNfPzVouq68UTlGs xjdJvMkqWb72iv4no1jy3E/GJy8rnLq5BKLJzjjIcrHYhOLCl+Gc6xMkvfJrNzp/2e/C9u0p oVCMniaAD2uiq1cgm1yalwP0Bu8kT75WFe1dLPZLOWYF0JAQnbyCwVCEi7pCp02eWkKEYwrh vwVdtUoEMLtWS4/5ax4MCbVM8PIcK/Na7pluLOebcgC+pp5OQ8E6CtMWDuavHgz+3S/M1T1F HBt2WQAAAAAAAA== --------------ms070909050706020806040402--