From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 84EB1239 for ; Thu, 19 Oct 2017 16:20:16 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP; 19 Oct 2017 07:20:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,402,1503385200"; d="scan'208";a="911543676" Received: from irsmsx110.ger.corp.intel.com ([163.33.3.25]) by FMSMGA003.fm.intel.com with ESMTP; 19 Oct 2017 07:20:13 -0700 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.248]) by irsmsx110.ger.corp.intel.com ([163.33.3.25]) with mapi id 14.03.0319.002; Thu, 19 Oct 2017 15:19:56 +0100 From: "Nicolau, Radu" To: "Ananyev, Konstantin" , Akhil Goyal , "dev@dpdk.org" CC: "Doherty, Declan" , "De Lara Guarch, Pablo" , "hemant.agrawal@nxp.com" , "borisp@mellanox.com" , "aviadye@mellanox.com" , "thomas@monjalon.net" , "sandeep.malik@nxp.com" , "jerin.jacob@caviumnetworks.com" , "Mcnamara, John" , "shahafs@mellanox.com" , "olivier.matz@6wind.com" Thread-Topic: [PATCH v4 10/12] net/ixgbe: enable inline ipsec Thread-Index: AQHTRTrL5/x8EwE+UUGLWruLtDNWaKLqFSWAgADwwwD///LgAIAAHupg///1WgCAAAOjgIAAHTCA///xlAAABABQMA== Date: Thu, 19 Oct 2017 14:19:56 +0000 Message-ID: <763A2F19A5EFF34F8B7F1657C992EE297B2F062F@IRSMSX104.ger.corp.intel.com> References: <20171006181151.4758-1-akhil.goyal@nxp.com> <20171014221734.15511-1-akhil.goyal@nxp.com> <20171014221734.15511-11-akhil.goyal@nxp.com> <2601191342CEEE43887BDE71AB9772585FAAAD3E@IRSMSX103.ger.corp.intel.com> <524bc592-367d-26a0-fb24-9113c34254c4@intel.com> <2601191342CEEE43887BDE71AB9772585FAAB1D6@IRSMSX103.ger.corp.intel.com> <763A2F19A5EFF34F8B7F1657C992EE297B2F0453@IRSMSX104.ger.corp.intel.com> <2601191342CEEE43887BDE71AB9772585FAAB23F@IRSMSX103.ger.corp.intel.com> <2601191342CEEE43887BDE71AB9772585FAAB263@IRSMSX103.ger.corp.intel.com> <2601191342CEEE43887BDE71AB9772585FAAB301@IRSMSX103.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB9772585FAAB301@IRSMSX103.ger.corp.intel.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZWYxMjk4MTAtYTQ0MC00ZjZkLWE1ODYtM2M4ZjY1ZjcwOGI5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ijc2azRBekhOdzlSSmlOazNBdWpQQmx1Zm81S3ROdEd3TWtyT1RrWVRCa2c9In0= dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 10/12] net/ixgbe: enable inline ipsec X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Oct 2017 14:20:17 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5hbnlldiwgS29uc3Rh bnRpbg0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxOSwgMjAxNyAyOjIzIFBNDQo+IFRvOiBO aWNvbGF1LCBSYWR1IDxyYWR1Lm5pY29sYXVAaW50ZWwuY29tPjsgQWtoaWwgR295YWwNCj4gPGFr aGlsLmdveWFsQG54cC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IERvaGVydHksIERlY2xhbiA8 ZGVjbGFuLmRvaGVydHlAaW50ZWwuY29tPjsgRGUgTGFyYSBHdWFyY2gsIFBhYmxvDQo+IDxwYWJs by5kZS5sYXJhLmd1YXJjaEBpbnRlbC5jb20+OyBoZW1hbnQuYWdyYXdhbEBueHAuY29tOw0KPiBi b3Jpc3BAbWVsbGFub3guY29tOyBhdmlhZHllQG1lbGxhbm94LmNvbTsgdGhvbWFzQG1vbmphbG9u Lm5ldDsNCj4gc2FuZGVlcC5tYWxpa0BueHAuY29tOyBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jr cy5jb207IE1jbmFtYXJhLA0KPiBKb2huIDxqb2huLm1jbmFtYXJhQGludGVsLmNvbT47IHNoYWhh ZnNAbWVsbGFub3guY29tOw0KPiBvbGl2aWVyLm1hdHpANndpbmQuY29tDQo+IFN1YmplY3Q6IFJF OiBbUEFUQ0ggdjQgMTAvMTJdIG5ldC9peGdiZTogZW5hYmxlIGlubGluZSBpcHNlYw0KPiANCj4g DQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogTmljb2xhdSwg UmFkdQ0KPiA+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDE5LCAyMDE3IDI6MTQgUE0NCj4gPiBU bzogQW5hbnlldiwgS29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IEFr aGlsIEdveWFsDQo+ID4gPGFraGlsLmdveWFsQG54cC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiBD YzogRG9oZXJ0eSwgRGVjbGFuIDxkZWNsYW4uZG9oZXJ0eUBpbnRlbC5jb20+OyBEZSBMYXJhIEd1 YXJjaCwgUGFibG8NCj4gPiA8cGFibG8uZGUubGFyYS5ndWFyY2hAaW50ZWwuY29tPjsgaGVtYW50 LmFncmF3YWxAbnhwLmNvbTsNCj4gPiBib3Jpc3BAbWVsbGFub3guY29tOyBhdmlhZHllQG1lbGxh bm94LmNvbTsgdGhvbWFzQG1vbmphbG9uLm5ldDsNCj4gPiBzYW5kZWVwLm1hbGlrQG54cC5jb207 IGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbTsgTWNuYW1hcmEsDQo+IEpvaG4NCj4gPiA8 am9obi5tY25hbWFyYUBpbnRlbC5jb20+OyBzaGFoYWZzQG1lbGxhbm94LmNvbTsNCj4gPiBvbGl2 aWVyLm1hdHpANndpbmQuY29tDQo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCAxMC8xMl0gbmV0 L2l4Z2JlOiBlbmFibGUgaW5saW5lIGlwc2VjDQo+ID4NCj4gPg0KPiA+DQo+ID4gT24gMTAvMTkv MjAxNyAxOjI5IFBNLCBBbmFueWV2LCBLb25zdGFudGluIHdyb3RlOg0KPiA+ID4NCj4gPiA+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IGRldiBbbWFpbHRvOmRldi1i b3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgQW5hbnlldiwNCj4gPiA+PiBLb25zdGFudGlu DQo+ID4gPj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMTksIDIwMTcgMToxNyBQTQ0KPiA+ID4+ IFRvOiBOaWNvbGF1LCBSYWR1IDxyYWR1Lm5pY29sYXVAaW50ZWwuY29tPjsgQWtoaWwgR295YWwN Cj4gPiA+PiA8YWtoaWwuZ295YWxAbnhwLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4+IENjOiBE b2hlcnR5LCBEZWNsYW4gPGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47IERlIExhcmEgR3VhcmNo LA0KPiA+ID4+IFBhYmxvIDxwYWJsby5kZS5sYXJhLmd1YXJjaEBpbnRlbC5jb20+Ow0KPiA+IGhl bWFudC5hZ3Jhd2FsQG54cC5jb207DQo+ID4gPj4gYm9yaXNwQG1lbGxhbm94LmNvbTsgYXZpYWR5 ZUBtZWxsYW5veC5jb207DQo+IHRob21hc0Btb25qYWxvbi5uZXQ7DQo+ID4gPj4gc2FuZGVlcC5t YWxpa0BueHAuY29tOyBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb207DQo+IE1jbmFtYXJh LA0KPiA+ID4+IEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgc2hhaGFmc0BtZWxsYW5v eC5jb207DQo+ID4gPj4gb2xpdmllci5tYXR6QDZ3aW5kLmNvbQ0KPiA+ID4+IFN1YmplY3Q6IFJl OiBbZHBkay1kZXZdIFtQQVRDSCB2NCAxMC8xMl0gbmV0L2l4Z2JlOiBlbmFibGUgaW5saW5lDQo+ ID4gPj4gaXBzZWMNCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4NCj4gPiA+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4gRnJvbTogTmljb2xhdSwgUmFkdQ0KPiA+ID4+PiBTZW50 OiBUaHVyc2RheSwgT2N0b2JlciAxOSwgMjAxNyAxMjo1NyBQTQ0KPiA+ID4+PiBUbzogQW5hbnll diwgS29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IEFraGlsDQo+ID4g Pj4+IEdveWFsIDxha2hpbC5nb3lhbEBueHAuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPj4+IENj OiBEb2hlcnR5LCBEZWNsYW4gPGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47IERlIExhcmEgR3Vh cmNoLA0KPiA+ID4+PiBQYWJsbyA8cGFibG8uZGUubGFyYS5ndWFyY2hAaW50ZWwuY29tPjsNCj4g PiBoZW1hbnQuYWdyYXdhbEBueHAuY29tOw0KPiA+ID4+PiBib3Jpc3BAbWVsbGFub3guY29tOyBh dmlhZHllQG1lbGxhbm94LmNvbTsNCj4gdGhvbWFzQG1vbmphbG9uLm5ldDsNCj4gPiA+Pj4gc2Fu ZGVlcC5tYWxpa0BueHAuY29tOyBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb207DQo+IE1j bmFtYXJhLA0KPiA+ID4+PiBKb2huIDxqb2huLm1jbmFtYXJhQGludGVsLmNvbT47IHNoYWhhZnNA bWVsbGFub3guY29tOw0KPiA+ID4+PiBvbGl2aWVyLm1hdHpANndpbmQuY29tDQo+ID4gPj4+IFN1 YmplY3Q6IFJFOiBbUEFUQ0ggdjQgMTAvMTJdIG5ldC9peGdiZTogZW5hYmxlIGlubGluZSBpcHNl Yw0KPiA+ID4+Pg0KPiA+ID4+Pg0KPiA+ID4+Pg0KPiA+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+Pj4+IEZyb206IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPiA+Pj4+IFNl bnQ6IFRodXJzZGF5LCBPY3RvYmVyIDE5LCAyMDE3IDEyOjA0IFBNDQo+ID4gPj4+PiBUbzogTmlj b2xhdSwgUmFkdSA8cmFkdS5uaWNvbGF1QGludGVsLmNvbT47IEFraGlsIEdveWFsDQo+ID4gPj4+ PiA8YWtoaWwuZ295YWxAbnhwLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4+Pj4gQ2M6IERvaGVy dHksIERlY2xhbiA8ZGVjbGFuLmRvaGVydHlAaW50ZWwuY29tPjsgRGUgTGFyYSBHdWFyY2gsDQo+ ID4gPj4+PiBQYWJsbyA8cGFibG8uZGUubGFyYS5ndWFyY2hAaW50ZWwuY29tPjsgaGVtYW50LmFn cmF3YWxAbnhwLmNvbTsNCj4gPiA+Pj4+IGJvcmlzcEBtZWxsYW5veC5jb207IGF2aWFkeWVAbWVs bGFub3guY29tOw0KPiB0aG9tYXNAbW9uamFsb24ubmV0Ow0KPiA+ID4+Pj4gc2FuZGVlcC5tYWxp a0BueHAuY29tOyBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb207DQo+IE1jbmFtYXJhLA0K PiA+ID4+Pj4gSm9obiA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+OyBzaGFoYWZzQG1lbGxhbm94 LmNvbTsNCj4gPiA+Pj4+IG9saXZpZXIubWF0ekA2d2luZC5jb20NCj4gPiA+Pj4+IFN1YmplY3Q6 IFJFOiBbUEFUQ0ggdjQgMTAvMTJdIG5ldC9peGdiZTogZW5hYmxlIGlubGluZSBpcHNlYw0KPiA+ ID4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4+Pj4gPHNuaXA+DQo+ID4gPj4+Pj4+ PiArDQo+ID4gPj4+Pj4+PiArc3RhdGljIGludA0KPiA+ID4+Pj4+Pj4gK2l4Z2JlX2NyeXB0b191 cGRhdGVfbWIodm9pZCAqZGV2aWNlIF9fcnRlX3VudXNlZCwNCj4gPiA+Pj4+Pj4+ICsJCXN0cnVj dCBydGVfc2VjdXJpdHlfc2Vzc2lvbiAqc2Vzc2lvbiwNCj4gPiA+Pj4+Pj4+ICsJCSAgICAgICBz dHJ1Y3QgcnRlX21idWYgKm0sIHZvaWQgKnBhcmFtcyBfX3J0ZV91bnVzZWQpDQo+IHsNCj4gPiA+ DQo+ID4gPg0KPiA+ID4gQW5vdGhlciBzb3J0IG9mIGdlbmVyaWMgcXVlc3Rpb24gLSB3aHkgbm90 IG1ha2UNCj4gPiA+IHNlY3VyaXR5X3NldF9wa3RfbWV0YWRhdGEgZnVuY3Rpb24gdG8gYWNjZXB0 ICBidWxrIG9mIHBhY2tldHM/DQo+ID4gPiBJbiB0aGF0IGNhc2UgbyBjYW4gbWluaW1pemUgdGhl IGNvc3Qgb2YgZnVuY3Rpb24gY2FsbHMsIGFjY2Vzc2luZyBzZXNzaW9uDQo+IGRhdGEsIGV0Yy4N Cj4gPiA+IFRob3VnaCBJIHN1cHBvc2UgdGhhdCBjb3VsZCB3YWl0IHRpbGwgbmV4dCBwYXRjaCBz ZXJpZXMuDQo+ID4gPiBLb25zdGFudGluDQo+ID4gSXQgaXMgYSBnb29kIHN1Z2dlc3Rpb24sIGJ1 dCB3ZSBuZWVkIHRvIGRpc2N1c3MgaXQgZnVydGhlcjsNCj4gDQo+IFllcywgYXMgSSBzYWlkIHRo YXQncyBmb3IgZnV0dXJlLg0KPiANCj4gPiBmb3IgZXhhbXBsZQ0KPiA+IGlmIGl0IGNhbiBhY2Nl cHQgYSBidWxrIG9mIHBhY2tldHMsIHdpbGwgaXQgbmVlZCBhbHNvIGEgYnVsayBvZg0KPiA+IG1l dGFkYXRhIHBvaW50ZXJzLCBvciBqdXN0IG9uZSBmb3IgYWxsIHRoZSBwYWNrZXRzPw0KPiANCj4g QnkgbWV0YWRhdGEgZG8geW91IG1lYW4gYSBzZXNzaW9uIG9yIC4uLj8NCj4gS29uc3RhbnRpbg0K DQpObywgSSBtZWFuIHRoZSB2b2lkICpwYXJhbXMgcGFyYW1ldGVyLCAodGhhdCB3YXMgbmFtZWQg bWV0YWRhdGEgaW4gZWFybGllciBwYXRjaGVzKS4NCj4gDQo+ID4gPg0KPiA+ID4+Pj4+Pj4gKwlz dHJ1Y3QgaXhnYmVfY3J5cHRvX3Nlc3Npb24gKmljX3Nlc3Npb24gPQ0KPiA+ID4+Pj4+Pj4gKwkJ CWdldF9zZWNfc2Vzc2lvbl9wcml2YXRlX2RhdGEoc2Vzc2lvbik7DQo+ID4gPj4+Pj4+PiArCWlm IChpY19zZXNzaW9uLT5vcCA9PQ0KPiBJWEdCRV9PUF9BVVRIRU5USUNBVEVEX0VOQ1JZUFRJT04p IHsNCj4gPiA+Pj4+Pj4+ICsJCXN0cnVjdCBpeGdiZV9jcnlwdG9fdHhfZGVzY19tZCAqbWRhdGEg PQ0KPiA+ID4+Pj4+Pj4gKwkJCShzdHJ1Y3QgaXhnYmVfY3J5cHRvX3R4X2Rlc2NfbWQgKikmbS0N Cj4gPnVkYXRhNjQ7DQo+ID4gPj4+Pj4+PiArCQltZGF0YS0+ZW5jID0gMTsNCj4gPiA+Pj4+Pj4+ ICsJCW1kYXRhLT5zYV9pZHggPSBpY19zZXNzaW9uLT5zYV9pbmRleDsNCj4gPiA+Pj4+Pj4+ICsJ CW1kYXRhLT5wYWRfbGVuID0gKnJ0ZV9wa3RtYnVmX210b2Rfb2Zmc2V0KG0sDQo+ID4gPj4+Pj4+ PiArCQkJdWludDhfdCAqLCBydGVfcGt0bWJ1Zl9wa3RfbGVuKG0pIC0gMTgpICsNCj4gMTg7DQo+ ID4gPj4+Pj4+IENvdWxkIHlvdSBleHBsYWluIHdoYXQgcGFkX2xlbiBzdXBwb3NlZCB0byBjb250 YWluPw0KPiA+ID4+Pj4+PiBBbHNvIHdoYXQgaXMgYSBtYWdpY2FsIGNvbnN0YW50ICcxOCc/DQo+ ID4gPj4+Pj4+IENvdWxkIHlvdSBjcmVhdGUgc29tZSBtYWNybyBpZiBuZWVkZWQ/DQo+ID4gPj4+ Pj4gSSBhZGRlZCBhbiBleHBsYW5hdGlvbiBpbiB0aGUgY29kZSwgd2UgcmVhZCB0aGUgcGF5bG9h ZCBwYWRkaW5nDQo+ID4gPj4+Pj4gc2l6ZSB0aGF0IGlzIHN0b3JlZCBhdCB0aGUgbGVuLTE4IGJ5 dGVzIGFuZCBhZGQgMTggYnl0ZXMsIDIgZm9yDQo+ID4gPj4+Pj4gRVNQIHRyYWlsZXIgYW5kIDE2 IGZvciBJQ1YuDQo+ID4gPj4+PiBPaywgY2FuIHdlIGF0IGxlYXN0IGhhdmUgYSBtYWNyb3MgZm9y IGFsbCB0aGVzZSBjb25zdGFudHM/DQo+ID4gPj4+PiBBbm90aGVyIHF1ZXN0aW9uOiB5b3UgZG8g dXNlIHBrdF9sZW4oKSBoZXJlIC0gZG9lcyBpdCBtZWFuIHRoYXQNCj4gPiA+Pj4+IG11bHRpLSBz ZWdtZW50IHBhY2tldHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgaXhnYmUtaXBzZWM/DQo+ID4gPj4+ PiBLb25zdGFudGluDQo+ID4gPj4+IEl0IGRvZXMgc3VwcG9ydCBtdWx0aXNlZ21lbnQsIGJ1dCB0 aGUgcGFkX2xlbiBoYXMgdG8gYmUgc2V0IG9ubHkNCj4gPiA+Pj4gZm9yIHNpbmdsZSBzZW5kLCBp dCB3aWxsIGJlIGlnbm9yZWQgb3RoZXJ3aXNlLiBJIGhhdmUgdXBkYXRlZCB0aGUNCj4gPiA+Pj4g Y29kZQ0KPiA+IHRvDQo+ID4gPj4gc2V0DQo+ID4gPj4+IGl0IGZvciBzaW5nbGUgc2VnbWVudCBw YWNrZXRzIG9ubHkuDQo+ID4gPj4gU29ycnksIEkgZGlkbid0IHVuZGVyc3RhbmQgdGhhdC4NCj4g PiA+PiBJZiB0aGF0IGZ1bmN0aW9uIGRvZXMgc3VwcG9ydCBtdWx0aXNlZyBwYWNrZXRzLCB0aGVu IGl0IGhhcyB0byBnbw0KPiA+ID4+IHRvIHRoZSBsYXN0IHNlZ21lbnQgdmlhIG0tPm5leHQsIElm IGl0IGRvZXNuJ3QsIHRoZW4gaXQgc2hvdWxkIHJldHVybiBhbg0KPiBlcnJvciBJIGNhc2Ugb2Yg bS0+bmJfc2VnICE9IDEuDQo+ID4gPj4gUmlnaHQ/DQo+ID4gPj4NCj4gPiA+Pj4gQWxzbywgb3Vy IHRlc3QgYXBwIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlzZWdtZW50IHBhY2tldHMuDQo+ID4gPj4g T2ssIEkgc3VwcG9zZSB0aGF0IG1lYW5zLCBtdWx0aS1zZWcgY2FzZSB3YXNuJ3QgdGVzdGVkIDop DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+DQoNCg==