From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.1.51; helo=eur01-ve1-obe.outbound.protection.outlook.com; envelope-from=udit.kumar@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0051.outbound.protection.outlook.com [104.47.1.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C465521A1096E for ; Sat, 25 Nov 2017 04:36:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Io6R36cj9l9FOpE12N7vZJZWYwwDumybsiRijzHKNII=; b=IOA83eO5wBxwlekAwsTXLgiScaeEJg0sx7JGgm5chmOuvPhT3MjrwhVbP4Qe5srwM72HtwjyJIQVA3VpxsdXhDjitFfvkgq2c5O+Law/rmEHZdoeKwoYRI/nBqo5IY1H2b1R1ojcqZbtDpuvB+TMhv3GyxKWtBDiu3gLJ8Ix+R8= Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com (52.133.18.151) by AM6PR0402MB3336.eurprd04.prod.outlook.com (52.133.18.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.4; Sat, 25 Nov 2017 12:40:23 +0000 Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::51eb:bed3:cf67:f4be]) by AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::51eb:bed3:cf67:f4be%13]) with mapi id 15.20.0260.006; Sat, 25 Nov 2017 12:40:23 +0000 From: Udit Kumar To: "afish@apple.com" CC: Daniel Thompson , Ard Biesheuvel , "edk2-devel@lists.01.org" , Leif Lindholm Thread-Topic: [edk2] [RFC] ACPI table HID/CID allocation Thread-Index: AQHTYqx4buQ9sA+RDE2RF8kzygsfzKMek/QggAAJiYCAAAHFkIAAJBMAgAAA41CAABmRgIAAP/jggAEnagCAABV0sIAAUFaAgARj8ZA= Date: Sat, 25 Nov 2017 12:40:23 +0000 Message-ID: References: <45939FDA-1DA8-424C-BBD1-4A46480DC6DD@apple.com> In-Reply-To: <45939FDA-1DA8-424C-BBD1-4A46480DC6DD@apple.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=udit.kumar@nxp.com; x-originating-ip: [45.122.154.34] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR0402MB3336; 6:QkIMcKN3xmWezd+MT08IJhlyE5p0oc7GFLDPsLlUrYwXrjdlm2O41c8Ft4E/m0axZyrUfpya21vdx2bFewjHOF5shqJyXewljghOJ7C1cvjkLXkKrC5tkRG266eXJ9dSsrOQ79WyB4SJ34d2njswypSC0sqz4vHF58ak4epjmEr2m39j6wCFpf1CN0eLWtiusCYGvEnYQspdgBUt3dFH1gHpzt96fmArePORry2b6Tf0VJasOdE0dDFDzBFIAOvYCnEBs2JSDdiYn508LG0Ui1JLqTm+wRl9AO1Jx9of9e7TNJQyQE8qzRsAfkoznHPw6RvSzlPLdCNRdS60Wv9ZZytVM+JJNz9BJ7fMTrxRWRU=; 5:VNY2benLt/wi1ARo6+nHKn6VHhK74dLGgBrcGanl0HvokcMd65yC/Rjj89ZdR129Sey9ulycXxL3jB/vojZDZT6I01RjXMXgK46TeuTmW/mKOm+j0g2yrs+dTuw3jWICu56ZVDHrcxT8ipJrP9RT/IkIkPdGgJeK2c8wlkcerQ8=; 24:IBAWiXYLeGe3D+THVxbHAiuig5kfcz+y32JLWSb4kFJ6Uw9xlUC2Grw5Hrk2DnMjK+DaRoBbvHOOdq5UpsbcNHhL/Oxm26yfkZPeZuVV8Oo=; 7:lrXgKjU/cq99E6hxp3ZLY2JXnD9QQ00SZLo4HM6zkn1sTDBCORoDLfrIhJGGCetXrMiFCP4ZhTR1tRzdhg3uHm3SYqzFl/tyKJMMtiQ3REre3uZ5DH9R8iGYkB/bBqquZU4rTKT6fI7Lia2tRetZ8Yapa/DTqTE3XyP3itqdHxdDiXbllWj5+PNYdThW38oedMO98I6CNrzl1FzAZhOuoW29I5BXS4Rdk6BEJGDRlaVe2OFGYFkHj/Nf1c6vhrrh x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 433b0243-a026-4ecf-916f-08d53401b261 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199); SRVR:AM6PR0402MB3336; x-ms-traffictypediagnostic: AM6PR0402MB3336: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(189930954265078)(185117386973197)(162533806227266)(227612066756510)(45079756050767)(21748063052155)(5213294742642)(31960201722614); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(8121501046)(5005006)(3231022)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011); SRVR:AM6PR0402MB3336; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM6PR0402MB3336; x-forefront-prvs: 0502983C0E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(39860400002)(376002)(199003)(57704003)(189002)(13464003)(69234005)(24454002)(99286004)(6246003)(14454004)(53546010)(8666007)(55016002)(606006)(2900100001)(76176999)(478600001)(966005)(53936002)(6436002)(54896002)(236005)(9686003)(19609705001)(6306002)(5640700003)(6506006)(93886005)(7696005)(8936002)(54906003)(53946003)(68736007)(5630700001)(7736002)(86362001)(316002)(229853002)(54356999)(554214002)(5250100002)(50986999)(74316002)(3846002)(3280700002)(790700001)(102836003)(189998001)(3660700001)(101416001)(45080400002)(2906002)(2351001)(81166006)(2950100002)(2501003)(6916009)(5660300001)(97736004)(33656002)(8676002)(1730700003)(105586002)(25786009)(106356001)(81156014)(6116002)(4326008)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR0402MB3336; H:AM6PR0402MB3334.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 433b0243-a026-4ecf-916f-08d53401b261 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2017 12:40:23.4362 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0402MB3336 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [RFC] ACPI table HID/CID allocation 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: Sat, 25 Nov 2017 12:36:12 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIEFuZHJldywNCldlIGhhdmUgb25lIEFDUEkgUE5QIElELg0KSSBhbSBsb29raW5nIGZv ciBiZXR0ZXIgd2F5IHRvIGRlZmluZSBBQ1BJIHRhYmxlcy4gU2F5IGEgZHJpdmVyIChjb3VsZCBi ZSBzbGF2ZSBvciBtYXN0ZXIpIGNhbiB3b3JrIHdpdGggUFJQMDAwMSwgKGV4YW1wbGUgZmxhc2hl cywgaTJjIHNsYXZlcykNCnRoZW4gZG8gd2UgbmVlZCB0byBkZWZpbmUgSElEIGZvciB0aGUgc2Ft ZSBvciBub3QgLiBXaXRoIGNvbmRpdGlvbiBzdWNoIGRyaXZlciBkb27igJl0IGV4cG9zZSBvciBu ZWVkIHNvbWUgQU1MIG1ldGhvZHMgdG8gYmUgaW1wbGVtZW50ZWQuDQoNClJlZ2FyZHMNClVkaXQN Cg0KRnJvbTogYWZpc2hAYXBwbGUuY29tIFttYWlsdG86YWZpc2hAYXBwbGUuY29tXQ0KU2VudDog V2VkbmVzZGF5LCBOb3ZlbWJlciAyMiwgMjAxNyAxMTowNSBQTQ0KVG86IFVkaXQgS3VtYXIgPHVk aXQua3VtYXJAbnhwLmNvbT4NCkNjOiBEYW5pZWwgVGhvbXBzb24gPGRhbmllbC50aG9tcHNvbkBs aW5hcm8ub3JnPjsgQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgTGVpZiBMaW5kaG9sbSA8bGVpZi5saW5kaG9sbUBsaW5h cm8ub3JnPg0KU3ViamVjdDogUmU6IFtlZGsyXSBbUkZDXSBBQ1BJIHRhYmxlIEhJRC9DSUQgYWxs b2NhdGlvbg0KDQpGWUkgbm93IHRoYXQgdGhlIFVFRkkgRm9ydW0gb3ducyB0aGUgQUNQSSBTcGVj IGhlcmUgaXMgdGhlIGxvY2F0aW9uIHRvIHJlZ2lzdGVyIGEgbmV3IFBOUCBJRCBvciBBQ1BJIElE OiBodHRwczovL3N0YXNoLnNkLmFwcGxlLmNvbS9wcm9qZWN0cy9DT1JFT1NNQUNGVy9yZXBvcy9t YWNlZmlmaXJtd2FyZS9wdWxsLXJlcXVlc3RzLzYzMC9vdmVydmlldzxodHRwczovL2VtZWEwMS5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGc3Rhc2gu c2QuYXBwbGUuY29tJTJGcHJvamVjdHMlMkZDT1JFT1NNQUNGVyUyRnJlcG9zJTJGbWFjZWZpZmly bXdhcmUlMkZwdWxsLXJlcXVlc3RzJTJGNjMwJTJGb3ZlcnZpZXcmZGF0YT0wMiU3QzAxJTdDdWRp dC5rdW1hciU0MG54cC5jb20lN0MxYTNmZjYxMTJjMjY0NzQ4ODY2NzA4ZDUzMWNmNGQ5YiU3QzY4 NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlN0M2MzY0Njk2ODg3OTEwODAw OTEmc2RhdGE9Q2dmJTJCMG9JaThzYkFGWWklMkZVZ2hGQkJXSnprZlVoTlBFdlJEaUxSeXZkJTJG USUzRCZyZXNlcnZlZD0wPi4gQW55b25lIGNhbiBtYWtlIGEgcmVxdWVzdC4NCg0KUE5QIElEIFJl Z2lzdHJ5OiBodHRwOi8vd3d3LnVlZmkub3JnL3BucF9pZF9saXN0PGh0dHBzOi8vZW1lYTAxLnNh ZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRnd3dy51ZWZp Lm9yZyUyRnBucF9pZF9saXN0JmRhdGE9MDIlN0MwMSU3Q3VkaXQua3VtYXIlNDBueHAuY29tJTdD MWEzZmY2MTEyYzI2NDc0ODg2NjcwOGQ1MzFjZjRkOWIlN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5 OWM1YzMwMTYzNSU3QzAlN0MwJTdDNjM2NDY5Njg4NzkxMDgwMDkxJnNkYXRhPUNGWmo2WXZUb1Ml MkZzZUduMzhkaktLQVJGOEpwb01Vdmt3Q2haZjNKSHd6byUzRCZyZXNlcnZlZD0wPg0KQUNQSSBJ RCBSZWdpc3RyeTogaHR0cDovL3d3dy51ZWZpLm9yZy9hY3BpX2lkX2xpc3Q8aHR0cHM6Ly9lbWVh MDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGd3d3 LnVlZmkub3JnJTJGYWNwaV9pZF9saXN0JmRhdGE9MDIlN0MwMSU3Q3VkaXQua3VtYXIlNDBueHAu Y29tJTdDMWEzZmY2MTEyYzI2NDc0ODg2NjcwOGQ1MzFjZjRkOWIlN0M2ODZlYTFkM2JjMmI0YzZm YTkyY2Q5OWM1YzMwMTYzNSU3QzAlN0MwJTdDNjM2NDY5Njg4NzkxMDgwMDkxJnNkYXRhPURXZ2Zk YW5EU3NzS2FZY0owVUo0ZGpneTZsNGx4ZHYlMkJmZEhDcmlmOUpIQSUzRCZyZXNlcnZlZD0wPg0K DQpUaGFua3MsDQoNCkFuZHJldyBGaXNoDQoNCk9uIE5vdiAyMiwgMjAxNywgYXQgNTozOSBBTSwg VWRpdCBLdW1hciA8dWRpdC5rdW1hckBueHAuY29tPG1haWx0bzp1ZGl0Lmt1bWFyQG54cC5jb20+ PiB3cm90ZToNCg0KSGkgRGFuaWVsDQoNCg0KDQpGb3IgZXh0ZXJuYWwgZGV2aWNlcyAoZm9yIHdo aWNoIEhJRCBpcyBub3QgYXZhaWxhYmxlKSwgeW91IHN1Z2dlc3QgdG8NCmdvIHdpdGggUFJQMDAw MSArIGNvbXBhdGlibGUgb3IgdGhhdCBkZXZpY2UgZHJpdmVyIG5lZWRzIGFkZCBBQ1BJIEhJRA0K c3VwcG9ydC4NCg0KSSBkb24ndCB0aGluayBpbnRlcm5hbCBvciBleHRlcm5hbCB0byB0aGUgU29D IHdvdWxkIGJlIGFueSBraW5kIG9mIGRlY2lkaW5nIGZhY3Rvcg0KaW4gaG93IHRvIGJlc3QgdG8g YmluZCwgc2ltcGx5IGJlY2F1c2UgSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB0aGVyZSBpcyBubyBI SUQNCmF2YWlsYWJsZS4NCg0KVGhpcyBpcyBtb3JlIGEgY2hvaWNlL3J1bGUgYmV0d2VlbiBhbGxv Y2F0aW5nIEhJRCBvciB1c2luZyBQUlAwMDAxLg0KSElEIGNvdWxkIGJlIGFzc2lnbmVkIHRvIGV4 dGVybmFsIGRldmljZXMsIGFuZCBnZXR0aW5nIHRoZW0gcmV2aWV3ZWQNCmJ5IG1haW50YWluZXJz Lg0KDQoNCkxhcmdlIE9FTXMgYW5kIGJvYXJkIG1hbnVmYWN0dXJlcnMgdXN1YWxseSBoYXZlIHRo ZWlyIG93biB2ZW5kb3IgSURzIGFuZA0Kc29tZXRpbWVzIGhhdmUgdG8gdXNlIHRoZXNlIHRvIGRl c2NyaWJlIGhhcmR3YXJlIChJSVJDIHRoZSBTTUMgTEFOOXh4eCBvbg0KdGhlIEFSTSBKdW5vIHVz ZXMgYW4gQVJNIEhJRCkuDQoNClRoYW5rcywgIGZvciB0aGlzIGV4YW1wbGUuDQpUaGlzIGlzIGdv b2QgZXhhbXBsZSBmb3IgbWUsIHdoZXJlIEhJRCBhbGxvY2F0aW9uIGlzIG5vdCBsaW1pdGVkIHRv IFZlbmRvciBkZXZpY2VzLg0KDQoNCg0KQWRtaXR0ZWRseSB0aGUgcGFydCB5b3UgYXJlIGRlc2Ny aWJpbmcgZm9sbG93cyBhIEpFREVDIHN0YW5kYXJkIHNvIGl0IHdvdWxkIGJlDQpuaWNlIHRvIGhh dmUgbW9yZSB3aWRlbHkgYWdyZWVkIGJpbmRpbmdzLi4uIGhvd2V2ZXIgbWFraW5nIFNQSSBOT1Ig RkxBU0gNCmF2YWlsYWJsZSBhcyByYXcgTVREIGRldmljZSB0byB0aGUgT1MgaXMgc3VmZmljaWVu dGx5IHVudXN1YWwgaW4gQUNQSSBzeXN0ZW1zDQp0aGF0IHRoZXJlIG1heSBub3QgYmUgYW55IHBy aW9yIGFydCB0byBmb2xsb3cuDQoNClBsZWFzZSB0YWtlIHRoaXMgYXMgYW4gZXhhbXBsZS4gKCBN YWluIHBvaW50IHdhcyB0byB1c2UgSElEIG9yIFBSUDAwMDEpDQpDb3VsZCBiZSBwb3NzaWJsZSwg aWYgc3VjaCBkZXZpY2UgaXMgZXhwb3NlZCB0aGVuIHRoaXMgbWF5IG5vdCBiZSB1c2VkIGF0IGFs bC4NClRoYW5rcyBmb3IgaGVscC4NCg0KVGhhbmtzDQpVZGl0DQoNCg0KDQpEYW5pZWwuDQoNCg0K DQoNCkFzIHlvdSBwb2ludGVkIG91dCwgYXJlIGV4dGVybmFsIGRldmljZXMgdG8gU09DIHN1Y2gg ZXhjZXB0aW9uIHRvIHVzZQ0KUFJQMDAwMSArIGNvbXBhdGlibGUgYmUgaXQgaTJjIHNsYXZlIG9y IFNQSSBzbGF2ZSA/DQoNCg0KUmVnYXJkcw0KVWRpdA0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQpGcm9tOiBBcmQgQmllc2hldXZlbCBbbWFpbHRvOmFyZC5iaWVzaGV1dmVsQGxpbmFy by5vcmddDQpTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAyMSwgMjAxNyA3OjM0IFBNDQpUbzogVWRp dCBLdW1hciA8dWRpdC5rdW1hckBueHAuY29tPG1haWx0bzp1ZGl0Lmt1bWFyQG54cC5jb20+Pg0K Q2M6IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZzxtYWlsdG86bGVpZi5s aW5kaG9sbUBsaW5hcm8ub3JnPj47DQplZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmc+OyBWYXJ1biBTZXRoaSA8Vi5TZXRoaUBueHAuY29tPG1haWx0 bzpWLlNldGhpQG54cC5jb20+PjsgRGFuaWVsDQpUaG9tcHNvbiA8ZGFuaWVsLnRob21wc29uQGxp bmFyby5vcmc8bWFpbHRvOmRhbmllbC50aG9tcHNvbkBsaW5hcm8ub3JnPj47IEdyYWVtZSBHcmVn b3J5DQo8Z3JhZW1lLmdyZWdvcnlAbGluYXJvLm9yZzxtYWlsdG86Z3JhZW1lLmdyZWdvcnlAbGlu YXJvLm9yZz4+DQpTdWJqZWN0OiBSZTogW1JGQ10gQUNQSSB0YWJsZSBISUQvQ0lEIGFsbG9jYXRp b24NCg0KT24gMjEgTm92ZW1iZXIgMjAxNyBhdCAxMzoyNCwgVWRpdCBLdW1hciA8dWRpdC5rdW1h ckBueHAuY29tPG1haWx0bzp1ZGl0Lmt1bWFyQG54cC5jb20+PiB3cm90ZToNCg0KVGhhbmtzIEFy ZCwNCg0KTXkgaW50ZW5kIG9mIHRoaXMgZW1haWwgdG8ga25vdywgd2hhdCBpcyByaWdodCB3YXkg dG8gZGVmaW5lIEhJRCBhbmQNCkNJRCBpbiBBQ1BJIGZpcm13YXJlIGkuZQ0KDQpEZXZpY2UoWFla KSB7DQogICAgICAgICAgICAgICAgTmFtZShfSElELCAiTlhQMDAwMSIpDQogICAgICAgICAgICAg ICAgTmFtZShfQ0lELCAiUFJQMDAwMSIpDQogICAgICAgICAgRGV2aWNlKFNsYXZlMSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lKF9DSUQsICJQUlAwMDAxIikNCiAgICAg ICAgICAgICAgICAgfQ0KfQ0KaXMgb2sgb3INCg0KDQpEZXZpY2UoWFlaKSB7DQogICAgICAgICAg ICAgICAgTmFtZShfSElELCAiTlhQMDAwMSIpDQogICAgICAgICAgICAgICAgTmFtZShfQ0lELCAi IE5YUDAwMDEiKQ0KICAgICAgICAgIERldmljZShTbGF2ZTEpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZShfQ0lELCAiIE5YUDAwMDIiKQ0KICAgICAgICAgICAgICAgICB9 DQp9DQpTZWVtcyBnb29kDQoNCkkgZG9uJ3QgdGhpbmsgaXQgbWFrZXMgYSBsb3Qgb2Ygc2Vuc2Ug dG8gdXNlIHRoZSBzYW1lIHZhbHVlIGZvciBfSElEDQphbmQgX0NJRCwgc28geW91IGNhbiBqdXN0 IGRyb3AgdGhlIGxhdHRlci4NCg0KU3VyZSwNCg0KDQpGb3Igc3VyZSwgQU1MIG1ldGhvZHMgKGFz IG5lZWRlZCBfT04vT0ZGL1JTVC9TVEEgZXRjKSAvX0RTRCB3aWxsIHRvDQpiZQ0KY29kZWQgaW4g dGFibGUgdXNpbmcgZWl0aGVyIG9mLg0KDQoNClBsZWFzZSBzZWUgbW9yZSBpbiBsaW5lDQoNClJl Z2FyZHMNClVkaXQNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQXJkIEJp ZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KU2VudDogVHVlc2Rh eSwgTm92ZW1iZXIgMjEsIDIwMTcgNTo1OSBQTQ0KVG86IFVkaXQgS3VtYXIgPHVkaXQua3VtYXJA bnhwLmNvbTxtYWlsdG86dWRpdC5rdW1hckBueHAuY29tPj4NCkNjOiBMZWlmIExpbmRob2xtIDxs ZWlmLmxpbmRob2xtQGxpbmFyby5vcmc8bWFpbHRvOmxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4+ Ow0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3Jn PjsgVmFydW4gU2V0aGkgPFYuU2V0aGlAbnhwLmNvbTxtYWlsdG86Vi5TZXRoaUBueHAuY29tPj47 IERhbmllbA0KVGhvbXBzb24gPGRhbmllbC50aG9tcHNvbkBsaW5hcm8ub3JnPG1haWx0bzpkYW5p ZWwudGhvbXBzb25AbGluYXJvLm9yZz4+OyBHcmFlbWUgR3JlZ29yeQ0KPGdyYWVtZS5ncmVnb3J5 QGxpbmFyby5vcmc8bWFpbHRvOmdyYWVtZS5ncmVnb3J5QGxpbmFyby5vcmc+Pg0KU3ViamVjdDog UmU6IFtSRkNdIEFDUEkgdGFibGUgSElEL0NJRCBhbGxvY2F0aW9uDQoNCk9uIDIxIE5vdmVtYmVy IDIwMTcgYXQgMTE6MzIsIFVkaXQgS3VtYXIgPHVkaXQua3VtYXJAbnhwLmNvbTxtYWlsdG86dWRp dC5rdW1hckBueHAuY29tPj4NCndyb3RlOg0KDQoNCg0KT24gMjEgTm92ZW1iZXIgMjAxNyBhdCAw OTo1OSwgVWRpdCBLdW1hciA8dWRpdC5rdW1hckBueHAuY29tPG1haWx0bzp1ZGl0Lmt1bWFyQG54 cC5jb20+Pg0Kd3JvdGU6DQoNClRoYW5rcyBBcmQuDQpCZWxvdyB0YWJsZSB3YXMgZm9yIGV4YW1w bGUuIEkgYW0gbm90IGNvbnZlcnRpbmcgd2hvbGUgRFQgdG8NCkFDUEkgdGFibGVzIDopIE15IGlk ZWEgaXMgdG8gcmVkdWNlIExpbnV4IHBhdGNoZXMgZm9yIHByb2JpbmcgYXMNCnBvc3NpYmxlLg0K DQpBbHNvIGtlZXBpbmcgZmlybXdhcmUgYW5kIE9TIHNlcGFyYXRlbHkgdGhlbiBMZXQgZmlybXdh cmUgZXhwb3NlDQpib3RoIHdheSAoSElEIGFuZCBQUlAwMDAwMSkgYW5kIExpbnV4IHRvIGRlY2lk ZSBiaW5kaW5nDQoNCk5vLg0KDQpZb3UgYXJlIHN0aWxsIGFzc3VtaW5nIEFDUEkgYW5kIERUIGRl dmljZSBkcml2ZXJzIGJpbmQgYXQgdGhlDQpzYW1lIGxldmVsLCBhbmQgdGhleSBkb24ndC4NCg0K Tm8sIG15IGFib3ZlIGNvbW1lbnRzIHdhcyBqdXN0IGxpbWl0ZWQgdG8gYmluZGluZy4NCg0KWWVz LCBidXQgaWYgeW91IGxlYXZlIGl0IHRvIHRoZSBPUyB0byBkZWNpZGUgd2hpY2ggYmluZGluZyBp dCB1c2VzLA0KeW91IHdpbGwgaGF2ZSB0byBzdXBwb3J0IGFsbCBvZiB0aGVtIGludG8gZXRlcm5p dHkuIEFuZCB0aGUgbW9yZQ0KZGV0YWlsZWQgYmluZGluZyB5b3UgbmVlZCB0byBzdXBwb3J0IG1h eSBsaW1pdCB5b3UgaW4gdGhlIGF2YWlsYWJsZQ0KY2hvaWNlcyB3aGVuIGl0IGNvbWVzIHRvIG1h a2luZyBoYXJkd2FyZSBjaGFuZ2VzLCBzb21ldGhpbmcgQUNQSQ0KYWxsb3dzDQp5b3UgdG8gZG8u DQoNCg0KVGhhbmtzLA0KSXMgdGhpcyBvayB0byBzYXkgLCB3ZSBjYW4gcHJvdmlkZSBtYXggc2Ft ZSBwcm9wZXJ0aWVzIGluIGRyaXZlciBhcw0Kb2YgRFQgKHdpdGggX0RTRCkgLCBCdXQgcHJlZmVy IHRvIHVzZSBBTUwgbWV0aG9kcy4NCldpdGggbm90ZSwgY2xvY2tpbmcgcmVndWxhdG9ycyBhcmUg b3V0IG9mIHNjb3BlIGhlcmUuDQoNClllcy4gX0RTRCBtYXkgYmUgdXNlZCB0byBkZXNjcmliZSBk ZXZpY2Ugc3BlY2lmaWMgZGF0YSB0aGF0IGdvZXMNCmJleW9uZCB3aGF0IEFDUEkgY2FuIGV4cHJl c3MgbmF0aXZlbHkuIFVzaW5nIF9EU0QgdG8gZGVzY3JpYmUgY2xvY2tzDQphbmQgcmVndWxhdG9y cyBpcyBhbiBhYnNvbHV0ZSBuby1nby4gUHV0dGluZyB0aGluZ3MgbGlrZSAic3RhdHVzIiBvcg0K ImRtYS1jb2hlcmVudCIgaW4gX0RTRCBwcm9wZXJ0aWVzIGlzIGFic29sdXRlbHkgdW5hY2NlcHRh YmxlIGFzIHdlbGwuDQpCdXQgZXZlbiB0aGluZ3MgbGlrZSBpbml0aWFsaXphdGlvbiBkYXRhIHRo YXQgdGhlIGRyaXZlciBwcm9ncmFtcw0KaW50byB0aGUgZGV2aWNlIGEgc2luZ2xlIHRpbWUgcmVh bGx5IGRvIG5vdCBiZWxvbmcgaW4gX0RTRC4gSW5zdGVhZCwNCml0IHNob3VsZCBiZSB0aGUgZmly bXdhcmUgdGhhdCBpbml0aWFsaXplcyB0aGUgZGV2aWNlLCBhbmQgcHJlc2VudHMgaXQgdG8gdGhl IE9TDQppbiBpdHMgaW5pdGlhbGl6ZWQgc3RhdGUuDQoNCg0KDQpBZ3JlZWQsIEkgbmV2ZXIgbWVh bnQgc29tZXRoaW5nIHRvIGFkZCBpbiBEU0Qgd2hpY2ggd2FzIHByb2hpYml0ZWQgaW4gQUNQSQ0K c3BjZXMuDQoNCg0KDQoNCg0KUmlnaHQsIGhlcmUgZGV2aWNlIGRyaXZlciBzaG91bGQga25vdyB0 aGF0IGRldmljZSBpcyBwcmVzZW50IGluDQpzeXN0ZW0sIEkgc2VlIHByb2JlIGZ1bmN0aW9uIChk ZXZpY2UtZHJpdmVyIGJpbmRpbmcpIGlzIHdheSB0byBrbm93IHRoaXMuDQpUaGVuIGRyaXZlciBj YW4gZXhlY3V0ZSBBTUwgbWV0aG9kcyBleHBvc2VkIGJ5IGZpcm13YXJlLg0KDQpZZXMsIGRlY2xh cmluZyB0aGUgcHJlc2VuY2Ugb2YgdGhlIGRldmljZSBpcyB0aGUgbWFpbiBwdXJwb3NlIG9mDQpk ZXNjcmliaW5nIGl0IGJvdGggaW4gQUNQSSBhbmQgaW4gRFQuDQoNCg0KQW4gQUNQSSBkZXZpY2Ug aGFzIEFNTCBtZXRob2RzIHRvIG1hbmFnZSBwb3dlciBzdGF0ZSBhbmQgcGVyZm9ybQ0Kb3RoZXIg ZGV2aWNlIHJlbGF0ZWQgbG93LWxldmVsIHRhc2tzLiBUaGUgZGV2aWNlIGRyaXZlciBoYXMgbm8N Cmtub3dsZWRnZSBvZiB0aGUgaGFyZHdhcmUgYmV5b25kIHdoYXQgaXQgbmVlZHMgdG8gaW52b2tl IHRob3NlDQphYnN0cmFjdA0KbWV0aG9kcy4NCg0KDQpZb3UgbWVhbnQsIElmIHdlIG5lZWQgdG8g dXBkYXRlIGRyaXZlciBmb3IgQU1MIG1ldGhvZHMgdGhlbiB3aHkNCm5vdCB0bw0KdXBkYXRlIGJp bmRpbmcgYXMgd2VsbCAuID8NCg0KDQoNCk5vLiBXaGF0IEkgYW0gc2F5aW5nIGlzIHRoYXQgeW91 IHNob3VsZCBub3QgZXhwb3NlIHR3byBkaWZmZXJlbnQNCmJpbmRpbmdzLCBhbmQgbGV0IHRoZSBP UyBjaG9vc2UuDQoNCk9rLCBnb3QgaXQgLCB0aGVuIFBSUDAwMDAxIHN0dWZmIHNob3VsZCBiZSB1 c2VkIG9ubHkgYXQgdXJnZW50IG9yDQpzYXkgbm8gb3RoZXIgY2hvaWNlIGxlZnQgLCBSaWdodCA/ DQoNClllcy4NCg0KDQoNCk9uIHNpZGUgdHJhY2ssDQogV2l0aCBsaW1pdGVkIHNlYXJjaCwgIEkg Z290IG1hbnkgZWFjaCBkcml2ZXIgaXMgaGF2aW5nIChhY3BpX2lkDQphbmQgb2ZfaWQpLCBsb29r cywgYWNwaSBzdXBwb3J0IGlzIGFkZGVkIG9uIHRoZSB0b3Agb2YgRFQgZmxhdm9yZWQgZHJpdmVy cy4NCmFuZCB0aGVyZWZvcmUgYWNwaSB0YWJsZXMgYXJlIGZvbGxvd2luZyB0aGUgc2FtZS4NClNv cnJ5IHRvIHNheSwgcmVmZXJlbmNlIEkgYW0gbG9va2luZyBhdCAoZWRrMi1wbGF0Zm9ybSkgSnVu b1BrZw0KYW5kIFZFeHByZXNzUGtnLCBIYXMgZm9sbG93aW5nIGRldmljZXMgaGFzIGRlc2NyaXB0 aW9uIHNpbWlsYXIgdG8gRGV2aWNlDQp0cmVlDQoNCiAgICBEZXZpY2UgKE5FVDApIHsNCiAgICBE ZXZpY2UgKFNSRUcpIHsNCiAgICBEZXZpY2UgKFZJUlQpIHsNCg0KVGhlc2Ugd2VyZSB0YWtlbiBm cm9tIHRoZSBBQ1BJIHRhYmxlcyBmb3IgYW4gZW11bGF0b3INCg0KDQogICBEZXZpY2UoS01JMCkg ew0KDQpJIGhhdmUgbm8gY2x1ZSB3aGF0IGtpbmQgb2YgZGV2aWNlIHRoaXMgaXMNCg0KDQogICBE ZXZpY2UoRVRIMCkgew0KDQpUaGlzIG9uZSB1c2VzIF9EU0QgYXMgaW50ZW5kZWQsIHRvIHNldCBk ZXZpY2UgcHJvcGVydGllcyBpbiBhIERUDQpjb21wYXRpYmxlIGZhc2hpb24sIGJ1dCBub3RlIHRo YXQgdGhpcyBkb2VzICpub3QqIGluY2x1ZGUgdGhlDQonY29tcGF0aWJsZScgcHJvcGVydHksIG5v ciBhbnl0aGluZyBlbHNlIHRoYXQgQUNQSSBkZWZpbmVzIGl0c2VsZg0KKHN0YXR1cywgZG1hLWNv aGVyZW50LCBldGMpDQoNCkxldCBtZSBwdXQgaW4gc2ltcGxlIHdheSwNCkEgc2ltcGxlIGRyaXZl ciBjYW4gc3Vydml2ZSBvbmx5IHdpdGggX0RTRCBpbiBhY3BpIHdvcmxkLg0KKGNsb2NraW5nL3Jl Z3VsYXRvcnMgYXJlIHVzZWQgYXMgc2FpZCBpbiBVRUZJL0FDUEkpDQoNCldoeSBjYW4gYSBzaW1w bGUgZHJpdmVyIG9ubHkgc3Vydml2ZSB3aXRoIF9EU0Q/IFRoYXQgc3RhdGVtZW50IGRvZXMNCm5v dCBtYWtlIGFueSBzZW5zZSB0byBtZS4NCg0KV2h5IHNvLCBwbGVhc2Ugc2VlIGJlbG93IG9uZSBm b3IgZXhhbXBsZQ0KDQoNCkNvcHlpbmcgYmVsb3cgZnJvbSBKdW5vLA0KQXJlIGJlbG93IGtpbmQg b2YgdGFibGVzIGFyZSBhY2NlcHRhYmxlID8NCg0KICAgIERldmljZShFVEgwKSB7DQogICAgICBO YW1lKF9ISUQsICJBUk1IOTExOCIpDQogICAgICBOYW1lKF9VSUQsIFplcm8pDQogICAgICBOYW1l KF9DUlMsIFJlc291cmNlVGVtcGxhdGUoKSB7DQogICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQo UmVhZFdyaXRlLCAweDE4MDAwMDAwLCAweDEwMDApDQogICAgICAgICAgICAgIEludGVycnVwdChS ZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7IDE5MiB9DQog ICAgICB9KQ0KICAgICAgTmFtZShfRFNELCBQYWNrYWdlKCkgew0KICAgICAgICAgICAgICAgICAg IFRvVVVJRCgiZGFmZmQ4MTQtNmViYS00ZDhjLThhOTEtYmM5YmJmNGFhMzAxIiksDQogICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSgyKSB7InBoeS1tb2RlIiwgIm1paSJ9LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UoMikgeyJyZWctaW8td2lkdGgiLCA0IH0sDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSgyKSB7InNtc2MsaXJxLWFjdGl2ZS1oaWdoIiwxfSwN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlKDIpIHsic21zYyxpcnEtcHVz aC1wdWxsIiwxfQ0KICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgIH0pIC8vIF9EU0QoKQ0K ICAgIH0NCg0KWWVzLiBCdXQgcGxlYXNlIGJlIGF3YXJlIHRoYXQgeW91IHNob3VsZCBub3Qgc2lt cGx5IGludmVudCB5b3VyIG93bg0KcHJvcGVydGllcyBoZXJlLiBUaGUgX0RTRCBuYW1lc3BhY2Ug d2FzIGludGVuZGVkIHRvIGJlIG1hbmFnZWQsIGFuZA0Kbm90IGZyZWUgZm9yIGFsbA0KDQpBZ3Jl ZWQsIEkgZGlkbuKAmXQgbWVhbnQgdG8gYWRkIHNvbWV0aGluZyBuZXcsIHdoaWNoIGlzIG5vdCBh dmFpbGFibGUgYXQNCnByZXNlbnQsDQoNCg0KDQpodHRwczovL2VtZWEwMS5zYWZlbGlua3MucHJv dGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGd3cNCncuaw0KZXJuZWwub3Jn JTJGZG9jJTJGRG9jdW1lbnRhdGlvbiUyRmFjcGklMkZEU0QtcHJvcGVydGllcy0NCnJ1bGVzLnR4 dCZkYXRhPTAyJTdDMDElN0N1ZGl0Lmt1bWFyJTQwbnhwLmNvbTxodHRwczovL2VtZWEwMS5zYWZl bGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkY0MG54cC5jb20m ZGF0YT0wMiU3QzAxJTdDdWRpdC5rdW1hciU0MG54cC5jb20lN0MxYTNmZjYxMTJjMjY0NzQ4ODY2 NzA4ZDUzMWNmNGQ5YiU3QzY4NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAl N0M2MzY0Njk2ODg3OTEwODAwOTEmc2RhdGE9OXVzZCUyQjBjOWR0cE0wbkVYVTd0TiUyQkV6VDRT d3NlZTRJcENmb3RIM1Z3ZzQlM0QmcmVzZXJ2ZWQ9MD4lN0MxNjRjMWZmNzM1MGE0ZjYzNzNlDQoN Cg0KZTA4ZDUzMGU4YjU5MSU3QzY4NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3 QzAlN0M2MzY0Ng0KDQoNCjg2OTgzOTc3MDU4Njkmc2RhdGE9Tzc4azhyNnRjSzlmd3B1VHVRODJa WEdpV2tCdExkdWY0YnFyTTZENkwxVSUNCg0KM0QmcmVzZXJ2ZWQ9MA0KDQoNCldoZXJlIG5vIEFN TCBtZXRob2QgaXMgZXhwb3NlZC4gVGhlbiBJIGV4cGVjdCBPUyBkcml2ZXIgdG8gbWFuYWdlDQp0 aGlzDQpkZXZpY2UuDQoNCldoaWxlIGdyZXBwaW5nIG92ZXIgZmV3IG90aGVyIGVkazItcGxhdGZv cm1zLiAgTG9va3Mgc29tZSBvZg0KbWV0aG9kcyBhcmUgYWJzdHJhY3RlZCwgbm90IHdob2xlIGRl dmljZS4NCg0KU28gd2hhdCBpcyB5b3VyIHBvaW50PyBXaHkgZG9lcyB0aGlzIGFyZ3VlIGluIGZh dm9yIG9mIGFsbG93aW5nDQpQUlAwMDAxICsgY29tcGF0aWJsZT8NCg0KSSBhbSBzZWVraW5nIHlv dXIgaGVscCBoZXJlIHRvIGRlZmluZSBISUQgYW5kIENJRCwgIHBsZWFzZSBzZWUgYWJvdmUNCkFs c28gZm9yIG5vbi1OWFAgZGV2aWNlcywgaG93IHRvIGRlZmluZSBISUQgKGlmIFBSUDAwMDEgKyBj b21wYXRpYmxlDQpub3QgdG8gYmUgdXNlZCkNCg0KVGhpcyBjb3VsZCBiZSBhIHZhbGlkIHJlYXNv biB0byB1c2UgUFJQMDAwMSArIGNvbXBhdGlibGUsIGZvciB0aGluZ3MNCmxpa2UgSTJDIHNsYXZl cyB0aGF0IGFyZSBleHRlcm5hbCB0byB0aGUgU29DDQoNCldlbGwsICBmb3IgaW50ZXJuYWwgU09D IGRldmljZXMsIEkgYW0gaW4gYWdyZWVtZW50IHRvIHVzZSBOWFAgc3BlY2lmaWMNCkhJRHMgQnV0 IGZvciBleHRlcm5hbCBkZXZpY2VzIChmb3Igd2hpY2ggSElEIGlzIG5vdCBhdmFpbGFibGUpLCB5 b3UNCnN1Z2dlc3QgdG8gZ28gV2l0aCBQUlAwMDAxICsgY29tcGF0aWJsZQ0KDQoNCkEgRFQgZGV2 aWNlIGRlc2NyaWJlcyBldmVyeXRoaW5nIGluIGRldGFpbCwgYW5kIHJlcXVpcmVzIGNsb2NrDQph bmQgcmVndWxhdG9yIGRyaXZlcnMgYW5kIG90aGVyIGJpdHMgYW5kIHBpZWNlcyB0aGF0IGFyZSB0 aWdodGx5DQpjb3VwbGVkIHRvIGRldGFpbHMgb2YgdGhlIGhhcmR3YXJlLg0KDQpTbyBub3csIHlv dSBoYXZlIHRoZSB3b3JzdCBvZiBib3RoIHdvcmxkczoNCg0KLSB5b3UgbmVlZCB0byBpbXBsZW1l bnQgYWxsIG9mIHRoaXMgaW4gZmlybXdhcmUgc28gQUNQSSBjYW4NCnN1cHBvcnQgaXQsDQotIHlv dSBoYXZlIHRvIGV4cG9zZSB0aGUgaW50ZXJuYWxzIHRvIHRoZSBPUyBzbyBEVCBjYW4gc3VwcG9y dCBpdC4NCg0KWWVzLCBmb3IgdGltZSBiZWluZyBvciBtYXkgYmUgbG9uZ2VyLCBEVCBzdXBwb3J0 IG5lZWRzIHRvIGJlIHRoZXJlDQphbG9uZyB3aXRoIEFDUEkgaW50cm9kdWN0aW9uLg0KDQpBcmUg eW91IHN1Z2dlc3RpbmcgaGVyZSB0byBhYnN0cmFjdCB3aG9sZSBkZXZpY2UgZGV0YWlscyBmcm9t IE9TDQphbmQgZXhwb3NlIEFNTCBtZXRob2RzIHRvIGJlIHVzZWQgYnkgZGV2aWNlIGRyaXZlci4N CkFuZCBtYWludGFpbiB0d28gZHJpdmVycyBpbnN0ZWFkIG9mIGZpdHRpbmcgRFQgc3R5bGUgZHJp dmVyIGludG8gQUNQSSB3b3JsZA0KPw0KDQoNCg0KTm8uIFlvdSBzaG91bGQgdXBkYXRlIHRoZSBk cml2ZXIgc28gaXQgY2FuIHN1cHBvcnQgYm90aCBBQ1BJIGFuZCBEVA0KYmluZGluZ3MuDQoNClRo YXQgd2F5LCB0aGUgZHJpdmVyIGNhbiB1c2UgdGhlIGFic3RyYWN0aW9ucyBvZmZlcmVkIGJ5IEFD UEkgd2hlbg0KaXQgY2FuLCBhbmQgY2FuIGludm9rZSB0aGUgY2xvY2sgYW5kIHJlZ3VsYXRvciBm cmFtZXdvcmtzIGFuZCBvdGhlcg0KbG93IGxldmVsIGluZnJhc3RydWN0dXJlIG9ubHkgd2hlbiBp dCBuZWVkcyB0by4NCg0KT2ssIEkgYW0gYWxpZ24gb24gdGhpcywgdG8gaGF2ZSBvbmUgZHJpdmVy IHdoaWNoIHN1cHBvcnRzIGJvdGguDQoNCg0KTGV0IG1lIHRyeSB0byBpbGx1c3RyYXRlIHRoaXMg YSBiaXQgYmV0dGVyOiBpbWFnaW5lIGEgTlhQIGN1c3RvbWVyDQp0aGF0IHJ1bnMgYSBkYXRhY2Vu dGVyIHRoYXQgaGFzIDEwLDAwMCBOWFAgc2VydmVycywgYW5kIGlzIHVzaW5nDQpSSEVMIHgueS4g VGhlIGJ1c2luZXNzIGlzIGdvaW5nIHdlbGwsIGFuZCBhdCBzb21lIHBvaW50LCBoZSB3YW50cw0K dG8gb3JkZXIgYW5vdGhlcg0KMiwwMDAgc2VydmVycy4NCg0KVW5mb3J0dW5hdGVseSwgdGhlIHZl bmRvciBjYW5ub3Qgc3VwcGx5IHRoZSBleGFjdCBzYW1lIHJldmlzaW9uIG9mDQp0aGUgaGFyZHdh cmUsIGFuZCB0aGUgbGF0ZXN0IHJldmlzaW9uIHVzZXMgc29tZSBjb21wb25lbnQgdGhhdCBpcw0K bm90IHN1cHBvcnRlZCBpbiBSSEVMIHgueS4NCg0KWW91IG5vdyBoYXZlIG1hZGUgeW91ciBjdXN0 b21lciB2ZXJ5IHVuaGFwcHkuIEhlIGludmVzdGVkIGluIFJIRUwNCmFuZCBBQ1BJIGJhc2VkIHNl cnZlcnMgcHJlY2lzZWx5IHRvIGF2b2lkIHRoaXMgc2l0dWF0aW9uLiBUaGUgY29zdA0Kb2YgYWRk aW5nIDIsMDAwIHNlcnZlcnMgbm93IGluY2x1ZGVzIHRoZSBjb3N0IG9mIHVwZ3JhZGluZyB0aGUN Cm90aGVyDQoxMCwwMDAgc2VydmVycyB0byBhIG5ldyBPUyB2ZXJzaW9uIG9yIHRoZSBjb3N0IG9m IHN1cHBvcnRpbmcgdHdvDQpkaWZmZXJlbnQgT1MgdmVyc2lvbnMgYXQgdGhlIHNhbWUgdGltZSwg Zm9yIGEgcmVhc29uIHRoYXQgaXMgbm90IGp1c3RpZmlhYmxlLg0KDQpEbyB5b3UgbWVhbiBoZXJl IHdpdGggUFJQMDAwMSBISUQvQ0lELCB3ZSBjYW5ub3QgdXNlIEFNTCBtZXRob2RzLg0KDQpZb3Ug Y2Fubm90IHVzZSB0aGUgYWJzdHJhY3Rpb25zIEFDUEkgcHJvdmlkZXMgd2hlbiB1c2luZyBQUlAw MDAxICsNCmNvbXBhdGlibGUuDQpPaCwgdGh4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCmVkazItZGV2ZWxA bGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCmh0dHBzOi8vbGlz dHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KDQo=