From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=212.61.153.67; helo=mail.prodrive-technologies.com; envelope-from=hristo.mihaylov@prodrive-technologies.com; receiver=edk2-devel@lists.01.org Received: from mail.prodrive-technologies.com (mail.prodrive-technologies.com [212.61.153.67]) (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 1BDA721A07A92 for ; Tue, 9 Oct 2018 03:25:18 -0700 (PDT) Received: from mail.prodrive-technologies.com (localhost.localdomain [127.0.0.1]) by localhost (Email Security Appliance) with SMTP id EA6B932FD5_BBC820CB; Tue, 9 Oct 2018 10:25:16 +0000 (GMT) Received: from mail.prodrive-technologies.com (exc04.bk.prodrive.nl [10.1.1.213]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.prodrive-technologies.com", Issuer "Prodrive Technologies B.V. OV SSL Issuing CA" (verified OK)) by mail.prodrive-technologies.com (Sophos Email Appliance) with ESMTPS id 6BEFA304AC_BBC820CF; Tue, 9 Oct 2018 10:25:16 +0000 (GMT) Received: from EXC04.bk.prodrive.nl (10.1.1.213) by EXC04.bk.prodrive.nl (10.1.1.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.35; Tue, 9 Oct 2018 12:25:12 +0200 Received: from EXC04.bk.prodrive.nl ([fe80::652c:6b39:fe91:49c8]) by EXC04.bk.prodrive.nl ([fe80::652c:6b39:fe91:49c8%15]) with mapi id 15.01.1261.035; Tue, 9 Oct 2018 12:25:12 +0200 From: Hristo Mihaylov To: Laszlo Ersek , "edk2-devel@lists.01.org" Thread-Topic: [edk2] RuntimeDXE unable to save variables to flash Thread-Index: AdRb0OAOM9LmzENHTFmm0N1V+JNYZAAIhwGAAPFDzBA= Date: Tue, 9 Oct 2018 10:25:12 +0000 Message-ID: References: <45fadad5-6dce-27c1-6479-f11e8cc5992a@redhat.com> In-Reply-To: <45fadad5-6dce-27c1-6479-f11e8cc5992a@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.1.2.1] MIME-Version: 1.0 X-SASI-RCODE: 200 Subject: Re: RuntimeDXE unable to save variables to flash X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Oct 2018 10:25:19 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIExhc3psbywNCg0KPiBBY2Nlc3NpbmcgaW52YWxpZCBNU1JzIG1heSByYWlzZSBpbmpl Y3Rpb25zLiBIb3cgZG8geW91IGtub3cgdGhlIE1TUiAweDFGRSBpcyB2YWxpZCAoYW5kIHRoZSBE YXRhMzIgdmFsdWUgaXMgdmFsaWQpPw0KDQpJJ2xsIGludmVzdGlnYXRlIHRoaXMgZnVydGhlci4N Cg0KPiBUaGF0J3MgYW4gRnZiLT5Xcml0ZSgpIGNhbGwuIERvIHlvdSBoYXZlIGFjY2VzcyB0byB0 aGUgc291cmNlIG9mIHRoZSBmbGFzaCBkcml2ZXIgKHdoaWNoIHByb2R1Y2VzIHRoZSBGVkIgcHJv dG9jb2wgaW5zdGFuY2UpPw0KDQpZZXMsIEkgZm91bmQgdGhhdCB0aGUgd3JpdGluZyBpcyBkb25l IGluIGEgZnVuY3Rpb24gY2FsbGVkIFNlbmRTcGlDbWQsIGhlcmUncyB0aGUgc2lnbmF0dXJlIChJ IGNhbid0IGRpc2Nsb3NlIHRoZSBmdWxsIHNvdXJjZSkuDQoNCmBgYA0KLyoqDQogIFRoaXMgZnVu Y3Rpb24gc2VuZHMgdGhlIHByb2dyYW1tZWQgU1BJIGNvbW1hbmQgdG8gdGhlIHNsYXZlIGRldmlj ZS4NCg0KICBAcGFyYW1baW5dIFRoaXMgICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFBD SF9TUElfUFJPVE9DT0wgaW5zdGFuY2UuDQogIEBwYXJhbVtpbl0gU3BpUmVnaW9uVHlwZSAgICAg ICAgVGhlIFNQSSBSZWdpb24gdHlwZSBmb3IgZmxhc2ggY3ljbGUgd2hpY2ggaXMgbGlzdGVkIGlu IHRoZSBEZXNjcmlwdG9yDQogIEBwYXJhbVtpbl0gRmxhc2hDeWNsZVR5cGUgICAgICAgVGhlIEZs YXNoIFNQSSBjeWNsZSB0eXBlIGxpc3QgaW4gSFNGQyAoSGFyZHdhcmUgU2VxdWVuY2luZyBGbGFz aCBDb250cm9sIFJlZ2lzdGVyKSByZWdpc3Rlcg0KICBAcGFyYW1baW5dIEFkZHJlc3MgICAgICAg ICAgICAgIFRoZSBGbGFzaCBMaW5lYXIgQWRkcmVzcyBtdXN0IGZhbGwgd2l0aGluIGEgcmVnaW9u IGZvciB3aGljaCBCSU9TIGhhcyBhY2Nlc3MgcGVybWlzc2lvbnMuDQogIEBwYXJhbVtpbl0gQnl0 ZUNvdW50ICAgICAgICAgICAgTnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBkYXRhIHBvcnRpb24gb2Yg dGhlIFNQSSBjeWNsZS4NCiAgQHBhcmFtW2luLG91dF0gQnVmZmVyICAgICAgICAgICBQb2ludGVy IHRvIGNhbGxlci1hbGxvY2F0ZWQgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhZGEgcmVjZWl2ZWQg b3Igc2VudCBkdXJpbmcgdGhlIFNQSSBjeWNsZS4NCg0KICBAcmV0dmFsIEVGSV9TVUNDRVNTICAg ICAgICAgICAgIFNQSSBjb21tYW5kIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuDQogIEByZXR2YWwg RUZJX0RFVklDRV9FUlJPUiAgICAgICAgRGV2aWNlIGVycm9yLCB0aGUgY29tbWFuZCBhYm9ydHMg YWJub3JtYWxseS4NCiAgQHJldHZhbCBFRklfQUNDRVNTX0RFTklFRCAgICAgICBTb21lIHVucmVj b2duaXplZCBjb21tYW5kIGVuY291bnRlcmVkIGluIGhhcmR3YXJlIHNlcXVlbmNpbmcgbW9kZQ0K ICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFRoZSBwYXJhbWV0ZXJzIHNwZWNpZmll ZCBhcmUgbm90IHZhbGlkLg0KKiovDQpFRklfU1RBVFVTDQpTZW5kU3BpQ21kICgNCiAgSU4gICAg IEVGSV9TUElfUFJPVE9DT0wgICAqVGhpcywNCiAgSU4gICAgIEZMQVNIX1JFR0lPTl9UWVBFICBG bGFzaFJlZ2lvblR5cGUsDQogIElOICAgICBGTEFTSF9DWUNMRV9UWVBFICAgRmxhc2hDeWNsZVR5 cGUsDQogIElOICAgICBVSU5UMzIgICAgICAgICAgICAgQWRkcmVzcywNCiAgSU4gICAgIFVJTlQz MiAgICAgICAgICAgICBCeXRlQ291bnQsDQogIElOIE9VVCBVSU5UOCAgICAgICAgICAgICAgKkJ1 ZmZlcg0KICApDQpgYGANCg0KSXQgZmFpbHMgd2hlbiBpdCBkb2VzIGEgc2FuaXR5IGNoZWNrLiBJ dCBjaGVja3MgYGlmIChBZGRyZXNzICsgQnl0ZUNvdW50KSA+IEZsYXNoUmVnaW9uU2l6ZWAuIFRo ZSBGbGFzaFJlZ2lvblNpemUgDQpzZWVtcyB0byBiZSBlc3RpbWF0ZWQgY29ycmVjdGx5LCBiZWNh dXNlIGl0J3MgdXNlZCB0byB3cml0ZSBvdGhlciB2YWx1ZXMgdG8gdGhhdCByZWdpb24sIHdoaWNo IHN1Y2NlZWQuDQoNCldoZW4gSSBsb2cgdGhlIHNhbml0eSBjaGVjayBsaWtlIGZvciB0aGUgaW5j b3JyZWN0IHZhbHVlIEkgc2VlOiBgU2VuZFNwaUNtZDogKDQ2MzM0MDUyICsgNjAgPSA0NjMzNDEx MikgPiAyMDk3MTUyMGAgDQp0aGUgYWRkcmVzcyBzZWVtcyB0byBiZSB3YXkgb2ZmLg0KDQpUaGUg QWRkcmVzcyBpcyBjYWxjdWxhdGVkIGluIEZ2YkdldExiYUFkZHJlc3MuIEFsbW9zdCBhIDEgdG8g MSBjb3B5IG9mIA0KaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvNzViN2Fh OTUyOGJkZDA1YTdlY2Y0ZTY0YTZiZWI0NzhkMzFiNDAyYy9Pdm1mUGtnL1FlbXVGbGFzaEZ2YlNl cnZpY2VzUnVudGltZUR4ZS9Gd0Jsb2NrU2VydmljZS5jI0wyMzcNCg0KSSB0aG91Z2h0IHRoYXQg dGhlIGlzc3VlIGlzIGVpdGhlciBiZWNhdXNlIG9mIGludmFsaWQgRlYgYmxvY2sgb3IgdGhlIHNp emUgb2YgdGhlIGZsYXNoIHJlZ2lvbiBpcyBjYWxjdWxhdGVkDQogaW5jb3JyZWN0bHksIGJ1dCB0 aGlzIG9ubHkgaGFwcGVucyBpbiBTTU0uIE5vdyBJJ20gbGVhbmluZyBtb3JlIHRvd2FyZHMgcGVy bWlzc2lvbnMuDQoNCkFueSBhZHZpY2U/DQoNClJlZ2FyZHMsDQpIcmlzdG8gTWloYXlsb3YNCg0K LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxl cnNla0ByZWRoYXQuY29tXSANClNlbnQ6IDA0IE9jdG9iZXIgMjAxOCAxOTowMA0KVG86IEhyaXN0 byBNaWhheWxvdiA8aHJpc3RvLm1paGF5bG92QHByb2RyaXZlLXRlY2hub2xvZ2llcy5jb20+OyBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KU3ViamVjdDogUmU6IFtlZGsyXSBSdW50aW1lRFhFIHVu YWJsZSB0byBzYXZlIHZhcmlhYmxlcyB0byBmbGFzaA0KDQpPbiAxMC8wNC8xOCAxMjo1NiwgSHJp c3RvIE1paGF5bG92IHdyb3RlOg0KPiBIZWxsbywNCj4gDQo+IEkgaGF2ZSBhbiBpc3N1ZSB0aGF0 IEkgZG9uJ3Qga25vdyBob3cgdG8gZml4LiBJJ20gYnVpbGRpbmcgYSBCSU9TIGZvciANCj4gYSBj dXN0b20NCj4geDg2XzY0IHBsYXRmb3JtLg0KPiANCj4gVGhlIGZpcnN0IHBhcnQgb2YgdGhlIHBy b2JsZW0gaXM6IHRoZSBCSU9TIGJvb3RzIHRvIHRoZSBlbmQgb2YgRFhFIA0KPiB3aGVyZSBpdCBj cmFzaGVzIHdpdGggYSBHZW5lcmFsIFByb3RlY3Rpb24gZXhjZXB0aW9uLg0KPiANCj4gYGBgDQo+ ICEhISEgWDY0IEV4Y2VwdGlvbiBUeXBlIC0gMEQoI0dQIC0gR2VuZXJhbCBQcm90ZWN0aW9uKSAg Q1BVIEFwaWMgSUQgLSAwMDAwMDAyNyAhISEhDQo+IFJJUCAgLSAwMDAwMDAwMDc3QURFODIzLCBD UyAgLSAwMDAwMDAwMDAwMDAwMDM4LCBSRkxBR1MgLSANCj4gMDAwMDAwMDAwMDAxMDA0NyBFeGNl cHRpb25EYXRhIC0gMDAwMDAwMDAwMDAwMDAwMCBSQVggIC0gDQo+IDAwMDAwMDAwRkZGRkZGRkYs IFJDWCAtIDAwMDAwMDAwMDAwMDAxRkUsIFJEWCAtIDAwMDAwMDAwMDAwMDAwMDAgUkJYICANCj4g LSAwMDAwMDAwMEZGRkZGRkZGLCBSU1AgLSAwMDAwMDAwMDc1QjQ0M0MwLCBSQlAgLSAwMDAwMDAw MDgwMEZEMDAwIFJTSSAgDQo+IC0gMDAwMDAwMDAwMDAwMDAwMSwgUkRJIC0gMDAwMDAwMDA3N0FG QzUyMA0KPiBSOCAgIC0gMDAwMDAwMDA3N0FGQzYxOCwgUjkgIC0gMDAwMDAwMDAwMDAwMDAwMSwg UjEwIC0gMDAwMDAwMDA3MDAwMDAwMA0KPiBSMTEgIC0gMDAwMDAwMDA3NThCN0YxMCwgUjEyIC0g MDAwMDAwMDA3N0FGQzUxMCwgUjEzIC0gDQo+IDAwMDAwMDAwMDAwMDAwMDENCj4gUjE0ICAtIDAw MDAwMDAwODAwMDAwMDAsIFIxNSAtIDAwMDAwMDAwMDJDMzAwNjQNCj4gRFMgICAtIDAwMDAwMDAw MDAwMDAwMjAsIEVTICAtIDAwMDAwMDAwMDAwMDAwMjAsIEZTICAtIDAwMDAwMDAwMDAwMDAwMjAN Cj4gR1MgICAtIDAwMDAwMDAwMDAwMDAwMjAsIFNTICAtIDAwMDAwMDAwMDAwMDAwMjANCj4gQ1Iw ICAtIDAwMDAwMDAwODAwMDAwMzMsIENSMiAtIDAwMDAwMDAwMDAwMDAwMDAsIENSMyAtIA0KPiAw MDAwMDAwMDc1OTc3MDAwDQo+IENSNCAgLSAwMDAwMDAwMDAwMDAwNjY4LCBDUjggLSAwMDAwMDAw MDAwMDAwMDAwDQo+IERSMCAgLSAwMDAwMDAwMDAwMDAwMDAwLCBEUjEgLSAwMDAwMDAwMDAwMDAw MDAwLCBEUjIgLSANCj4gMDAwMDAwMDAwMDAwMDAwMA0KPiBEUjMgIC0gMDAwMDAwMDAwMDAwMDAw MCwgRFI2IC0gMDAwMDAwMDBGRkZGMEZGMCwgRFI3IC0gDQo+IDAwMDAwMDAwMDAwMDA0MDAgR0RU UiAtIDAwMDAwMDAwNzU5ODY5MjggMDAwMDAwMDAwMDAwMDA0RiwgTERUUiAtIDAwMDAwMDAwMDAw MDAwMDANCj4gSURUUiAtIDAwMDAwMDAwNzdBQ0Y0MDAgMDAwMDAwMDAwMDAwMDFGRiwgICBUUiAt IDAwMDAwMDAwMDAwMDAwNDANCj4gRlhTQVZFX1NUQVRFIC0gMDAwMDAwMDA3NUI0NDAyMA0KPiBg YGANCj4gDQo+IFRoaXMgZXhjZXB0aW9uIG9jY3VycyB3aGVuIHRoZSBCSU9TIGlzIGVuYWJsaW5n IG9yIGRpc2FibGluZyB0aGUgd3JpdGUgDQo+IHByb3RlY3Rpb24gb2YgdGhlIFNQSS4gSXQgb25s eSBjcmFzaGVzIHdoZW4gaXQncyBkb2luZyB0aGUgcHJvdGVjdGlvbiBpbiBTTU0uDQo+IFRoZSBj b2RlIHJlc3BvbnNpYmxlIGZvciB0aGF0IGlzOg0KPiANCj4gYGBgDQo+IEVGSV9TVEFUVVMNCj4g RUZJQVBJDQo+IERpc2FibGVCaW9zV3JpdGVQcm90ZWN0ICgNCj4gICBWT0lEDQo+ICAgKQ0KPiB7 DQo+ICAgVUlOVE4gICAgIFNwaUJhc2VBZGRyZXNzOw0KPiAgIFVJTlQzMiAgICBEYXRhMzI7DQo+ IA0KPiAgIFNwaUJhc2VBZGRyZXNzID0gTW1QY2lCYXNlICgNCj4gICAgICAgICAgICAgICAgICAg ICAgREVGQVVMVF9QQ0lfQlVTX05VTUJFUl9QQ0gsDQo+ICAgICAgICAgICAgICAgICAgICAgIFBD SV9ERVZJQ0VfTlVNQkVSX1BDSF9TUEksDQo+ICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5D VElPTl9OVU1CRVJfUENIX1NQSQ0KPiAgICAgICAgICAgICAgICAgICAgICApOw0KPiAgIC8vIFdy aXRlIGNsZWFyIEJDX1NZTkNfU1MgcHJpb3IgdG8gY2hhbmdlIFdQRCBmcm9tIDAgdG8gMS4NCj4g ICAvLw0KPiAgIE1taW9PcjggKA0KPiAgICBTcGlCYXNlQWRkcmVzcyArIFJfUENIX1NQSV9CQyAr IDEsDQo+ICAgICAoQl9QQ0hfU1BJX0JDX1NZTkNfU1MgPj4gOCkNCj4gICAgICk7DQo+ICAgLy8v DQo+ICAgLy8vIFNldCBCSU9TV0UgYml0IChTUEkgUENJIE9mZnNldCBEQ2ggWzBdKSA9IDFiDQo+ ICAgLy8vIEVuYWJsZSB0aGUgYWNjZXNzIHRvIHRoZSBCSU9TIHNwYWNlIGZvciBib3RoIHJlYWQg YW5kIHdyaXRlIGN5Y2xlcw0KPiAgIC8vLw0KPiAgIE1taW9PcjggKA0KPiAgICAgU3BpQmFzZUFk ZHJlc3MgKyBSX1BDSF9TUElfQkMsDQo+ICAgICBCX1BDSF9TUElfQkNfV1BEDQo+ICAgICApOw0K PiAgIC8vLw0KPiAgIC8vLyBQQ0ggQklPUyBTcGVjIFNlY3Rpb24gMy43IEJJT1MgUmVnaW9uIFNN TSBQcm90ZWN0aW9uIEVuYWJsaW5nDQo+ICAgLy8vIElmIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJl IGltcGxlbWVudGVkOg0KPiAgIC8vLyAgLSBTZXQgdGhlIEVJU1MgYml0IChTUEkgUENJIE9mZnNl dCBEQ2ggWzVdKSA9IDFiDQo+ICAgLy8vICAtIEZvbGxvdyB0aGUgMXN0IHJlY29tbWVuZGF0aW9u IGluIHNlY3Rpb24gMy42DQo+ICAgLy8vIHRoZSBCSU9TIFJlZ2lvbiBjYW4gb25seSBiZSB1cGRh dGVkIGJ5IGZvbGxvd2luZyB0aGUgc3RlcHMgYmVsbG93Og0KPiAgIC8vLyAgLSBPbmNlIGFsbCB0 aHJlYWRzIGVudGVyIFNNTQ0KPiAgIC8vLyAgLSBSZWFkIG1lbW9yeSBsb2NhdGlvbiBGRUQzMDg4 MGggT1Igd2l0aCAwMDAwMDAwMWgsIHBsYWNlIHRoZSByZXN1bHQgaW4gRUFYLA0KPiAgIC8vLyAg ICBhbmQgd3JpdGUgZGF0YSB0byBsb3dlciAzMiBiaXRzIG9mIE1TUiAxRkVoIChzYW1wbGUgY29k ZSBhdmFpbGFibGUpDQo+ICAgLy8vICAtIFNldCBCSU9TV0UgYml0IChTUEkgUENJIE9mZnNldCBE Q2ggWzBdKSA9IDFiDQo+ICAgLy8vICAtIE1vZGlmeSBCSU9TIFJlZ2lvbg0KPiAgIC8vLyAgLSBD bGVhciBCSU9TV0UgYml0IChTUEkgUENJIE9mZnNldCBEQ2ggWzBdKSA9IDBiDQo+ICAgLy8vDQo+ ICAgaWYgKChNbWlvUmVhZDggKFNwaUJhc2VBZGRyZXNzICsgUl9QQ0hfU1BJX0JDKSAmIEJfUENI X1NQSV9CQ19FSVNTKSAhPSAwKSB7DQo+ICAgICAvLy8NCj4gICAgIC8vLyBSZWFkIG1lbW9yeSBs b2NhdGlvbiBGRUQzMDg4MGggT1Igd2l0aCAwMDAwMDAwMWgsIHBsYWNlIHRoZSByZXN1bHQgaW4g RUFYLA0KPiAgICAgLy8vIGFuZCB3cml0ZSBkYXRhIHRvIGxvd2VyIDMyIGJpdHMgb2YgTVNSIDFG RWggKHNhbXBsZSBjb2RlIGF2YWlsYWJsZSkNCj4gICAgIC8vLw0KPiAgICAgRGF0YTMyID0gTW1p b1JlYWQzMiAoKFVJTlROKSAoMHhGRUQzMDg4MCkpIHwgQklUMDsNCj4gDQo+ICAgICAvLyBjcmFz aCBvY2N1cnMgaGVyZQ0KPiAgICAgQXNtV3JpdGVNc3IzMiAoMHgxRkUsIERhdGEzMik7DQo+ICAg fQ0KPiANCj4gICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+IH0NCj4gDQo+IFZPSUQNCj4gRUZJQVBJ DQo+IEVuYWJsZUJpb3NXcml0ZVByb3RlY3QgKA0KPiAgIFZPSUQNCj4gICApDQo+IHsNCj4gICBV SU5UTiAgICAgU3BpQmFzZUFkZHJlc3M7DQo+ICAgVUlOVDMyICAgIERhdGEzMjsNCj4gDQo+ICAg U3BpQmFzZUFkZHJlc3MgPSBNbVBjaUJhc2UgKA0KPiAgICAgICAgICAgICAgICAgICAgICBERUZB VUxUX1BDSV9CVVNfTlVNQkVSX1BDSCwNCj4gICAgICAgICAgICAgICAgICAgICAgUENJX0RFVklD RV9OVU1CRVJfUENIX1NQSSwNCj4gICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkNUSU9OX05V TUJFUl9QQ0hfU1BJDQo+ICAgICAgICAgICAgICAgICAgICAgICk7DQo+ICAgLy8vDQo+ICAgLy8v IENsZWFyIEJJT1NXRSBiaXQgKFNQSSBQQ0kgT2Zmc2V0IERDaCBbMF0pID0gMGINCj4gICAvLy8g RGlzYWJsZSB0aGUgYWNjZXNzIHRvIHRoZSBCSU9TIHNwYWNlIGZvciB3cml0ZSBjeWNsZXMNCj4g ICAvLy8NCj4gICBNbWlvQW5kOCAoDQo+ICAgICBTcGlCYXNlQWRkcmVzcyArIFJfUENIX1NQSV9C QywNCj4gICAgIChVSU5UOCkgKH5CX1BDSF9TUElfQkNfV1BEKQ0KPiAgICAgKTsNCj4gDQo+ICAg Ly8vDQo+ICAgLy8vIENoZWNrIGlmIEVJU1MgYml0IGlzIHNldA0KPiAgIC8vLw0KPiAgIGlmICgo KE1taW9SZWFkOCAoU3BpQmFzZUFkZHJlc3MgKyBSX1BDSF9TUElfQkMpKSAmIEJfUENIX1NQSV9C Q19FSVNTKSA9PSBCX1BDSF9TUElfQkNfRUlTUykgew0KPiAgICAgLy8vDQo+ICAgICAvLy8gUmVh ZCBtZW1vcnkgbG9jYXRpb24gRkVEMzA4ODBoIEFORCB3aXRoIEZGRkZGRkZFaCwgcGxhY2UgdGhl IHJlc3VsdCBpbiBFQVgsDQo+ICAgICAvLy8gYW5kIHdyaXRlIGRhdGEgdG8gbG93ZXIgMzIgYml0 cyBvZiBNU1IgMUZFaCAoc2FtcGxlIGNvZGUgYXZhaWxhYmxlKQ0KPiAgICAgLy8vDQo+ICAgICBE YXRhMzIgPSBNbWlvUmVhZDMyICgoVUlOVE4pICgweEZFRDMwODgwKSkgJiAofkJJVDApOw0KPiAN Cj4gICAgIC8vIGNyYXNoIG9jY3VycyBoZXJlDQo+ICAgICAvL0FzbVdyaXRlTXNyMzIgKDB4MUZF LCBEYXRhMzIpOw0KPiAgIH0NCj4gfQ0KPiBgYGANCj4gDQo+IEkgY2FuIHdvcmsgYXJvdW5kIHRo ZSBjcmFzaCBieSBoYXJkY29kaW5nIHRoZSB2YWx1ZXMgMHgwIGFuZCAweDEsIG9yIGNvbW1lbnRp bmcgb3V0IHRoZSB3cml0ZXMuDQoNCkFjY2Vzc2luZyBpbnZhbGlkIE1TUnMgbWF5IHJhaXNlIGlu amVjdGlvbnMuIEhvdyBkbyB5b3Uga25vdyB0aGUgTVNSIDB4MUZFIGlzIHZhbGlkIChhbmQgdGhl IERhdGEzMiB2YWx1ZSBpcyB2YWxpZCk/DQoNCj4gDQo+IFRoZSBzZWNvbmQgcGFydCBpcyB0aGF0 IHZhcmlhYmxlcyBjYW5ub3QgYmUgc2F2ZWQgb3IgdXBkYXRlZDoNCj4gDQo+IGBgYA0KPiBWYXJp YWJsZSBkcml2ZXIgZmx1c2ggdGhlIEhPQiB2YXJpYWJsZSB0byBmbGFzaDoge2d1aWR9IA0KPiBU Q0cyX0NPTkZJR1VSQVRJT04gSW52YWxpZCBQYXJhbWV0ZXIgVmFyaWFibGUgZHJpdmVyIGZsdXNo IHRoZSBIT0IgDQo+IHZhcmlhYmxlIHRvIGZsYXNoOiB7Z3VpZH0gU2V0dXAgSW52YWxpZCBQYXJh bWV0ZXIgVmFyaWFibGUgZHJpdmVyIA0KPiBmbHVzaCB0aGUgSE9CIHZhcmlhYmxlIHRvIGZsYXNo OiB7Z3VpZH0gUGNoUmNDb25maWd1cmF0aW9uIEludmFsaWQgDQo+IFBhcmFtZXRlciBWYXJpYWJs ZSBkcml2ZXIgZmx1c2ggdGhlIEhPQiB2YXJpYWJsZSB0byBmbGFzaDoge2d1aWR9IA0KPiBNZVJj Q29uZmlndXJhdGlvbiBJbnZhbGlkIFBhcmFtZXRlciBWYXJpYWJsZSBkcml2ZXIgZmx1c2ggdGhl IEhPQiANCj4gdmFyaWFibGUgdG8gZmxhc2g6IHtndWlkfSBJZVJjQ29uZmlndXJhdGlvbiBJbnZh bGlkIFBhcmFtZXRlciBWYXJpYWJsZSANCj4gZHJpdmVyIGZsdXNoIHRoZSBIT0IgdmFyaWFibGUg dG8gZmxhc2g6IHtndWlkfSBTb2NrZXRJaW9Db25maWcgSW52YWxpZCANCj4gUGFyYW1ldGVyIFZh cmlhYmxlIGRyaXZlciBmbHVzaCB0aGUgSE9CIHZhcmlhYmxlIHRvIGZsYXNoOiB7Z3VpZH0gDQo+ IFNvY2tldENvbW1vblJjQ29uZmlnIEludmFsaWQgUGFyYW1ldGVyIFZhcmlhYmxlIGRyaXZlciBm bHVzaCB0aGUgSE9CIA0KPiB2YXJpYWJsZSB0byBmbGFzaDoge2d1aWR9IFNvY2tldE1wTGlua0Nv bmZpZyBJbnZhbGlkIFBhcmFtZXRlciANCj4gVmFyaWFibGUgZHJpdmVyIGZsdXNoIHRoZSBIT0Ig dmFyaWFibGUgdG8gZmxhc2g6IHtndWlkfSANCj4gU29ja2V0TWVtb3J5Q29uZmlnIEludmFsaWQg UGFyYW1ldGVyIFZhcmlhYmxlIGRyaXZlciBmbHVzaCB0aGUgSE9CIA0KPiB2YXJpYWJsZSB0byBm bGFzaDoge2d1aWR9IFNvY2tldFBvd2VyTWFuYWdlbWVudENvbmZpZyBJbnZhbGlkIA0KPiBQYXJh bWV0ZXIgVmFyaWFibGUgZHJpdmVyIGZsdXNoIHRoZSBIT0IgdmFyaWFibGUgdG8gZmxhc2g6IHtn dWlkfSANCj4gU29ja2V0UHJvY2Vzc29yQ29yZUNvbmZpZyBJbnZhbGlkIFBhcmFtZXRlciBWYXJp YWJsZSBkcml2ZXIgZmx1c2ggdGhlIA0KPiBIT0IgdmFyaWFibGUgdG8gZmxhc2g6IHtndWlkfSBG cGdhU29ja2V0Q29uZmlnIEludmFsaWQgUGFyYW1ldGVyIGBgYA0KPiANCj4gSSBjYW4ndCBzYXZl IHZhcmlhYmxlcyB0byBub24tdm9sYXRpbGUgc3RvcmFnZSwgSSBjYW4gc2F2ZSBzb21lIHRvIA0K PiB2b2xhdGlsZSBzdG9yYWdlLCBidXQgb3RoZXJzIEkgY2Fubm90IHNhdmUgYXQgYWxsLg0KPiAN Cj4gSSB0cmFja2VkIHRoZSBmYWlsdXJlIGRvd24gdG8gaGVyZTogDQo+IGh0dHBzOi8vZ2l0aHVi LmNvbS90aWFub2NvcmUvZWRrMi9ibG9iL21hc3Rlci9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1YN Cj4gYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMjTDMzOA0KPiBhbmQgSSdtIG5vdCBzdXJl IGhvdyB0byBwcm9jZWVkLiBUaGUgcGxhdGZvcm0gaXMgYmFzZWQgb24gVURLMjAxNS4NCg0KVGhh dCdzIGFuIEZ2Yi0+V3JpdGUoKSBjYWxsLiBEbyB5b3UgaGF2ZSBhY2Nlc3MgdG8gdGhlIHNvdXJj ZSBvZiB0aGUgZmxhc2ggZHJpdmVyICh3aGljaCBwcm9kdWNlcyB0aGUgRlZCIHByb3RvY29sIGlu c3RhbmNlKT8NCg0KKEZXSVcsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBkb2Vzbid0IHNlZW0gYSBz cGVjLWNvbXBsaWFudCByZXR1cm4gdmFsdWUgZm9yIEVGSV9GSVJNV0FSRV9WT0xVTUVfQkxPQ0sy X1BST1RPQ09MLldyaXRlKCkpLg0KDQpUaGFua3MNCkxhc3psbw0K