From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E61D41A1DEC for ; Mon, 22 Aug 2016 06:50:30 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP; 22 Aug 2016 06:50:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,560,1464678000"; d="scan'208,217";a="518636" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga005.fm.intel.com with ESMTP; 22 Aug 2016 06:50:30 -0700 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 22 Aug 2016 06:50:30 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 22 Aug 2016 06:50:29 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.147]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.194]) with mapi id 14.03.0301.000; Mon, 22 Aug 2016 21:50:27 +0800 From: "Gao, Liming" To: Ard Biesheuvel , "Shi, Steven" CC: "edk2-devel@lists.01.org" , "Zhu, Yonghong" Thread-Topic: [PATCH] BaseTools/GenFw: ignore dynamic RELA sections Thread-Index: AQHR/F4EUjm166Tc2EioNQQWrDA+bKBUUcGAgAABJoCAAKxdYA== Date: Mon, 22 Aug 2016 13:50:26 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A1155ED8F9@shsmsx102.ccr.corp.intel.com> References: <1471860861-32600-1-git-send-email-ard.biesheuvel@linaro.org> <06C8AB66E78EE34A949939824ABE2B31033908B1@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDAxZmU3YTctOGJkNi00MmNiLTkyNTItNjVkY2IwYjllYmFjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImtjRWdSRms0Z3VQWGNQOWdrYm9ITkxHOER2VnFPWXZ4dVhcL1JmRWJsdndZPSJ9 x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 Subject: Re: [PATCH] BaseTools/GenFw: ignore dynamic RELA sections X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2016 13:50:31 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QXJkOg0KDQogIEkgaGF2ZSBubyBjb21tZW50LiBSZXZpZXdlZC1ieTogTGltaW5nIEdhbyA8bGlt aW5nLmdhb0BpbnRlbC5jb208bWFpbHRvOmxpbWluZy5nYW9AaW50ZWwuY29tPj4NCg0KVGhhbmtz DQpMaW1pbmcNCkZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGlu YXJvLm9yZ10NClNlbnQ6IE1vbmRheSwgQXVndXN0IDIyLCAyMDE2IDc6MzMgUE0NClRvOiBTaGks IFN0ZXZlbiA8c3RldmVuLnNoaUBpbnRlbC5jb20+DQpDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmc7IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IFpodSwgWW9uZ2hvbmcgPHlv bmdob25nLnpodUBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIXSBCYXNlVG9vbHMvR2Vu Rnc6IGlnbm9yZSBkeW5hbWljIFJFTEEgc2VjdGlvbnMNCg0KT24gMjIgQXVndXN0IDIwMTYgYXQg MTM6MjgsIFNoaSwgU3RldmVuIHdyb3RlOg0KPiBIaSBBcmQsDQo+IEkgbGlrZSB5b3UgcGF0aCwg YW5kIGl0IG1ha2VzIHRoZSBjb2RlIGxvb2sgbW9yZSBjbGVhci4gQnV0IGluIGZhY3QsIG9sZCBj b2RlIHNob3VsZCBhbHJlYWR5IGlnbm9yZSB0aGUgZHluYW1pYyBSRUxBIHNlY3Rpb25zIGltcGxp Y2l0bHkuDQo+DQo+IExpa2UgYmVsb3cgY29kZSwgd2hlbiB0aGUgR2VuRncgdXNlIC5yZWxhIHNl Y3Rpb24gaW5mbyB2YWx1ZSwgd2hpY2ggaXMgMCwgdG8gZ2V0IC5yZWxhIHRhcmdldCBhcHBseWlu ZyBzZWN0aW9uIGFkZHJlc3MgaW4gU2VjU2hkciwgaXQgd2lsbCBwb2ludCB0byBOVUxMIHNlY3Rp b24gWzBdLiBBbmQgdGhlIG5leHQgc2VjdGlvbiB0eXBlIGNoZWNraW5nLCB3aGljaCBpcyAoKkZp bHRlcikoU2VjU2hkciksIHdpbGwgZmFpbHMgYW5kIHRoZW4gc3RvcCB0aGUgLnJlbGEgc2VjdGlv biByZWxvY2F0aW9uIHByb2Nlc3MuDQo+DQo+IExpbmUgNjg1IG9mIEJhc2VUb29sc1xTb3VyY2Vc Q1xHZW5Gd1xFbGY2NENvbnZlcnQuYw0KPiAvLw0KPiAvLyBSZWxvY2F0aW9uIHNlY3Rpb24gZm91 bmQuIE5vdyBleHRyYWN0IHNlY3Rpb24gaW5mb3JtYXRpb24gdGhhdCB0aGUgcmVsb2NhdGlvbnMN Cj4gLy8gYXBwbHkgdG8gaW4gdGhlIEVMRiBkYXRhIGFuZCB0aGUgbmV3IENPRkYgZGF0YS4NCj4g Ly8NCj4gU2VjU2hkciA9IEdldFNoZHJCeUluZGV4KFJlbFNoZHItPnNoX2luZm8pOw0KPiBTZWNP ZmZzZXQgPSBtQ29mZlNlY3Rpb25zT2Zmc2V0W1JlbFNoZHItPnNoX2luZm9dOw0KPg0KPiAvLw0K PiAvLyBPbmx5IHByb2Nlc3MgcmVsb2NhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGZpbHRlciB0eXBl Lg0KPiAvLw0KPiBpZiAoUmVsU2hkci0+c2hfdHlwZSA9PSBTSFRfUkVMQSAmJiAoKkZpbHRlciko U2VjU2hkcikpIHsNCj4gLi4uIC4uLg0KPiB9DQo+DQoNCkluZGVlZC4gSSBtZW50aW9uZWQgdGhp cyBpbiB0aGUgY29tbWl0IGxvZzoNCg0KIiIiDQooYW5kIHdlIGFscmVhZHkgaWdub3JlIGl0IGlu IHByYWN0aWNlIGR1ZSB0byB0aGUgZmFjdCB0aGF0IGl0DQpwb2ludHMgdG8gdGhlIE5VTEwgc2Vj dGlvbiwgd2hpY2ggaGFzIHRoZSBTSEZfQUxMT0MgYml0IGNsZWFyZWQpDQoiIiINCg0KQnV0IGl0 IGlzIGltcG9ydGFudCB0byBpZGVudGlmeSB0aGlzIHNlY3Rpb24gZXhwbGljaXRseSwgc2luY2Ug aXQgd2lsbA0KaGF2ZSB0byBiZSBwcmVzZW50IGlmIHlvdSBhZGQgc3VwcG9ydCBmb3IgR09UIGJh c2VkIHJlbG9jYXRpb25zLg0KDQo+DQo+IEJ1dCBhbnl3YXksIEkgc3RpbGwgc3VwcG9ydCB5b3Ug YWRkIHRoaXMgcGF0Y2guDQo+DQoNClRoYW5rcywNCkFyZC4NCg0KDQo+DQo+DQo+IFN0ZXZlbiBT aGkNCj4gSW50ZWxcU1NHXFNUT1xVRUZJIEZpcm13YXJlDQo+DQo+IFRlbDogKzg2IDAyMS02MTE2 NjUyMg0KPiBpTmV0OiA4MjEtNjUyMg0KPg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4+IEZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9y Z10NCj4+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDIyLCAyMDE2IDY6MTQgUE0NCj4+IFRvOiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+OyBHYW8s IExpbWluZyA7IFNoaSwNCj4+IFN0ZXZlbiA7IFpodSwgWW9uZ2hvbmcNCj4+IENjOiBBcmQgQmll c2hldXZlbA0KPj4gU3ViamVjdDogW1BBVENIXSBCYXNlVG9vbHMvR2VuRnc6IGlnbm9yZSBkeW5h bWljIFJFTEEgc2VjdGlvbnMNCj4+DQo+PiBXaGVuIGJ1aWxkaW5nIFBJRSAoRVRfRFlOKSBleGVj dXRhYmxlcywgYW4gYWRkaXRpb25hbCBSRUxBIHNlY3Rpb24gaXMNCj4+IGVtaXR0ZWQgKGluIGFk ZGl0aW9uIHRvIHRoZSBwZXItc2VjdGlvbiAucmVsYS50ZXh0IGFuZCAucmVsYS5kYXRhIHNlY3Rp b25zKQ0KPj4gdGhhdCBpcyBpbnRlbmRlZCB0byBiZSByZXNvbHZlZCBhdCBydW50aW1lIGJ5IGEg RVRfRFlOIGNvbXBhdGlibGUgbG9hZGVyLg0KPj4NCj4+IEF0IHRoZSBtb21lbnQsIGR1ZSB0byB0 aGUgZmFjdCB0aGF0IHdlIGRvbid0IHN1cHBvcnQgR09UIGJhc2VkIHJlbG9jYXRpb25zLA0KPj4g dGhpcyBkeW5hbWljIFJFTEEgc2VjdGlvbiBvbmx5IGNvbnRhaW5zIHJlbG9jYXRpb25zIHRoYXQg YXJlIHJlZHVuZGFudCwNCj4+IGkuZS4sIGVhY2ggUl94eHhfUkVMQVRJVkUgcmVsb2NhdGlvbiBp dCBjb250YWlucyBkdXBsaWNhdGVzIGEgUl94eHhfQUJTNjQNCj4+IHJlbG9jYXRpb24gYXBwZWFy IGluIC5yZWxhLnRleHQgb3IgLnJlbGEuZGF0YSwgYW5kIHNvIHdlIGNhbiBzaW1wbHkgaWdub3Jl DQo+PiB0aGlzIHNlY3Rpb24gKGFuZCB3ZSBhbHJlYWR5IGlnbm9yZSBpdCBpbiBwcmFjdGljZSBk dWUgdG8gdGhlIGZhY3QgdGhhdCBpdA0KPj4gcG9pbnRzIHRvIHRoZSBOVUxMIHNlY3Rpb24sIHdo aWNoIGhhcyB0aGUgU0hGX0FMTE9DIGJpdCBjbGVhcmVkKQ0KPj4NCj4+IEZvciBleGFtcGxlLA0K Pj4NCj4+IFNlY3Rpb24gSGVhZGVyczoNCj4+IFtOcl0gTmFtZSBUeXBlIEFkZHJlc3MgT2Zmc2V0 DQo+PiBTaXplIEVudFNpemUgRmxhZ3MgTGluayBJbmZvIEFsaWduDQo+PiBbIDBdIE5VTEwgMDAw MDAwMDAwMDAwMDAwMCAwMDAwMDAwMA0KPj4gMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAw MDAwIDAgMCAwDQo+PiBbIDFdIC50ZXh0IFBST0dCSVRTIDAwMDAwMDAwMDAwMDAyNDAgMDAwMDAw YzANCj4+IDAwMDAwMDAwMDAwMDQyN2MgMDAwMDAwMDAwMDAwMDAwOCBBWCAwIDAgNjQNCj4+IFsg Ml0gLnJlbGEudGV4dCBSRUxBIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDkzMTANCj4+IDAwMDAwMDAw MDAwMDFiZjAgMDAwMDAwMDAwMDAwMDAxOCBJIDcgMSA4DQo+PiBbIDNdIC5kYXRhIFBST0dCSVRT IDAwMDAwMDAwMDAwMDQ0YzAgMDAwMDQzNDANCj4+IDAwMDAwMDAwMDAwMDQ2ZDAgMDAwMDAwMDAw MDAwMDAwMCBXQSAwIDAgNjQNCj4+IFsgNF0gLnJlbGEuZGF0YSBSRUxBIDAwMDAwMDAwMDAwMDAw MDAgMDAwMGFmMDANCj4+IDAwMDAwMDAwMDAwMDA2MDAgMDAwMDAwMDAwMDAwMDAxOCBJIDcgMyA4 DQo+PiBbIDVdIC5yZWxhIFJFTEEgMDAwMDAwMDAwMDAwOGJjMCAwMDAwOGExMA0KPj4gMDAwMDAw MDAwMDAwMDYwMCAwMDAwMDAwMDAwMDAwMDE4IDAgMCA4DQo+PiBbIDZdIC5zaHN0cnRhYiBTVFJU QUIgMDAwMDAwMDAwMDAwMDAwMCAwMDAwYjUwMA0KPj4gMDAwMDAwMDAwMDAwMDAzNyAwMDAwMDAw MDAwMDAwMDAwIDAgMCAxDQo+PiBbIDddIC5zeW10YWIgU1lNVEFCIDAwMDAwMDAwMDAwMDAwMDAg MDAwMDkwMTANCj4+IDAwMDAwMDAwMDAwMDAyMTAgMDAwMDAwMDAwMDAwMDAxOCA4IDE3IDgNCj4+ IFsgOF0gLnN0cnRhYiBTVFJUQUIgMDAwMDAwMDAwMDAwMDAwMCAwMDAwOTIyMA0KPj4gMDAwMDAw MDAwMDAwMDBlYiAwMDAwMDAwMDAwMDAwMDAwIDAgMCAxDQo+Pg0KPj4gUmVsb2NhdGlvbiBzZWN0 aW9uICcucmVsYS5kYXRhJyBhdCBvZmZzZXQgMHhhZjAwIGNvbnRhaW5zIDY0IGVudHJpZXM6DQo+ PiBPZmZzZXQgSW5mbyBUeXBlIFN5bS4gVmFsdWUgU3ltLiBOYW1lICsgQWRkZW5kDQo+PiAwMDAw MDAwMDQ4MDAgMDAwMTAwMDAwMDAxIFJfWDg2XzY0XzY0IDAwMDAwMDAwMDAwMDAyNDAgLnRleHQg Kw0KPj4gM2Y1Yg0KPj4gMDAwMDAwMDA0ODA4IDAwMDEwMDAwMDAwMSBSX1g4Nl82NF82NCAwMDAw MDAwMDAwMDAwMjQwIC50ZXh0ICsNCj4+IDNmNjMNCj4+IDAwMDAwMDAwNDgxMCAwMDAxMDAwMDAw MDEgUl9YODZfNjRfNjQgMDAwMDAwMDAwMDAwMDI0MCAudGV4dCArDQo+PiAzZjc5DQo+PiAwMDAw MDAwMDQ4MTggMDAwMTAwMDAwMDAxIFJfWDg2XzY0XzY0IDAwMDAwMDAwMDAwMDAyNDAgLnRleHQg Kw0KPj4gM2Y5MA0KPj4gMDAwMDAwMDA0ODIwIDAwMDEwMDAwMDAwMSBSX1g4Nl82NF82NCAwMDAw MDAwMDAwMDAwMjQwIC50ZXh0ICsNCj4+IDNmYTYNCj4+IC4uLg0KPj4NCj4+IFJlbG9jYXRpb24g c2VjdGlvbiAnLnJlbGEnIGF0IG9mZnNldCAweDhhMTAgY29udGFpbnMgNjQgZW50cmllczoNCj4+ IE9mZnNldCBJbmZvIFR5cGUgU3ltLiBWYWx1ZSBTeW0uIE5hbWUgKyBBZGRlbmQNCj4+IDAwMDAw MDAwNDgwMCAwMDAwMDAwMDAwMDggUl9YODZfNjRfUkVMQVRJVkUgNDE5Yg0KPj4gMDAwMDAwMDA0 ODA4IDAwMDAwMDAwMDAwOCBSX1g4Nl82NF9SRUxBVElWRSA0MWEzDQo+PiAwMDAwMDAwMDQ4MTAg MDAwMDAwMDAwMDA4IFJfWDg2XzY0X1JFTEFUSVZFIDQxYjkNCj4+IDAwMDAwMDAwNDgxOCAwMDAw MDAwMDAwMDggUl9YODZfNjRfUkVMQVRJVkUgNDFkMA0KPj4gMDAwMDAwMDA0ODIwIDAwMDAwMDAw MDAwOCBSX1g4Nl82NF9SRUxBVElWRSA0MWU2DQo+PiAwMDAwMDAwMDQ4MjggMDAwMDAwMDAwMDA4 IFJfWDg2XzY0X1JFTEFUSVZFIDQxZmYNCj4+IC4uLg0KPj4NCj4+IE5vdGUgdGhhdCBHT1QgYmFz ZWQgcmVsb2NhdGlvbnMgcmVzdWx0IGluIGVudHJpZXMgdGhhdCAqb25seSogYXBwZWFyIGluIHRo ZQ0KPj4gZHluYW1pYyAucmVsYSBzZWN0aW9uIGFuZCBub3QgaW4gLnJlbGEudGV4dCBvciAucmVs YS5kYXRhLiBUaGlzIG1lYW5zIHR3bw0KPj4gdGhpbmdzIGZvciBzdXBwb3J0aW5nIEdPVCBiYXNl ZCByZWxvY2F0aW9uczoNCj4+IC0gd2Ugc2hvdWxkIGNoZWNrIHRoYXQgYSBkeW5hbWljIFJFTEEg c2VjdGlvbiBleGlzdHMNCj4+IC0gd2Ugc2hvdWxkIGZpbHRlciBvdXQgZHVwbGljYXRlcyBiZXR3 ZWVuIC5yZWxhIGFuZCAucmVsYS54eHgsIHRvIHByZXZlbnQNCj4+IGVtaXR0aW5nIGR1cGxpY2F0 ZSBmaXh1cHMgaW50byB0aGUgUEUvQ09GRiAucmVsb2Mgc2VjdGlvbi4NCj4+DQo+PiBDb250cmli dXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4wDQo+PiBTaWdu ZWQtb2ZmLWJ5OiBBcmQgQmllc2hldXZlbA0KPj4gLS0tDQo+PiBCYXNlVG9vbHMvU291cmNlL0Mv R2VuRncvRWxmNjRDb252ZXJ0LmMgfCAxNCArKysrKysrKysrKysrKw0KPj4gMSBmaWxlIGNoYW5n ZWQsIDE0IGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvQmFzZVRvb2xzL1NvdXJj ZS9DL0dlbkZ3L0VsZjY0Q29udmVydC5jDQo+PiBiL0Jhc2VUb29scy9Tb3VyY2UvQy9HZW5Gdy9F bGY2NENvbnZlcnQuYw0KPj4gaW5kZXggNzA4YzFhMWQ5MWE3Li5hY2Y0MzU3MTIxNDYgMTAwNjQ0 DQo+PiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL0MvR2VuRncvRWxmNjRDb252ZXJ0LmMNCj4+ICsr KyBiL0Jhc2VUb29scy9Tb3VyY2UvQy9HZW5Gdy9FbGY2NENvbnZlcnQuYw0KPj4gQEAgLTY4Myw2 ICs2ODMsMjAgQEAgV3JpdGVTZWN0aW9uczY0ICgNCj4+IH0NCj4+DQo+PiAvLw0KPj4gKyAvLyBJ ZiB0aGlzIGlzIGEgRVRfRFlOIChQSUUpIGV4ZWN1dGFibGUsIHdlIHdpbGwgZW5jb3VudGVyIGEg ZHluYW1pYw0KPj4gU0hUX1JFTEENCj4+ICsgLy8gc2VjdGlvbiB0aGF0IGFwcGxpZXMgdG8gdGhl IGVudGlyZSBiaW5hcnksIGFuZCB3aGljaCB3aWxsIGhhdmUgaXRzIHNlY3Rpb24NCj4+ICsgLy8g aW5kZXggc2V0IHRvICMwICh3aGljaCBpcyBhIE5VTEwgc2VjdGlvbiB3aXRoIHRoZSBTSEZfQUxM T0MgYml0DQo+PiBjbGVhcmVkKS4NCj4+ICsgLy8NCj4+ICsgLy8gSW4gdGhlIGFic2VuY2Ugb2Yg R09UIGJhc2VkIHJlbG9jYXRpb25zICh3aGljaCB3ZSBjdXJyZW50bHkgZG9uJ3QNCj4+IHN1cHBv cnQpLA0KPj4gKyAvLyB0aGlzIFJFTEEgc2VjdGlvbiB3aWxsIG1vc3RseSBjb250YWluIFJfeHh4 X1JFTEFUSVZFIHJlbG9jYXRpb25zLCBvbmUNCj4+IGZvcg0KPj4gKyAvLyBldmVyeSBSX3h4eF9B QlM2NCByZWxvY2F0aW9uIGFwcGVhcmluZyBpbiB0aGUgcGVyLXNlY3Rpb24gUkVMQQ0KPj4gc2Vj dGlvbnMuDQo+PiArIC8vIChpLmUuLCAucmVsYS50ZXh0IGFuZCAucmVsYS5kYXRhKQ0KPj4gKyAv Lw0KPj4gKyBpZiAoUmVsU2hkci0+c2hfaW5mbyA9PSAwKSB7DQo+PiArIGNvbnRpbnVlOw0KPj4g KyB9DQo+PiArDQo+PiArIC8vDQo+PiAvLyBSZWxvY2F0aW9uIHNlY3Rpb24gZm91bmQuIE5vdyBl eHRyYWN0IHNlY3Rpb24gaW5mb3JtYXRpb24gdGhhdCB0aGUNCj4+IHJlbG9jYXRpb25zDQo+PiAv LyBhcHBseSB0byBpbiB0aGUgRUxGIGRhdGEgYW5kIHRoZSBuZXcgQ09GRiBkYXRhLg0KPj4gLy8N Cj4+IC0tDQo+PiAyLjcuNA0KPg0K