From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by mx.groups.io with SMTP id smtpd.web10.29570.1684510283911893999 for ; Fri, 19 May 2023 08:31:24 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@bsdio.com header.s=fm2 header.b=K2YEu9Lp; spf=pass (domain: bsdio.com, ip: 66.111.4.26, mailfrom: rebecca@bsdio.com) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 315715C005E; Fri, 19 May 2023 11:31:21 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Fri, 19 May 2023 11:31:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdio.com; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1684510281; x=1684596681; bh=KgFF8A55NlocNuAF0o3HPnOun5iqN674p98 oxN5sQPk=; b=K2YEu9LpN4ipVfPRHZb0SRYimowXD612eYi2OXTZX76aRMzR05Z 9kh9xdeWylwTOrqBxeZ2oSTDPikAVci2q2c6RjgvPvhOR3T9YqoCnsxQ2U1V3uT/ fXBMn74TSITXhQZo/oRU5OUyjF7oEzfXVTn0o2ES0L5AIXjnHfSkGU31mTX4Z0Kz WdqOBA51B/ThEKPd+Ld358EQYHz9WpPI24AWiHJLj6PWcIZpQE+wyzwnI+DpSbkc 85PeJTzn6efzoRIIyfPKpvGeeC6g8NkKqNwCo/oTdBPA9mZ+e4K/r7jGkYV4OF+Z 6WiCnx5UcGU95I7N15rfOEt4XpzJXakWwpA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1684510281; x= 1684596681; bh=KgFF8A55NlocNuAF0o3HPnOun5iqN674p98oxN5sQPk=; b=k WrXQ5S6mxExr55bmzqv40iHRQYLEaBxS8+WzRxXqN9PbeSDbFSGU21qXf11YEAOE 0gJJ49emAXnOarYf7IVrRoq109oLA9iTrqDycl0lAptqqrUVo0e6xp6288trxDcI w6QP6irKqQeMY9kc8dHFsV0pnd/I+uyHL5CAXTz2oLvm63p8Ip8V96xV9wQff+bi tSTvJgfpfqG3s8w0/aEdOZ1eYBlW4pL+3fYrig5UTLhntBHDFNwIlDJ6385O3M4O qymaeM7F9+d0zmBG7g9Y+WqRliwmr8wUIEz7NdFJqjnEHQrjVGEXAdgLqA1YB8Xf bkqdplSwEDZd3w52QZBWQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeeihedgledtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthgsredttdefjeenucfhrhhomheptfgvsggv tggtrgcuvehrrghnuceorhgvsggvtggtrgessghsughiohdrtghomheqnecuggftrfgrth htvghrnhepvdefvdejvdfhuefgudegleffvedugeffgfevkedvveekudffgeevheejgfdu iedvnecuffhomhgrihhnpehgohgusgholhhtrdhorhhgpdhgrhhouhhpshdrihhonecuve hluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprhgvsggvtggt rgessghsughiohdrtghomh X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 19 May 2023 11:31:19 -0400 (EDT) Message-ID: <24bf3d19-a292-11df-c84b-5d941cf2e19d@bsdio.com> Date: Fri, 19 May 2023 09:31:18 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [edk2-devel] CpuDeadLoop() is optimized by compiler To: "Ni, Ray" , "Andrew (EFI) Fish" , "devel@edk2.groups.io" , "Kinney, Michael D" References: <7C9FD4BA-328C-4CFE-AF5A-3A795BB147E4@apple.com> <0EECE39F-0B65-4BFE-8668-CB59448C578D@apple.com> <17605136DCF3E084.26337@groups.io> <69A704CE-16A4-4C8D-9A32-9BBD22C00475@apple.com> From: "Rebecca Cran" In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SnVzdCB0byBhZGQgbW9yZSBkYXRhLCBJIGFsc28gdHJpZWQgd2l0aCAidm9sYXRpbGUgc2lnX2F0 b21pY190IiBhcyANCnNvbWVvbmUgc3VnZ2VzdGVkIGFuZCBib3RoICIvdm9sYXRpbGU6aXNvIiBh bmQgIi92b2xhdGlsZTptcyIgd2l0aCBubyANCmNoYW5nZSBpbiByZXN1bHRzLg0KDQoNCi0tIA0K DQpSZWJlY2NhIENyYW4NCg0KDQpPbiA1LzE4LzIzIDIwOjUzLCBOaSwgUmF5IHdyb3RlOg0KPg0K PiBJIHRoaW5rIGFsbCB0aGUgb3B0aW9ucyB3ZSBjb25zaWRlcmVkIGFyZSB3b3JrYXJvdW5kcy4g VGhlc2UgbWlnaHQgDQo+IGJyZWFrIGFnYWluIGlmIGNvbXBpbGVyIGlzIOKAnGNsZXZlcmVy4oCd IGluIGZ1dHVyZS4gVW5sZXNzIHNvbWUgQ3h4IHNwZWMgDQo+IGNsZWFybHkgZ3VhcmFudGVlcyB0 aGF0Lg0KPg0KPiBJIGxpa2UgTWlrZeKAmXMgaWRlYSB0byB1c2UgYXNzZW1ibHkgaW1wbGVtZW50 YXRpb24gZm9yIENwdURlYWRMb29wLiBUaGUgDQo+IGFzc2VtYmx5IGNhbiBzaW1wbHkg4oCcam1w ICTigJ0gdGhlbiDigJxyZXTigJ0uDQo+DQo+IEkgZGlkbuKAmXQgZmluZCBhIGRlYWQtbG9vcCBp bnRyaW5zaWMgZnVuY3Rpb24gaW4gTVNWQy4NCj4NCj4gQW55IGJldHRlciBpZGVhPw0KPg0KPiBU aGFua3MsDQo+DQo+IFJheQ0KPg0KPiAqRnJvbToqIEFuZHJldyAoRUZJKSBGaXNoIDxhZmlzaEBh cHBsZS5jb20+DQo+ICpTZW50OiogRnJpZGF5LCBNYXkgMTksIDIwMjMgODo0MiBBTQ0KPiAqVG86 KiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPg0KPiAqQ2M6KiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgUmViZWNj YSBDcmFuIDxyZWJlY2NhQGJzZGlvLmNvbT4NCj4gKlN1YmplY3Q6KiBSZTogW2VkazItZGV2ZWxd IENwdURlYWRMb29wKCkgaXMgb3B0aW1pemVkIGJ5IGNvbXBpbGVyDQo+DQo+IE1pa2UsDQo+DQo+ IFNvcnJ5IHN0YXRpYyB3YXMganVzdCB0byBzY29wZSB0aGUgbmFtZSB0byB0aGUgZmlsZSBzaW5j ZSBpdCBpcyBhIGxpYiwgDQo+IG5vdCB0byBtYWtlIGl0IHdvcmsuDQo+DQo+IFRoYXQgaXMgYSBj b29sIHNpdGUuIEkgbGVhcm5lZCBhYm91dCBpdCBjb21wbGFpbmluZyBhYm91dCBzdHVmZiB0byB0 aGUgDQo+IGNvbXBpbGVyIHRlYW0gb24gb3VyIGludGVybmFsIGNsYW5nIFNsYWNrIGNoYW5uZWwg YXMgdGhleSB1c2UgaXQgdG8gDQo+IGFuc3dlciBteSBxdWVzdGlvbnMuDQo+DQo+IFRoYW5rcywN Cj4NCj4gQW5kcmV3IEZpc2gNCj4NCj4NCj4NCj4gICAgIE9uIE1heSAxOCwgMjAyMywgYXQgMjo0 MiBQTSwgTWljaGFlbCBEIEtpbm5leQ0KPiAgICAgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PiB3cm90ZToNCj4NCj4gICAgIFVzaW5nIHRoYXQgdG9vbCwgdGhlIGZvbGxvd2luZyBmcmFnbWVu dCBzZWVtcyB0byBnZW5lcmF0ZSB0aGUNCj4gICAgIHJpZ2h0IGNvZGUuIFZvbGF0aWxlIGlzIHJl cXVpcmVkLsKgIFN0YXRpYyBpcyBvcHRpb25hbC4NCj4NCj4gICAgIHN0YXRpY3ZvbGF0aWxlaW50 wqBtRGVhZExvb3BDb3VudCA9MDsNCj4NCj4gICAgIHZvaWQNCj4NCj4gICAgIENwdURlYWRMb29w KA0KPg0KPiAgICAgdm9pZA0KPg0KPiAgICAgwqAgKQ0KPg0KPiAgICAgew0KPg0KPiAgICAgd2hp bGUobURlYWRMb29wQ291bnQgPT0wKTsNCj4NCj4gICAgIH0NCj4NCj4gICAgIEdDQw0KPg0KPiAg ICAgPT09DQo+DQo+ICAgICBDcHVEZWFkTG9vcCgpOg0KPg0KPiAgICAgLkwyOg0KPg0KPiAgICAg bW92ZWF4LERXT1JEUFRSbURlYWRMb29wQ291bnRbcmlwXQ0KPg0KPiAgICAgdGVzdGVheCxlYXgN Cj4NCj4gICAgIGplLkwyDQo+DQo+ICAgICByZXQNCj4NCj4gICAgIENMQU5HDQo+DQo+ICAgICA9 PT09PQ0KPg0KPiAgICAgQ3B1RGVhZExvb3AoKTojIEBDcHVEZWFkTG9vcCgpDQo+DQo+ICAgICAu TEJCMF8xOiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCMgPT5UaGlzIElu bmVyIExvb3AgSGVhZGVyOkRlcHRoPTENCj4NCj4gICAgIGNtcGR3b3JkcHRyW3JpcCtfWkwxNG1E ZWFkTG9vcENvdW50XSwwDQo+DQo+ICAgICBqZS5MQkIwXzENCj4NCj4gICAgIHJldA0KPg0KPiAg ICAgTWlrZQ0KPg0KPiAgICAgKkZyb206KkFuZHJldyAoRUZJKSBGaXNoIDxhZmlzaEBhcHBsZS5j b20+DQo+ICAgICAqU2VudDoqVGh1cnNkYXksIE1heSAxOCwgMjAyMyAxOjQ1IFBNDQo+ICAgICAq VG86KmVkazItZGV2ZWwtZ3JvdXBzLWlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz47IEFuZHJldyBG aXNoDQo+ICAgICA8YWZpc2hAYXBwbGUuY29tPg0KPiAgICAgKkNjOipLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBOaSwgUmF5DQo+ICAgICA8cmF5Lm5pQGlu dGVsLmNvbT47IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBic2Rpby5jb20+DQo+ICAgICAqU3ViamVj dDoqUmU6IFtlZGsyLWRldmVsXSBDcHVEZWFkTG9vcCgpIGlzIG9wdGltaXplZCBieSBjb21waWxl cg0KPg0KPiAgICAgV2hvb3BzIHdyb25nIGNvbXBpbGVyLiBIZXJlIGlzIGFuIHVwZGF0ZS4gSSBh ZGRlZCB0aGUgZmxhZ3Mgc28NCj4gICAgIHRoaXMgb25lIHJlcHJvZHVjZXMgdGhlIGlzc3VlLg0K Pg0KPiAgICAgQ29tcGlsZXIgRXhwbG9yZXINCj4gICAgIDxodHRwczovL2dvZGJvbHQub3JnLyN6 Ok9ZTGdoQUZCcWQ1UUN4QVl3UFlCTUNtQlJkQkxBRjFRQ2NBYVBFQ0FNendCdE1BN0FRd0Z0TVFC eUFSZzlLdFFZRUF5c2liMFFYQUN4OEJCQUtvQm5UQUFVQUhwd0FNdkFGWVRTdEpnMURJQXBBQ1lB UXVZdWtsOVpBVHdES2pkQUdGVXRBSzRzR0lNNlN1QURKNERKZ0FjajRBUnBqRUlOSUFEcWdLaEU0 TUh0NiUyQi9xUkpLWTRDSVdHUkxERngwbmFZRG1sQ0JFekVCQmslMkJmZ0VWVlFJMWRRU0ZFZEd4 OGJhMTlZMVpMWU5kb1QwbGZaSUFsTGFvWHNUSTdCd0E5S3NBMUFBcUFKNEptQnM3QzhRYmFGZ2JD TEdZcEJza0c3U29UT2diaGh1WXFxd0o5QUIwSmhvQWdxRUNCc0ZBQkhMeDFUQVFJRWJCZyUyQkdZ YkV3QWRpc0FJMjZJMnhFd0JFV0RGaFBnMkFDcDhTd1RBQm1WSC9aRUFFUTRjMW9uQUFyTHcvQnd0 S1JVSnczTlpyQ0Rqc3RFV1l5VHhTQVJOSFM1Z0JyRUNNalQ2VGlTRm5pam1jWGdLRUJ5c1ZzdW1r T0N3SkJvRmdKT2l4Y2lVUTNHJTJCaHhZQmNNeGNQaDBBaXhkVVFLTEtxS2hPbzdUZ2l3MXNRUUFl UVl0RzkydElXQllobUE0akQlMkJDeFZRQWJwaDFXSDNwVXZFNmZid2daZ0dXSGFIZ29zUXZSNHNN cUNNUThDd3MzTXFBWmdBb0FHcDRUQUFkd0QlMkIxWkl2NGdoRVluWVVoa2drVUtuVVlkMDlvTVJo UVBNcyUyQmtMNnNnYzFRQ1h5REJUQUZvQTJTTmh2STBzRU9UcVFwSlRzREpMTUdyYzVVMXk0R081 UEUwOU1FSnNWU25wY3FrQk1NL1BiUDJ2dWpmUHA3VmFOY09pR1I4c2hBNjgyZ1ljRHhpS1hvNGhB c1lmejBCUXhrQXBDSkRtQlIlMkJRSFVVc1JXSGg2U1pKVXcwNURoVkFBRGdBTmczV2pKQTJZQmtH UURaYlclMkJMZ05nZ2JsTEdzRzVjRUlPNXpHRkc0UENORTBUaEVyZ1psNExVdERtQ0FEVlFDU3JU TkNBTFVrbEFweHRTUU5EbEdoYUNkWWdYVGRNTVBXWVloUTE5RlQvUUlJTVEyVkNNb3hqZGs0eHZQ QWt4VGRrMDJRRE5pT3pRUmMyVkFzaXhMREFWblpDc3F4clBoNnliRnQyMDdMTWgyRVVSeEVISHQ1 Q1VOUmxWMEFJZEpuUGk1MUN4Y0lHWFZjMGszYmRkMzNaQkR6Slk5VDNQUzliQmcyOElGY05EN1Jm UkNwbVFuSmtpL2RKSU4vUWE4alNMRCUyQnZROXJxbFEwYVp2c01ETU5mYkNVTTZicUJrNktiM3hr JTJCWkZtV1BRSzB3QUxTSTRabFNGWmRsS0pvJTJCakdOT0hUMk1rYjROQmU3amVLc09jTmtFb2dw S0ZlME5uRXkxWWtGTWt6RmswVnhVVXBCOENvS2gxS3l2c011a0xLUjF5L01FSFZTZE1kaHFnQ0Qy ZGc1V0lUSHNtSmhSY2Z4L1lOVE9pNnJ0NFNqcVR3T0dObWJOc1FkdWhpbUpZdGlPSzRoTUZBMkRu N3VRUjZwQmVsNjVLaHFVWlRsUE5GVXU1VktMVmJKNUlsZVVPRE1janJ0VlNIdFJtT1lreE10SjRp QUE+DQo+DQo+ICAgICBnb2Rib2x0Lm9yZw0KPiAgICAgPGh0dHBzOi8vZ29kYm9sdC5vcmcvI3o6 T1lMZ2hBRkJxZDVRQ3hBWXdQWUJNQ21CUmRCTEFGMVFDY0FhUEVDQU16d0J0TUE3QVF3RnRNUUJ5 QVJnOUt0UVlFQXlzaWIwUVhBQ3g4QkJBS29CblRBQVVBSHB3QU12QUZZVFN0SmcxRElBcEFDWUFR dVl1a2w5WkFUd0RLamRBR0ZVdEFLNHNHSU02U3VBREo0REpnQWNqNEFScGpFSU5JQURxZ0toRTRN SHQ2JTJCL3FSSktZNENJV0dSTERGeDBuYVlEbWxDQkV6RUJCayUyQmZnRVZWUUkxZFFTRkVkR3g4 YmExOVkxWkxZTmRvVDBsZlpJQWxMYW9Yc1RJN0J3QTlLc0ExQUFxQUo0Sm1CczdDOFFiYUZnYkNM R1lwQnNrRzdTb1RPZ2JoaHVZcXF3SjlBQjBKaG9BZ3FFQ0JzRkFCSEx4MVRBUUlFYkJnJTJCR1li RXdBZGlzQUkyNkkyeEV3QkVXREZoUGcyQUNwOFN3VEFCbVZIL1pFQUVRNGMxb25BQXJMdy9Cd3RL UlVKdzNOWnJDRGpzdEVXWXlUeFNBUk5IUzVnQnJFQ01qVDZUaVNGbmlqbWNYZ0tFQnlzVnN1bWtP Q3dKQm9GZ0pPaXhjaVVRM0clMkJoeFlCY014Y1BoMEFpeGRVUUtMS3FLaE9vN1RnaXcxc1FRQWVR WXRHOTJ0SVdCWWhtQTRqRCUyQkN4VlFBYnBoMVdIM3BVdkU2ZmJ3Z1pnR1dIYUhnb3NRdlI0c01x Q01ROEN3czNNcUFaZ0FvQUdwNFRBQWR3RCUyQjFaSXY0Z2hFWW5ZVWhrZ2tVS25VWWQwOW9NUmhR UE1zJTJCa0w2c2djMVFDWHlEQlRBRm9BMlNOaHZJMHNFT1RxUXBKVHNESkxNR3JjNVUxeTRHTzVQ RTA5TUVKc1ZTbnBjcWtCTU0vUGJQMnZ1amZQcDdWYU5jT2lHUjhzaEE2ODJnWWNEeGlLWG80aEFz WWZ6MEJReGtBcENKRG1CUiUyQlFIVVVzUldIaDZTWkpVdzA1RGhWQUFEZ0FOZzNXakpBMllCa0dR RFpiVyUyQkxnTmdnYmxMR3NHNWNFSU81ekdGRzRQQ05FMFRoRXJnWmw0TFV0RG1DQURWUUNTclRO Q0FMVWtsQXB4dFNRTkRsR2hhQ2RZZ1hUZE1NUFdZWWhRMTlGVC9RSUlNUTJWQ01veGpkazR4dlBB a3hUZGswMlFETmlPelFSYzJWQXNpeExEQVZuWkNzcXhyUGg2eWJGdDIwN0xNaDJFVVJ4RUhIdDVD VU5SbFYwQUlkSm5QaTUxQ3hjSUdYVmMwazNiZGQzM1pCRHpKWTlUM1BTOWJCZzI4SUZjTkQ3UmZS Q3BtUW5Ka2kvZEpJTi9RYThqU0xEJTJCdlE5cnFsUTBhWnZzTURNTmZiQ1VNNmJxQms2S2IzeGsl MkJaRm1XUFFLMHdBTFNJNFpsU0ZaZGxLSm8lMkJqR05PSFQyTWtiNE5CZTdqZUtzT2NOa0VvZ3BL RmUwTm5FeTFZa0ZNa3pGazBWeFVVcEI4Q29LaDFLeXZzTXVrTEtSMXkvTUVIVlNkTWRocWdDRDJk ZzVXSVRIc21KaFJjZngvWU5UT2k2cnQ0U2pxVHdPR05tYk5zUWR1aGltSll0aU9LNGhNRkEyRG43 dVFSNnBCZWw2NUtocVVaVGxQTkZVdTVWS0xWYko1SWxlVU9ETWNqcnRWU0h0Um1PWWt4TXRKNGlB QT4NCj4NCj4gICAgIAkNCj4NCj4gICAgIDxpbWFnZTAwMS5wbmc+DQo+ICAgICA8aHR0cHM6Ly9n b2Rib2x0Lm9yZy8jejpPWUxnaEFGQnFkNVFDeEFZd1BZQk1DbUJSZEJMQUYxUUNjQWFQRUNBTXp3 QnRNQTdBUXdGdE1RQnlBUmc5S3RRWUVBeXNpYjBRWEFDeDhCQkFLb0JuVEFBVUFIcHdBTXZBRllU U3RKZzFESUFwQUNZQVF1WXVrbDlaQVR3REtqZEFHRlV0QUs0c0dJTTZTdUFESjRESmdBY2o0QVJw akVJTklBRHFnS2hFNE1IdDYlMkIvcVJKS1k0Q0lXR1JMREZ4MG5hWURtbENCRXpFQkJrJTJCZmdF VlZRSTFkUVNGRWRHeDhiYTE5WTFaTFlOZG9UMGxmWklBbExhb1hzVEk3QndBOUtzQTFBQXFBSjRK bUJzN0M4UWJhRmdiQ0xHWXBCc2tHN1NvVE9nYmhodVlxcXdKOUFCMEpob0FncUVDQnNGQUJITHgx VEFRSUViQmclMkJHWWJFd0FkaXNBSTI2STJ4RXdCRVdERmhQZzJBQ3A4U3dUQUJtVkgvWkVBRVE0 YzFvbkFBckx3L0J3dEtSVUp3M05ackNEanN0RVdZeVR4U0FSTkhTNWdCckVDTWpUNlRpU0ZuaWpt Y1hnS0VCeXNWc3Vta09Dd0pCb0ZnSk9peGNpVVEzRyUyQmh4WUJjTXhjUGgwQWl4ZFVRS0xLcUto T283VGdpdzFzUVFBZVFZdEc5MnRJV0JZaG1BNGpEJTJCQ3hWUUFicGgxV0gzcFV2RTZmYndnWmdH V0hhSGdvc1F2UjRzTXFDTVE4Q3dzM01xQVpnQW9BR3A0VEFBZHdEJTJCMVpJdjRnaEVZbllVaGtn a1VLblVZZDA5b01SaFFQTXMlMkJrTDZzZ2MxUUNYeURCVEFGb0EyU05odkkwc0VPVHFRcEpUc0RK TE1HcmM1VTF5NEdPNVBFMDlNRUpzVlNucGNxa0JNTS9QYlAydnVqZlBwN1ZhTmNPaUdSOHNoQTY4 MmdZY0R4aUtYbzRoQXNZZnowQlF4a0FwQ0pEbUJSJTJCUUhVVXNSV0hoNlNaSlV3MDVEaFZBQURn QU5nM1dqSkEyWUJrR1FEWmJXJTJCTGdOZ2dibExHc0c1Y0VJTzV6R0ZHNFBDTkUwVGhFcmdabDRM VXREbUNBRFZRQ1NyVE5DQUxVa2xBcHh0U1FORGxHaGFDZFlnWFRkTU1QV1lZaFExOUZUL1FJSU1R MlZDTW94amRrNHh2UEFreFRkazAyUUROaU96UVJjMlZBc2l4TERBVm5aQ3NxeHJQaDZ5YkZ0MjA3 TE1oMkVVUnhFSEh0NUNVTlJsVjBBSWRKblBpNTFDeGNJR1hWYzBrM2JkZDMzWkJEekpZOVQzUFM5 YkJnMjhJRmNORDdSZlJDcG1RbkpraS9kSklOL1FhOGpTTEQlMkJ2UTlycWxRMGFadnNNRE1OZmJD VU02YnFCazZLYjN4ayUyQlpGbVdQUUswd0FMU0k0WmxTRlpkbEtKbyUyQmpHTk9IVDJNa2I0TkJl N2plS3NPY05rRW9ncEtGZTBObkV5MVlrRk1rekZrMFZ4VVVwQjhDb0toMUt5dnNNdWtMS1IxeS9N RUhWU2RNZGhxZ0NEMmRnNVdJVEhzbUpoUmNmeC9ZTlRPaTZydDRTanFUd09HTm1iTnNRZHVoaW1K WXRpT0s0aE1GQTJEbjd1UVI2cEJlbDY1S2hxVVpUbFBORlV1NVZLTFZiSjVJbGVVT0RNY2pydFZT SHRSbU9Za3hNdEo0aUFBPg0KPg0KPiAgICAgVGhhbmtzLA0KPg0KPiAgICAgQW5kcmV3IEZpc2gN Cj4NCj4NCj4NCj4NCj4gICAgICAgICBPbiBNYXkgMTgsIDIwMjMsIGF0IDExOjQ1IEFNLCBBbmRy ZXcgRmlzaCB2aWFncm91cHMuaW8NCj4gICAgICAgICA8aHR0cDovL2dyb3Vwcy5pby8+PGFmaXNo PWFwcGxlLmNvbUBncm91cHMuaW8+IHdyb3RlOg0KPg0KPiAgICAgICAgIE1pa2UsDQo+DQo+ICAg ICAgICAgVGhpcyBpcyBhIGdvb2Qgd2F5IHRvIHBsYXkgYXJvdW5kIHdpdGggZml4ZXMsIGFuZCB0 byByZXBvcnQNCj4gICAgICAgICBidWdzLiBZb3UgY2FuIHNlZSB0aGUgYXNzZW1ibGVyIGZvciBk aWZmZXJlbnQgY29tcGlsZXJzIHdpdGgNCj4gICAgICAgICBkaWZmZXJlbnQgZmxhZy4NCj4NCj4g ICAgICAgICBDb21waWxlciBFeHBsb3Jlcg0KPiAgICAgICAgIDxodHRwczovL2dvZGJvbHQub3Jn LyN6Ok9ZTGdoQUZCcWQ1UUN4QVl3UFlCTUNtQlJkQkxBRjFRQ2NBYVBFQ0FNendCdE1BN0FRd0Z0 TVFCeUFSZzlLdFFZRUF5c2liMFFYQUN4OEJCQUtvQm5UQUFVQUhwd0FNdkFGWVRTdEpnMURJQXBB Q1lBUXVZdWtsOVpBVHdES2pkQUdGVXRBSzRzR0lNNlN1QURKNERKZ0FjajRBUnBqRUlOSUFEcWdL aEU0TUh0NiUyQi9xUkpLWTRDSVdHUkxERngwbmFZRG1sQ0JFekVCQmslMkJmZ0VWVlFJMWRRU0ZF ZEd4OGJhMTlZMVpMWU5kb1QwbGZaSUFsTGFvWHNUSTdCd0E5S3NBMUFBcUFKNEptQnM3QzhRYmFG Z2JDTEdZcEJza0c3U29UT2diaGh1WXFxd0o5QUIwSmhvQWdxRUNCc0ZBQkhMeDFUQVFJRWJCZyUy QkdZYkV3QWRpc0FJMjZJMnhFd0JFV0RGaFBnMkFDcDhTd1RBQm1WSC9aRUFFUTRjMW9uQUFyTHcv Qnd0S1JVSnczTlpyQ0Rqc3RFV1l5VHhTQVJOSFM1Z0JyRUNNalQ2VGlTRm5pam1jWGdLRUJ5c1Zz dW1rT0N3SkJvRmdKT2l4Y2lVUTNHJTJCaHhZQmNNeGNQaDBBaXhkVVFLTEtxS2hPbzdUZ2l3MXNR UUFlUVl0RzkydElXQllobUE0akQlMkJDeFZRQWJwaDFXSDNwVXZFNmZid2daZ0dXSGFIZ29zUXZS NHNNcUNNUThDd3MzTXFBWmdBb0FHcDRUQUFkd0QlMkIxWkl2NGdoRVluWVVoa2drVUtuVVlkMDlv TVJoUVBNcyUyQmtMNnNnYzFRQ1h5REJUQUZvQTJTTmh2STBzRU9UcVFwSlRzREpMTUdyYzVVMXk0 R081UEUwOU1FSnNWU25wY3FrQk1NL1BiUDJ2dWpmUHA3VmFOY09pR1I4c2hBNjgyZ1ljRHhpS1hv NGhBc1lmejBCUXhrQXBDSkRtQlIlMkJRSFVVc1JXSGg2U1pKVXcwNURoVkFBRGdBTmczV2pKQTJZ QmtHUURaYlclMkJMZ05nZ2JsTEdzRzVjRUlPNXpHRkc0UENORTBUaEVyZ1psNExVdERtQ0FEVlFD U3JUTkNBTFVrbEFweHRTUU5EbEdoYUNkWWdYVGRNTVBXWVloUTE5RlQvUUlJTVEyVkNNb3hqZGs0 eHZQQWt4VGRrMDJRRE5pT3pRUmMyVkFzaXhMREFWblpDc3F4clBoNnliRnQyMDdMTWgyRVVSeEVI SHQ1Q1VOUmxWMEFJZEpuUGk1MUN4Y0lHWFZjMGszYmRkMzNaQkR6Slk5VDNQUzliQmcyOElGY05E N1JmUkNwbVFuSmtpL2RKSU4vUWE4alNMRCUyQnZROXJxbFEwYVp2c01ETU5mYkNVTTZicUJrNkti M3hrJTJCWkZtV1BRSzB3QUxTSTRabFNGWmRsS0pvJTJCakdOT0hUMk1rYjROQmU3amVLc09jTmtF b2dwS0ZlME5uRXkxWWtGTWt6RmswVnhVVXBCOENvS2gxS3l2c011a0xLUjF5L01FSFZTZE1kaHFn Q0QyZGc1V0lUSHNtSmhSY2Z4L1lOVE9pNnJ0NFNqcVR3T0dObWJOc1FkdWhpbUpZdGlPSzRoTUZB MkRuN3VRUjZwQmVsNjVLaHFVWlRsUE5GVXU1VktMVmJKNUlsZVVPRE1janJ0VlNIdFJtT1lreE10 SjRpQUE+DQo+DQo+ICAgICAgICAgZ29kYm9sdC5vcmcNCj4gICAgICAgICA8aHR0cHM6Ly9nb2Ri b2x0Lm9yZy8jejpPWUxnaEFGQnFkNVFDeEFZd1BZQk1DbUJSZEJMQUYxUUNjQWFQRUNBTXp3QnRN QTdBUXdGdE1RQnlBUmc5S3RRWUVBeXNpYjBRWEFDeDhCQkFLb0JuVEFBVUFIcHdBTXZBRllUU3RK ZzFESUFwQUNZQVF1WXVrbDlaQVR3REtqZEFHRlV0QUs0c0dJTTZTdUFESjRESmdBY2o0QVJwakVJ TklBRHFnS2hFNE1IdDYlMkIvcVJKS1k0Q0lXR1JMREZ4MG5hWURtbENCRXpFQkJrJTJCZmdFVlZR STFkUVNGRWRHeDhiYTE5WTFaTFlOZG9UMGxmWklBbExhb1hzVEk3QndBOUtzQTFBQXFBSjRKbUJz N0M4UWJhRmdiQ0xHWXBCc2tHN1NvVE9nYmhodVlxcXdKOUFCMEpob0FncUVDQnNGQUJITHgxVEFR SUViQmclMkJHWWJFd0FkaXNBSTI2STJ4RXdCRVdERmhQZzJBQ3A4U3dUQUJtVkgvWkVBRVE0YzFv bkFBckx3L0J3dEtSVUp3M05ackNEanN0RVdZeVR4U0FSTkhTNWdCckVDTWpUNlRpU0ZuaWptY1hn S0VCeXNWc3Vta09Dd0pCb0ZnSk9peGNpVVEzRyUyQmh4WUJjTXhjUGgwQWl4ZFVRS0xLcUtoT283 VGdpdzFzUVFBZVFZdEc5MnRJV0JZaG1BNGpEJTJCQ3hWUUFicGgxV0gzcFV2RTZmYndnWmdHV0hh SGdvc1F2UjRzTXFDTVE4Q3dzM01xQVpnQW9BR3A0VEFBZHdEJTJCMVpJdjRnaEVZbllVaGtna1VL blVZZDA5b01SaFFQTXMlMkJrTDZzZ2MxUUNYeURCVEFGb0EyU05odkkwc0VPVHFRcEpUc0RKTE1H cmM1VTF5NEdPNVBFMDlNRUpzVlNucGNxa0JNTS9QYlAydnVqZlBwN1ZhTmNPaUdSOHNoQTY4MmdZ Y0R4aUtYbzRoQXNZZnowQlF4a0FwQ0pEbUJSJTJCUUhVVXNSV0hoNlNaSlV3MDVEaFZBQURnQU5n M1dqSkEyWUJrR1FEWmJXJTJCTGdOZ2dibExHc0c1Y0VJTzV6R0ZHNFBDTkUwVGhFcmdabDRMVXRE bUNBRFZRQ1NyVE5DQUxVa2xBcHh0U1FORGxHaGFDZFlnWFRkTU1QV1lZaFExOUZUL1FJSU1RMlZD TW94amRrNHh2UEFreFRkazAyUUROaU96UVJjMlZBc2l4TERBVm5aQ3NxeHJQaDZ5YkZ0MjA3TE1o MkVVUnhFSEh0NUNVTlJsVjBBSWRKblBpNTFDeGNJR1hWYzBrM2JkZDMzWkJEekpZOVQzUFM5YkJn MjhJRmNORDdSZlJDcG1RbkpraS9kSklOL1FhOGpTTEQlMkJ2UTlycWxRMGFadnNNRE1OZmJDVU02 YnFCazZLYjN4ayUyQlpGbVdQUUswd0FMU0k0WmxTRlpkbEtKbyUyQmpHTk9IVDJNa2I0TkJlN2pl S3NPY05rRW9ncEtGZTBObkV5MVlrRk1rekZrMFZ4VVVwQjhDb0toMUt5dnNNdWtMS1IxeS9NRUhW U2RNZGhxZ0NEMmRnNVdJVEhzbUpoUmNmeC9ZTlRPaTZydDRTanFUd09HTm1iTnNRZHVoaW1KWXRp T0s0aE1GQTJEbjd1UVI2cEJlbDY1S2hxVVpUbFBORlV1NVZLTFZiSjVJbGVVT0RNY2pydFZTSHRS bU9Za3hNdEo0aUFBPg0KPg0KPiAgICAgICAgIAkNCj4NCj4gICAgICAgICA8ZmF2aWNvbi5wbmc+ DQo+ICAgICAgICAgPGh0dHBzOi8vZ29kYm9sdC5vcmcvI3o6T1lMZ2hBRkJxZDVRQ3hBWXdQWUJN Q21CUmRCTEFGMVFDY0FhUEVDQU16d0J0TUE3QVF3RnRNUUJ5QVJnOUt0UVlFQXlzaWIwUVhBQ3g4 QkJBS29CblRBQVVBSHB3QU12QUZZVFN0SmcxRElBcEFDWUFRdVl1a2w5WkFUd0RLamRBR0ZVdEFL NHNHSU02U3VBREo0REpnQWNqNEFScGpFSU5JQURxZ0toRTRNSHQ2JTJCL3FSSktZNENJV0dSTERG eDBuYVlEbWxDQkV6RUJCayUyQmZnRVZWUUkxZFFTRkVkR3g4YmExOVkxWkxZTmRvVDBsZlpJQWxM YW9Yc1RJN0J3QTlLc0ExQUFxQUo0Sm1CczdDOFFiYUZnYkNMR1lwQnNrRzdTb1RPZ2JoaHVZcXF3 SjlBQjBKaG9BZ3FFQ0JzRkFCSEx4MVRBUUlFYkJnJTJCR1liRXdBZGlzQUkyNkkyeEV3QkVXREZo UGcyQUNwOFN3VEFCbVZIL1pFQUVRNGMxb25BQXJMdy9Cd3RLUlVKdzNOWnJDRGpzdEVXWXlUeFNB Uk5IUzVnQnJFQ01qVDZUaVNGbmlqbWNYZ0tFQnlzVnN1bWtPQ3dKQm9GZ0pPaXhjaVVRM0clMkJo eFlCY014Y1BoMEFpeGRVUUtMS3FLaE9vN1RnaXcxc1FRQWVRWXRHOTJ0SVdCWWhtQTRqRCUyQkN4 VlFBYnBoMVdIM3BVdkU2ZmJ3Z1pnR1dIYUhnb3NRdlI0c01xQ01ROEN3czNNcUFaZ0FvQUdwNFRB QWR3RCUyQjFaSXY0Z2hFWW5ZVWhrZ2tVS25VWWQwOW9NUmhRUE1zJTJCa0w2c2djMVFDWHlEQlRB Rm9BMlNOaHZJMHNFT1RxUXBKVHNESkxNR3JjNVUxeTRHTzVQRTA5TUVKc1ZTbnBjcWtCTU0vUGJQ MnZ1amZQcDdWYU5jT2lHUjhzaEE2ODJnWWNEeGlLWG80aEFzWWZ6MEJReGtBcENKRG1CUiUyQlFI VVVzUldIaDZTWkpVdzA1RGhWQUFEZ0FOZzNXakpBMllCa0dRRFpiVyUyQkxnTmdnYmxMR3NHNWNF SU81ekdGRzRQQ05FMFRoRXJnWmw0TFV0RG1DQURWUUNTclROQ0FMVWtsQXB4dFNRTkRsR2hhQ2RZ Z1hUZE1NUFdZWWhRMTlGVC9RSUlNUTJWQ01veGpkazR4dlBBa3hUZGswMlFETmlPelFSYzJWQXNp eExEQVZuWkNzcXhyUGg2eWJGdDIwN0xNaDJFVVJ4RUhIdDVDVU5SbFYwQUlkSm5QaTUxQ3hjSUdY VmMwazNiZGQzM1pCRHpKWTlUM1BTOWJCZzI4SUZjTkQ3UmZSQ3BtUW5Ka2kvZEpJTi9RYThqU0xE JTJCdlE5cnFsUTBhWnZzTURNTmZiQ1VNNmJxQms2S2IzeGslMkJaRm1XUFFLMHdBTFNJNFpsU0Za ZGxLSm8lMkJqR05PSFQyTWtiNE5CZTdqZUtzT2NOa0VvZ3BLRmUwTm5FeTFZa0ZNa3pGazBWeFVV cEI4Q29LaDFLeXZzTXVrTEtSMXkvTUVIVlNkTWRocWdDRDJkZzVXSVRIc21KaFJjZngvWU5UT2k2 cnQ0U2pxVHdPR05tYk5zUWR1aGltSll0aU9LNGhNRkEyRG43dVFSNnBCZWw2NUtocVVaVGxQTkZV dTVWS0xWYko1SWxlVU9ETWNqcnRWU0h0Um1PWWt4TXRKNGlBQT4NCj4NCj4gICAgICAgICBTb3Jy eSBJ4oCZbSB0cmF2ZWxpbmcgYW5kIGluIEN1cGVydGlubyB3aXRoIGxvdHMgb2YgbWVldGluZ3Mg c28NCj4gICAgICAgICBJIGRpZCBub3QgaGF2ZSB0aW1lIHRvIGFkanVzdCB0aGUgY29tcGlsZXIg ZmxhZ3PigKYuDQo+DQo+ICAgICAgICAgVGhhbmtzLA0KPg0KPiAgICAgICAgIEFuZHJldyBGaXNo DQo+DQo+DQo+DQo+DQo+ICAgICAgICAgICAgIE9uIE1heSAxOCwgMjAyMywgYXQgMTA6MjQgQU0s IEFuZHJldyAoRUZJKSBGaXNoDQo+ICAgICAgICAgICAgIDxhZmlzaEBhcHBsZS5jb20+IHdyb3Rl Og0KPg0KPiAgICAgICAgICAgICBNaWtlLA0KPg0KPiAgICAgICAgICAgICBJIGd1ZXNzIG15IG90 aGVyIHF1ZXN0aW9u4oCmIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIGENCj4gICAgICAgICAgICAg Y29tcGlsZXIgYnVnIHNob3VsZCB3ZSBzY29wZSB0aGUgY2hhbmdlIHRvIHRoZSBicm9rZW4NCj4g ICAgICAgICAgICAgdG9vbGNoYWluLiBJ4oCZbSBub3Qgc3VyZSB3aGF0IHRoZSByaWdodCBhbnN3 ZXIgaXMgZm9yIHRoYXQsDQo+ICAgICAgICAgICAgIGJ1dCBJIHdhbnQgdG8gYXNrIHRoZSBxdWVz dGlvbj8NCj4NCj4gICAgICAgICAgICAgVGhhbmtzLA0KPg0KPiAgICAgICAgICAgICBBbmRyZXcg RmlzaA0KPg0KPg0KPg0KPg0KPiAgICAgICAgICAgICAgICAgT24gTWF5IDE4LCAyMDIzLCBhdCAx MDoxOSBBTSwgTWljaGFlbCBEIEtpbm5leQ0KPiAgICAgICAgICAgICAgICAgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPiB3cm90ZToNCj4NCj4gICAgICAgICAgICAgICAgIEFuZHJldywNCj4N Cj4gICAgICAgICAgICAgICAgIFRoaXMgbWlnaHQgd29yayBmb3IgWElQLsKgIFNldCBub24gY29u c3QgZ2xvYmFsIHRvDQo+ICAgICAgICAgICAgICAgICBpbml0aWFsIHZhbHVlIHRoYXQgaXMgZXhw ZWN0ZWQgdmFsdWUgdG8gc3RheSBpbiBkZWFkIGxvb3AuDQo+DQo+ICAgICAgICAgICAgICAgICBV SU5UTiDCoG1EZWFkTG9vcENvdW50ID0gMDsNCj4NCj4gICAgICAgICAgICAgICAgIFZPSUQNCj4N Cj4gICAgICAgICAgICAgICAgIENwdURlYWRMb29wKA0KPg0KPiAgICAgICAgICAgICAgICAgVk9J RA0KPg0KPiAgICAgICAgICAgICAgICAgKQ0KPg0KPiAgICAgICAgICAgICAgICAgew0KPg0KPiAg ICAgICAgICAgICAgICAgd2hpbGUgKG1EZWFkTG9vcENvdW50ID09IDApIHsNCj4NCj4gICAgICAg ICAgICAgICAgIMKgwqDCoMKgQ3B1UGF1c2UoKTsNCj4NCj4gICAgICAgICAgICAgICAgIH0NCj4N Cj4gICAgICAgICAgICAgICAgIH0NCj4NCj4gICAgICAgICAgICAgICAgIFdoZW4gZGVhZGxvb3Ag aXMgZW50ZXJlZCwgZGV2ZWxvcGVyIGNhbiBub3QgY2hhbmdlDQo+ICAgICAgICAgICAgICAgICB2 YWx1ZSBvZiBtRGVhZExvb3BDb3VudCwgYnV0IHRoZXkgY2FuIHVzZSBkZWJ1Z2dlciB0bw0KPiAg ICAgICAgICAgICAgICAgZm9yY2UgZXhpdCBsb29wIGFuZCByZXR1cm4gZnJvbSBmdW5jdGlvbi4N Cj4NCj4gICAgICAgICAgICAgICAgIE1pa2UNCj4NCj4gICAgICAgICAgICAgICAgICpGcm9tOipB bmRyZXcgKEVGSSkgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0KPiAgICAgICAgICAgICAgICAgKlNl bnQ6KlRodXJzZGF5LCBNYXkgMTgsIDIwMjMgMTA6MDkgQU0NCj4gICAgICAgICAgICAgICAgICpU bzoqS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiAgICAg ICAgICAgICAgICAgKkNjOiplZGsyLWRldmVsLWdyb3Vwcy1pbyA8ZGV2ZWxAZWRrMi5ncm91cHMu aW8+OyBOaSwNCj4gICAgICAgICAgICAgICAgIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IFJlYmVj Y2EgQ3JhbiA8cmViZWNjYUBic2Rpby5jb20+DQo+ICAgICAgICAgICAgICAgICAqU3ViamVjdDoq UmU6IFtlZGsyLWRldmVsXSBDcHVEZWFkTG9vcCgpIGlzIG9wdGltaXplZA0KPiAgICAgICAgICAg ICAgICAgYnkgY29tcGlsZXINCj4NCj4gICAgICAgICAgICAgICAgIE1pa2UsDQo+DQo+ICAgICAg ICAgICAgICAgICBHb29kIHBvaW50LCB0aGF0IGlzIHdoeSB3ZSBhcmUgdXNpbmcgdGhlIHN0YWNr IOKApi4NCj4NCj4gICAgICAgICAgICAgICAgIFRoZSBvbmx5IG90aGVyIHRoaW5nIEkgY2FuIHRo aW5rIG9mIGlzIHRvIHBhc3MgdGhlDQo+ICAgICAgICAgICAgICAgICBhZGRyZXNzIG9mIEluZGV4 IHRvIHNvbWUgaW5saW5lIGFzc2VtYmxlciwgb3IgYW4gYXNtDQo+ICAgICAgICAgICAgICAgICBu byBvcCBmdW5jdGlvbiwgdG8gZ2l2ZSBpdCBhIHNpZGUgZWZmZWN0IHRoZSBjb21waWxlcg0KPiAg ICAgICAgICAgICAgICAgY2Fu4oCZdCByZXNvbHZlLg0KPg0KPiAgICAgICAgICAgICAgICAgVGhh bmtzLA0KPg0KPiAgICAgICAgICAgICAgICAgQW5kcmV3IEZpc2gNCj4NCj4NCj4NCj4NCj4NCj4g ICAgICAgICAgICAgICAgICAgICBPbiBNYXkgMTgsIDIwMjMsIGF0IDEwOjA1IEFNLCBLaW5uZXks IE1pY2hhZWwgRA0KPiAgICAgICAgICAgICAgICAgICAgIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4gd3JvdGU6DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgU3RhdGljIGdsb2JhbCB3aWxs IG5vdCB3b3JrIGZvciBYSVANCj4NCj4gICAgICAgICAgICAgICAgICAgICBNaWtlDQo+DQo+ICAg ICAgICAgICAgICAgICAgICAgKkZyb206KkFuZHJldyAoRUZJKSBGaXNoIDxhZmlzaEBhcHBsZS5j b20+DQo+ICAgICAgICAgICAgICAgICAgICAgKlNlbnQ6KlRodXJzZGF5LCBNYXkgMTgsIDIwMjMg OTo0OSBBTQ0KPiAgICAgICAgICAgICAgICAgICAgICpUbzoqZWRrMi1kZXZlbC1ncm91cHMtaW8g PGRldmVsQGVkazIuZ3JvdXBzLmlvPjsNCj4gICAgICAgICAgICAgICAgICAgICBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ICAgICAgICAgICAgICAgICAg ICAgKkNjOipOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgUmViZWNjYSBDcmFuDQo+ICAgICAg ICAgICAgICAgICAgICAgPHJlYmVjY2FAYnNkaW8uY29tPg0KPiAgICAgICAgICAgICAgICAgICAg ICpTdWJqZWN0OipSZTogW2VkazItZGV2ZWxdIENwdURlYWRMb29wKCkgaXMNCj4gICAgICAgICAg ICAgICAgICAgICBvcHRpbWl6ZWQgYnkgY29tcGlsZXINCj4NCj4gICAgICAgICAgICAgICAgICAg ICBNaWtlLA0KPg0KPiAgICAgICAgICAgICAgICAgICAgIEkgcGluZ2VkIHNvbWUgY29tcGlsZXIg ZXhwZXJ0cyB0byBzZWUgaWYgb3VyIGNvZGUNCj4gICAgICAgICAgICAgICAgICAgICBpcyBjb3Jy ZWN0LCBvciBpZiB0aGUgY29tcGlsZXIgaGFzIGFuIGlzc3VlLiBTZWVtcw0KPiAgICAgICAgICAg ICAgICAgICAgIHRvIGJlIHRyZW5kaW5nIGNvbXBpbGVyIGlzc3VlIHJpZ2h0IG5vdywgYnV0IEni gJl2ZQ0KPiAgICAgICAgICAgICAgICAgICAgIE5PVCBnb3R0ZW4gZmVlZGJhY2sgZnJvbSBhbnlv bmUgb24gdGhlIHNwZWMNCj4gICAgICAgICAgICAgICAgICAgICBjb21taXR0ZWUgeWV0Lg0KPg0K PiAgICAgICAgICAgICAgICAgICAgIElmIHdlIG1vdmUgSW5kZXggdG8gYSBzdGF0aWMgZ2xvYmFs IHRoYXQgd291bGQNCj4gICAgICAgICAgICAgICAgICAgICBsaWtlbHkgd29yayBhcm91bmQgdGhl IGNvbXBpbGVyIGlzc3VlLg0KPg0KPiAgICAgICAgICAgICAgICAgICAgIFRoYW5rcywNCj4NCj4g ICAgICAgICAgICAgICAgICAgICBBbmRyZXcgRmlzaA0KPg0KPg0KPg0KPg0KPg0KPg0KPiAgICAg ICAgICAgICAgICAgICAgICAgICBPbiBNYXkgMTgsIDIwMjMsIGF0IDg6MzYgQU0sIE1pY2hhZWwg RCBLaW5uZXkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPiB3cm90ZToNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgSGkgUmF5LA0KPg0K PiAgICAgICAgICAgICAgICAgICAgICAgICBTbyB0aGUgY29kZSBnZW5lcmF0ZWQgZG9lcyBkZWFk bG9vcCwgYnV0IGlzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3Qgbm90IGVhc3kgdG8g cmVzdW1lIGZyb20gYXMgd2UgaGF2ZSBiZWVuDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGFi bGUgdG8gZG8gaW4gdGhlIHBhc3QuDQo+DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIFdlIHVz ZSBDcHVEZWFkbG9vcCgpIGZvciAyIHB1cnBvc2VzLsKgIE9uZSBpcyBhDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgIHRlcm1pbmFsIGNvbmRpdGlvbiB3aXRoIG5vIHJlYXNvbiB0byBldmVyDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlLg0KPg0KPiAgICAgICAgICAgICAgICAg ICAgICAgICBUaGUgMl5uZCBpcyBhIGRlYnVnIGFpZGUgZm9yIGRldmVsb3BlcnMgdG8NCj4gICAg ICAgICAgICAgICAgICAgICAgICAgaGFsdCB0aGUgc3lzdGVtIGF0IGEgc3BlY2lmaWMgbG9jYXRp b24gYW5kDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gY29udGludWUgZnJvbSB0aGF0 IHBvaW50LCB1c3VhbGx5IHdpdGggYQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dl ciwgdG8gc3RlcCB0aHJvdWdoIGNvZGUgdG8gYW4gYXJlYSB0bw0KPiAgICAgICAgICAgICAgICAg ICAgICAgICBldmFsdWF0ZSB1bmV4cGVjdGVkIGJlaGF2aW9yLg0KPg0KPiAgICAgICAgICAgICAg ICAgICAgICAgICBXZSBtYXkgaGF2ZSB0byBkbyBhIE5BU00gaW1wbGVtZW50YXRpb24gb2YNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgQ3B1RGVhZGxvb3AoKSB0byBtYWtlIHN1cmUgaXQgbWVl dHMgYm90aCB1c2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXMuDQo+DQo+ICAgICAg ICAgICAgICAgICAgICAgICAgIE1pa2UNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgKkZy b206Kk5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ICAgICAgICAgICAgICAgICAgICAgICAg ICpTZW50OipUaHVyc2RheSwgTWF5IDE4LCAyMDIzIDM6MDAgQU0NCj4gICAgICAgICAgICAgICAg ICAgICAgICAgKlRvOipkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAqQ2M6Kktpbm5leSwgTWljaGFlbCBEDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFJlYmVjY2EgQ3Jhbg0KPiAgICAgICAgICAgICAg ICAgICAgICAgICA8cmViZWNjYUBic2Rpby5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29t Pg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAqU3ViamVjdDoqQ3B1RGVhZExvb3AoKSBpcyBv cHRpbWl6ZWQgYnkgY29tcGlsZXINCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgSGksDQo+ DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0aW5nIGZyb20gY2VydGFpbiB2ZXJzaW9u IG9mIFZpc3VhbCBTdHVkaW8NCj4gICAgICAgICAgICAgICAgICAgICAgICAgQyBjb21waWxlciAo SSBkb27igJl0IGhhdmUgdGhlIGV4YWN0IHZlcnNpb24uIEkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgYW0gdXNpbmcgVlMyMDE5KSwgQ3B1RGVhZExvb3AgaXMgbm93IG9wdGltaXplZA0KPiAg ICAgICAgICAgICAgICAgICAgICAgICBxdWl0ZSB3ZWxsIGJ5IGNvbXBpbGVyLg0KPg0KPiAgICAg ICAgICAgICAgICAgICAgICAgICBUaGUgb3B0aW1pemF0aW9uIGlzIHNvIOKAnGdvb2TigJ0gdGhh dCBpdCBiZWNvbWVzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGhhcmRlciBmb3IgZGV2ZWxv cGVycyB0byBicmVhayBvdXQgb2YgdGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGRlYWRs b29wLg0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBJIGNvcGllZCB0aGUgYXNzZW1ibHkg aW5zdHJ1Y3Rpb25zIGFzIGJlbG93DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB5b3Vy IHJlZmVyZW5jZS4NCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvbXBpbGVyIGRv ZXMgbm90IGdlbmVyYXRlIGluc3RydWN0aW9ucw0KPiAgICAgICAgICAgICAgICAgICAgICAgICB0 aGF0IGp1bXAgb3V0IG9mIHRoZSBsb29wIHdoZW4gdGhlIEluZGV4IGlzDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgIG5vdCB6ZXJvLg0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBTbyBp biBvcmRlciB0byBicmVhayBvdXQgb2YgdGhlIGxvb3AsDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgIGRldmVsb3BlcnMgbmVlZCB0bzoNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgIDEu IE1hbnVhbGx5IGFkanVzdCByc3AgYnkgaW5jcmVhc2luZyA0MA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgMi4gTWFudWFsbHkg4oCccmV04oCdDQo+DQo+ICAgICAgICAgICAgICAgICAgICAg ICAgIEkgYW0gbm90IHN1cmUgaWYgYW55b25lIGhhcyBpbnRlcmVzdCB0bw0KPiAgICAgICAgICAg ICAgICAgICAgICAgICByZS13cml0ZSB0aGlzIGZ1bmN0aW9uIHNvIHRoYXQgY29tcGlsZXIgY2Fu IGJlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIOKAnGZvb2xlZOKAnSBhZ2Fpbi4NCj4NCj4g ICAgICAgICAgICAgICAgICAgICAgICAgVGhhbmtzLA0KPiAgICAgICAgICAgICAgICAgICAgICAg ICBSYXkNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09 PT0NCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgOyBGdW5jdGlvbiBjb21waWxlIGZsYWdz OiAvT2dzcHkNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgOyBGaWxlDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgIGU6XHdvcmtcZWRrMlxNZGVQa2dcTGlicmFyeVxCYXNlTGliXENwdURl YWRMb29wLmMNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgOyBDT01EQVQgQ3B1RGVhZExv b3ANCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgX1RFWFQgU0VHTUVOVA0KPg0KPiAgICAg ICAgICAgICAgICAgICAgICAgICBJbmRleCQgPSA0OA0KPg0KPiAgICAgICAgICAgICAgICAgICAg ICAgICBDcHVEZWFkTG9vcCBQUk9DIDsgQ09NREFUDQo+DQo+ICAgICAgICAgICAgICAgICAgICAg ICAgIDsgMjbCoMKgIDogew0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAkTE4xMjoNCj4N Cj4gICAgICAgICAgICAgICAgICAgICAgICAgMDAwMDDCoCA0OCA4MyBlYyAyOCBzdWIgcnNwLCA0 MCA7IDAwMDAwMDI4SA0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICA7IDI3wqDCoCA6IHZv bGF0aWxlIFVJTlROwqAgSW5kZXg7DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIDsgMjjC oMKgIDoNCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgOyAyOcKgwqAgOsKgwqAgZm9yIChJ bmRleCA9IDA7IEluZGV4ID09IDA7KSB7DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIDAw MDA0wqAgNDggYzcgNDQgMjQgMzANCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgMDAgMDAg MDAgMDAgbW92wqDCoMKgwqDCoCBRV09SRCBQVFIgSW5kZXgkW3JzcF0sIDANCj4NCj4gICAgICAg ICAgICAgICAgICAgICAgICAgJExOMTBAQ3B1RGVhZExvbzoNCj4NCj4gICAgICAgICAgICAgICAg ICAgICAgICAgOyAzMMKgwqAgOiBDcHVQYXVzZSAoKTsNCj4NCj4gICAgICAgICAgICAgICAgICAg ICAgICAgMDAwMGTCoCA0OCA4YiA0NCAyNCAzMCBtb3bCoMKgwqDCoMKgIHJheCwgUVdPUkQgUFRS DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4JFtyc3BdDQo+DQo+ICAgICAgICAgICAg ICAgICAgICAgICAgIDAwMDEywqAgZTggMDAgMDAgMDAgMDAgY2FsbCBDcHVQYXVzZQ0KPg0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAwMDAxN8KgIGViIGY0IGptcCBTSE9SVCAkTE4xMEBDcHVE ZWFkTG9vDQo+DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIENwdURlYWRMb29wIEVORFANCj4N Cj4gICAgICAgICAgICAgICAgICAgICAgICAgX1RFWFQgRU5EUw0KPg0KPiAgICAgICAgICAgICAg ICAgICAgICAgICBFTkQNCj4NCj4gICAgIA0KPg0K