From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.100; helo=mga07.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (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 4D0512034A896 for ; Thu, 2 Nov 2017 19:06:22 -0700 (PDT) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP; 02 Nov 2017 19:10:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,336,1505804400"; d="scan'208";a="917060371" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by FMSMGA003.fm.intel.com with ESMTP; 02 Nov 2017 19:10:15 -0700 Received: from fmsmsx151.amr.corp.intel.com (10.18.125.4) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 2 Nov 2017 19:10:15 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX151.amr.corp.intel.com (10.18.125.4) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 2 Nov 2017 19:10:14 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Fri, 3 Nov 2017 10:10:14 +0800 From: "Wang, Jian J" To: "Yao, Jiewen" , "Kinney, Michael D" , Fan Jeff , "edk2-devel@lists.01.org" CC: "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUlQt7kMmlPjLfkaS9nSj0Ju2aqL+wnPg//+GSQCAANyYAIACuK3wgAAHbhA= Date: Fri, 3 Nov 2017 02:10:14 +0000 Message-ID: References: <20171031142412.21680-1-jian.j.wang@intel.com> <20171031142412.21680-4-jian.j.wang@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNTM2YmZkNzYtMmRhMC00NGZhLThiNDgtOTdiODcwODExMTI2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJYcDNsOVlnU1lyT0hcL2JyaUNhdzlITkxxSzRNNUNtOEpHZFBFR1pnM3YzYTJmR2xFQXZJYWppNDRrT0tIRko0aCJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Nov 2017 02:06:22 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgSmlld2VuLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlhbywg Smlld2VuDQo+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgMDMsIDIwMTcgOToyNSBBTQ0KPiBUbzog S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgRmFuIEplZmYN Cj4gPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0Bp bnRlbC5jb20+OyBlZGsyLQ0KPiBkZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IERvbmcsIEVyaWMg PGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSRTogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVy TGliOiBBZGQgc3RhY2sgc3dpdGNoDQo+IHN1cHBvcnQNCj4gDQo+IEhJIEppYW4NCj4gVGhlcmUg aXMgYW5vdGhlciBwb3RlbnRpYWwgcHJvYmxlbS4NCj4gDQo+IFRoaXMgZmVhdHVyZSBpcyBlbmFi bGVkIGluIEluaXRpYWxpemVDcHVJbnRlcnJ1cHRIYW5kbGVycygpLiBIb3dldmVyLCB3ZSBleHBl Y3QNCj4gdGhpcyBpcyBlbmFibGVkIGluIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygp Lg0KPiANCj4gSW4gb3JkZXIgdG8gZ2V0IHRoZSBleGNlcHRpb24gc3RhY2sgaW4gSW5pdGlhbGl6 ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkuIFdlIGNhbg0KPiBoYXZlIDIgd2F5czoNCj4gQSkgTGV0 IEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpIGFsbG9jYXRlIHRoZSBleGNlcHRpb24g c3RhY2suDQo+IEIpIExldCBjYWxsZXIgdG8gcGFzcyB0aGUgZXhjZXB0aW9uIHN0YWNrIHRvIElu aXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpLg0KPiANCj4gRm9yIEEpLCBpdCBpcyBoYXJk LCBiZWNhdXNlIER4ZUNvcmUgY2FsbHMgSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkg ZWFybGllcg0KPiB0aGFuIENvcmVJbml0aWFsaXplTWVtb3J5U2VydmljZXMoKS4NCj4gRm9yIEIp LCBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKSBpbnRlcmZhY2UgZG9lcyBub3QgY29u dGFpbiBzdWNoDQo+IGluZm9ybWF0aW9uLiBXZSBtaWdodCBuZWVkIGFkZCBhIG5ldyBBUEkgdG8g YWRkIHRoZSBleGNlcHRpb24gc3RhY2sNCj4gaW5mb3JtYXRpb24sIHN1Y2ggYXMgSW5pdGlhbGl6 ZUNwdVN3aXRjaFN0YWNrRXhjZXB0aW9uSGFuZGxlcnMgKCkuDQoNCllvdSdyZSByaWdodC4gRW5h Ymxpbmcgc3RhY2sgc3dpdGNoIGluIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpIGlz IGEgYml0DQpsYXRlIGZvciBleGNlcHRpb24gaGFuZGxpbmcuIEJ1dCBJIGRvbid0IHNlZSB0aGUg ZGlmZmVyZW5jZSBiZXR3ZWVuIGFkZGluZw0KcGFyYW1ldGVycyB0byBleGlzdGluZyBBUEkgKElu aXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycykgYW5kIGFkZGluZyBhIG5ldw0KQVBJIChJbml0 aWFsaXplQ3B1U3dpdGNoU3RhY2tFeGNlcHRpb25IYW5kbGVycykgaW4gdGhpcyBjYXNlLiBJZiB3 ZSBoYXZlIHRvDQpjaGFuZ2UgbGlicmFyeSBpbnRlcmZhY2UgYW55d2F5LCBJJ2Qgc3VnZ2VzdCB0 byBhZGQgcGFyYW1ldGVycyB0byBleGlzdGluZw0KQVBJIHRvIGNhcnJ5IGluZm9ybWF0aW9uIG5l ZWRlZCB0byBzZXR1cCBuZXcgc3RhY2sgZm9yIGV4Y2VwdGlvbnMuDQoNCj4gDQo+IE9uY2UgdGhp cyBmZWF0dXJlIGlzIGRvbmUsIGNhbiB3ZSBjbGVhbiB1cCB0aGUgU01NIGNvZGUgdG8gdXNlIHRo ZSBuZXcgQVBJLA0KPiBpbnN0ZWFkIG9mIGR1cGxpY2F0ZSB0aGUgU01NIGNvcHkgb2YgZXhjZXB0 aW9uIGhhbmRsZXIgPyBUaGUgZXhpc3RpbmcgU01NDQo+IGNvcHkgaGFzIHNvbWUgYXNzdW1wdGlv biBvbiBDUjQgYW5kIEZYU0FWRS9SRVNUT1JFLCBhbmQgaXQgYnJva2UgUXVhcmsNCj4gcGxhdGZv cm0uDQoNCkkgYWdyZWUuDQoNCj4gDQo+IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+IA0KPiAN Cj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBLaW5uZXksIE1p Y2hhZWwgRA0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMSwgMjAxNyAxMTo0MyBQTQ0K PiA+IFRvOiBGYW4gSmVmZiA8dmFuamVmZl85MTlAaG90bWFpbC5jb20+OyBZYW8sIEppZXdlbg0K PiA8amlld2VuLnlhb0BpbnRlbC5jb20+Ow0KPiA+IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdA aW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEtpbm5leSwNCj4gTWljaGFlbA0K PiA+IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IENjOiBEb25nLCBFcmljIDxl cmljLmRvbmdAaW50ZWwuY29tPjsgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4g PiBTdWJqZWN0OiBSRTogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVy TGliOiBBZGQgc3RhY2sNCj4gc3dpdGNoDQo+ID4gc3VwcG9ydA0KPiA+DQo+ID4gSSBhZ3JlZSB0 aGF0IGFkZGluZyBBc21Xcml0ZVRyLCBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCwNCj4gPiBJQTMy X1RTU19ERVNDUklQVE9SIHRvIE1kZVBrZyBCYXNlTGliIGlzIGEgZ29vZCBpZGVhLg0KPiA+DQo+ ID4gTWlrZQ0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBl ZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVo YWxmIE9mIEZhbg0KPiA+IEplZmYNCj4gPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDMxLCAyMDE3 IDc6MzMgUE0NCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2Fu ZywgSmlhbiBKDQo+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+Ow0KPiA+IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnDQo+ID4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT47IERvbmcsIEVyaWMNCj4gPiA8ZXJpYy5kb25nQGludGVsLmNvbT47IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogW2VkazJdILTwuLQ6IFtQQVRD SCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkDQo+ID4gc3RhY2sg c3dpdGNoIHN1cHBvcnQNCj4gPg0KPiA+IFBlciBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5v cmcvc2hvd19idWcuY2dpP2lkPTEwOSwgVFIgc2hvdWxkIGJlIHNldHVwDQo+ID4gKFN1Y2ggYXMg aW4gRHhlSXBsUGVpbSkgZXZlbiB0aG91Z2ggTlVMTCBDcHUgRXhjZXB0aW9uIEhhbmRsZXIgaW5z dGFuY2UgaXMNCj4gPiBjaG9zZW4uDQo+ID4NCj4gPiBGb3IgbG9uZyB0ZXJtLCBJIGFncmVlIHdl IG5lZWQgdG8gbW92ZSBBc21Xcml0ZVRyLA0KPiA+IElBMzJfVEFTS19TVEFURV9TRUdNRU5ULCBJ QTMyX1RTU19ERVNDUklQVE9SIHRvIE1kZVBrZyhTdWNoIGFzDQo+IEJhc2VMaWIpDQo+ID4gRm9y IHRoaXMgcGF0Y2gsIEkgaGF2ZSBubyBzdHJvbmcgb3Bpbmlvbi4NCj4gPg0KPiA+DQo+ID4gt6K8 /sjLOiBZYW8sIEppZXdlbjxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gt6LLzcqx vOQ6IDIwMTfE6jEx1MIxyNUgOTo1Ng0KPiA+IMrVvP7IyzogV2FuZywgSmlhbiBKPG1haWx0bzpq aWFuLmoud2FuZ0BpbnRlbC5jb20+Ow0KPiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0 bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4gPiCzrcvNOiBLaW5uZXksIE1pY2hhZWwgRDxt YWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBEb25nLA0KPiA+IEVyaWM8bWFpbHRv OmVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyPG1haWx0bzpzdGFyLnplbmdAaW50ZWwu Y29tPg0KPiA+INb3zOI6IFJlOiBbZWRrMl0gW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNl cHRpb25IYW5kbGVyTGliOiBBZGQgc3RhY2sNCj4gPiBzd2l0Y2ggc3VwcG9ydA0KPiA+DQo+ID4g SGkgSmlhbg0KPiA+IFRoYW5rcyBmb3IgdGhlIHBhdGNoLg0KPiA+DQo+ID4gQ2FuIHdlIG1vdmUg YWxsIElBMzIgZGVmaW5lZCBkYXRhIHN0cnVjdHVyZSBvciBmdW5jdGlvbiB0byBNZGVQa2c/DQo+ ID4gU3VjaCBhczogQXNtV3JpdGVUciwgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQsIElBMzJfVFNT X0RFU0NSSVBUT1INCj4gPg0KPiA+IEkgYW0gYWxzbyBjdXJpb3VzIHdoeSB3ZSB1c2UgZGlmZmVy ZW50IHBvbGljeSBmb3Igb3RoZXIgYm9vdCBtb2RlLg0KPiA+IENhbiB3ZSB1c2UgY29uc2lzdGVu dCBwb2xpY3k/DQo+ID4gPiArICBpZiAoUGNkR2V0Qm9vbCAoUGNkQ3B1U3RhY2tHdWFyZCkpIHsN Cj4gPiA+ICsgICAgLy8NCj4gPiA+ICsgICAgLy8gU3RhY2sgR3VhcmQgd29ya3Mgd2l0aCB0aGUg c3VwcG9ydCBvZiBwYWdlIHRhYmxlIGVzdGFibGlzaGVkIGFuZA0KPiA+ID4gKyAgICAvLyBtZW1v cnkgbWFuYWdlbWVudC4gU28gd2UgaGF2ZSB0byBleGNsdWRlIHRob3NlIGJvb3QgbW9kZXMNCj4g PiA+IHdpdGhvdXQNCj4gPiA+ICsgICAgLy8gdGhlbS4NCj4gPiA+ICsgICAgLy8NCj4gPiA+ICsg ICAgc3dpdGNoIChHZXRCb290TW9kZUhvYigpKSB7DQo+ID4gPiArICAgIGNhc2UgQk9PVF9PTl9G TEFTSF9VUERBVEU6DQo+ID4gPiArICAgIGNhc2UgQk9PVF9JTl9SRUNPVkVSWV9NT0RFOg0KPiA+ ID4gKyAgICBjYXNlIEJPT1RfT05fUzNfUkVTVU1FOg0KPiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ ID4gKw0KPiA+ID4gKyAgICBkZWZhdWx0Og0KPiA+ID4gKyAgICAgIEFyY2hTZXR1cEV4Y3BldGlv blN0YWNrIChJZHRUYWJsZSk7DQo+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiArICAgIH0NCj4g PiA+ICsgIH0NCj4gPg0KPiA+DQo+ID4gVGhhbmsgeW91DQo+ID4gWWFvIEppZXdlbg0KPiA+DQo+ ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBXYW5nLCBK aWFuIEoNCj4gPiA+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMzEsIDIwMTcgMTA6MjQgUE0NCj4g PiA+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gQ2M6IFplbmcsIFN0YXIgPHN0 YXIuemVuZ0BpbnRlbC5jb20+OyBEb25nLCBFcmljDQo+ID4gPiA8ZXJpYy5kb25nQGludGVsLmNv bT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEtpbm5leSwNCj4gPiA+IE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBbUEFU Q0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjaw0KPiA+ ID4gc3dpdGNoIHN1cHBvcnQNCj4gPiA+DQo+ID4gPiBJZiBTdGFjayBHdWFyZCBpcyBlbmFibGVk IGFuZCB0aGVyZSdzIHJlYWxseSBhIHN0YWNrIG92ZXJmbG93IGhhcHBlbmVkDQo+ID4gPiBkdXJp bmcgYm9vdCwgYSBQYWdlIEZhdWx0IGV4Y2VwdGlvbiB3aWxsIGJlIHRyaWdnZXJlZC4gQmVjYXVz ZSB0aGUNCj4gPiA+IHN0YWNrIGlzIG91dCBvZiB1c2FnZSwgdGhlIGV4Y2VwdGlvbiBoYW5kbGVy LCB3aGljaCBzaGFyZXMgdGhlIHN0YWNrDQo+ID4gPiB3aXRoIG5vcm1hbCBVRUZJIGRyaXZlciwg Y2Fubm90IGJlIGV4ZWN1dGVkIGFuZCBjYW5ub3QgZHVtcCB0aGUgcHJvY2Vzc29yDQo+ID4gaW5m b3JtYXRpb24uDQo+ID4gPg0KPiA+ID4gV2l0aG91dCB0aG9zZSBpbmZvcm1hdGlvbiwgaXQncyB2 ZXJ5IGRpZmZpY3VsdCBmb3IgdGhlIEJJT1MgZGV2ZWxvcGVycw0KPiA+ID4gbG9jYXRlIHRoZSBy b290IGNhdXNlIG9mIHN0YWNrIG92ZXJmbG93LiBBbmQgd2l0aG91dCBhIHdvcmthYmxlIHN0YWNr LA0KPiA+ID4gdGhlIGRldmVsb3BlciBjYW5ub3QgZXZlbnQgdXNlIHNpbmdsZSBzdGVwIHRvIGRl YnVnIHRoZSBVRUZJIGRyaXZlciB3aXRoDQo+IEpUQUcNCj4gPiBkZWJ1Z2dlci4NCj4gPiA+DQo+ ID4gPiBJbiBvcmRlciB0byBtYWtlIHN1cmUgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGV4ZWN1 dGUgbm9ybWFsbHkgYWZ0ZXINCj4gPiA+IHN0YWNrIG92ZXJmbG93LiBXZSBuZWVkIHNlcGFyYXRl IHN0YWNrcyBmb3IgZXhjZXB0aW9uIGhhbmRsZXJzIGluIGNhc2UNCj4gPiA+IG9mIHVudXNhYmxl IHN0YWNrLg0KPiA+ID4NCj4gPiA+IElBIHByb2Nlc3NvciBhbGxvd3MgdG8gc3dpdGNoIHRvIGEg bmV3IHN0YWNrIGR1cmluZyBoYW5kbGluZyBpbnRlcnJ1cHQNCj4gPiA+IGFuZCBleGNlcHRpb24u IEJ1dCBYNjQgYW5kIElBMzIgcHJvdmlkZXMgZGlmZmVyZW50IHdheXMgdG8gbWFrZSBpdC4NCj4g PiA+IFg2NCBwcm92aWRlcyBpbnRlcnJ1cHQgc3RhY2sgdGFibGUgKElTVCkgdG8gYWxsb3cgbWF4 aW11bSA3IGRpZmZlcmVudA0KPiA+ID4gZXhjZXB0aW9ucyB0byBoYXZlIG5ldyBzdGFjayBmb3Ig aXRzIGhhbmRsZXIuIElBMzIgZG9lc24ndCBoYXZlIElTVA0KPiA+ID4gbWVjaGFuaXNtIGFuZCBj YW4gb25seSB1c2UgdGFzayBnYXRlIHRvIGRvIGl0IHNpbmNlIHRhc2sgc3dpdGNoIGFsbG93cw0K PiA+ID4gdG8gbG9hZCBhIG5ldyBzdGFjayB0aHJvdWdoIGl0cyB0YXNrLXN0YXRlIHNlZ21lbnQg KFRTUykuDQo+ID4gPg0KPiA+ID4gTm90ZTogU3RhY2sgc3dpdGNoIG5lZWRzIHRvIGFsbG9jYXRl IG1lbW9yeSBwYWdlcyB0byBiZSBuZXcgc3RhY2tzLiBTbyB0aGlzDQo+ID4gPiAgICAgICBmdW5j dGlvbmFsaXR5IHdvcmtzIG9ubHkgaW4gdGhlIGJvb3QgcGhhc2VzIGNhcGFibGUgb2YgbWVtb3J5 DQo+ID4gPiAgICAgICBhbGxvY2F0aW9uIChiZXNpZGVzIHRoZSBwYWdpbmcsIGZvciB0aGUgc2Fr ZSBvZiBTdGFjayBHdWFyZCkuIEluDQo+ID4gPiAgICAgICBvdGhlciB3b3Jkcywgb25seSBEWEUg cGhhc2UgY2FuIHN1cHBvcnRzIFN0YWNrIEd1YXJkIHdpdGggc3RhY2sNCj4gPiBzd2l0Y2guDQo+ ID4gPg0KPiA+ID4gQ2M6IFN0YXIgWmVuZyA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiA+IENj OiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gPiBDYzogSmlld2VuIFlhbyA8 amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPiBDYzogTWljaGFlbCBLaW5uZXkgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gU3VnZ2VzdGVkLWJ5OiBBeWVsbGV0IFdvbG1hbiA8 YXllbGxldC53b2xtYW5AaW50ZWwuY29tPg0KPiA+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5v Q29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+ID4gU2lnbmVkLW9mZi1ieTogSmlh biBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIC4uLi9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oICAgIHwgIDIyICsrDQo+ ID4gPiAgLi4uL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAg fCAgIDUgKw0KPiA+ID4gIC4uLi9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhj ZXB0aW9uLmMgIHwgIDE5ICsNCj4gPiA+ICAuLi4vSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5j ICAgICAgICAgICAgICAgICAgICB8IDEzNSArKysrKysrDQo+ID4gPiAgLi4uL0lhMzIvQXJjaElu dGVycnVwdERlZnMuaCAgICAgICAgICAgICAgICAgICAgICAgfCAxMzYgKysrKysrKw0KPiA+ID4g IC4uLi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20gICAgICAgICAgICAgICAgIHwgMzk4 DQo+ID4gPiArKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ICAuLi4vUGVpQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gPiAgLi4uL1NlY1Bl aUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgfCAgIDMgKw0KPiA+ID4g IC4uLi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAgICAgICAgICAgIHwgICAx ICsNCj4gPiA+ICAuLi4vWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMgICAgICAgICAgICAgICAg ICAgICB8IDEwOCArKysrKysNCj4gPiA+ICAuLi4vQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv QXJjaEludGVycnVwdERlZnMuaCB8ICA0MCArKysNCj4gPiA+ICAuLi4vWDY0L0V4Y2VwdGlvbkhh bmRsZXJBc20uUyAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArDQo+ID4gPiAgLi4uL1g2NC9F eGNlcHRpb25IYW5kbGVyQXNtLmFzbSAgICAgICAgICAgICAgICAgICAgfCAgMTIgKw0KPiA+ID4g IC4uLi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtICAgICAgICAgICAgICAgICAgIHwgIDEy ICsNCj4gPiA+ICAxNCBmaWxlcyBjaGFuZ2VkLCA5MDQgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYQ0KPiA+ID4gc20NCj4gPiA+DQo+ ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQo+ID4gPiBiL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQo+ID4gPiBpbmRl eCA3NDBhNTg4MjhiLi5mZDRhMjZhNDU4IDEwMDY0NA0KPiA+ID4gLS0tIGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiA+ ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2Vw dGlvbkNvbW1vbi5oDQo+ID4gPiBAQCAtMjUsNiArMjUsNyBAQA0KPiA+ID4gICNpbmNsdWRlIDxM aWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9TeW5jaHJv bml6YXRpb25MaWIuaD4gICNpbmNsdWRlDQo+ID4gPiA8TGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5o Pg0KPiA+ID4NCj4gPiA+ICAjZGVmaW5lICBDUFVfRVhDRVBUSU9OX05VTSAgICAgICAgICAzMg0K PiA+ID4gICNkZWZpbmUgIENQVV9JTlRFUlJVUFRfTlVNICAgICAgICAgMjU2DQo+ID4gPiBAQCAt Mjg4LDUgKzI4OSwyNiBAQCBDb21tb25FeGNlcHRpb25IYW5kbGVyV29ya2VyICgNCj4gPiA+ICAg IElOIEVYQ0VQVElPTl9IQU5ETEVSX0RBVEEgICAgICAqRXhjZXB0aW9uSGFuZGxlckRhdGENCj4g PiA+ICAgICk7DQo+ID4gPg0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgTG9hZCBnaXZlbiBzZWxlY3Rv ciBpbnRvIFRSIHJlZ2lzdGVyDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW0gU2VsZWN0b3IgICAg ICAgICBUYXNrIHNlZ21lbnQgc2VsZWN0b3INCj4gPiA+ICsqKi8NCj4gPiA+ICtWT0lEDQo+ID4g PiArQXNtV3JpdGVUciAoDQo+ID4gPiArICBVSU5UMTYgU2VsZWN0b3INCj4gPiA+ICsgICk7DQo+ ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3Bl Y2lmaWMgZXhjZXB0aW9ucy4NCj4gPiA+ICsNCj4gPiA+ICsgIEBwYXJhbVtpbl0gSWR0VGFibGUg ICAgICAgIElEVCB0YWJsZSBiYXNlLg0KPiA+ID4gKyoqLw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtF RklBUEkNCj4gPiA+ICtBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQo+ID4gPiArICBJTiBJQTMy X0lEVF9HQVRFX0RFU0NSSVBUT1IgICAgICAgICAgICpJZHRUYWJsZQ0KPiA+ID4gKyAgKTsNCj4g PiA+ICsNCj4gPiA+ICAjZW5kaWYNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhh bmRsZXJMaWIuDQo+ID4gPiBpbmYNCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiA+IGluZg0KPiA+ ID4gaW5kZXggZjRhOGQwMWM4MC4uYjA5OWVmNGRhZCAxMDA2NDQNCj4gPiA+IC0tLQ0KPiA+ID4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRp b25IYW5kbGVyTGliLg0KPiA+ID4gaW5mDQo+ID4gPiArKysNCj4gPiA+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4N Cj4gPiA+IGluZg0KPiA+ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiA+ICBbU291cmNlcy5JYTMy XQ0KPiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ID4gICAgSWEzMi9F eGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4gPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlB c20ubmFzbQ0KPiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiA+ICAgIElh MzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVm cy5oDQo+ID4gPiBAQCAtNDcsNiArNDgsOSBAQA0KPiA+ID4gICAgUGVpRHhlU21tQ3B1RXhjZXB0 aW9uLmMNCj4gPiA+ICAgIER4ZUV4Y2VwdGlvbi5jDQo+ID4gPg0KPiA+ID4gK1tQY2RdDQo+ID4g PiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U3RhY2tHdWFyZA0KPiA+ ID4gKw0KPiA+ID4gIFtQYWNrYWdlc10NCj4gPiA+ICAgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4g PiAgICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gQEAgLTYxLDMgKzY1LDQg QEANCj4gPiA+ICAgIFBlQ29mZkdldEVudHJ5UG9pbnRMaWINCj4gPiA+ICAgIE1lbW9yeUFsbG9j YXRpb25MaWINCj4gPiA+ICAgIERlYnVnTGliDQo+ID4gPiArICBIb2JMaWINCj4gPiA+IGRpZmYg LS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNl cHRpb24uYw0KPiA+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9EeGVFeGNlcHRpb24uYw0KPiA+ID4gaW5kZXggMzFmZWJlYzk3Ni4uZTlkY2QwMGUwMiAxMDA2 NDQNCj4gPiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L0R4ZUV4Y2VwdGlvbi5jDQo+ID4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiA+ID4gQEAgLTE2LDYgKzE2LDcgQEANCj4g PiA+ICAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgiDQo+ID4gPiAgI2luY2x1ZGUgPExp YnJhcnkvRGVidWdMaWIuaD4NCj4gPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0 aW9uTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvSG9iTGliLmg+DQo+ID4gPg0KPiA+ ID4gIENPTlNUIFVJTlROICAgIG1Eb0ZhclJldHVybkZsYWcgID0gMDsNCj4gPiA+DQo+ID4gPiBA QCAtMTU1LDYgKzE1NiwyNCBAQCBJbml0aWFsaXplQ3B1SW50ZXJydXB0SGFuZGxlcnMgKA0KPiA+ ID4NCj4gPiA+ICAgIFVwZGF0ZUlkdFRhYmxlIChJZHRUYWJsZSwgJlRlbXBsYXRlTWFwLCAmbUV4 Y2VwdGlvbkhhbmRsZXJEYXRhKTsNCj4gPiA+DQo+ID4gPiArICBpZiAoUGNkR2V0Qm9vbCAoUGNk Q3B1U3RhY2tHdWFyZCkpIHsNCj4gPiA+ICsgICAgLy8NCj4gPiA+ICsgICAgLy8gU3RhY2sgR3Vh cmQgd29ya3Mgd2l0aCB0aGUgc3VwcG9ydCBvZiBwYWdlIHRhYmxlIGVzdGFibGlzaGVkIGFuZA0K PiA+ID4gKyAgICAvLyBtZW1vcnkgbWFuYWdlbWVudC4gU28gd2UgaGF2ZSB0byBleGNsdWRlIHRo b3NlIGJvb3QgbW9kZXMNCj4gPiA+IHdpdGhvdXQNCj4gPiA+ICsgICAgLy8gdGhlbS4NCj4gPiA+ ICsgICAgLy8NCj4gPiA+ICsgICAgc3dpdGNoIChHZXRCb290TW9kZUhvYigpKSB7DQo+ID4gPiAr ICAgIGNhc2UgQk9PVF9PTl9GTEFTSF9VUERBVEU6DQo+ID4gPiArICAgIGNhc2UgQk9PVF9JTl9S RUNPVkVSWV9NT0RFOg0KPiA+ID4gKyAgICBjYXNlIEJPT1RfT05fUzNfUkVTVU1FOg0KPiA+ID4g KyAgICAgIGJyZWFrOw0KPiA+ID4gKw0KPiA+ID4gKyAgICBkZWZhdWx0Og0KPiA+ID4gKyAgICAg IEFyY2hTZXR1cEV4Y3BldGlvblN0YWNrIChJZHRUYWJsZSk7DQo+ID4gPiArICAgICAgYnJlYWs7 DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICAgIC8vDQo+ID4gPiAg ICAvLyBMb2FkIEludGVycnVwdCBEZXNjcmlwdG9yIFRhYmxlDQo+ID4gPiAgICAvLw0KPiA+ID4g ZGlmZiAtLWdpdA0KPiA+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+ID4gYw0KPiA+ID4gYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5k bGVyLg0KPiA+ID4gYw0KPiA+ID4gaW5kZXggZjJjMzllYjE5My4uM2Q0MWRmNzVhNSAxMDA2NDQN Cj4gPiA+IC0tLQ0KPiA+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+ID4gYw0KPiA+ID4gKysrDQo+ID4g PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4 Y2VwdGlvbkhhbmRsZXIuDQo+ID4gPiBjDQo+ID4gPiBAQCAtMTQsNiArMTQsMTkgQEANCj4gPiA+ DQo+ID4gPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0KPiA+ID4NCj4gPiA+ICsv Lw0KPiA+ID4gKy8vIExpc3Qgb2YgZXhjZXB0aW9ucyBuZWVkaW5nIHNlcGFyYXRlIHN0YWNrIC8v IFNUQVRJQw0KPiA+ID4gK0lBMzJfRVhDRVBUSU9OX1RTX0VOVFJZIG1FeGNlcHRpb25zV2l0aFN0 YWNrW10gPSB7DQo+ID4gPiArICB7NiwgIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTZ9LCAgLy8j VUQ6IEludmFsaWQgT3Bjb2RlIEV4Y2VwdGlvbg0KPiA+ID4gKyAgezgsICBFeGNlcHRpb25UYXNr U3d0aWNoRW50cnk4fSwgIC8vI0RGOiBEb3VibGUgRmF1bHQgRXhjZXB0aW9uDQo+ID4gPiArICB7 MTIsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEyfSwgLy8jU1M6IFN0YWNrIEZhdWx0IEV4Y2Vw dGlvbg0KPiA+ID4gKyAgezEzLCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxM30sIC8vI0dQOiBH ZW5lcmFsIFByb3RlY3Rpb24NCj4gPiA+ICtFeGNlcHRpb24NCj4gPiA+ICsgIHsxNCwgRXhjZXB0 aW9uVGFza1N3dGljaEVudHJ5MTR9LCAvLyNQRjogUGFnZS1GYXVsdCBFeGNlcHRpb24NCj4gPiA+ ICsgIHsxNywgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTd9LCAvLyNBQzogQWxpZ25tZW50IENo ZWNrIEV4Y2VwdGlvbg0KPiA+ID4gKyAgezE4LCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxOH0g IC8vI01DOiBNYWNoaW5lLUNoZWNrIEV4Y2VwdGlvbiB9Ow0KPiA+ID4gKw0KPiA+ID4gIC8qKg0K PiA+ID4gICAgUmV0dXJuIGFkZHJlc3MgbWFwIG9mIGV4Y2VwdGlvbiBoYW5kbGVyIHRlbXBsYXRl IHNvIHRoYXQgQyBjb2RlIGNhbg0KPiA+ID4gZ2VuZXJhdGUNCj4gPiA+ICAgIGV4Y2VwdGlvbiB0 YWJsZXMuDQo+ID4gPiBAQCAtMTA3LDYgKzEyMCwxMjggQEAgQXJjaFJlc3RvcmVFeGNlcHRpb25D b250ZXh0ICgNCj4gPiA+ICAgIFN5c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4dElhMzItPkV4Y2Vw dGlvbkRhdGEgPQ0KPiA+ID4gUmVzZXJ2ZWRWZWN0b3JzW0V4Y2VwdGlvblR5cGVdLkV4Y2VwdGlv bkRhdGE7DQo+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+ICsgIFNldHVwIHNlcGFy YXRlIHN0YWNrIGZvciBzcGVjaWZpYyBleGNlcHRpb25zLg0KPiA+ID4gKw0KPiA+ID4gKyAgIEBw YXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0KPiA+ID4gKyoqLw0KPiA+ ID4gK1ZPSUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAo DQo+ID4gPiArICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICAgICAgICAgICpJZHRUYWJs ZQ0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIFZPSUQgICAgICAgICAgICAgICAgICAg ICAgKk5ld0dkdDsNCj4gPiA+ICsgIElBMzJfREVTQ1JJUFRPUiAgICAgICAgICAgR2R0RGVzYzsN Cj4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgT2xkR2R0U2l6ZTsNCj4gPiA+ICsg IFRTU19FTlRSSUVTICAgICAgICAgICAgICAgKlRzc0VudHJ5Ow0KPiA+ID4gKyAgSUEzMl9UU1Nf REVTQ1JJUFRPUiAgICAgICAqVHNzRGVzYzsNCj4gPiA+ICsgIElBMzJfVEFTS19TVEFURV9TRUdN RU5UICAgKlRzczsNCj4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tCYXNl Ow0KPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1RvcDsNCj4gPiA+ICsg IFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tTaXplOw0KPiA+ID4gKyAgVUlOVE4gICAg ICAgICAgICAgICAgICAgICBJbmRleDsNCj4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAg ICAgVmVjdG9yOw0KPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBUc3NCYXNlOw0K PiA+ID4gKw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBm b3IgdGhlIEdEVCAgLy8gIEFzbVJlYWRHZHRyKCZHZHREZXNjKTsNCj4gPiA+ICsgT2xkR2R0U2l6 ZSA9IEdkdERlc2MuTGltaXQgKyAxOyAgTmV3R2R0ID0NCj4gPiA+ICsgQWxsb2NhdGVSdW50aW1l WmVyb1Bvb2woT2xkR2R0U2l6ZSArIHNpemVvZihUU1NfRU5UUklFUykNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05NRU5UKTsgIGlmDQo+ ID4gKE5ld0dkdA0KPiA+ID4gKyA9PSBOVUxMKSB7DQo+ID4gPiArICAgIHJldHVybjsNCj4gPiA+ ICsgIH0NCj4gPiA+ICsgIE5ld0dkdCA9IEFMSUdOX1BPSU5URVIgKE5ld0dkdCwgSUEzMl9HRFRf QUxJR05NRU5UKTsNCj4gPiA+ICsNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBJbml0aWFsaXpl IG5ldyBHRFQgZW50cmllcw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIENvcHlNZW0oTmV3R2R0LCAo Vk9JRCAqKUdkdERlc2MuQmFzZSwgT2xkR2R0U2l6ZSk7ICBHZHREZXNjLkJhc2UgPQ0KPiA+ID4g KyAoVUlOVE4pKFZPSUQqKU5ld0dkdDsgIEdkdERlc2MuTGltaXQgPSAoVUlOVDE2KShPbGRHZHRT aXplICsNCj4gPiA+ICsgVFNTX09GRlNFVCAtIDEpOw0KPiA+ID4gKw0KPiA+ID4gKyAgLy8NCj4g PiA+ICsgIC8vIFJlc2VydmUgc3RhdGNrIG1lbW9yeSBmb3IgZ2l2ZW4gZXhjZXB0aW9ucyAgLy8g IFN0YWNrU2l6ZSA9DQo+ID4gPiArIEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKSAq IEVYQ0VQVElPTl9TVEFDS19TSVpFOyAgU3RhY2tTaXplDQo+ID4gPiArID0gRUZJX1BBR0VTX1RP X1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsgIFN0YWNrQmFzZSA9DQo+ID4g PiArIChVSU5UNjQpKFVJTlROKUFsbG9jYXRlUGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTDQo+ID4g PiAoU3RhY2tTaXplKSk7DQo+ID4gPiArICBpZiAoU3RhY2tCYXNlID09IDApIHsNCj4gPiA+ICsg ICAgRnJlZVBvb2wgKE5ld0dkdCk7DQo+ID4gPiArICAgIHJldHVybjsNCj4gPiA+ICsgIH0NCj4g PiA+ICsNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBGaXh1cCBUU1MgZGVzY3JpcHRvcnMgYW5k IHNlZ21lbnRzICAvLyAgVHNzRW50cnkgPSAoVk9JRA0KPiA+ID4gKyAqKShHZHREZXNjLkJhc2Ug KyBPbGRHZHRTaXplKTsNCj4gPiA+ICsNCj4gPiA+ICsgIFRzc0Jhc2UgPSAoVUlOVE4pKFZPSUQg KikmVHNzRW50cnktPlRzczsNCj4gPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuTGltaXQxNV8wICAg ICAgICAgICAgPQ0KPiA+ID4gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5UKSAtIDE7DQo+ ID4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilU c3NCYXNlOw0KPiA+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMjNfMTYgICAgICAgICAgICA9 IChVSU5UOCkoVHNzQmFzZSA+PiAxNik7DQo+ID4gPiArICBUc3NFbnRyeS0+VHNzU2VnLlR5cGUg ICAgICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ID4gPiArICBUc3NFbnRyeS0+ VHNzU2VnLkxpbWl0MTlfMTZfYW5kX2ZsYWdzID0gMDsNCj4gPiA+ICsgIFRzc0VudHJ5LT5Uc3NT ZWcuQmFzZTMxXzI0ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMjQpOw0KPiA+ID4g Kw0KPiA+ID4gKyAgU3RhY2tUb3AgID0gU3RhY2tCYXNlICsgU3RhY2tTaXplIC0gQ1BVX1NUQUNL X0FMSUdOTUVOVDsgIFN0YWNrVG9wDQo+ID4gPiArID0gKFVJTlROKUFMSUdOX1BPSU5URVIgKFN0 YWNrVG9wLCBDUFVfU1RBQ0tfQUxJR05NRU5UKTsgIGZvcg0KPiAoSW5kZXgNCj4gPiA+ICsgPSAw OyBJbmRleCA8IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKTsgKytJbmRleCkgew0K PiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICAvLyBGaXh1cCBUU1MgZGVzY3JpcHRvcg0KPiA+ID4g KyAgICAvLw0KPiA+ID4gKyAgICBUc3NCYXNlID0gKFVJTlROKShWT0lEICopJlRzc0VudHJ5LT5F eGNlcHRpb25Uc3NbSW5kZXhdOw0KPiA+ID4gKyAgICBUc3NEZXNjID0gJlRzc0VudHJ5LT5FeGNl cHRpb25Uc3NTZWdbSW5kZXhdOw0KPiA+ID4gKw0KPiA+ID4gKyAgICBUc3NEZXNjLT5MaW1pdDE1 XzAgICAgICAgICAgICA9IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLQ0KPiA+IDE7 DQo+ID4gPiArICAgIFRzc0Rlc2MtPkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NC YXNlOw0KPiA+ID4gKyAgICBUc3NEZXNjLT5CYXNlMjNfMTYgICAgICAgICAgICA9IChVSU5UOCko VHNzQmFzZSA+PiAxNik7DQo+ID4gPiArICAgIFRzc0Rlc2MtPlR5cGUgICAgICAgICAgICAgICAg ID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ID4gPiArICAgIFRzc0Rlc2MtPkxpbWl0MTlfMTZfYW5k X2ZsYWdzID0gMDsNCj4gPiA+ICsgICAgVHNzRGVzYy0+QmFzZTMxXzI0ICAgICAgICAgICAgPSAo VUlOVDgpKFRzc0Jhc2UgPj4gMjQpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAg ICAvLyBGaXh1cCBUU1MNCj4gPiA+ICsgICAgLy8NCj4gPiA+ICsgICAgVHNzID0gJlRzc0VudHJ5 LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KPiA+ID4gKyAgICBUc3MtPkNSMyAgICA9IEFzbVJlYWRD cjMoKTsNCj4gPiA+ICsgICAgVHNzLT5FSVAgICAgPSAoVUlOVDMyKW1FeGNlcHRpb25zV2l0aFN0 YWNrW0luZGV4XS5FbnRyeVBvaW50Ow0KPiA+ID4gKyAgICBUc3MtPkVGTEFHUyA9IDB4MjsNCj4g PiA+ICsgICAgVHNzLT5FU1AgICAgPSBTdGFja1RvcDsNCj4gPiA+ICsgICAgVHNzLT5FUyAgICAg PSBBc21SZWFkRXMoKTsNCj4gPiA+ICsgICAgVHNzLT5DUyAgICAgPSBBc21SZWFkQ3MoKTsNCj4g PiA+ICsgICAgVHNzLT5TUyAgICAgPSBBc21SZWFkU3MoKTsNCj4gPiA+ICsgICAgVHNzLT5EUyAg ICAgPSBBc21SZWFkRHMoKTsNCj4gPiA+ICsgICAgVHNzLT5GUyAgICAgPSBBc21SZWFkRnMoKTsN Cj4gPiA+ICsgICAgVHNzLT5HUyAgICAgPSBBc21SZWFkR3MoKTsNCj4gPiA+ICsgICAgU3RhY2tU b3AgICAtPSBFWENFUFRJT05fU1RBQ0tfU0laRTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgLy8NCj4g PiA+ICsgICAgLy8gQ2hhbmdlIHNwZWNpZmllZCBleGNlcHRpb25zIGluIElEVCB0byB1c2UgVFNT DQo+ID4gPiArICAgIC8vDQo+ID4gPiArICAgIFZlY3RvciA9IG1FeGNlcHRpb25zV2l0aFN0YWNr W0luZGV4XS5WZWN0b3I7DQo+ID4gPiArDQo+ID4gPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0 cy5PZmZzZXRMb3cgID0gMDsNCj4gPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLlNlbGVj dG9yICAgPSBPbGRHZHRTaXplICsNCj4gPiA+IEVYQ0VQVElPTl9UU1NfU0VMKEluZGV4KTsNCj4g PiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLlJlc2VydmVkXzAgPSAwOw0KPiA+ID4gKyAg ICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuR2F0ZVR5cGUgICA9IElBMzJfSURUX0dBVEVfVFlQRV9U QVNLOw0KPiA+ID4gKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuT2Zmc2V0SGlnaCA9IDA7ICB9 DQo+ID4gPiArDQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gUHVibGlzaCB0aGUgY2hhbmdlcw0K PiA+ID4gKyAgLy8NCj4gPiA+ICsgIEFzbVdyaXRlR2R0cigmR2R0RGVzYyk7DQo+ID4gPiArDQo+ ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gTG9hZCB0YXNrIHJlZ2lzdGVyDQo+ID4gPiArICAvLw0K PiA+ID4gKyAgQXNtV3JpdGVUciAoKFVJTlQxNikoT2xkR2R0U2l6ZSArIFRTU19TRUwpKTsgfQ0K PiA+ID4gKw0KPiA+ID4gIC8qKg0KPiA+ID4gICAgRGlzcGxheSBwcm9jZXNzb3IgY29udGV4dC4N Cj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ID4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHRE ZWZzLmgNCj4gPiA+IGluZGV4IGE4ZDM1NTZhODAuLjc3Y2M2Zjk5MTkgMTAwNjQ0DQo+ID4gPiAt LS0NCj4gPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEz Mi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzDQo+ID4gPiArKysgLmgN Cj4gPiA+IEBAIC00MSw0ICs0MSwxNDAgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gICAgVUlO VDggICAgICAgSG9va0FmdGVyU3R1YkhlYWRlckNvZGVbSE9PS0FGVEVSX1NUVUJfU0laRV07DQo+ ID4gPiAgfSBSRVNFUlZFRF9WRUNUT1JTX0RBVEE7DQo+ID4gPg0KPiA+ID4gKyNwcmFnbWEgcGFj ayAoMSkNCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAg ICA3DQo+ID4gPiArI2RlZmluZSBFWENFUFRJT05fU1RBQ0tfU0laRSAgICAgICAgRUZJX1BBR0Vf U0laRQ0KPiA+ID4gKyNkZWZpbmUgSUEzMl9HRFRfVFlQRV9UU1MgICAgICAgICAgIDB4ODkNCj4g PiA+ICsjZGVmaW5lIElBMzJfR0RUX0FMSUdOTUVOVCAgICAgICAgICA4DQo+ID4gPiArDQo+ID4g PiArLy8NCj4gPiA+ICsvLyBJQTMyIFRTUyBEZWZpbml0aW9uDQo+ID4gPiArLy8NCj4gPiA+ICt0 eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiArICBVSU5UMTYgICAgUHJldmlvdXNUYXNrTGluazsgLy8g MDANCj4gPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8yOw0KPiA+ID4gKyAgVUlOVDMyICAgIEVT UDA7ICAgICAgICAgICAgIC8vIDA0DQo+ID4gPiArICBVSU5UMTYgICAgU1MwOyAgICAgICAgICAg ICAgLy8gMDgNCj4gPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8xMDsNCj4gPiA+ICsgIFVJTlQz MiAgICBFU1AxOyAgICAgICAgICAgICAvLyAwQw0KPiA+ID4gKyAgVUlOVDE2ICAgIFNTMTsgICAg ICAgICAgICAgIC8vIDEwDQo+ID4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMTg7DQo+ID4gPiAr ICBVSU5UMzIgICAgRVNQMjsgICAgICAgICAgICAgLy8gMTQNCj4gPiA+ICsgIFVJTlQxNiAgICBT UzI7ICAgICAgICAgICAgICAvLyAxOA0KPiA+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzI2Ow0K PiA+ID4gKyAgVUlOVDMyICAgIENSMzsgICAgICAgICAgICAgIC8vIDFDDQo+ID4gPiArICBVSU5U MzIgICAgRUlQOyAgICAgICAgICAgICAgLy8gMjANCj4gPiA+ICsgIFVJTlQzMiAgICBFRkxBR1M7 ICAgICAgICAgICAvLyAyNA0KPiA+ID4gKyAgVUlOVDMyICAgIEVBWDsgICAgICAgICAgICAgIC8v IDI4DQo+ID4gPiArICBVSU5UMzIgICAgRUNYOyAgICAgICAgICAgICAgLy8gMkMNCj4gPiA+ICsg IFVJTlQzMiAgICBFRFg7ICAgICAgICAgICAgICAvLyAzMA0KPiA+ID4gKyAgVUlOVDMyICAgIEVC WDsgICAgICAgICAgICAgIC8vIDM0DQo+ID4gPiArICBVSU5UMzIgICAgRVNQOyAgICAgICAgICAg ICAgLy8gMzgNCj4gPiA+ICsgIFVJTlQzMiAgICBFQlA7DQo+ID4gPiArICBVSU5UMzIgICAgRVNJ Ow0KPiA+ID4gKyAgVUlOVDMyICAgIEVESTsNCj4gPiA+ICsgIFVJTlQxNiAgICBFUzsNCj4gPiA+ ICsgIFVJTlQxNiAgICBSZXNlcnZlZF83NDsNCj4gPiA+ICsgIFVJTlQxNiAgICBDUzsNCj4gPiA+ ICsgIFVJTlQxNiAgICBSZXNlcnZlZF83ODsNCj4gPiA+ICsgIFVJTlQxNiAgICBTUzsNCj4gPiA+ ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84MjsNCj4gPiA+ICsgIFVJTlQxNiAgICBEUzsNCj4gPiA+ ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84NjsNCj4gPiA+ICsgIFVJTlQxNiAgICBGUzsNCj4gPiA+ ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85MDsNCj4gPiA+ICsgIFVJTlQxNiAgICBHUzsNCj4gPiA+ ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85NDsNCj4gPiA+ICsgIFVJTlQxNiAgICBMRFRTZWdtZW50 U2VsZWN0b3I7DQo+ID4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTg7DQo+ID4gPiArICBVSU5U MTYgICAgVDsNCj4gPiA+ICsgIFVJTlQxNiAgICBJT01hcEJhc2VBZGRyZXNzOw0KPiA+ID4gK30g SUEzMl9UQVNLX1NUQVRFX1NFR01FTlQ7DQo+ID4gPiArDQo+ID4gPiArdHlwZWRlZiBzdHJ1Y3Qg ew0KPiA+ID4gKyAgVUlOVDE2ICAgIExpbWl0MTVfMDsNCj4gPiA+ICsgIFVJTlQxNiAgICBCYXNl MTVfMDsNCj4gPiA+ICsgIFVJTlQ4ICAgICBCYXNlMjNfMTY7DQo+ID4gPiArICBVSU5UOCAgICAg VHlwZTsNCj4gPiA+ICsgIFVJTlQ4ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsNCj4gPiA+ICsg IFVJTlQ4ICAgICBCYXNlMzFfMjQ7DQo+ID4gPiArfSBJQTMyX1RTU19ERVNDUklQVE9SOw0KPiA+ ID4gKw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBU T1IgICAgICAgICAgIFRzc1NlZzsNCj4gPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1INCj4gPiBF eGNlcHRpb25Uc3NTZWdbRVhDRVBUSU9OX0xJU1RfTUFYXTsNCj4gPiA+ICsgIElBMzJfVEFTS19T VEFURV9TRUdNRU5UICAgICAgIFRzczsNCj4gPiA+ICsgIElBMzJfVEFTS19TVEFURV9TRUdNRU5U ICAgICAgIEV4Y2VwdGlvblRzc1tFWENFUFRJT05fTElTVF9NQVhdOw0KPiA+ID4gK30gVFNTX0VO VFJJRVM7DQo+ID4gPiArDQo+ID4gPiArI3ByYWdtYSBwYWNrICgpDQo+ID4gPiArDQo+ID4gPiAr I2RlZmluZSBUU1NfU0VMICAgICAgICAgICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNz U2VnKQ0KPiA+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX1RTU19TRUwobikgIE9GRlNFVF9PRiAoVFNT X0VOVFJJRVMsDQo+ID4gPiBFeGNlcHRpb25Uc3NTZWdbbl0pDQo+ID4gPiArI2RlZmluZSBUU1Nf T0ZGU0VUICAgICAgICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzKQ0KPiA+ID4gKw0K PiA+ID4gK3R5cGVkZWYgVk9JRCAoKkVYQ0VQVElPTl9FTlRSWSkgKFZPSUQpOw0KPiA+ID4gKw0K PiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ICsgIFVJTlROICAgICAgICAgICAgIFZlY3Rv cjsNCj4gPiA+ICsgIEVYQ0VQVElPTl9FTlRSWSAgIEVudHJ5UG9pbnQ7DQo+ID4gPiArfSBJQTMy X0VYQ0VQVElPTl9UU19FTlRSWTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgRXhjZXB0 aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1VELg0K PiA+ID4gKyAqKi8NCj4gPiA+ICtWT0lEDQo+ID4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5 NiAoDQo+ID4gPiArICBWT0lEDQo+ID4gPiArICApOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2Vw dGlvbiAjREYuDQo+ID4gPiArICoqLw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtFeGNlcHRpb25UYXNr U3d0aWNoRW50cnk4ICgNCj4gPiA+ICsgIFZPSUQNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4g PiArLyoqDQo+ID4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0 ZSBmb3IgZXhjZXB0aW9uICNTUy4NCj4gPiA+ICsgKiovDQo+ID4gPiArVk9JRA0KPiA+ID4gK0V4 Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEyICgNCj4gPiA+ICsgIFZPSUQNCj4gPiA+ICsgICk7DQo+ ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJv dWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNHUC4NCj4gPiA+ICsgKiovDQo+ID4gPiArVk9J RA0KPiA+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEzICgNCj4gPiA+ICsgIFZPSUQNCj4g PiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArIEV4Y2VwdGlvbiBoYW5kbGlu ZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNQRi4NCj4gPiA+ICsgKiov DQo+ID4gPiArVk9JRA0KPiA+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE0ICgNCj4gPiA+ ICsgIFZPSUQNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArIEV4Y2Vw dGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNBQy4N Cj4gPiA+ICsgKiovDQo+ID4gPiArVk9JRA0KPiA+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRy eTE3ICgNCj4gPiA+ICsgIFZPSUQNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ ID4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhj ZXB0aW9uICNNQy4NCj4gPiA+ICsgKiovDQo+ID4gPiArVk9JRA0KPiA+ID4gK0V4Y2VwdGlvblRh c2tTd3RpY2hFbnRyeTE4ICgNCj4gPiA+ICsgIFZPSUQNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ ID4gPiAgI2VuZGlmDQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20uDQo+ID4g PiBuYXMNCj4gPiA+IG0NCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS4NCj4gPiA+IG5hcw0KPiA+ID4gbQ0K PiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAuLmRiZmJj ZmNmNTENCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKw0KPiA+ID4gYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNt Lg0KPiA+ID4gbmFzDQo+ID4gPiBtDQo+ID4gPiBAQCAtMCwwICsxLDM5OCBAQA0KPiA+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ID4gKy0tLS0tLS0tLS0gOyA7IENvcHlyaWdodCAoYykgMjAxNywgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ICtyZXNlcnZlZC48QlI+IDsgVGhpcyBw cm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyA7IGFyZQ0KPiA+ID4gK2xpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhlIEJTRA0KPiA+ID4gTGljZW5zZQ0KPiA+ID4gKzsgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBk aXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ID4gPiArbWF5IGJl IGZvdW5kDQo+ID4gPiBhdA0KPiA+ID4gKzsgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2Vz L2JzZC1saWNlbnNlLnBocC4NCj4gPiA+ICs7DQo+ID4gPiArOyBUSEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiA+ID4gK0JBU0lT LCA7IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsDQo+ IEVJVEhFUg0KPiA+ID4gK0VYUFJFU1MNCj4gPiA+IE9SIElNUExJRUQuDQo+ID4gPiArOw0KPiA+ ID4gKzsgTW9kdWxlIE5hbWU6DQo+ID4gPiArOw0KPiA+ID4gKzsgICBFeGNlcHRpb25Uc3NFbnRy eUFzbS5Bc20NCj4gPiA+ICs7DQo+ID4gPiArOyBBYnN0cmFjdDoNCj4gPiA+ICs7DQo+ID4gPiAr OyAgIElBMzIgQ1BVIEV4Y2VwdGlvbiBIYW5kbGVyIHdpdGggU2VwYXJhdGUgU3RhY2sNCj4gPiA+ ICs7DQo+ID4gPiArOyBOb3RlczoNCj4gPiA+ICs7DQo+ID4gPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g PiArLS0tLS0tLS0tLQ0KPiA+ID4gKw0KPiA+ID4gKzsNCj4gPiA+ICs7IElBMzIgVFNTIE1lbW9y eSBMYXlvdXQgRGVzY3JpcHRpb24NCj4gPiA+ICs7DQo+ID4gPiArc3RydWMgSUEzMl9UU1MNCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgcmVzdyAxDQo+ID4gPiArICAuRVNQMDogICAgcmVzZCAxDQo+ID4gPiArICAuU1MwOiAgICAg cmVzdyAxDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiA+ICsgIC5FU1Ax OiAgICByZXNkIDENCj4gPiA+ICsgIC5TUzE6ICAgICByZXN3IDENCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gKyAgLkVTUDI6ICAgIHJlc2QgMQ0KPiA+ID4gKyAgLlNT MjogICAgIHJlc3cgMQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiAr ICAuX0NSMzogICAgcmVzZCAxDQo+ID4gPiArICAuRUlQOiAgICAgcmVzZCAxDQo+ID4gPiArICAu RUZMQUdTOiAgcmVzZCAxDQo+ID4gPiArICAuX0VBWDogICAgcmVzZCAxDQo+ID4gPiArICAuX0VD WDogICAgcmVzZCAxDQo+ID4gPiArICAuX0VEWDogICAgcmVzZCAxDQo+ID4gPiArICAuX0VCWDog ICAgcmVzZCAxDQo+ID4gPiArICAuX0VTUDogICAgcmVzZCAxDQo+ID4gPiArICAuX0VCUDogICAg cmVzZCAxDQo+ID4gPiArICAuX0VTSTogICAgcmVzZCAxDQo+ID4gPiArICAuX0VESTogICAgcmVz ZCAxDQo+ID4gPiArICAuX0VTOiAgICAgcmVzdyAxDQo+ID4gPiArICAgICAgICAgICAgICAgICAg ICByZXN3IDENCj4gPiA+ICsgIC5fQ1M6ICAgICByZXN3IDENCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgIHJlc3cgMQ0KPiA+ID4gKyAgLl9TUzogICAgIHJlc3cgMQ0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiArICAuX0RTOiAgICAgcmVzdyAxDQo+ID4gPiArICAg ICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiA+ICsgIC5fRlM6ICAgICByZXN3IDENCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gKyAgLl9HUzogICAgIHJlc3cgMQ0K PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiArICAuTERUOiAgICAgcmVz dyAxDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4g PiArZW5kc3RydWMNCj4gPiA+ICsNCj4gPiA+ICs7DQo+ID4gPiArOyBDb21tb25FeGNlcHRpb25I YW5kbGVyKCkNCj4gPiA+ICs7DQo+ID4gPiArZXh0ZXJuIEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9u SGFuZGxlcikNCj4gPiA+ICsNCj4gPiA+ICtTRUNUSU9OIC5kYXRhDQo+ID4gPiArDQo+ID4gPiAr U0VDVElPTiAudGV4dA0KPiA+ID4gKw0KPiA+ID4gK0FMSUdOICAgOA0KPiA+ID4gKw0KPiA+ID4g KzsNCj4gPiA+ICs7IGV4Y2VwdGlvbiBoYW5kbGVyIHN0dWIgdGFibGUNCj4gPiA+ICs7DQo+ID4g PiArJW1hY3JvIERlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxDQo+ID4gPiArJSVEb0lyZXQ6 DQo+ID4gPiArICAgIGlyZXRkDQo+ID4gPiArDQo+ID4gPiArZ2xvYmFsIEFTTV9QRlgoRXhjZXB0 aW9uVGFza1N3dGljaEVudHJ5JTEpDQo+ID4gPiArQVNNX1BGWChFeGNlcHRpb25UYXNrU3d0aWNo RW50cnklMSk6DQo+ID4gPiArICAgIGRiICAgICAgMHg2YSAgICAgICAgOyBwdXNoICAjVmVjdG9y TnVtDQo+ID4gPiArICAgIGRiICAgICAgJTEgICAgICAgICAgOyBWZWN0b3JOdW0NCj4gPiA+ICsg ICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQpDQo+ID4g PiArICAgIGNhbGwgICAgZWF4DQo+ID4gPiArICAgIG1vdiAgICAgZXNwLCBlYXggICAgOyBSZXN0 b3JlIHN0YWNrIHRvcA0KPiA+ID4gKyAgICBqbXAgICAgICUlRG9JcmV0DQo+ID4gPiArJWVuZG1h Y3JvDQo+ID4gPiArDQo+ID4gPiArZ2xvYmFsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5 UG9pbnQpDQo+ID4gPiArQVNNX1BGWChDb21tb25UYXNrU3d0aWNoRW50cnlQb2ludCk6DQo+ID4g PiArICAgIDsNCj4gPiA+ICsgICAgOyBTdGFjazoNCj4gPiA+ICsgICAgOyArLS0tLS0tLS0tLS0t LS0tLS0tLS0tKyA8LS0gRUJQIC0gOA0KPiA+ID4gKyAgICA7ICsgICAgICAgVFNTIEJhc2UgICAg ICArDQo+ID4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCAtIDQNCj4g PiA+ICsgICAgOyArICAgICAgQ1BVSUQuRURYICAgICAgKw0KPiA+ID4gKyAgICA7ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0rIDwtLSBFQlANCj4gPiA+ICsgICAgOyArICAgICAgICAgRUlQICAgICAg ICAgKw0KPiA+ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgKyA0DQo+ ID4gPiArICAgIDsgKyAgICBWZWN0b3IgTnVtYmVyICAgICsNCj4gPiA+ICsgICAgOyArLS0tLS0t LS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQICsgOA0KPiA+ID4gKyAgICA7ICsgICAgRXJyb3IgQ29k ZSAgICAgICArDQo+ID4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiA+ICsg ICAgOw0KPiA+ID4gKzsNCj4gPiA+ICs7IEdldCBUU1Mgb2YgaW50ZXJydXB0ZWQgdGFzaw0KPiA+ ID4gKzsNCj4gPiA+ICsgICAgbW92ICAgICBlYnAsIGVzcCAgICAgICAgICAgICAgICAgICAgOyBT dGFjayBmcmFtZQ0KPiA+ID4gKw0KPiA+ID4gKzsgVXNlIENQVUlEIHRvIGRldGVybWluZSBpZiBG WFNBVkUvRlhSRVNUT1IgYW5kIERFIGFyZSBzdXBwb3J0ZWQNCj4gPiA+ICsgICAgbW92ICAgICBl YXgsIDENCj4gPiA+ICsgICAgY3B1aWQNCj4gPiA+ICsgICAgcHVzaCAgICBlZHgNCj4gPiA+ICsN Cj4gPiA+ICs7IEdldCBUU1MgYmFzZSBvZiBpbnRlcnJ1cHRlZCB0YXNrIHRocm91Z2ggUHJldmlv dXNUYXNrTGluayBmaWVsZCBpbg0KPiA+ID4gKzsgY3VycmVudCBUU1MgYmFzZQ0KPiA+ID4gKyAg ICBzdWIgICAgIGVzcCwgOA0KPiA+ID4gKyAgICBzZ2R0ICAgIFtlc3AgKyAyXQ0KPiA+ID4gKyAg ICBtb3YgICAgIGVheCwgW2VzcCArIDRdICAgICAgICAgICAgICA7IEdEVCBiYXNlDQo+ID4gPiAr ICAgIGFkZCAgICAgZXNwLCA4DQo+ID4gPiArDQo+ID4gPiArICAgIHhvciAgICAgZWJ4LCBlYngN Cj4gPiA+ICsgICAgc3RyICAgICBieCAgICAgICAgICAgICAgICAgICAgICAgICAgOyBDdXJyZW50 IFRSDQo+ID4gPiArDQo+ID4gPiArICAgIG1vdiAgICAgZWN4LCBbZWF4ICsgZWJ4ICsgMl0NCj4g PiA+ICsgICAgc2hsICAgICBlY3gsIDgNCj4gPiA+ICsgICAgbW92ICAgICBjbCwgW2VheCArIGVi eCArIDddDQo+ID4gPiArICAgIHJvciAgICAgZWN4LCA4ICAgICAgICAgICAgICAgICAgICAgIDsg ZWN4ID0gQ3VycmVudCBUU1MgYmFzZQ0KPiA+ID4gKyAgICBwdXNoICAgIGVjeCAgICAgICAgICAg ICAgICAgICAgICAgICA7IGtlZXAgaXQgaW4gc3RhY2sgZm9yIGxhdGVyIHVzZQ0KPiA+ID4gKw0K PiA+ID4gKyAgICBtb3Z6eCAgIGVieCwgd29yZCBbZWN4XSAgICAgICAgICAgICA7IFByZXZpb3Vz IFRhc2sgTGluaw0KPiA+ID4gKyAgICBtb3YgICAgIGVjeCwgW2VheCArIGVieCArIDJdDQo+ID4g PiArICAgIHNobCAgICAgZWN4LCA4DQo+ID4gPiArICAgIG1vdiAgICAgY2wsIFtlYXggKyBlYngg KyA3XQ0KPiA+ID4gKyAgICByb3IgICAgIGVjeCwgOCAgICAgICAgICAgICAgICAgICAgICA7IGVj eCA9IFByZXZpb3VzIFRTUyBiYXNlDQo+ID4gPiArDQo+ID4gPiArOw0KPiA+ID4gKzsgQWxpZ24g c3RhY2sgdG8gbWFrZSBzdXJlIHRoYXQgRUZJX0ZYX1NBVkVfU1RBVEVfSUEzMiBvZg0KPiA+ID4g RUZJX1NZU1RFTV9DT05URVhUX0lBMzINCj4gPiA+ICs7IGlzIDE2LWJ5dGUgYWxpZ25lZA0KPiA+ ID4gKzsNCj4gPiA+ICsgICAgYW5kICAgICBlc3AsIDB4ZmZmZmZmZjANCj4gPiA+ICsgICAgc3Vi ICAgICBlc3AsIDEyDQo+ID4gPiArDQo+ID4gPiArOzsgVUlOVDMyICBFZGksIEVzaSwgRWJwLCBF c3AsIEVieCwgRWR4LCBFY3gsIEVheDsNCj4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuX0VBWF0NCj4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0VDWF0NCj4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VEWF0NCj4g PiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCj4gPiA+ICsgICAg cHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0NCj4gPiA+ICsgICAgcHVzaCAgICBk d29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCUF0NCj4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4 ICsgSUEzMl9UU1MuX0VTSV0NCj4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuX0VESV0NCj4gPiA+ICsNCj4gPiA+ICs7OyBVSU5UMzIgIEdzLCBGcywgRXMsIERzLCBDcywg U3M7DQo+ID4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fU1NdDQo+ ID4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3gg KyBJQTMyX1RTUy5fQ1NdDQo+ID4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gPiArICAgIG1vdnp4 ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRFNdDQo+ID4gPiArICAgIHB1c2ggICAgZWF4 DQo+ID4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNdDQo+ID4g PiArICAgIHB1c2ggICAgZWF4DQo+ID4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJ QTMyX1RTUy5fRlNdDQo+ID4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gPiArICAgIG1vdnp4ICAg ZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fR1NdDQo+ID4gPiArICAgIHB1c2ggICAgZWF4DQo+ ID4gPiArDQo+ID4gPiArOzsgVUlOVDMyICBFaXA7DQo+ID4gPiArICAgIHB1c2ggICAgZHdvcmQg W2VjeCArIElBMzJfVFNTLkVJUF0NCj4gPiA+ICsNCj4gPiA+ICs7OyBVSU5UMzIgIEdkdHJbMl0s IElkdHJbMl07DQo+ID4gPiArICAgIHN1YiAgICAgZXNwLCA4DQo+ID4gPiArICAgIHNpZHQgICAg W2VzcF0NCj4gPiA+ICsgICAgbW92ICAgICBlYXgsIFtlc3AgKyAyXQ0KPiA+ID4gKyAgICB4Y2hn ICAgIGVheCwgW2VzcF0NCj4gPiA+ICsgICAgYW5kICAgICBlYXgsIDB4RkZGRg0KPiA+ID4gKyAg ICBtb3YgICAgIFtlc3ArNF0sIGVheA0KPiA+ID4gKw0KPiA+ID4gKyAgICBzdWIgICAgIGVzcCwg OA0KPiA+ID4gKyAgICBzZ2R0ICAgIFtlc3BdDQo+ID4gPiArICAgIG1vdiAgICAgZWF4LCBbZXNw ICsgMl0NCj4gPiA+ICsgICAgeGNoZyAgICBlYXgsIFtlc3BdDQo+ID4gPiArICAgIGFuZCAgICAg ZWF4LCAweEZGRkYNCj4gPiA+ICsgICAgbW92ICAgICBbZXNwKzRdLCBlYXgNCj4gPiA+ICsNCj4g PiA+ICs7OyBVSU5UMzIgIExkdHIsIFRyOw0KPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZWJ4ICAg IDsgZWJ4IHN0aWxsIGtlZXBzIHNlbGVjdG9yIG9mIGludGVycnVwdGVkIHRhc2sNCj4gPiA+ICsg ICAgcHVzaCAgICBlYXgNCj4gPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJf VFNTLkxEVF0NCj4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ICsNCj4gPiA+ICs7OyBVSU5U MzIgIEVGbGFnczsNCj4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZM QUdTXQ0KPiA+ID4gKw0KPiA+ID4gKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7 DQo+ID4gPiArICAgIG1vdiAgICAgZWF4LCBjcjQNCj4gPiA+ICsgICAgcHVzaCAgICBlYXggICAg ICAgICAgICAgOyBwdXNoIGNyNCBmaXJzdGx5DQo+ID4gPiArDQo+ID4gPiArICAgIG1vdiAgICAg ZWR4LCBbZWJwIC0gNF0gIDsgY3B1aWQuZWR4DQo+ID4gPiArICAgIHRlc3QgICAgZWR4LCBCSVQy NCAgICAgIDsgVGVzdCBmb3IgRlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQNCj4gPiA+ICsgICAganog ICAgICAuMQ0KPiA+ID4gKyAgICBvciAgICAgIGVheCwgQklUOSAgICAgICA7IFNldCBDUjQuT1NG WFNSDQo+ID4gPiArLjE6DQo+ID4gPiArICAgIHRlc3QgICAgZWR4LCBCSVQyICAgICAgIDsgVGVz dCBmb3IgRGVidWdnaW5nIEV4dGVuc2lvbnMgc3VwcG9ydA0KPiA+ID4gKyAgICBqeiAgICAgIC4y DQo+ID4gPiArICAgIG9yICAgICAgZWF4LCBCSVQzICAgICAgIDsgU2V0IENSNC5ERQ0KPiA+ID4g Ky4yOg0KPiA+ID4gKyAgICBtb3YgICAgIGNyNCwgZWF4DQo+ID4gPiArDQo+ID4gPiArICAgIG1v diAgICAgZWF4LCBjcjMNCj4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ICsgICAgbW92ICAg ICBlYXgsIGNyMg0KPiA+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ID4gKyAgICB4b3IgICAgIGVh eCwgZWF4DQo+ID4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gPiArICAgIG1vdiAgICAgZWF4LCBj cjANCj4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ICsNCj4gPiA+ICs7OyBVSU5UMzIgIERy MCwgRHIxLCBEcjIsIERyMywgRHI2LCBEcjc7DQo+ID4gPiArICAgIG1vdiAgICAgZWF4LCBkcjcN Cj4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyNg0KPiA+ ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHIzDQo+ID4gPiAr ICAgIHB1c2ggICAgZWF4DQo+ID4gPiArICAgIG1vdiAgICAgZWF4LCBkcjINCj4gPiA+ICsgICAg cHVzaCAgICBlYXgNCj4gPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMQ0KPiA+ID4gKyAgICBwdXNo ICAgIGVheA0KPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHIwDQo+ID4gPiArICAgIHB1c2ggICAg ZWF4DQo+ID4gPiArDQo+ID4gPiArOzsgRlhfU0FWRV9TVEFURV9JQTMyIEZ4U2F2ZVN0YXRlOw0K PiA+ID4gKzs7IENsZWFyIFRTIGJpdCBpbiBDUjAgdG8gYXZvaWQgRGV2aWNlIE5vdCBBdmFpbGFi bGUgRXhjZXB0aW9uICgjTk0pDQo+ID4gPiArOzsgd2hlbiBleGVjdXRpbmcgZnhzYXZlL2Z4cnN0 b3IgaW5zdHJ1Y3Rpb24NCj4gPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDI0ICA7IFRlc3QgZm9y IEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0Lg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg IDsgZWR4IHN0aWxsIGNvbnRhaW5zIHJlc3VsdCBmcm9tIENQVUlEIGFib3ZlDQo+ID4gPiArICAg IGp6ICAgICAgLjMNCj4gPiA+ICsgICAgY2x0cw0KPiA+ID4gKyAgICBzdWIgICAgIGVzcCwgNTEy DQo+ID4gPiArICAgIG1vdiAgICAgZWRpLCBlc3ANCj4gPiA+ICsgICAgZGIgICAgICAweGYsIDB4 YWUsIDB4NyA7ZnhzYXZlIFtlZGldDQo+ID4gPiArLjM6DQo+ID4gPiArDQo+ID4gPiArOzsgVUlO VDMyICBFeGNlcHRpb25EYXRhOw0KPiA+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlYnAgKyA4XQ0K PiA+ID4gKw0KPiA+ID4gKzs7IFVFRkkgY2FsbGluZyBjb252ZW50aW9uIGZvciBJQTMyIHJlcXVp cmVzIHRoYXQgRGlyZWN0aW9uIGZsYWcgaW4gRUZMQUdzIGlzDQo+IGNsZWFyDQo+ID4gPiArICAg IGNsZA0KPiA+ID4gKw0KPiA+ID4gKzs7IGNhbGwgaW50byBleGNlcHRpb24gaGFuZGxlcg0KPiA+ ID4gKyAgICBtb3YgICAgIGVzaSwgZWN4ICAgICAgICAgICAgOyBLZWVwIFRTUyBiYXNlIHRvIGF2 b2lkIG92ZXJ3cml0ZQ0KPiA+ID4gKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChDb21tb25FeGNl cHRpb25IYW5kbGVyKQ0KPiA+ID4gKw0KPiA+ID4gKzs7IFByZXBhcmUgcGFyYW1ldGVyIGFuZCBj YWxsDQo+ID4gPiArICAgIG1vdiAgICAgZWR4LCBlc3ANCj4gPiA+ICsgICAgcHVzaCAgICBlZHgg ICAgICAgICAgICAgICAgIDsgRUZJX1NZU1RFTV9DT05URVhUDQo+ID4gPiArICAgIHB1c2ggICAg ZHdvcmQgW2VicCArIDRdICAgICA7IEVGSV9FWENFUFRJT05fVFlQRSAodmVjdG9yIG51bWJlcikN Cj4gPiA+ICsNCj4gPiA+ICsgICAgOw0KPiA+ID4gKyAgICA7IENhbGwgRXh0ZXJuYWwgRXhjZXB0 aW9uIEhhbmRsZXINCj4gPiA+ICsgICAgOw0KPiA+ID4gKyAgICBjYWxsICAgIGVheA0KPiA+ID4g KyAgICBhZGQgICAgIGVzcCwgOCAgICAgICAgICAgICAgOyBSZXN0b3JlIHN0YWNrIGJlZm9yZSBj YWxsaW5nDQo+ID4gPiArICAgIG1vdiAgICAgZWN4LCBlc2kgICAgICAgICAgICA7IFJlc3RvcmUg VFNTIGJhc2UNCj4gPiA+ICsNCj4gPiA+ICs7OyBVSU5UMzIgIEV4Y2VwdGlvbkRhdGE7DQo+ID4g PiArICAgIGFkZCAgICAgZXNwLCA0DQo+ID4gPiArDQo+ID4gPiArOzsgRlhfU0FWRV9TVEFURV9J QTMyIEZ4U2F2ZVN0YXRlOw0KPiA+ID4gKyAgICBtb3YgICAgIGVkeCwgW2VicCAtIDRdICA7IGNw dWlkLmVkeA0KPiA+ID4gKyAgICB0ZXN0ICAgIGVkeCwgQklUMjQgICAgICA7IFRlc3QgZm9yIEZY U0FWRS9GWFJFU1RPUiBzdXBwb3J0DQo+ID4gPiArICAgIGp6ICAgICAgLjQNCj4gPiA+ICsgICAg bW92ICAgICBlc2ksIGVzcA0KPiA+ID4gKyAgICBkYiAgICAgIDB4ZiwgMHhhZSwgMHhlICA7IGZ4 cnN0b3IgW2VzaV0NCj4gPiA+ICsuNDoNCj4gPiA+ICsgICAgYWRkICAgICBlc3AsIDUxMg0KPiA+ ID4gKw0KPiA+ID4gKzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsgOzsg U2tpcCByZXN0b3JhdGlvbiBvZiBEUngNCj4gPiA+ICtyZWdpc3RlcnMgdG8gc3VwcG9ydCBkZWJ1 Z2dlcnMgOzsgdGhhdCBzZXQgYnJlYWtwb2ludHMgaW4NCj4gPiA+ICtpbnRlcnJ1cHQvZXhjZXB0 aW9uIGNvbnRleHQNCj4gPiA+ICsgICAgYWRkICAgICBlc3AsIDQgKiA2DQo+ID4gPiArDQo+ID4g PiArOzsgVUlOVDMyICBDcjAsIENyMSwgQ3IyLCBDcjMsIENyNDsNCj4gPiA+ICsgICAgcG9wICAg ICBlYXgNCj4gPiA+ICsgICAgbW92ICAgICBjcjAsIGVheA0KPiA+ID4gKyAgICBhZGQgICAgIGVz cCwgNCAgICA7IG5vdCBmb3IgQ3IxDQo+ID4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gPiArICAg IG1vdiAgICAgY3IyLCBlYXgNCj4gPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiA+ICsgICAgbW92 ICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NSM10sIGVheA0KPiA+ID4gKyAgICBwb3AgICAg IGVheA0KPiA+ID4gKyAgICBtb3YgICAgIGNyNCwgZWF4DQo+ID4gPiArDQo+ID4gPiArOzsgVUlO VDMyICBFRmxhZ3M7DQo+ID4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVG TEFHU10NCj4gPiA+ICsgICAgbW92ICAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxB R1NdDQo+ID4gPiArICAgIGJ0ciAgICAgZWJ4LCA5ICAgICAgOyBEbyAnY2xpJw0KPiA+ID4gKyAg ICBtb3YgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYngNCj4gPiA+ICsNCj4g PiA+ICs7OyBVSU5UMzIgIExkdHIsIFRyOw0KPiA+ID4gKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0 clsyXTsNCj4gPiA+ICs7OyBCZXN0IG5vdCBsZXQgYW55b25lIG1lc3Mgd2l0aCB0aGVzZSBwYXJ0 aWN1bGFyIHJlZ2lzdGVycy4uLg0KPiA+ID4gKyAgICBhZGQgICAgIGVzcCwgMjQNCj4gPiA+ICsN Cj4gPiA+ICs7OyBVSU5UMzIgIEVpcDsNCj4gPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuRUlQXQ0KPiA+ID4gKw0KPiA+ID4gKzs7IFVJTlQzMiAgR3MsIEZzLCBFcywgRHMs IENzLCBTczsNCj4gPiA+ICs7OyBOT1RFIC0gbW9kaWZpZWQgc2VnbWVudCByZWdpc3RlcnMgY291 bGQgaGFuZyB0aGUgZGVidWdnZXIuLi4gIFdlDQo+ID4gPiArOzsgICAgICAgIGNvdWxkIGF0dGVt cHQgdG8gaW5zdWxhdGUgb3Vyc2VsdmVzIGFnYWluc3QgdGhpcyBwb3NzaWJpbGl0eSwNCj4gPiA+ ICs7OyAgICAgICAgYnV0IHRoYXQgcG9zZXMgcmlza3MgYXMgd2VsbC4NCj4gPiA+ICs7Ow0KPiA+ ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5f R1NdLCBheA0KPiA+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ID4gK28xNiBtb3YgICAgIFtlY3gg KyBJQTMyX1RTUy5fRlNdLCBheA0KPiA+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ID4gK28xNiBt b3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fRVNdLCBheA0KPiA+ID4gKyAgICBwb3AgICAgIGVheA0K PiA+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fRFNdLCBheA0KPiA+ID4gKyAgICBw b3AgICAgIGVheA0KPiA+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fQ1NdLCBheA0K PiA+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RT Uy5fU1NdLCBheA0KPiA+ID4gKw0KPiA+ID4gKzs7IFVJTlQzMiAgRWRpLCBFc2ksIEVicCwgRXNw LCBFYngsIEVkeCwgRWN4LCBFYXg7DQo+ID4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElB MzJfVFNTLl9FREldDQo+ID4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9F U0ldDQo+ID4gPiArICAgIGFkZCAgICAgZXNwLCA0ICAgOyBub3QgZm9yIGVicA0KPiA+ID4gKyAg ICBhZGQgICAgIGVzcCwgNCAgIDsgbm90IGZvciBlc3ANCj4gPiA+ICsgICAgcG9wICAgICBkd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCj4gPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuX0VEWF0NCj4gPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0VDWF0NCj4gPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VBWF0NCj4g PiA+ICsNCj4gPiA+ICs7IFNldCBzaW5nbGUgc3RlcCBEQiMgdG8gYWxsb3cgZGVidWdnZXIgdG8g YWJsZSB0byBnbyBiYWNrIHRvIHRoZSBFSVANCj4gPiA+ICs7IHdoZXJlIHRoZSBleGNlcHRpb24g aXMgdHJpZ2dlcmVkLg0KPiA+ID4gKw0KPiA+ID4gKzs7IENyZWF0ZSByZXR1cm4gY29udGV4dCBm b3IgaXJldGQgaW4gc3R1YiBmdW5jdGlvbg0KPiA+ID4gKyAgICBtb3YgICAgZWF4LCBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgICA7IEdldCBvbGQgc3RhY2sgcG9pbnRlcg0KPiA+ID4g KyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUlQXQ0KPiA+ID4gKyAgICBt b3YgICAgW2VheCAtIDB4Y10sIGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBFSVAg aW4gb2xkIHN0YWNrDQo+ID4gPiArICAgIG1vdnp4ICBlYngsIHdvcmQgW2VjeCArIElBMzJfVFNT Ll9DU10NCj4gPiA+ICsgICAgbW92ICAgIFtlYXggLSAweDhdLCBlYnggICAgICAgICAgICAgICAg ICAgICAgOyBjcmVhdGUgQ1MgaW4gb2xkIHN0YWNrDQo+ID4gPiArICAgIG1vdiAgICBlYngsIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gPiArICAgIGJ0cyAgICBlYngsIDgNCj4g PiA+ICsgICAgbW92ICAgIFtlYXggLSAweDRdLCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBj cmVhdGUgZWZsYWdzIGluIG9sZA0KPiA+IHN0YWNrDQo+ID4gPiArICAgIG1vdiAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUZMQUdTXSwgZWJ4ICAgIDsgdXBkYXRlIGVmbGFncyBpbiBvbGQNCj4g PiBUU1MNCj4gPiA+ICsgICAgbW92ICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1Bd ICAgICAgOyBHZXQgb2xkIHN0YWNrIHBvaW50ZXINCj4gPiA+ICsgICAgc3ViICAgIGVheCwgMHhj ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBtaW51cyAxMiBieXRlDQo+ID4gPiArICAg IG1vdiAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0sIGVheCAgICAgIDsgU2V0IG5ldyBz dGFjayBwb2ludGVyDQo+ID4gPiArDQo+ID4gPiArOzsgUmVwbGFjZSB0aGUgRUlQIG9mIGludGVy cnVwdGVkIHRhc2sgd2l0aCBzdHViIGZ1bmN0aW9uDQo+ID4gPiArICAgIG1vdiAgICBlYXgsIEFT TV9QRlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbikNCj4gPiA+ICsgICAgbW92ICAgIGR3b3JkIFtl Y3ggKyBJQTMyX1RTUy5FSVBdLCBlYXgNCj4gPiA+ICsNCj4gPiA+ICsgICAgbW92ICAgICBlY3gs IFtlYnAgLSA4XSAgICAgICAgICAgICAgICAgICAgICAgOyBHZXQgY3VycmVudCBUU1MgYmFzZQ0K PiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1BdICAgICA7 IFJldHVybiBjdXJyZW50IHN0YWNrDQo+ID4gdG9wDQo+ID4gPiArICAgIG1vdiAgICAgZXNwLCBl YnANCj4gPiA+ICsNCj4gPiA+ICsgICAgcmV0DQo+ID4gPiArDQo+ID4gPiArZ2xvYmFsIEFTTV9Q RlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbikNCj4gPiA+ICtBU01fUEZYKFNpbmdsZVN0ZXBTdHVi RnVuY3Rpb24pOg0KPiA+ID4gKzsNCj4gPiA+ICs7IHdlIG5lZWQgY2xlYW4gVFMgYml0IGluIENS MCB0byBleGVjdXRlIDsgeDg3DQo+ID4gPiArRlBVL01NWC9TU0UvU1NFMi9TU0UzL1NTU0UzL1NT RTQgaW5zdHJ1Y3Rpb25zLg0KPiA+ID4gKzsNCj4gPiA+ICsgICAgY2x0cw0KPiA+ID4gKyAgICBp cmV0ZA0KPiA+ID4gKw0KPiA+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gKy0tLS0tLS0tLS0NCj4g PiA+ICs7IFZPSUQNCj4gPiA+ICs7IEFzbVdyaXRlVHIgKA0KPiA+ID4gKzsgICBVSU5UMTYgU2Vs ZWN0b3INCj4gPiA+ICs7ICAgKTsNCj4gPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICstLS0tLS0t LS0tDQo+ID4gPiArZ2xvYmFsIEFTTV9QRlgoQXNtV3JpdGVUcikNCj4gPiA+ICtBU01fUEZYKEFz bVdyaXRlVHIpOg0KPiA+ID4gKyAgICBtb3YgICAgIGVheCwgW2VzcCs0XQ0KPiA+ID4gKyAgICBs dHIgICAgIGF4DQo+ID4gPiArICAgIHJldA0KPiA+ID4gKw0KPiA+ID4gK0RlZkV4Y2VwdGlvblRh c2tTd3RpY2hFbnRyeSA2DQo+ID4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDgNCj4g PiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTINCj4gPiA+ICtEZWZFeGNlcHRpb25U YXNrU3d0aWNoRW50cnkgMTMNCj4gPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTQN Cj4gPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTcNCj4gPiA+ICtEZWZFeGNlcHRp b25UYXNrU3d0aWNoRW50cnkgMTgNCj4gPiA+ICsNCj4gPiA+IGRpZmYgLS1naXQNCj4gPiA+IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi4NCj4gPiA+IGluZg0KPiA+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+ID4gaW5mDQo+ ID4gPiBpbmRleCA3NTQ0MzI4OGE5Li40YzBkNDM1MTM2IDEwMDY0NA0KPiA+ID4gLS0tDQo+ID4g PiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuDQo+ID4gPiBpbmYNCj4gPiA+ICsrKw0KPiA+ID4gYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGli Lg0KPiA+ID4gaW5mDQo+ID4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ID4gIFtTb3VyY2VzLklh MzJdDQo+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gPiAgICBJYTMy L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ID4gKyAgSWEzMi9FeGNlcHRpb25Uc3NFbnRy eUFzbS5uYXNtDQo+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ID4gICAg SWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHRE ZWZzLmgNCj4gPiA+IGRpZmYgLS1naXQNCj4gPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckwNCj4gPiA+IGliLmkN Cj4gPiA+IG5mDQo+ID4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMDQo+ID4gPiBpYi5pDQo+ID4gPiBuZg0KPiA+ ID4gaW5kZXggZDcwYTk5YzEwMC4uYWRiNDE1YmE1YSAxMDA2NDQNCj4gPiA+IC0tLQ0KPiA+ID4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNl cHRpb25IYW5kbGVyTA0KPiA+ID4gaWIuaQ0KPiA+ID4gbmYNCj4gPiA+ICsrKw0KPiA+ID4gYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRp b25IYW5kbGVyTA0KPiA+ID4gaWIuaQ0KPiA+ID4gbmYNCj4gPiA+IEBAIC0zMCw2ICszMCw3IEBA DQo+ID4gPiAgW1NvdXJjZXMuSWEzMl0NCj4gPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFz bS5hc20NCj4gPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ID4gPiArICBJ YTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFu ZGxlckFzbS5TDQo+ID4gPiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiA+ICAg IElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ID4gQEAgLTU3LDMgKzU4LDUgQEANCj4gPiA+ ICAgIFByaW50TGliDQo+ID4gPiAgICBMb2NhbEFwaWNMaWINCj4gPiA+ICAgIFBlQ29mZkdldEVu dHJ5UG9pbnRMaWINCj4gPiA+ICsgIE1lbW9yeUFsbG9jYXRpb25MaWINCj4gPiA+ICsNCj4gPiA+ IGRpZmYgLS1naXQNCj4gPiA+DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiA+IGluZg0KPiA+ID4NCj4g Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRp b25IYW5kbGVyTGliLg0KPiA+ID4gaW5mDQo+ID4gPiBpbmRleCA2MzRmZmNiMjFkLi41NmI4NzVi N2M4IDEwMDY0NA0KPiA+ID4gLS0tDQo+ID4gPg0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gPiBpbmYN Cj4gPiA+ICsrKw0KPiA+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+ID4gaW5mDQo+ID4gPiBAQCAt MzAsNiArMzAsNyBAQA0KPiA+ID4gIFtTb3VyY2VzLklhMzJdDQo+ID4gPiAgICBJYTMyL0V4Y2Vw dGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFz bQ0KPiA+ID4gKyAgSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNtDQo+ID4gPiAgICBJYTMy L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ID4gICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxl ci5jDQo+ID4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiA+IGRpZmYgLS1naXQN Cj4gPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0Fy Y2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiA+IGluZGV4IDY1 ZjBjZmY2ODAuLjI0ZjJhODQ4NmEgMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiA+IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVy LmMNCj4gPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L1g2NC9BcmNoRXhjZXB0aW9uSGFuZGwNCj4gPiA+ICsrKyBlci5jDQo+ID4gPiBAQCAtMTQsNiAr MTQsMTkgQEANCj4gPiA+DQo+ID4gPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0K PiA+ID4NCj4gPiA+ICsvLw0KPiA+ID4gKy8vIExpc3Qgb2YgZXhjZXB0aW9ucyBuZWVkaW5nIHNl cGFyYXRlIHN0YWNrIC8vIFNUQVRJQyBVSU5UTg0KPiA+ID4gK21FeGNlcHRpb25zV2l0aFN0YWNr W10gPSB7DQo+ID4gPiArICA2LCAgLy8jVUQ6IEludmFsaWQgT3Bjb2RlIEV4Y2VwdGlvbg0KPiA+ ID4gKyAgOCwgIC8vI0RGOiBEb3VibGUgRmF1bHQgRXhjZXB0aW9uDQo+ID4gPiArICAxMiwgLy8j U1M6IFN0YWNrIEZhdWx0IEV4Y2VwdGlvbg0KPiA+ID4gKyAgMTMsIC8vI0dQOiBHZW5lcmFsIFBy b3RlY3Rpb24gRXhjZXB0aW9uDQo+ID4gPiArICAxNCwgLy8jUEY6IFBhZ2UtRmF1bHQgRXhjZXB0 aW9uDQo+ID4gPiArICAxNywgLy8jQUM6IEFsaWdubWVudCBDaGVjayBFeGNlcHRpb24NCj4gPiA+ ICsgIDE4ICAvLyNNQzogTWFjaGluZS1DaGVjayBFeGNlcHRpb24NCj4gPiA+ICsgIH07DQo+ID4g PiArDQo+ID4gPiAgLyoqDQo+ID4gPiAgICBSZXR1cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9u IGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNvZGUgY2FuDQo+ID4gPiBnZW5lcmF0ZQ0KPiA+ ID4gICAgZXhjZXB0aW9uIHRhYmxlcy4NCj4gPiA+IEBAIC0xMTIsNiArMTI1LDEwMSBAQCBBcmNo UmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0KPiA+ID4gICAgU3lzdGVtQ29udGV4dC5TeXN0ZW1D b250ZXh0WDY0LT5FeGNlcHRpb25EYXRhID0NCj4gPiA+IFJlc2VydmVkVmVjdG9yc1tFeGNlcHRp b25UeXBlXS5FeGNlcHRpb25EYXRhOw0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiArLyoqDQo+ID4g PiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0aW9ucy4NCj4gPiA+ ICsNCj4gPiA+ICsgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0K PiA+ID4gKyoqLw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtBcmNoU2V0dXBF eGNwZXRpb25TdGFjayAoDQo+ID4gPiArICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICAg ICAgICAgICpJZHRUYWJsZQ0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIFZPSUQgICAg ICAgICAgICAgICAgICAgICAgKk5ld0dkdDsNCj4gPiA+ICsgIElBMzJfREVTQ1JJUFRPUiAgICAg ICAgICAgR2R0RGVzYzsNCj4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgT2xkR2R0 U2l6ZTsNCj4gPiA+ICsgIFRTU19FTlRSSUVTICAgICAgICAgICAgICAgKlRzc0VudHJ5Ow0KPiA+ ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja0Jhc2U7DQo+ID4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgIFN0YWNrVG9wOw0KPiA+ID4gKyAgVUlOVE4gICAgICAgICAg ICAgICAgICAgICBTdGFja1NpemU7DQo+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAg IFRzc0Jhc2U7DQo+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+ ID4gKw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3Ig dGhlIEdEVCAgLy8gIEFzbVJlYWRHZHRyKCZHZHREZXNjKTsNCj4gPiA+ICsgT2xkR2R0U2l6ZSA9 IEdkdERlc2MuTGltaXQgKyAxOyAgTmV3R2R0ID0NCj4gPiA+ICsgQWxsb2NhdGVSdW50aW1lWmVy b1Bvb2woT2xkR2R0U2l6ZSArIHNpemVvZihUU1NfRU5UUklFUykNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05NRU5UKTsgIGlmIChOZXdHZHQN Cj4gPiA9PQ0KPiA+ID4gKyBOVUxMKSB7DQo+ID4gPiArICAgIHJldHVybjsNCj4gPiA+ICsgIH0N Cj4gPiA+ICsgIE5ld0dkdCA9IEFMSUdOX1BPSU5URVIgKE5ld0dkdCwgSUEzMl9HRFRfQUxJR05N RU5UKTsNCj4gPiA+ICsNCj4gPiA+ICsgIC8vDQo+ID4gPiArICAvLyBJbml0aWFsaXplIG5ldyBH RFQgZW50cmllcw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIENvcHlNZW0oTmV3R2R0LCAoVk9JRCAq KUdkdERlc2MuQmFzZSwgT2xkR2R0U2l6ZSk7ICBHZHREZXNjLkJhc2UgPQ0KPiA+ID4gKyAoVUlO VE4pKFZPSUQqKU5ld0dkdDsgIEdkdERlc2MuTGltaXQgPSAoVUlOVDE2KShPbGRHZHRTaXplICsN Cj4gPiA+ICsgVFNTX09GRlNFVCAtIDEpOw0KPiA+ID4gKw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsg IC8vIFJlc2VydmUgc3RhdGNrIG1lbW9yeSBmb3Igc3VwcG9ydGVkIGV4Y2VwdGlvbnMgIC8vICBT dGFja1NpemUgPQ0KPiA+ID4gKyBBUlJBWV9TSVpFIChtRXhjZXB0aW9uc1dpdGhTdGFjaykgKiBF WENFUFRJT05fU1RBQ0tfU0laRTsgIFN0YWNrU2l6ZQ0KPiA+ID4gKyA9IEVGSV9QQUdFU19UT19T SVpFIChFRklfU0laRV9UT19QQUdFUyAoU3RhY2tTaXplKSk7ICBTdGFja0Jhc2UgPQ0KPiA+ID4g KyAoVUlOVDY0KUFsbG9jYXRlUGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsg IGlmDQo+ID4gPiArIChTdGFja0Jhc2UgPT0gMCkgew0KPiA+ID4gKyAgICBGcmVlUG9vbCAoTmV3 R2R0KTsNCj4gPiA+ICsgICAgcmV0dXJuOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAg Ly8NCj4gPiA+ICsgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9ycw0KPiA+ID4gKyAgLy8NCj4gPiA+ ICsgIFRzc0VudHJ5ID0gKFZPSUQgKikoR2R0RGVzYy5CYXNlICsgT2xkR2R0U2l6ZSk7ICBUc3NC YXNlID0NCj4gPiA+ICsgKFVJTlROKShWT0lEICopJlRzc0VudHJ5LT5Uc3M7DQo+ID4gPiArDQo+ ID4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTVfMCAgICAgICAgICAgID0NCj4gPiA+IHNp emVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLSAxOw0KPiA+ID4gKyAgVHNzRW50cnktPlRz c1NlZy5CYXNlMTVfMCAgICAgICAgICAgICA9IChVSU5UMTYpVHNzQmFzZTsNCj4gPiA+ICsgIFRz c0VudHJ5LT5Uc3NTZWcuQmFzZTIzXzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4g MTYpOw0KPiA+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5UeXBlICAgICAgICAgICAgICAgICA9IElB MzJfR0RUX1RZUEVfVFNTOw0KPiA+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5MaW1pdDE5XzE2X2Fu ZF9mbGFncyA9IDA7DQo+ID4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8yNCAgICAgICAg ICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCj4gPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcu QmFzZTYzXzMyICAgICAgICAgICAgPSAoVUlOVDMyKShUc3NCYXNlID4+IDMyKTsNCj4gPiA+ICsg IFRzc0VudHJ5LT5Uc3NTZWcuUmVzZXJ2ZWQgICAgICAgICAgICAgPSAwOw0KPiA+ID4gKw0KPiA+ ID4gKyAgLy8NCj4gPiA+ICsgIC8vIEVuYWJsZSBJbnRlcnJ1cHQgU3RhY2sgVGFibGUgKElTVCkg Zm9yIGVhY2ggcmVxdWlyZWQgZXhjZXB0aW9uDQo+ID4gPiArIC8vICBTdGFja1RvcCAgPSBTdGFj a0Jhc2UgKyBTdGFja1NpemUgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOw0KPiA+ID4gKyBTdGFja1Rv cCAgPSAoVUlOVE4pQUxJR05fUE9JTlRFUiAoU3RhY2tUb3AsIENQVV9TVEFDS19BTElHTk1FTlQp Ow0KPiA+ID4gKyBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBBUlJBWV9TSVpFIChtRXhjZXB0aW9u c1dpdGhTdGFjayk7ICsrSW5kZXgpIHsNCj4gPiA+ICsgICAgLy8NCj4gPiA+ICsgICAgLy8gRml4 dXAgVFNTDQo+ID4gPiArICAgIC8vDQo+ID4gPiArICAgIFRzc0VudHJ5LT5Uc3MuSVNUW0luZGV4 XSA9IFN0YWNrVG9wOw0KPiA+ID4gKyAgICBTdGFja1RvcCAtPSBFWENFUFRJT05fU1RBQ0tfU0la RTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgLy8NCj4gPiA+ICsgICAgLy8gU2V0IHRoZSBJU1QgZmll bGQgdG8gMSB0byBlbmFibGUgY29ycmVzcG9uZGluZyBJU1QNCj4gPiA+ICsgICAgLy8NCj4gPiA+ ICsgICAgSWR0VGFibGVbbUV4Y2VwdGlvbnNXaXRoU3RhY2tbSW5kZXhdXS5CaXRzLlJlc2VydmVk XzAgPQ0KPiA+ID4gKyAoVUlOVDgpKEluZGV4ICsNCj4gPiA+IDEpOw0KPiA+ID4gKyAgfQ0KPiA+ ID4gKw0KPiA+ID4gKyAgLy8NCj4gPiA+ICsgIC8vIFB1Ymxpc2ggdGhlIGNoYW5nZXMNCj4gPiA+ ICsgIC8vDQo+ID4gPiArICBBc21Xcml0ZUdkdHIoJkdkdERlc2MpOw0KPiA+ID4gKw0KPiA+ID4g KyAgLy8NCj4gPiA+ICsgIC8vIExvYWQgdGFzayByZWdpc3Rlcg0KPiA+ID4gKyAgLy8NCj4gPiA+ ICsgIEFzbVdyaXRlVHIgKChVSU5UMTYpKE9sZEdkdFNpemUgKyBUU1NfU0VMKSk7IH0NCj4gPiA+ ICsNCj4gPiA+ICAvKioNCj4gPiA+ICAgIERpc3BsYXkgQ1BVIGluZm9ybWF0aW9uLg0KPiA+ID4N Cj4gPiA+IGRpZmYgLS1naXQNCj4gPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiA+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4g PiA+IGluZGV4IDkwNjQ4MDEzNGEuLjVhOTEzYmFlN2IgMTAwNjQ0DQo+ID4gPiAtLS0NCj4gPiA+ IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRl cnJ1cHREZWZzLmgNCj4gPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy4NCj4gPiA+ICsrKyBoDQo+ID4gPiBAQCAt NDMsNCArNDMsNDQgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gICAgVUlOVDggICAgICAgSG9v a0FmdGVyU3R1YkhlYWRlckNvZGVbSE9PS0FGVEVSX1NUVUJfU0laRV07DQo+ID4gPiAgfSBSRVNF UlZFRF9WRUNUT1JTX0RBVEE7DQo+ID4gPg0KPiA+ID4gKyNwcmFnbWEgcGFjayAoMSkNCj4gPiA+ ICsNCj4gPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgNw0KPiA+ID4gKyNk ZWZpbmUgRVhDRVBUSU9OX1NUQUNLX1NJWkUgICAgICBFRklfUEFHRV9TSVpFDQo+ID4gPiArI2Rl ZmluZSBJQTMyX0dEVF9UWVBFX1RTUyAgICAgICAgIDB4ODkNCj4gPiA+ICsjZGVmaW5lIElBMzJf R0RUX0FMSUdOTUVOVCAgICAgICAgOA0KPiA+ID4gKw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsN Cj4gPiA+ICsgIFVJTlQzMiAgICBSZXNlcnZlZF8wOw0KPiA+ID4gKyAgVUlOVDY0ICAgIFJTUDA7 DQo+ID4gPiArICBVSU5UNjQgICAgUlNQMTsNCj4gPiA+ICsgIFVJTlQ2NCAgICBSU1AyOw0KPiA+ ID4gKyAgVUlOVDY0ICAgIFJlc2VydmVkXzI4Ow0KPiA+ID4gKyAgVUlOVDY0ICAgIElTVFs3XTsN Cj4gPiA+ICsgIFVJTlQ2NCAgICBSZXNlcnZlZF85MjsNCj4gPiA+ICsgIFVJTlQxNiAgICBSZXNl cnZlZF8xMDA7DQo+ID4gPiArICBVSU5UMTYgICAgSU9NYXBCYXNlQWRkcmVzczsNCj4gPiA+ICt9 IElBMzJfVEFTS19TVEFURV9TRUdNRU5UOw0KPiA+ID4gKw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0 IHsNCj4gPiA+ICsgIFVJTlQxNiAgICBMaW1pdDE1XzA7DQo+ID4gPiArICBVSU5UMTYgICAgQmFz ZTE1XzA7DQo+ID4gPiArICBVSU5UOCAgICAgQmFzZTIzXzE2Ow0KPiA+ID4gKyAgVUlOVDggICAg IFR5cGU7DQo+ID4gPiArICBVSU5UOCAgICAgTGltaXQxOV8xNl9hbmRfZmxhZ3M7DQo+ID4gPiAr ICBVSU5UOCAgICAgQmFzZTMxXzI0Ow0KPiA+ID4gKyAgVUlOVDMyICAgIEJhc2U2M18zMjsNCj4g PiA+ICsgIFVJTlQzMiAgICBSZXNlcnZlZDsNCj4gPiA+ICt9IElBMzJfVFNTX0RFU0NSSVBUT1I7 DQo+ID4gPiArDQo+ID4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gKyAgSUEzMl9UU1NfREVT Q1JJUFRPUiAgICAgICAgICAgVHNzU2VnOw0KPiA+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01F TlQgICAgICAgVHNzOw0KPiA+ID4gK30gVFNTX0VOVFJJRVM7DQo+ID4gPiArDQo+ID4gPiArI3By YWdtYSBwYWNrICgpDQo+ID4gPiArDQo+ID4gPiArI2RlZmluZSBUU1NfU0VMICAgICAgICAgICBP RkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3NTZWcpDQo+ID4gPiArI2RlZmluZSBUU1NfT0ZGU0VU ICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3MpDQo+ID4gPiArDQo+ID4gPiAgI2Vu ZGlmDQo+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiA+IGIvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJB c20uUw0KPiA+ID4gaW5kZXggZWRkMzYzY2RhYS4uYmRhZjEzMmNmNSAxMDA2NDQNCj4gPiA+IC0t LQ0KPiA+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv RXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gPiArKysNCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ ID4gQEAgLTQyOSw2ICs0MjksMTggQEAgQVNNX1BGWChBc21WZWN0b3JOdW1GaXh1cCk6DQo+ID4g PiAgICAgIHBvcHEgICAgICAlcmJwDQo+ID4gPiAgICAgIHJldA0KPiA+ID4NCj4gPiA+ICsjLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiA+ICstLS0tLS0tLS0tDQo+ID4gPiArIyBWT0lEDQo+ID4gPiArIyBBc21X cml0ZVRyICgNCj4gPiA+ICsjICAgVUlOVDE2IFNlbGVjdG9yDQo+ID4gPiArIyAgICk7DQo+ID4g PiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gPiArLS0tLS0tLS0tLQ0KPiA+ID4gK0FTTV9HTE9CQUwgQVNN X1BGWChBc21Xcml0ZVRyKQ0KPiA+ID4gK0FTTV9QRlgoQXNtV3JpdGVUcik6DQo+ID4gPiArICAg IG1vdmwgICAgJWVjeCwgJWVheA0KPiA+ID4gKyAgICBsdHJ3ICAgICVheA0KPiA+ID4gKyAgICBy ZXQNCj4gPiA+ICsNCj4gPiA+ICAjRU5EDQo+ID4gPg0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQN Cj4gPiA+DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0 L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMNCj4gPiA+IG0NCj4gPiA+DQo+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMN Cj4gPiA+IG0NCj4gPiA+IGluZGV4IDcyNmM2NGExNDAuLmFlYzU2ZWY0YmYgMTAwNjQ0DQo+ID4g PiAtLS0NCj4gPiA+DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMNCj4gPiA+IG0NCj4gPiA+ICsrKw0KPiA+ID4N Cj4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9F eGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ID4gQEAgLTM4Niw0ICszODYsMTYgQEAgQXNtVmVj dG9yTnVtRml4dXAgICBQUk9DDQo+ID4gPiAgICAgIHJldA0KPiA+ID4gIEFzbVZlY3Rvck51bUZp eHVwICAgRU5EUA0KPiA+ID4NCj4gPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICstLS0tLS0tLS0t DQo+ID4gPiArOyBWT0lEDQo+ID4gPiArOyBBc21Xcml0ZVRyICgNCj4gPiA+ICs7ICAgVUlOVDE2 IFNlbGVjdG9yDQo+ID4gPiArOyAgICk7DQo+ID4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiArLS0t LS0tLS0tLQ0KPiA+ID4gK0FzbVdyaXRlVHIgUFJPQyBQVUJMSUMNCj4gPiA+ICsgICAgbW92ICAg ICBlYXgsIGVjeA0KPiA+ID4gKyAgICBsdHIgICAgIGF4DQo+ID4gPiArICAgIHJldA0KPiA+ID4g K0FzbVdyaXRlVHIgRU5EUA0KPiA+ID4gKw0KPiA+ID4gIEVORA0KPiA+ID4gZGlmZiAtLWdpdA0K PiA+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv RXhjZXB0aW9uSGFuZGxlckFzbS5uYQ0KPiA+ID4gc20NCj4gPiA+DQo+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmEN Cj4gPiA+IHNtDQo+ID4gPiBpbmRleCBiYTg5OTNkODRiLi4xZTJhYzQxMWIwIDEwMDY0NA0KPiA+ ID4gLS0tDQo+ID4gPg0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gPiBzbQ0KPiA+ID4gKysrDQo+ID4g Pg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNl cHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gPiBzbSBAQCAtMzg1LDMgKzM4NSwxNSBAQCBBU01fUEZY KEFzbVZlY3Rvck51bUZpeHVwKToNCj4gPiA+ICAgICAgbW92ICAgICBbcmN4ICsgKEBWZWN0b3JO dW0gLSBIb29rQWZ0ZXJTdHViSGVhZGVyQmVnaW4pXSwgYWwNCj4gPiA+ICAgICAgcmV0DQo+ID4g Pg0KPiA+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gKy0tLS0tLS0tLS0NCj4gPiA+ICs7IFZPSUQN Cj4gPiA+ICs7IEFzbVdyaXRlVHIgKA0KPiA+ID4gKzsgICBVSU5UMTYgU2VsZWN0b3INCj4gPiA+ ICs7ICAgKTsNCj4gPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICstLS0tLS0tLS0tDQo+ID4gPiAr Z2xvYmFsIEFTTV9QRlgoQXNtV3JpdGVUcikNCj4gPiA+ICtBU01fUEZYKEFzbVdyaXRlVHIpOg0K PiA+ID4gKyAgICBtb3YgICAgIGVheCwgZWN4DQo+ID4gPiArICAgIGx0ciAgICAgYXgNCj4gPiA+ ICsgICAgcmV0DQo+ID4gPiArDQo+ID4gPiAtLQ0KPiA+ID4gMi4xNC4xLndpbmRvd3MuMQ0KPiA+ DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ ID4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+ID4N Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4g PiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg==