From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0566720985990 for ; Tue, 29 May 2018 07:56:56 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 May 2018 07:56:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,456,1520924400"; d="scan'208,217";a="232842219" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga006.fm.intel.com with ESMTP; 29 May 2018 07:56:56 -0700 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 29 May 2018 07:56:56 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx120.amr.corp.intel.com (10.18.124.208) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 29 May 2018 07:56:55 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.82]) with mapi id 14.03.0319.002; Tue, 29 May 2018 22:56:53 +0800 From: "Yao, Jiewen" To: Abhishek Singh CC: "Zeng, Star" , Marvin H?user , "edk2-devel@lists.01.org" , Laszlo Ersek , "afish@apple.com" , "Ni, Ruiyu" , "Dong, Eric" , "Yao, Jiewen" Thread-Topic: [edk2] smm lock query Thread-Index: AQHT9QLhYEnqaG5f2EWOICMzKqqKQKRDRMuAgABCAYCAAO58gIAAM/+AgABCkoCAAHkqgIAAliMA//+tfACAASdwEA== Date: Tue, 29 May 2018 14:56:53 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AC165F7@shsmsx102.ccr.corp.intel.com> References: <0C4E04D0-E863-4779-AFFA-44A0E6F8FB20@apple.com> <0b422b9a-6995-896d-4166-cd9792e818de@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BB47EC2@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AC13EC5@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDFmYzE2MDQtMjUxMy00ZjgxLWIwNmUtYWI3OTNjZWRjNzhhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiT2J0cnM2ZkxHOUlnT2hDM1dZd3NqT2FrUWk1VWJxeW42dWVyRjFcL2pldEdiNDUyTUczemJKRlZBNzl2bTdKdmoifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.26 Subject: Re: smm lock query X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 May 2018 14:56:57 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhbSBub3Qgc3VyZSB0aGUgcHVycG9zZSBvZiB1c2luZyBWYXJpYWJsZSB0byBzdG9yZSBTTVJB TS4NCg0KQnV0IGlmIHlvdSBqdXN0IHdhbnQgdG8ga25vdyB0aGUgY29udGVudCwgeW91IGNhbiBh bGxvY2F0ZSBhIG5vcm1hbCBEUkFNIGJ1ZmZlciwgYW5kIGp1c3Qgc2F2ZSB0aGUgYnVmZmVyIGFk ZHJlc3MgYW5kIGxlbmd0aCBpbiB0aGUgVUVGSSB2YXJpYWJsZS4NCg0KVGhhdCB3aWxsIHNhdmUg bXVjaCB2YXJpYWJsZSBzaXplLg0KDQpMYXRlciwgeW91IGNhbiB3cml0ZSBhIFVFRkkgU2hlbGwg YXBwIHRvIHJlYWQgdGhlIHZhcmlhYmxlLCBnZXQgdGhlIG1lbW9yeSBhZGRyZXNzLCBhbmQgc2F2 ZSB0aGUgY29udGVudCBpbiBhIGZpbGUgb24gdGhlIGZpbGUgc3lzdGVtLg0KDQpUaGFuayB5b3UN CllhbyBKaWV3ZW4NCg0KRnJvbTogQWJoaXNoZWsgU2luZ2ggW21haWx0bzphYmhAY3MudW5jLmVk dV0NClNlbnQ6IE1vbmRheSwgTWF5IDI4LCAyMDE4IDEwOjE4IFBNDQpUbzogWWFvLCBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPg0KQ2M6IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5j b20+OyBNYXJ2aW4gSD91c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT47IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnOyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgYWZpc2hA YXBwbGUuY29tOyBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IERvbmcsIEVyaWMgPGVy aWMuZG9uZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2VkazJdIHNtbSBsb2NrIHF1ZXJ5DQoN ClRoYW5rcywgSmlld2VuIGFuZCBTdGFyLiBJIHdhcyBhYmxlIHRvIGZpZ3VyZSBvdXQgdGhhdCBz bXJyIHdhcyBwcmV2ZW50aW5nIG1lIGZyb20gYWNjZXNzaW5nIHRoZSBjb250ZW50cyBvZiBzbXJh bS4gSXQgc2VlbXMgdG8gbWUgdGhhdCB0aGlzIHZpb2xhdGVzIHRoZSBFRklfTU1fQUNDRVNTX1BS T1RPQ09MICBwcm90b2NvbC4gSSBoYXZlIHRhbGtlZCB0byB0aGUgZWRrMi1wbGF0Zm9ybSBtYWlu dGFpbmVycyBhYm91dCB0aGlzIG9uIGEgcHJpdmF0ZSB0aHJlYWQsIGJ1dCwgb2YgY291cnNlLCBJ IG1heSBiZSBtaXN0YWtlbi4NCg0KSSBhZ3JlZSB0aGF0IHNtbSBpcyBhIHJ1bnRpbWUgZW52aXJv bm1lbnQsIGJ1dCB5b3UgbXVzdCBhbHNvIGFncmVlIHRoYXQgdGhlcmUgaXMgYW4gaW5pdGlhbGl6 YXRpb24gb3IgbG9hZGluZyBwaGFzZSBpbiB3aGljaCBhbGwgdGhlIHNtaSBoYW5kbGVycyBhcmUg bG9hZGVkIGludG8gc21yYW0uIFRoZW9yZXRpY2FsbHksIG5ldyBoYW5kbGVycyBtYXkga2VlcCBn ZXR0aW5nIGluc3RhbGxlZCBhcyBzbWkncyBhcmUgcmVjZWl2ZWQgYnV0IEkgZG91YnQgdGhhdCB0 aGlzIGlzIHRoZSBjYXNlLiBUaGVyZSBtdXN0IGJlIGEgcG9pbnQgYXQgd2hpY2ggdGhlIGNvZGUg KG5vdCBuZWNlc3NhcmlseSB0aGUgZGF0YSkgaXMgc3VwcG9zZWQgdG8gYmUgZml4ZWQgaW4gc21y YW0uIE15IGd1ZXNzIGlzIHRoYXQgdGhhdCBwb2ludCBpcyBhZnRlciB0aGUgU01JIGhhbmRsZXJz IGhhdmUgcmVzcG9uZGVkIHRvIHRoZSBTbW1SZWFkeVRvTG9jayBldmVudCwgYnV0IEkgd291bGQg bGlrZSB0byBrbm93IGlmIHlvdSBkaXNhZ3JlZS4NCg0KSSBhbSBkZWZpbml0ZWx5IG5vdCBzZWVr aW5nIHRvIGFkZCB0aGUgc21yYW0gZHVtcGluZyBjb2RlIGFzIGEgcHJvZHVjdGlvbiBmZWF0dXJl LiBJIGFtIG1lcmVseSBpbnRlcmVzdGVkIGluIHVzaW5nIGl0IGZvciBteSByZXNlYXJjaC4NCg0K SSBtYXkgaGF2ZSB0byByZXNvcnQgdG8gd3JpdGluZyBhbiBzbW0gZHJpdmVyLCBhcyB5b3Ugc3Vn Z2VzdCBKaWV3ZW4sIGJ1dCBjdXJyZW50bHkgSSBhbSBqdXN0IHRyeWluZyB0byBkdW1wIHNtcmFt IGNvbnRlbnRzIGZyb20gc21tIGlwbCwgaGF2aW5nIGRpc2FibGVkIHNtcnIgaW4gU21tQ3B1RmVh dHVyZXNMaWIuIFRoZSBwcm9ibGVtLCBpbiBib3RoIGNhc2VzLCBpcyB0aGF0IHRoZSBzbXJhbSBy YW5nZSBpcyBxdWl0ZSBsYXJnZSAoYXJvdW5kIDggTUIpIGFuZCBjYW5ub3QgZml0IGluIGEgc2lu Z2xlIFVFRkkgdmFyaWFibGUuIERvIHlvdSBoYXZlIGFueSBzdWdnZXN0aW9ucyBvbiBob3cgdG8g YWN0dWFsbHkgZHVtcCBvdXQgdGhpcyBsYXJnZSByYW5nZT8NCg0KVGhhbmtzIGFnYWluLA0KQWJo aXNoZWsNCg0KDQpPbiBNb24sIE1heSAyOCwgMjAxOCBhdCAxMDoyMSBQTSwgWWFvLCBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+IHdyb3Rl Og0KTGV0IG1lIHNoYXJlIG15IHRob3VnaHQuDQoNCjEpICAgICAgRnJvbSBpbnRlcmZhY2UgcG9p bnQgb2YgdmlldywgUmVhZHlUb0xvY2sgbWVhbnMgaXQgaXMgdGhlIGxhc3QgdGltZSB0byBsb2Nr LiBCdXQgaXQgZG9lcyBub3QgbWVhbiBpdCBtdXN0IGJlIG9wZW4gYmVmb3JlLg0KQXMgaW1wbGVt ZW50YXRpb24gY2hvaWNlLCBhIHBsYXRmb3JtIE1BWSBsb2NrIGl0IGVhcmxpZXIuDQoNCkFsc28g U01SUiBtYXkgZm9yY2UgdGhlIFNNUkFNIGludmlzaWJsZSB0byBvdXRzaWRlIFNNUkFNLCBldmVu IHdpdGggRF9PUEVOIHNldC4NCg0KDQoyKSAgICAgIER1bXBpbmcgU01SQU0gZXhwb3NlcyB0aGUg c2VjcmV0IGluc2lkZSBvZiBTTVJBTSwgSSB3b3VsZCB0cmVhdCBpdCBhcyBkZWJ1ZyBmZWF0dXJl IG9ubHksIG5vdCBhIHByb2R1Y3Rpb24uDQoNCklmIHlvdSB3YW50IHRvIGRlYnVnLCB5b3UgY2Fu IGFkZCBhIGRlYnVnIFNNTSBkcml2ZXIgYW5kIGV4cG9zZSBhbiBpbnRlcmZhY2UgdG8gY29weSBT TVJBTSBjb250ZW50IG91dC4NCg0KVGhhbmsgeW91DQpZYW8gSmlld2VuDQoNCkZyb206IFplbmcs IFN0YXINClNlbnQ6IE1vbmRheSwgTWF5IDI4LCAyMDE4IDY6MTYgUE0NClRvOiBBYmhpc2hlayBT aW5naCA8YWJoQGNzLnVuYy5lZHU8bWFpbHRvOmFiaEBjcy51bmMuZWR1Pj47IE1hcnZpbiBIP3Vz ZXIgPE1hcnZpbi5IYWV1c2VyQG91dGxvb2suY29tPG1haWx0bzpNYXJ2aW4uSGFldXNlckBvdXRs b29rLmNvbT4+DQpDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxA bGlzdHMuMDEub3JnPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbTxtYWlsdG86bGVy c2VrQHJlZGhhdC5jb20+PjsgYWZpc2hAYXBwbGUuY29tPG1haWx0bzphZmlzaEBhcHBsZS5jb20+ OyBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbTxtYWlsdG86cnVpeXUubmlAaW50ZWwuY29t Pj47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRl bC5jb20+PjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5n QGludGVsLmNvbT4+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmpp ZXdlbi55YW9AaW50ZWwuY29tPj4NClN1YmplY3Q6IFJFOiBbZWRrMl0gc21tIGxvY2sgcXVlcnkN Cg0KSSBkbyBub3Qgc2VlIGlzc3VlIGFjY29yZGluZyB0byB0aGUgc3BlYy4NClBsYXRmb3JtIHNo b3VsZCBrbm93IHdoZW4gdG8gc2lnbmFsIER4ZVNtbVJlYWR5VG9Mb2NrIChhZnRlciBFbmRPZkR4 ZSkuDQpEeGVTbW1SZWFkeVRvTG9jayBldmVudCBpcyB0byBub3RpZnkgRFhFIGhhbmRsZXJzLg0K TW9kdWxlcyBhcmUgcmVzcG9uc2libGUgdG8gbG9jayBvciBwcm90ZWN0IHRoZWlyIHJlc291cmNl IGFuZCBlZmZlY3QgdGhlIGFwcHJvcHJpYXRlIHByb3RlY3Rpb25zIGluIHRoZWlyIG5vdGlmaWNh dGlvbiBoYW5kbGVycy4NClNtbUlwbEd1aWRlZEV2ZW50Tm90aWZ5IGlzIHVzZWQgdG8gaW5mb3Jt IFNNTSBlbnZpcm9ubWVudCB0byBzaWduYWwgU21tUmVhZHlUb0xvY2suDQpTbW1SZWFkeVRvTG9j ayBldmVudCBpcyB0byBub3RpZnkgU01NIGhhbmRsZXJzLg0KDQpEWEUgaGFuZGxlcnMgY291bGQg bm90IHRvdWNoIFNNUkFNIChhZnRlciBTTVJBTSBpcyBsb2NrZWQgb3IgZXZlbiBhZnRlciBTTVJS IGlzIGNvbmZpZ3VyZWQgaW4gUGlTbW1DcHVEeGVTbW0gaWYgSSBrbm93IGl0IGlzIGNvcnJlY3Qp Lg0KDQrigJxUaGlzIHByb3RvY29sIGluIHRhbmRlbSB3aXRoIHRoZSBFbmQgb2YgRFhFIEV2ZW50 IGZhY2lsaXRhdGVzIHRyYW5zaXRpb24gb2YgdGhlIHBsYXRmb3JtIGZyb20gdGhlIGVudmlyb25t ZW50IHdoZXJlIGFsbCBvZiB0aGUgY29tcG9uZW50cyBhcmUgdW5kZXIgdGhlIGF1dGhvcml0eSBv ZiB0aGUgcGxhdGZvcm0gbWFudWZhY3R1cmVyIHRvIHRoZSBlbnZpcm9ubWVudCB3aGVyZSB0aGly ZCBwYXJ0eSBleHRlbnNpYmxlIG1vZHVsZXMgc3VjaCBhcyBVRUZJIGRyaXZlcnMgYW5kIFVFRkkg YXBwbGljYXRpb25zIGFyZSBleGVjdXRlZC4NCg0KVGhlIHByb3RvY29sIGlzIHB1Ymxpc2hlZCBp bW1lZGlhdGVseSBhZnRlciBzaWduYWxpbmcgb2YgdGhlIEVuZCBvZiBEWEUgRXZlbnQuDQpQSSBt b2R1bGVzIHRoYXQgbmVlZCB0byBsb2NrIG9yIHByb3RlY3QgdGhlaXIgcmVzb3VyY2VzIGluIGFu dGljaXBhdGlvbiBvZiB0aGUgaW52b2NhdGlvbiBvZiAzcmQgcGFydHkgZXh0ZW5zaWJsZSBtb2R1 bGVzIHNob3VsZCByZWdpc3RlciBmb3Igbm90aWZpY2F0aW9uIG9uIGluc3RhbGxhdGlvbiBvZiB0 aGlzIHByb3RvY29sIGFuZCBlZmZlY3QgdGhlIGFwcHJvcHJpYXRlIHByb3RlY3Rpb25zIGluIHRo ZWlyIG5vdGlmaWNhdGlvbiBoYW5kbGVycy4gRm9yIGV4YW1wbGUsIFBJIHBsYXRmb3JtIGNvZGUg bWF5IGNob29zZSB0byB1c2Ugbm90aWZpY2F0aW9uIGhhbmRsZXIgdG8gbG9jayBNTSBieSBpbnZv a2luZyBFRklfTU1fQUNDRVNTX1BST1RPQ09MLkxvY2soKSBmdW5jdGlvbi7igJ0NCg0KDQpTTU0g ZW52aXJvbm1lbnQgaXMgYSAqcnVudGltZSogZW52aXJvbm1lbnQuIFNNUkFNIHdpbGwgYmUgZXZl biBjaGFuZ2VkIGFmdGVyIFNtbVJlYWR5VG9Mb2NrLCBmb3IgZXhhbXBsZSwgYnkgU01NIGhhbmRs ZXIgZm9yIFNNTSBjb21tdW5pY2F0aW9uIGZyb20gRFhFLg0KDQoNClRoYW5rcywNClN0YXINCkZy b206IEFiaGlzaGVrIFNpbmdoIFttYWlsdG86YWJoQGNzLnVuYy5lZHVdDQpTZW50OiBUdWVzZGF5 LCBNYXkgMjksIDIwMTggMjowMiBBTQ0KVG86IE1hcnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFldXNl ckBvdXRsb29rLmNvbTxtYWlsdG86TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+Pg0KQ2M6IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47IExh c3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb208bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj47 IGFmaXNoQGFwcGxlLmNvbTxtYWlsdG86YWZpc2hAYXBwbGUuY29tPjsgTmksIFJ1aXl1IDxydWl5 dS5uaUBpbnRlbC5jb208bWFpbHRvOnJ1aXl1Lm5pQGludGVsLmNvbT4+OyBEb25nLCBFcmljIDxl cmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj47IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb208bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+Pg0KU3Vi amVjdDogUmU6IFtlZGsyXSBzbW0gbG9jayBxdWVyeQ0KDQpUaGFuayB5b3UgZXZlcnlvbmUgZm9y IHlvdXIgaW5wdXRzIGFuZCBjbGFyaWZpY2F0aW9ucy4gVGhleSBhcmUgaGVscGluZyBtZSB0byBi ZXR0ZXIgdW5kZXJzdGFuZCB0aGUgdWVmaSBjb2RlLCB0byB3aGljaCBJIGFtIHZlcnkgbmV3LiBJ IGRvIG5vdCBtZWFuIHRvIGhpamFjayB0aGUgdGhyZWFkOiBzbyBwbGVhc2UgY29udGludWUgeW91 ciBkaXNjdXNzaW9ucyBhYm91dCB3aGV0aGVyIHRoZSBpbXBsZW1lbnRhdGlvbiBtYXRjaGVzIHRo ZSBzcGVjLg0KDQpIb3dldmVyLCBJIHdhbnQgdG8gc3RhdGUgd2h5IEkgYW0gaW50ZXJlc3RlZCBp biB0aGUgSVBMIGNvZGUuIEZvciBteSByZXNlYXJjaCwgSSB3aXNoIHRvIGR1bXAgdGhlIGNvbnRl bnRzIG9mIFNNUkFNIHdoZW4gaXQgaGFzIHJlYWNoZWQgc3RlYWR5IHN0YXRlLCBpLmUuLCBhbGwg dGhlIGRyaXZlcnMgaGF2ZSBtYWRlIGNoYW5nZXMgdG8gc21yYW0gYW5kIGl0IGhhcyBiZWVuIGxv Y2tlZC4gVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gKHNtbSBpcGwpIGxvY2tzIHNtcmFtIHdo ZW4gaXQgcmVjZWl2ZXMgdGhlIFNtbVJlYWR5VG9Mb2NrIGV2ZW50IGFuZCB0aGVuIHByb3BhZ2F0 ZXMgdGhlIGV2ZW50IHRvIHRoZSBzbW0gZHJpdmVycyB0aGF0IG1ha2UgZnVydGhlciBjaGFuZ2Vz IHRvIHNtcmFtLiBVbmZvcnR1bmF0ZWx5LCBJIGNhbm5vdCB0YWtlIGEgc25hcHNob3Qgb2Ygc21y YW0gYWZ0ZXIgaXQgaGFzIGJlZW4gbG9ja2VkISBUaHVzLCBJIGhhdmUgc29sdmVkIHRoaXMgaXNz dWUgYnkgcHJvcGFnYXRpbmcgdGhlIGV2ZW50IHRvIHRoZSBzbW0gZHJpdmVycyBmaXJzdCAodXNp bmcgU21tSXBsR3VpZGVkRXZlbnROb3RpZnkpLCB0aGVuIG9wZW5pbmcgYWNjZXNzIHRvIGFuZCBk dW1waW5nIHRoZSBjb250ZW50cyBvZiBTTVJBTSwgYW5kIGZpbmFsbHkgY2xvc2luZyBhY2Nlc3Mg dG8gYW5kIGxvY2tpbmcgc21yYW0uIFdvdWxkIGl0IGJlIGZhaXIgdG8gc2F5IHRoYXQgdGhpcyB3 b3VsZCBnaXZlIG1lIHRoZSBmdWxseSBpbml0aWFsaXplZCBjb250ZW50cyBvZiBzbXJhbT8NCg0K DQoNCk15IHNlY29uZCBvYnNlcnZhdGlvbiBpcyB0aGF0IGRlc3BpdGUgb3BlbmluZyBhY2Nlc3Mg dG8gc21yYW0sIEkgYW0gdW5hYmxlIHRvIGFjY2VzcyBpdHMgY29udGVudHMsIHdoaWNoIGlzIGEg dmlvbGF0aW9uIG9mIHRoZSBFRklfTU1fQUNDRVNTX1BST1RPQ09MLk9wZW4oKSBkZXNjcmlwdGlv biBpbiB0aGUgc3BlYywgd2hpY2ggc2F5czogIlRoaXMgZnVuY3Rpb24g4oCcb3BlbnPigJ0gTU1S QU0gc28gdGhhdCBpdCBpcyB2aXNpYmxlIHdoaWxlIG5vdCBpbnNpZGUgb2YgTU0uIiBOb3RlIHRo YXQgSSBhbSB3b3JraW5nIHdpdGggbWlubm93Ym9hcmQgZmlybXdhcmUgcmVsZWFzZSAwLjk3LiBT byBzb21lIG9mIHRoZSBiaW5hcmllcyBsaWtlIFNtbUFjY2Vzcy5lZmkgYXJlIHByb3ZpZGVkIGJ5 IEludGVsLCB3aGlsZSBvdGhlcnMgaGF2ZSBiZWVuIGJ1aWx0IGZyb20gdGhlIGVkayBzb3VyY2Ug dHJlZTogdGh1cywgdGhpcyBtYXkgbm90IGJlIGFuIEVESyBpc3N1ZS4gUGxlYXNlIHN1Z2dlc3Qg ZnVydGhlciBzdGVwcyBhbmQvb3Igd29ya2Fyb3VuZHMuIFNob3VsZCBJIGNvbnRhY3QgZWRrMi1w bGF0Zm9ybXMgbWFpbnRhaW5lcnMsIG9yIHN0YXJ0IGEgbmV3IHRocmVhZCBoZXJlIGZvciB0aGlz IGlzc3VlPw0KDQotQWJoaXNoZWsNCg0KDQpPbiBNb24sIE1heSAyOCwgMjAxOCBhdCAxMDowMyBB TSwgTWFydmluIEjDpHVzZXIgPE1hcnZpbi5IYWV1c2VyQG91dGxvb2suY29tPG1haWx0bzpNYXJ2 aW4uSGFldXNlckBvdXRsb29rLmNvbT4+IHdyb3RlOg0KSGVsbG8gQW5kcmV3IGFuZCBMYXN6bG8s DQoNClRoYW5rcyBmb3IgeW91ciBjb21tZW50cyENCk9mIGNvdXJzZSBJJ20gd2l0aCB5b3UgdGhh dCBpdCBpcyB0aGUgcGxhdGZvcm0gdGhhdCBzaWduYWxzIHRoZSBTbW1SZWFkeVRvTG9jayBldmVu dCBhbmQgdGhlcmVmb3IgaXMgYXdhcmUuDQpIb3dldmVyLCB0aGV5IG1pZ2h0IHJlbHkgb24gdGhl IHByb3RvY29sJ3MgZGVzY3JpcHRpb24gdGhhdCB0aGUgcmVzb3VyY2VzIGFyZSBhYm91dCghKSB0 byBiZSBsb2NrZWQgYW5kIGNvZGUgYWNjb3JkaW5nbHksIG5vdCBjb25zaWRlcmluZyB0aGUgZXZl bnQgY2hhcmFjdGVyaXN0aWMgb2YgdGhlIGhhbmRsZXIgaW4gUGlTbW1JcGwuDQpUaGUgY29kZSBt aWdodCBiZSB3cml0dGVuIGJ5IGRpZmZlcmVudCBwZW9wbGUsIG5vdCBlc3BlY2lhbGx5IHJldmll d2VkIGFnYWluc3QgZWRrMidzIGFjdGlvbnMsIG9yIGFkZGl0aW9uYWwgY29kZSBtaWdodCBiZSBz dXBwbGllZCBieSB0aGlyZCBwYXJ0aWVzIHRoYXQgZG8gbm90IGhhdmUgdHJlZSBjb2RlIGFjY2Vz cyAod2hpY2gsIGJ5IGludGVncmF0aW9uLCB3b3VsZCBiZSAicGxhdGZvcm0gYmluYXJpZXMiIGJ5 IHRoZSBkZWZpbml0aW9uIGFwcGx5aW5nIGhlcmUpLg0KDQpUaGVyZWZvciBJIHdvdWxkIHN0aWxs IGFzayBldmVyeW9uZSB0byBjb25zaWRlciBmaWd1cmluZyBvdXQgYSBzb2x1dGlvbiB0byB0aGlz IGRpc2NyZXBhbmN5IGZyb20gdGhlIHNwZWNpZmljYXRpb24sIHN1Y2ggYXMgdGhlIGludGVybmFs ICJkdW1teSBldmVudCIgSSBwcm9wb3NlZC4NCg0KVGhhbmtzLA0KTWFydmluLg0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhh dC5jb208bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj4NCj4gU2VudDogTW9uZGF5LCBNYXkgMjgs IDIwMTggMTI6NTggUE0NCj4gVG86IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb208bWFpbHRv OmFmaXNoQGFwcGxlLmNvbT4+OyBNYXJ2aW4gSD91c2VyDQo+IDxNYXJ2aW4uSGFldXNlckBvdXRs b29rLmNvbTxtYWlsdG86TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+Pg0KPiBDYzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPjsgQWJoaXNo ZWsgU2luZ2ggPGFiaEBjcy51bmMuZWR1PG1haWx0bzphYmhAY3MudW5jLmVkdT4+Ow0KPiBydWl5 dS5uaUBpbnRlbC5jb208bWFpbHRvOnJ1aXl1Lm5pQGludGVsLmNvbT47IGVyaWMuZG9uZ0BpbnRl bC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+OyBzdGFyLnplbmdAaW50ZWwuY29tPG1h aWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIHNtbSBsb2Nr IHF1ZXJ5DQo+DQo+IE9uIDA1LzI3LzE4IDIyOjQ0LCBBbmRyZXcgRmlzaCB3cm90ZToNCj4gPg0K PiA+DQo+ID4+IE9uIE1heSAyNywgMjAxOCwgYXQgOTo0NyBBTSwgTWFydmluIEg/dXNlcg0KPiA8 TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb208bWFpbHRvOk1hcnZpbi5IYWV1c2VyQG91dGxvb2su Y29tPj4gd3JvdGU6DQo+ID4+DQo+ID4+IEdvb2QgZGF5IEFiaGlzaGVrLA0KPiA+Pg0KPiA+PiBJ IENDJ2QgdGhlIE1kZU1vZHVsZVBrZyBtYWludGFpbmVycywgUnVpeXUgZm9yIHRoZSBQbGF0Zm9y bSBCRFMgYXNwZWN0DQo+IChleHBvc2VzIHRoZSBSZWFkeVRvTG9jayBwcm90b2NvbCkgYW5kIExh c3psbyBmb3IgaGlzIGhpZ2gtcXVhbGl0eSBhbnN3ZXJzLg0KPiA+Pg0KPiA+PiBTdHJpY3RseSBz cGVha2luZyB5b3UgYXJlLCByaWdodCwgYmVjYXVzZSBvZiB0aGUgZGVzY3JpcHRpb24gZm9yIHRo ZSBNTQ0KPiBwcm90b2NvbDoNCj4gPj4gIkluZGljYXRlcyB0aGF0IE1NIHJlc291cmNlcyBhbmQg c2VydmljZXMgdGhhdCBzaG91bGQgbm90IGJlIHVzZWQgYnkgdGhlDQo+IHRoaXJkIHBhcnR5IGNv ZGUgYXJlIGFib3V0W01hcnZpbjogKCEpXSB0byBiZSBsb2NrZWQuIg0KPiA+PiBQcmFjdGljYWxs eSBob3dldmVyLCBJIGRvbid0IHNlZSBhbnkgaXNzdWUgd2l0aCB0aGUgY3VycmVudA0KPiBpbXBs ZW1lbnRhdGlvbi4gQ29kZSBpbnNpZGUgTU1SQU0gaXMgbm90IGFmZmVjdGVkIGRpcmVjdGx5IGJ5 IHRoZSBsb2NrLCBpdCBpcw0KPiBqdXN0IG5vdGlmaWVkLg0KPiA+PiBIb3dldmVyLCBlaXRoZXIg dGhlIGNvZGUgb3IgdGhlIHNwZWNpZmljYXRpb24gc2hvdWxkIGJlIHNsaWdodGx5IHVwZGF0ZWQN Cj4gdG8gYmUgaW4gc3luYy4gQSBjb2RlIHVwZGF0ZSBtaWdodCByZXF1aXJlIHJldmlldyBvZiB0 aGUgY2FsbGVyIGFzc3VtcHRpb25zLA0KPiBqdXN0IHRvIGJlIHN1cmUuDQo+ID4+DQo+ID4+IEkg aGF2ZSBhIGRpZmZlcmVudCBjb25jZXJuIHRob3VnaCBhbmQgaG9wZSBJJ20gYWN0dWFsbHkgb3Zl cmxvb2tpbmcNCj4gc29tZXRoaW5nLg0KPiA+PiBJZiBJIHVuZGVyc3RhbmQgdGhlIGNvZGUgY29y cmVjdGx5LCBpdCBpcyB0aGUgUGxhdGZvcm0gQkRTIHRoYXQgZXhwb3NlcyB0aGUNCj4gKFMpTW1S ZWFkeVRvTG9jayBwcm90b2NvbC4gUGlTbW1JcGwgc2VlbXMgdG8gY29uc3VtZSB0aGF0IGV2ZW50 IGFuZA0KPiBsb2NrIFNNTSByZXNvdXJjZXMgYmFzZWQgb24gdGhlIGV2ZW50Lg0KPiA+PiBCZWNh dXNlIG9mIGxhdHRlciBiZWluZyBhbiBldmVudCBob3dldmVyLCBJIGRvbid0IHRoaW5rIGl0IGlz LCBvciBjYW4gYmUsDQo+IGd1YXJhbnRlZWQgdG8gYmUgdGhlIGxhc3QgZXZlbnQgZ3JvdXAgbWVt YmVyIGV4ZWN1dGluZy4NCj4gPj4gV2hlbiBpdCBpcyBub3QgdGhlIGxhc3QsIHRoZSAiYWJvdXQg dG8gYmUgbG9ja2VkIiBwYXJ0IGlzIG5vdCB0cnVlIGZvciBhbnkNCj4gc3Vic2VxdWVudCBjYWxs YmFja3MsIHRoYXQgY291bGQgYWN0dWFsbHkgYmUgYSByaXNreSBicmVhayBvZiB0aGUgc3BlY2lm aWNhdGlvbg0KPiAtIGlmIGl0IGlzLg0KPiA+PiBJZiBpdCBpcyBhIGJyZWFrIG9mIHRoZSBzcGVj aWZpY2F0aW9uLCBJIGNhbiBvbmx5IHRoaW5rIG9mIGxldHRpbmcgUGxhdGZvcm0gQkRTDQo+IGV4 cG9zZSBhbiAiaW50ZXJuYWwiIGV2ZW50IGdyb3VwLCB3aGljaCBpcyBvbmx5IGNhdWdodCBieSBQ aVNtbUlwbCwgd2hpY2gNCj4gdGhlbiBkcml2ZXMgdGhlIGFjdHVhbCBTbW1SZWFkeVRvTG9jayBm bG93Lg0KPiA+PiBUaGlzIHdvdWxkIHJlcXVpcmUgdXBkYXRlcyB0byBhbGwgcGxhdGZvcm0gdHJl ZXMgYW5kIGhlbmNlIEkgd291bGQNCj4gcHJvcG9zZSBhIHRlbXBvcmFyeSBiYWNrd2FyZHMtY29t cGF0aWJpbGl0eS4NCj4gPj4NCj4gPj4gQW55IGNvbW1lbnRzPyBEaWQgSSBvdmVybG9vayBzb21l dGhpbmcgKEkgaG9wZSk/DQo+ID4+DQo+ID4NCj4gPiBNYXZ2aW4sDQo+ID4NCj4gPiBZb3UgYXJl IGNvcnJlY3QgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIG9mIG9yZGVyIGluIGV2ZW50cy4gVGhhbmtz IGZvciBjYydpbmcNCj4gdGhlIHJpZ2h0IGZvbGtzLCBhcyBJIGRvbid0IHJlbWVtYmVyIGFsbCB0 aGUgbG93IGxldmVsIGRldGFpbHMuLi4NCj4gPg0KPiA+IEluIGdlbmVyYWwgdGhlIGlkZWEgYmVo aW5kIHRoZSBNTSBjb2RlIGlzIGl0IG9ubHkgY29tZXMgZnJvbSB0aGUgcGxhdGZvcm0sDQo+IHRo ZW4gYnkgZGVmaW5pdGlvbiB0aGF0IGNvZGUgc2hvdWxkIGJlIGF3YXJlIHdoZW4gdGhlIHBsYXRm b3JtIHdhcyBnb2luZw0KPiB0byBsb2NrIE1NLiBJbiBhIHByYWN0aWNhbCBzZW5zZSBhbnkgTU0g bW9kdWxlIHRoYXQgaGFkIGEgZGVwZXggZXZhbHVhdGUNCj4gdG8gdHJ1ZSB3b3VsZCBoYXZlIGRp c3BhdGNoZWQgaW4gRFhFIHByaW9yIHRvIEJEUyBiZWluZyBsYXVuY2hlZC4gSW4gZ2VuZXJhbA0K PiBCRFMgaXMgdGhlIGNvZGUgdGhhdCBlbnVtZXJhdGVzIFBDSSBhbmQgY29ubmVjdHMgZGV2aWNl cywgdGh1cyB0aGVyZSBpcyBubw0KPiBjaGFuY2UgZm9yIDNyZCBwYXJ0eSBzb2Z0d2FyZSB0byBy dW4gYmVmb3JlIHRoYXQgcG9pbnQgaW4gdGhlIGJvb3QuIFNvIGluIGFuDQo+IGFic3RyYWN0IHNl bnNlIHRoYXQgbG9jayByZXByZXNlbnRzIHRoZSBlbmQgb2YgRFhFIGRpc3BhdGNoLg0KPg0KPiBU aGlzIGlzIG15IHVuZGVyc3RhbmRpbmcgYXMgd2VsbC4gZ0VmaUR4ZVNtbVJlYWR5VG9Mb2NrUHJv dG9jb2xHdWlkIGlzDQo+IGluc3RhbGxlZCBieSBQbGFmb3JtIEJEUyBiZWZvcmUgYW55IG5vbi1w bGF0Zm9ybSBiaW5hcmllcyBnZXQgYSBjaGFuY2UgdG8NCj4gcnVuLiBJbiB0ZXJtcyBvZiB0aGUg Y3VycmVudCBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIGludGVyZmFjZXMsIHRoYXQgbWVhbnMNCj4g dGhlIHByb3RvY29sIHNob3VsZCBiZSBpbnN0YWxsZWQgZnJvbQ0KPiBQbGF0Zm9ybUJvb3RNYW5h Z2VyQmVmb3JlQ29uc29sZSgpIChhcyBub3RlZCBvbiB0aGUgQVBJIGRlY2xhcmF0aW9uDQo+IGl0 c2VsZikuDQo+DQo+IFRoYW5rcw0KPiBMYXN6bG8NCg0KDQo=