From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v4] docs: add PVH specification Date: Tue, 23 Sep 2014 18:17:18 +0200 Message-ID: <1411489038-10247-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XWSmW-0001ur-MN for xen-devel@lists.xenproject.org; Tue, 23 Sep 2014 16:17:36 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: David Vrabel , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgZG9jdW1lbnQgdGhhdCBkZXNjcmliZXMgdGhlIGludGVyZmFjZXMgdXNlZCBv biBQVkguIFRoaXMKZG9jdW1lbnQgaGFzIGJlZW4gZGVzaWduZWQgZnJvbSBhIGd1ZXN0IE9TIHBv aW50IG9mIHZpZXcgKGkuZS46IHdoYXQgYSBndWVzdApuZWVkcyB0byBkbyBpbiBvcmRlciB0byBz dXBwb3J0IFBWSCkuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVA Y2l0cml4LmNvbT4KQWNrZWQtYnk6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5j b20+CkFja2VkLWJ5OiBNdWtlc2ggUmF0aG9yIDxtdWtlc2gucmF0aG9yQG9yYWNsZS5jb20+ClJl dmlld2VkLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+ CkNjOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNjOiBNdWtlc2ggUmF0aG9yIDxt dWtlc2gucmF0aG9yQG9yYWNsZS5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJh ZC53aWxrQG9yYWNsZS5jb20+CkNjOiBEYXZpZCBWcmFiZWwgPGRhdmlkLnZyYWJlbEBjaXRyaXgu Y29tPgotLS0KVGhlIGRvY3VtZW50IGlzIHN0aWxsIGZhciBmcm9tIGNvbXBsZXRlIElNSE8sIGJ1 dCBpdCBtaWdodCBiZSBiZXN0IHRvIGp1c3QKY29tbWl0IHdoYXQgd2UgY3VycmVudGx5IGhhdmUg cmF0aGVyIHRoYW4gd2FpdCBmb3IgYSBmdWxsIGRvY3VtZW50LgoKSSB3aWxsIHRyeSB0byBmaWxs IHRoZSBnYXBzIGFzIEkgZ28gaW1wbGVtZW50aW5nIG5ldyBmZWF0dXJlcyBvbiBGcmVlQlNELgoK SSd2ZSByZXRhaW5lZCBEYXZpZCdzIEFjayBmcm9tIHYyIGluIHRoaXMgdmVyc2lvbi4KLS0tCiBk b2NzL21pc2MvcHZoLm1hcmtkb3duIHwgMzc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAzNzcgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRvY3MvbWlzYy9wdmgubWFya2Rvd24KCmRpZmYgLS1naXQgYS9k b2NzL21pc2MvcHZoLm1hcmtkb3duIGIvZG9jcy9taXNjL3B2aC5tYXJrZG93bgpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzM1YjE3Ci0tLSAvZGV2L251bGwKKysrIGIvZG9j cy9taXNjL3B2aC5tYXJrZG93bgpAQCAtMCwwICsxLDM3NyBAQAorIyBQVkggU3BlY2lmaWNhdGlv biAjCisKKyMjIFJhdGlvbmFsZSAjIworCitQVkggaXMgYSBuZXcga2luZCBvZiBndWVzdCB0aGF0 IGhhcyBiZWVuIGludHJvZHVjZWQgb24gWGVuIDQuNCBhcyBhIERvbVUsIGFuZAorb24gWGVuIDQu NSBhcyBhIERvbTAuIFRoZSBhaW0gb2YgUFZIIGlzIHRvIG1ha2UgdXNlIG9mIHRoZSBoYXJkd2Fy ZQordmlydHVhbGl6YXRpb24gZXh0ZW5zaW9ucyBwcmVzZW50IGluIG1vZGVybiB4ODYgQ1BVcyBp biBvcmRlciB0bworaW1wcm92ZSBwZXJmb3JtYW5jZS4KKworUFZIIGlzIGNvbnNpZGVyZWQgYSBt aXggYmV0d2VlbiBQViBhbmQgSFZNLCBhbmQgY2FuIGJlIHNlZW4gYXMgYSBQViBndWVzdAordGhh dCBydW5zIGluc2lkZSBvZiBhbiBIVk0gY29udGFpbmVyLCBvciBhcyBhIFBWSFZNIGd1ZXN0IHdp dGhvdXQgYW55IGVtdWxhdGVkCitkZXZpY2VzLiBUaGUgZGVzaWduIGdvYWwgb2YgUFZIIGlzIHRv IHByb3ZpZGUgdGhlIGJlc3QgcGVyZm9ybWFuY2UgcG9zc2libGUgYW5kCit0byByZWR1Y2UgdGhl IGFtb3VudCBvZiBtb2RpZmljYXRpb25zIG5lZWRlZCBmb3IgYSBndWVzdCBPUyB0byBydW4gaW4g dGhpcyBtb2RlCisoY29tcGFyZWQgdG8gcHVyZSBQVikuCisKK1RoaXMgZG9jdW1lbnQgdHJpZXMg dG8gZGVzY3JpYmUgdGhlIGludGVyZmFjZXMgdXNlZCBieSBQVkggZ3Vlc3RzLCBmb2N1c2luZwor b24gaG93IGFuIE9TIHNob3VsZCBtYWtlIHVzZSBvZiB0aGVtIGluIG9yZGVyIHRvIHN1cHBvcnQg UFZILgorCisjIyBFYXJseSBib290ICMjCisKK1BWSCBndWVzdHMgdXNlIHRoZSBQViBib290IG1l Y2hhbmlzbSwgdGhhdCBtZWFucyB0aGF0IHRoZSBrZXJuZWwgaXMgbG9hZGVkIGFuZAorZGlyZWN0 bHkgbGF1bmNoZWQgYnkgWGVuIChieSBqdW1waW5nIGludG8gdGhlIGVudHJ5IHBvaW50KS4gSW4g b3JkZXIgdG8gZG8gdGhpcworWGVuIEVMRiBOb3RlcyBuZWVkIHRvIGJlIGFkZGVkIHRvIHRoZSBn dWVzdCBrZXJuZWwsIHNvIHRoYXQgdGhleSBjb250YWluIHRoZQoraW5mb3JtYXRpb24gbmVlZGVk IGJ5IFhlbi4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIHRoZSBFTEYgTm90ZXMgYWRkZWQgdG8gdGhl CitGcmVlQlNEIGFtZDY0IGtlcm5lbCBpbiBvcmRlciB0byBib290IGFzIFBWSDoKKworICAgIEVM Rk5PVEUoWGVuLCBYRU5fRUxGTk9URV9HVUVTVF9PUywgICAgICAgLmFzY2l6LCAiRnJlZUJTRCIp CisgICAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX0dVRVNUX1ZFUlNJT04sICAuYXNjaXosIF9f WFNUUklORyhfX0ZyZWVCU0RfdmVyc2lvbikpCisgICAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RF X1hFTl9WRVJTSU9OLCAgICAuYXNjaXosICJ4ZW4tMy4wIikKKyAgICBFTEZOT1RFKFhlbiwgWEVO X0VMRk5PVEVfVklSVF9CQVNFLCAgICAgIC5xdWFkLCAgS0VSTkJBU0UpCisgICAgRUxGTk9URShY ZW4sIFhFTl9FTEZOT1RFX1BBRERSX09GRlNFVCwgICAucXVhZCwgIEtFUk5CQVNFKQorICAgIEVM Rk5PVEUoWGVuLCBYRU5fRUxGTk9URV9FTlRSWSwgICAgICAgICAgLnF1YWQsICB4ZW5fc3RhcnQp CisgICAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX0hZUEVSQ0FMTF9QQUdFLCAucXVhZCwgIGh5 cGVyY2FsbF9wYWdlKQorICAgIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9IVl9TVEFSVF9MT1cs ICAgLnF1YWQsICBIWVBFUlZJU09SX1ZJUlRfU1RBUlQpCisgICAgRUxGTk9URShYZW4sIFhFTl9F TEZOT1RFX0ZFQVRVUkVTLCAgICAgICAuYXNjaXosICJ3cml0YWJsZV9kZXNjcmlwdG9yX3RhYmxl c3xhdXRvX3RyYW5zbGF0ZWRfcGh5c21hcHxzdXBlcnZpc29yX21vZGVfa2VybmVsfGh2bV9jYWxs YmFja192ZWN0b3IiKQorICAgIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9QQUVfTU9ERSwgICAg ICAgLmFzY2l6LCAieWVzIikKKyAgICBFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfTDFfTUZOX1ZB TElELCAgIC5sb25nLCAgUEdfViwgUEdfVikKKyAgICBFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVf TE9BREVSLCAgICAgICAgIC5hc2NpeiwgImdlbmVyaWMiKQorICAgIEVMRk5PVEUoWGVuLCBYRU5f RUxGTk9URV9TVVNQRU5EX0NBTkNFTCwgLmxvbmcsICAwKQorICAgIEVMRk5PVEUoWGVuLCBYRU5f RUxGTk9URV9CU0RfU1lNVEFCLCAgICAgLmFzY2l6LCAieWVzIikKKworT24gdGhlIExpbnV4IHNp ZGUsIHRoZSBhYm92ZSBjYW4gYmUgZm91bmQgaW4gYGFyY2gveDg2L3hlbi94ZW4taGVhZC5TYC4K KworSXQgaXMgaW1wb3J0YW50IHRvIGhpZ2hsaWdodCB0aGUgZm9sbG93aW5nIG5vdGVzOgorCisg ICogYFhFTl9FTEZOT1RFX0VOVFJZYDogY29udGFpbnMgdGhlIHZpcnR1YWwgbWVtb3J5IGFkZHJl c3Mgb2YgdGhlIGtlcm5lbCBlbnRyeQorICAgIHBvaW50LgorICAqIGBYRU5fRUxGTk9URV9IWVBF UkNBTExfUEFHRWA6IGNvbnRhaW5zIHRoZSB2aXJ0dWFsIG1lbW9yeSBhZGRyZXNzIG9mIHRoZQor ICAgIGh5cGVyY2FsIHBhZ2UgaW5zaWRlIG9mIHRoZSBndWVzdCBrZXJuZWwgKHRoaXMgbWVtb3J5 IHJlZ2lvbiB3aWxsIGJlIGZpbGxlZAorICAgIGJ5IFhlbiBwcmlvciB0byBib290aW5nKS4KKyAg KiBgWEVOX0VMRk5PVEVfRkVBVFVSRVNgOiBjb250YWlucyB0aGUgbGlzdCBvZiBmZWF0dXJlcyBz dXBwb3J0ZWQgYnkgdGhlIGtlcm5lbC4KKyAgICBJbiB0aGUgZXhhbXBsZSBhYm92ZSB0aGUga2Vy bmVsIGlzIG9ubHkgYWJsZSB0byBib290IGFzIGEgUFZIIGd1ZXN0LCBidXQKKyAgICB0aG9zZSBv cHRpb25zIGNhbiBiZSBtaXhlZCB3aXRoIHRoZSBvbmVzIHVzZWQgYnkgcHVyZSBQViBndWVzdHMg aW4gb3JkZXIgdG8KKyAgICBoYXZlIGEga2VybmVsIHRoYXQgc3VwcG9ydHMgYm90aCBQViBhbmQg UFZIIChsaWtlIExpbnV4KS4gVGhlIGxpc3Qgb2YKKyAgICBvcHRpb25zIGF2YWlsYWJsZSBjYW4g YmUgZm91bmQgaW4gdGhlIGBmZWF0dXJlcy5oYCBwdWJsaWMgaGVhZGVyLiBOb3RlIHRoYXQKKyAg ICBpbiB0aGUgZXhhbXBsZSBhYm92ZSBgaHZtX2NhbGxiYWNrX3ZlY3RvcmAgaXMgaW4gYFhFTl9F TEZOT1RFX0ZFQVRVUkVTYC4KKyAgICBPbGRlciBoeXBlcnZpc29ycyB3aWxsIGJhbGsgYXQgdGhp cyBiZWluZyBwYXJ0IG9mIGl0LCBzbyBpdCBjYW4gYWxzbyBiZSBwdXQKKyAgICBpbiBgWEVOX0VM Rk5PVEVfU1VQUE9SVEVEX0ZFQVRVUkVTYCB3aGljaCBvbGRlciBoeXBlcnZpc29ycyB3aWxsIGln bm9yZS4KKworWGVuIHdpbGwganVtcCBpbnRvIHRoZSBrZXJuZWwgZW50cnkgcG9pbnQgZGVmaW5l ZCBpbiBgWEVOX0VMRk5PVEVfRU5UUllgIHdpdGgKK3BhZ2luZyBlbmFibGVkIChlaXRoZXIgbG9u ZyBtb2RlIG9yIHByb3RlY3RlZCBtb2RlIHdpdGggcGFnaW5nIHR1cm5lZCBvbgorZGVwZW5kaW5n IG9uIHRoZSBrZXJuZWwgYml0bmVzcykgYW5kIHNvbWUgYmFzaWMgcGFnZSB0YWJsZXMgc2V0dXAu IEFuIGltcG9ydGFudAorZGlzdGluY3Rpb24gZm9yIGEgNjRiaXQgUFZIIGlzIHRoYXQgaXQgaXMg bGF1bmNoZWQgYXQgcHJpdmlsZWdlIGxldmVsIDAgYXMKK29wcG9zZWQgdG8gYSA2NGJpdCBQViBn dWVzdCB3aGljaCBpcyBsYXVuY2hlZCBhdCBwcml2aWxlZ2UgbGV2ZWwgMy4KKworQWxzbywgdGhl IGByc2lgIChgZXNpYCBvbiAzMmJpdHMpIHJlZ2lzdGVyIGlzIGdvaW5nIHRvIGNvbnRhaW4gdGhl IHZpcnR1YWwKK21lbW9yeSBhZGRyZXNzIHdlcmUgWGVuIGhhcyBwbGFjZWQgdGhlIGBzdGFydF9p bmZvYCBzdHJ1Y3R1cmUuIFRoZSBgcnNwYCAoYGVzcGAKK29uIDMyYml0cykgd2lsbCBwb2ludCB0 byB0aGUgdG9wIG9mIGFuIGluaXRpYWwgc2luZ2xlIHBhZ2Ugc3RhY2ssIHRoYXQgY2FuIGJlCit1 c2VkIGJ5IHRoZSBndWVzdCBrZXJuZWwuIFRoZSBgc3RhcnRfaW5mb2Agc3RydWN0dXJlIGNvbnRh aW5zIGFsbCB0aGUgaW5mbyB0aGUKK2d1ZXN0IG5lZWRzIGluIG9yZGVyIHRvIGluaXRpYWxpemUu IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnRlbnRzIGNhbiBiZQorZm91bmQgaW4gdGhl IGB4ZW4uaGAgcHVibGljIGhlYWRlci4KKworIyMjIEluaXRpYWwgYW1kNjQgY29udHJvbCByZWdp c3RlcnMgdmFsdWVzICMjIworCitJbml0aWFsIHZhbHVlcyBmb3IgdGhlIGNvbnRyb2wgcmVnaXN0 ZXJzIGFyZSBzZXQgdXAgYnkgWGVuIGJlZm9yZSBib290aW5nIHRoZQorZ3Vlc3Qga2VybmVsLiBU aGUgZ3Vlc3Qga2VybmVsIGNhbiBleHBlY3QgdG8gZmluZCB0aGUgZm9sbG93aW5nIGZlYXR1cmVz CitlbmFibGVkIGJ5IFhlbi4KKworYENSMGAgaGFzIHRoZSBmb2xsb3dpbmcgYml0cyBzZXQgYnkg WGVuOgorCisgICogUEUgKGJpdCAwKTogcHJvdGVjdGVkIG1vZGUgZW5hYmxlLgorICAqIEVUIChi aXQgNCk6IDM4NyBvciBuZXdlciBwcm9jZXNzb3IuCisgICogUEcgKGJpdCAzMSk6IHBhZ2luZyBl bmFibGVkLgorCitgQ1I0YCBoYXMgdGhlIGZvbGxvd2luZyBiaXRzIHNldCBieSBYZW46CisKKyAg KiBQQUUgKGJpdCA1KTogUEFFIGVuYWJsZWQuCisKK0FuZCBmaW5hbGx5IGluIGBFRkVSYCB0aGUg Zm9sbG93aW5nIGZlYXR1cmVzIGFyZSBlbmFibGVkOgorCisgICogTE1FIChiaXQgOCk6IExvbmcg bW9kZSBlbmFibGUuCisgICogTE1BIChiaXQgMTApOiBMb25nIG1vZGUgYWN0aXZlLgorCitBdCBs ZWFzdCB0aGUgZm9sbG93aW5nIGZsYWdzIGluIGBFRkVSYCBhcmUgZ3VhcmFudGVlZCB0byBiZSBk aXNhYmxlZDoKKworICAqIFNDRSAoYml0IDApOiBTeXN0ZW0gY2FsbCBleHRlbnNpb25zIGRpc2Fi bGVkLgorICAqIE5YRSAoYml0IDExKTogTm8tRXhlY3V0ZSBkaXNhYmxlZC4KKworVGhlcmUncyBu byBndWFyYW50ZWUgYWJvdXQgdGhlIHN0YXRlIG9mIHRoZSBvdGhlciBiaXRzIGluIHRoZSBgRUZF UmAgcmVnaXN0ZXIuCisKK0FsbCB0aGUgc2VnbWVudHMgc2VsZWN0b3JzIGFyZSBzZXQgd2l0aCBh IGZsYXQgYmFzZSBhdCB6ZXJvLgorCitUaGUgYGNzYCBzZWdtZW50IHNlbGVjdG9yIGF0dHJpYnV0 ZXMgYXJlIHNldCB0byAweDBhMDliLCB3aGljaCBkZXNjcmliZXMgYW4KK2V4ZWN1dGFibGUgYW5k IHJlYWRhYmxlIGNvZGUgc2VnbWVudCBvbmx5IGFjY2Vzc2libGUgYnkgdGhlIG1vc3QgcHJpdmls ZWdlZAorbGV2ZWwuIFRoZSBzZWdtZW50IGlzIGFsc28gc2V0IGFzIGEgNjQtYml0IGNvZGUgc2Vn bWVudCAoYExgIGZsYWcgc2V0LCBgRGAgZmxhZwordW5zZXQpLgorCitUaGUgcmVtYWluaW5nIHNl Z21lbnQgc2VsZWN0b3JzIChgZHNgLCBgc3NgLCBgZXNgLCBgZnNgIGFuZCBgZ3NgKSBhcmUgYWxs IHNldAordG8gdGhlIHNhbWUgdmFsdWVzLiBUaGUgYXR0cmlidXRlcyBhcmUgc2V0IHRvIDB4MGMw OTMsIHdoaWNoIGltcGxpZXMgYSByZWFkIGFuZAord3JpdGUgZGF0YSBzZWdtZW50IG9ubHkgYWNj ZXNzaWJsZSBieSB0aGUgbW9zdCBwcml2aWxlZ2VkIGxldmVsLgorCitUaGUgYEZTLmJhc2VgLCBg R1MuYmFzZWAgYW5kIGBLRVJORUxfR1MuYmFzZWAgTVNScyBhcmUgemVyb2VkIG91dC4KKworVGhl IGBJRFRgIGFuZCBgR0RUYCBhcmUgYWxzbyB6ZXJvZWQsIHNvIHRoZSBndWVzdCBtdXN0IGJlIHNw ZWNpYWxseSBjYXJlZnVsIHRvCitub3QgdHJpZ2dlciBhIGZhdWx0IHVudGlsIGFmdGVyIHRoZXkg aGF2ZSBiZWVuIHByb3Blcmx5IHNldC4gVGhlIHdheSBvZiBzZXR0aW5nCit0aGUgSURUIGFuZCB0 aGUgR0RUIGlzIHVzaW5nIHRoZSBuYXRpdmUgaW5zdHJ1Y3Rpb25zIGFzIHdvdWxkIGJlIGRvbmUg b24gYmFyZQorbWV0YWwuCisKK1RoZSBgUkZMQUdTYCByZWdpc3RlciBpcyBndWFyYW50ZWVkIHRv IGJlIGNsZWFyIHdoZW4ganVtcGluZyBpbnRvIHRoZSBrZXJuZWwKK2VudHJ5IHBvaW50LCB3aXRo IHRoZSBleGNlcHRpb24gb2YgdGhlIHJlc2VydmVkIGJpdCAxIHNldC4KKworIyMgTWVtb3J5ICMj CisKK1NpbmNlIFBWSCBndWVzdHMgcmVseSBvbiB2aXJ0dWFsaXphdGlvbiBleHRlbnNpb25zIHBy b3ZpZGVkIGJ5IHRoZSBDUFUsIHRoZXkKK2hhdmUgYWNjZXNzIHRvIGEgaGFyZHdhcmUgdmlydHVh bGl6ZWQgTU1VLCB3aGljaCBtZWFucyBwYWdlLXRhYmxlIHJlbGF0ZWQKK29wZXJhdGlvbnMgc2hv dWxkIHVzZSB0aGUgc2FtZSBpbnN0cnVjdGlvbnMgdXNlZCBvbiBuYXRpdmUuCisKK1RoZXJlIGFy ZSBob3dldmVyIHNvbWUgZGlmZmVyZW5jZXMgd2l0aCBuYXRpdmUuIFRoZSB1c2FnZSBvZiBuYXRp dmUgTVRSUgorb3BlcmF0aW9ucyBpcyBmb3JiaWRkZW4sIGFuZCBgWEVOUEZfKl9tZW10eXBlYCBo eXBlcmNhbGxzIHNob3VsZCBiZSB1c2VkCitpbnN0ZWFkLiBUaGlzIGNhbiBiZSBhdm9pZGVkIGJ5 IHNpbXBseSBub3QgdXNpbmcgTVRSUiBhbmQgc2V0dGluZyBhbGwgdGhlCittZW1vcnkgYXR0cmli dXRlcyB1c2luZyBQQVQsIHdoaWNoIGRvZXNuJ3QgcmVxdWlyZSB0aGUgdXNhZ2Ugb2YgYW55IGh5 cGVyY2FsbHMuCisKK1NpbmNlIFBWSCBkb2Vzbid0IHVzZSBhIEJJT1MgaW4gb3JkZXIgdG8gYm9v dCwgdGhlIHBoeXNpY2FsIG1lbW9yeSBtYXAgaGFzCit0byBiZSByZXRyaWV2ZWQgdXNpbmcgdGhl IGBYRU5NRU1fbWVtb3J5X21hcGAgaHlwZXJjYWxsLCB3aGljaCB3aWxsIHJldHVybgorYW4gZTgy MCBtYXAuIFRoaXMgbWVtb3J5IG1hcCBtaWdodCBjb250YWluIGhvbGVzIHRoYXQgZGVzY3JpYmUg TU1JTyByZWdpb25zLAordGhhdCB3aWxsIGJlIGFscmVhZHkgc2V0dXAgYnkgWGVuLgorCisqVE9E Tyo6IHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggTU1JTyByZWdpb25zLCBy aWdodCBub3cgWGVuCitzZXRzIGFsbCB0aGUgaG9sZXMgaW4gdGhlIG5hdGl2ZSBlODIwIHRvIE1N SU8gcmVnaW9ucyBmb3IgRG9tMCB1cCB0byA0R0IuIFdlCituZWVkIHRvIGRlY2lkZSB3aGF0IHRv IGRvIHdpdGggTU1JTyByZWdpb25zIGFib3ZlIDRHQiBvbiBEb20wLCBhbmQgd2hhdCB0byBkbwor Zm9yIFBWSCBEb21VcyB3aXRoIHBjaS1wYXNzdGhyb3VnaC4KKworSW4gdGhlIGNhc2Ugb2YgYSBn dWVzdCBzdGFydGVkIHdpdGggbWVtb3J5ICE9IG1heG1lbSwgdGhlIGU4MjAgbWVtb3J5IG1hcAor cmV0dXJuZWQgYnkgWGVuIHdpbGwgY29udGFpbiB0aGUgbWVtb3J5IHVwIHRvIG1heG1lbS4gVGhl IGd1ZXN0IGhhcyB0byBiZSB2ZXJ5CitjYXJlZnVsIHRvIG9ubHkgdXNlIHRoZSBsb3dlciBtZW1v cnkgcGFnZXMgdXAgdG8gdGhlIHZhbHVlIGNvbnRhaW5lZCBpbgorYHN0YXJ0X2luZm8tPm5yX3Bh Z2VzYCBiZWNhdXNlIGFueSBtZW1vcnkgcGFnZSBhYm92ZSB0aGF0IHZhbHVlIHdpbGwgbm90IGJl Citwb3B1bGF0ZWQuCisKKyMjIFBoeXNpY2FsIGRldmljZXMgIyMKKworV2hlbiBydW5uaW5nIGFz IERvbTAgdGhlIGd1ZXN0IE9TIGhhcyB0aGUgYWJpbGl0eSB0byBpbnRlcmFjdCB3aXRoIHRoZSBw aHlzaWNhbAorZGV2aWNlcyBwcmVzZW50IGluIHRoZSBzeXN0ZW0uIEEgbm90ZSBzaG91bGQgYmUg bWFkZSB0aGF0IFBWSCBndWVzdHMgcmVxdWlyZQorYSB3b3JraW5nIElPTU1VIGluIG9yZGVyIHRv IGludGVyYWN0IHdpdGggcGh5c2ljYWwgZGV2aWNlcy4KKworVGhlIGZpcnN0IHN0ZXAgaW4gb3Jk ZXIgdG8gbWFuaXB1bGF0ZSB0aGUgZGV2aWNlcyBpcyB0byBtYWtlIFhlbiBhd2FyZSBvZgordGhl bS4gRHVlIHRvIHRoZSBmYWN0IHRoYXQgYWxsIHRoZSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBvbiB4 ODYgY29tZXMgZnJvbQorQUNQSSwgRG9tMCBpcyByZXNwb25zaWJsZSBmb3IgcGFyc2luZyB0aGUg QUNQSSB0YWJsZXMgYW5kIG5vdGlmeWluZyBYZW4gYWJvdXQKK3RoZSBkZXZpY2VzIGl0IGZpbmRz LiBUaGlzIGlzIGRvbmUgd2l0aCB0aGUgYFBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZGAKK2h5cGVy Y2FsbC4KKworKlRPRE8qOiBleHBsYWluIHRoZSB3YXkgdG8gcmVnaXN0ZXIgdGhlIGRpZmZlcmVu dCBraW5kcyBvZiBQQ0kgZGV2aWNlcywgbGlrZQorZGV2aWNlcyB3aXRoIHZpcnR1YWwgZnVuY3Rp b25zLgorCisjIyBJbnRlcnJ1cHRzICMjCisKK0FsbCBpbnRlcnJ1cHRzIG9uIFBWSCBndWVzdHMg YXJlIHJvdXRlZCBvdmVyIGV2ZW50IGNoYW5uZWxzLCBzZWUKK1tFdmVudCBDaGFubmVsIEludGVy bmFsc11bZXZlbnRfY2hhbm5lbHNdIGZvciBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0 CitldmVudCBjaGFubmVscy4gSW4gb3JkZXIgdG8gaW5qZWN0IGludGVycnVwdHMgaW50byB0aGUg Z3Vlc3QgYW4gSURUIHZlY3RvciBpcwordXNlZC4gVGhpcyBpcyB0aGUgc2FtZSBtZWNoYW5pc20g dXNlZCBvbiBQVkhWTSBndWVzdHMsIGFuZCBhbGxvd3MgaGF2aW5nCitwZXItY3B1IGludGVycnVw dHMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZWxpdmVyIHRpbWVycyBvciBJUElzLgorCitJbiBvcmRl ciB0byByZWdpc3RlciB0aGUgY2FsbGJhY2sgSURUIHZlY3RvciB0aGUgYEhWTU9QX3NldF9wYXJh bWAgaHlwZXJjYWxsCitpcyB1c2VkIHdpdGggdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisKKyAgICBk b21pZCA9IERPTUlEX1NFTEYKKyAgICBpbmRleCA9IEhWTV9QQVJBTV9DQUxMQkFDS19JUlEKKyAg ICB2YWx1ZSA9ICgweDIgPDwgNTYpIHwgdmVjdG9yX3ZhbHVlCisKK1RoZSBPUyBoYXMgdG8gcHJv Z3JhbSB0aGUgSURUIGZvciB0aGUgYHZlY3Rvcl92YWx1ZWAgdXNpbmcgdGhlIGJhcmVtZXRhbAor bWVjaGFuaXNtLgorCitJbiBvcmRlciB0byBrbm93IHdoaWNoIGV2ZW50IGNoYW5uZWwgaGFzIGZp cmVkLCB3ZSBuZWVkIHRvIGxvb2sgaW50byB0aGUKK2luZm9ybWF0aW9uIHByb3ZpZGVkIGluIHRo ZSBgc2hhcmVkX2luZm9gIHN0cnVjdHVyZS4gVGhlIGBldnRjaG5fcGVuZGluZ2AKK2FycmF5IGlz IHVzZWQgYXMgYSBiaXRtYXAgaW4gb3JkZXIgdG8gZmluZCBvdXQgd2hpY2ggZXZlbnQgY2hhbm5l bCBoYXMKK2ZpcmVkLiBFdmVudCBjaGFubmVscyBjYW4gYWxzbyBiZSBtYXNrZWQgYnkgc2V0dGlu ZyBpdCdzIHBvcnQgdmFsdWUgaW4gdGhlCitgc2hhcmVkX2luZm8tPmV2dGNobl9tYXNrYCBiaXRt YXAuCisKKyMjIyBJbnRlcnJ1cHRzIGZyb20gcGh5c2ljYWwgZGV2aWNlcyAjIyMKKworV2hlbiBy dW5uaW5nIGFzIERvbTAgKG9yIHdoZW4gdXNpbmcgcGNpLXBhc3N0aHJvdWdoKSBpbnRlcnJ1cHRz IGZyb20gcGh5c2ljYWwKK2RldmljZXMgYXJlIHJvdXRlZCBvdmVyIGV2ZW50IGNoYW5uZWxzLiBU aGVyZSBhcmUgMyBkaWZmZXJlbnQga2luZCBvZgorcGh5c2ljYWwgaW50ZXJydXB0cyB0aGF0IGNh biBiZSByb3V0ZWQgb3ZlciBldmVudCBjaGFubmVscyBieSBYZW46IElPIEFQSUMsCitNU0kgYW5k IE1TSS1YIGludGVycnVwdHMuCisKK1NpbmNlIHBoeXNpY2FsIGludGVycnVwdHMgdXN1YWxseSBu ZWVkIEVPSSAoRW5kIE9mIEludGVycnVwdCksIFhlbiBhbGxvd3MgdGhlCityZWdpc3RyYXRpb24g b2YgYSBtZW1vcnkgcmVnaW9uIHRoYXQgd2lsbCBjb250YWluIHdoZXRoZXIgYSBwaHlzaWNhbCBp bnRlcnJ1cHQKK25lZWRzIEVPSSBmcm9tIHRoZSBndWVzdCBvciBub3QuIFRoaXMgaXMgZG9uZSB3 aXRoIHRoZQorYFBIWVNERVZPUF9waXJxX2VvaV9nbWZuX3YyYCBoeXBlcmNhbGwgdGhhdCB0YWtl cyBhIHBhcmFtZXRlciBjb250YWluaW5nIHRoZQorcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgbWVt b3J5IHBhZ2UgdGhhdCB3aWxsIGFjdCBhcyBhIGJpdG1hcC4gVGhlbiBpbiBvcmRlciB0bworZmlu ZCBvdXQgaWYgYW4gSVJRIG5lZWRzIEVPSSBvciBub3QsIHRoZSBPUyBjYW4gcGVyZm9ybSBhIHNp bXBsZSBiaXQgdGVzdCBvbiB0aGUKK21lbW9yeSBwYWdlIHVzaW5nIHRoZSBQSVJRIHZhbHVlLgor CisjIyMgSU8gQVBJQyBpbnRlcnJ1cHQgcm91dGluZyAjIyMKKworSU8gQVBJQyBpbnRlcnJ1cHRz IGNhbiBiZSByb3V0ZWQgb3ZlciBldmVudCBjaGFubmVscyB1c2luZyBgUEhZU0RFVk9QYAoraHlw ZXJjYWxscy4gRmlyc3QgdGhlIElSUSBpcyByZWdpc3RlcmVkIHVzaW5nIHRoZSBgUEhZU0RFVk9Q X21hcF9waXJxYAoraHlwZXJjYWxsLCBhcyBhbiBleGFtcGxlIElSUSM5IGlzIHVzZWQgaGVyZToK KworICAgIGRvbWlkID0gRE9NSURfU0VMRgorICAgIHR5cGUgPSBNQVBfUElSUV9UWVBFX0dTSQor ICAgIGluZGV4ID0gOQorICAgIHBpcnEgPSA5CisKK1RoZSBJUlEjOSBpcyBub3cgcmVnaXN0ZXJl ZCBhcyBQSVJRIzkuIFRoZSB0cmlnZ2VyaW5nIGFuZCBwb2xhcml0eSBjYW4gYWxzbworYmUgY29u ZmlndXJlZCB1c2luZyB0aGUgYFBIWVNERVZPUF9zZXR1cF9nc2lgIGh5cGVyY2FsbDoKKworICAg IGdzaSA9IDkgIyBUaGlzIGlzIHRoZSBJUlEgdmFsdWUuCisgICAgdHJpZ2dlcmluZyA9IDAKKyAg ICBwb2xhcml0eSA9IDAKKworSW4gdGhpcyBleGFtcGxlIHRoZSBJUlEgd291bGQgYmUgY29uZmln dXJlZCB0byB1c2UgZWRnZSB0cmlnZ2VyaW5nIGFuZCBoaWdoCitwb2xhcml0eS4KKworRmluYWxs eSB0aGUgUElSUSBjYW4gYmUgYm91bmQgdG8gYW4gZXZlbnQgY2hhbm5lbCB1c2luZyB0aGUKK2BF VlRDSE5PUF9iaW5kX3BpcnFgLCB0aGF0IHdpbGwgcmV0dXJuIHRoZSBldmVudCBjaGFubmVsIHBv cnQgdGhlIFBJUlEgaGFzIGJlZW4KK2Fzc2lnbmVkLiBBZnRlciB0aGlzIHRoZSBldmVudCBjaGFu bmVsIHdpbGwgYmUgcmVhZHkgZm9yIGRlbGl2ZXJ5LgorCisqTk9URSo6IHdoZW4gcnVubmluZyBh cyBEb20wLCB0aGUgZ3Vlc3QgaGFzIHRvIHBhcnNlIHRoZSBpbnRlcnJ1cHQgb3ZlcnJpZGVzCitm b3VuZCBvbiB0aGUgQUNQSSB0YWJsZXMgYW5kIG5vdGlmeSBYZW4gYWJvdXQgdGhlbS4KKworIyMj IE1TSSAjIyMKKworSW4gb3JkZXIgdG8gY29uZmlndXJlIE1TSSBpbnRlcnJ1cHRzIGZvciBhIGRl dmljZSwgWGVuIG11c3QgYmUgbWFkZSBhd2FyZSBvZgoraXQncyBwcmVzZW5jZSBmaXJzdCBieSB1 c2luZyB0aGUgYFBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZGAgYXMgZGVzY3JpYmVkIGFib3ZlLgor VGhlbiB0aGUgYFBIWVNERVZPUF9tYXBfcGlycWAgaHlwZXJjYWxsIGlzIHVzZWQ6CisKKyAgICBk b21pZCA9IERPTUlEX1NFTEYKKyAgICB0eXBlID0gTUFQX1BJUlFfVFlQRV9NU0lfU0VHIG9yIE1B UF9QSVJRX1RZUEVfTVVMVElfTVNJCisgICAgaW5kZXggPSAtMQorICAgIHBpcnEgPSAtMQorICAg IGJ1cyA9IHBjaV9kZXZpY2VfYnVzCisgICAgZGV2Zm4gPSBwY2lfZGV2aWNlX2Z1bmN0aW9uCisg ICAgZW50cnlfbnIgPSBudW1iZXIgb2YgTVNJIGludGVycnVwdHMKKworVGhlIHR5cGUgaGFzIHRv IGJlIHNldCB0byBgTUFQX1BJUlFfVFlQRV9NU0lfU0VHYCBpZiBvbmx5IG9uZSBNU0kgaW50ZXJy dXB0Citzb3VyY2UgaXMgYmVpbmcgY29uZmlndXJlZC4gT24gZGV2aWNlcyB0aGF0IHN1cHBvcnQg TVNJIGludGVycnVwdCBncm91cHMKK2BNQVBfUElSUV9UWVBFX01VTFRJX01TSWAgY2FuIGJlIHVz ZWQgdG8gY29uZmlndXJlIHRoZW0gYnkgYWxzbyBwbGFjaW5nIHRoZQorbnVtYmVyIG9mIE1TSSBp bnRlcnJ1cHRzIGluIHRoZSBgZW50cnlfbnJgIGZpZWxkLgorCitUaGUgdmFsdWVzIGluIHRoZSBg YnVzYCBhbmQgYGRldmZuYCBmaWVsZCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIG9uZXMgdXNl ZAord2hlbiByZWdpc3RlcmluZyB0aGUgZGV2aWNlIHdpdGggYFBIWVNERVZPUF9wY2lfZGV2aWNl X2FkZGAuCisKKyMjIyBNU0ktWCAjIyMKKworKlRPRE8qOiBob3cgdG8gcmVnaXN0ZXIvdXNlIHRo ZW0uCisKKyMjIEV2ZW50IHRpbWVycyBhbmQgdGltZWNvdW50ZXJzICMjCisKK1NpbmNlIHNvbWUg aGFyZHdhcmUgaXMgbm90IGF2YWlsYWJsZSBvbiBQVkggKGxpa2UgdGhlIGxvY2FsIEFQSUMpLCBY ZW4gcHJvdmlkZXMKK3RoZSBPUyB3aXRoIHN1aXRhYmxlIHJlcGxhY2VtZW50cyBpbiBvcmRlciB0 byBnZXQgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eS4gT25lCitvZiB0aGVtIGlzIHRoZSB0aW1lciBp bnRlcmZhY2UuIFVzaW5nIGEgc2V0IG9mIGh5cGVyY2FsbHMsIGEgZ3Vlc3QgT1MgY2FuIHNldAor ZXZlbnQgdGltZXJzIHRoYXQgd2lsbCBkZWxpdmVyIGFuZCBldmVudCBjaGFubmVsIGludGVycnVw dCB0byB0aGUgZ3Vlc3QuCisKK0luIG9yZGVyIHRvIHVzZSB0aGUgdGltZXIgcHJvdmlkZWQgYnkg WGVuIHRoZSBndWVzdCBPUyBmaXJzdCBuZWVkcyB0byByZWdpc3RlcgorYSBWSVJRIGV2ZW50IGNo YW5uZWwgdG8gYmUgdXNlZCBieSB0aGUgdGltZXIgdG8gZGVsaXZlciB0aGUgaW50ZXJydXB0cy4g VGhlCitldmVudCBjaGFubmVsIGlzIHJlZ2lzdGVyZWQgdXNpbmcgdGhlIGBFVlRDSE5PUF9iaW5k X3ZpcnFgIGh5cGVyY2FsbCwgdGhhdAorb25seSB0YWtlcyB0d28gcGFyYW1ldGVyczoKKworICAg IHZpcnEgPSBWSVJRX1RJTUVSCisgICAgdmNwdSA9IHZjcHVfaWQKKworVGhlIHBvcnQgdGhhdCdz IGdvaW5nIHRvIGJlIHVzZWQgYnkgWGVuIGluIG9yZGVyIHRvIGRlbGl2ZXIgdGhlIGludGVycnVw dCBpcworcmV0dXJuZWQgaW4gdGhlIGBwb3J0YCBmaWVsZC4gT25jZSB0aGUgaW50ZXJydXB0IGlz IHNldCwgdGhlIHRpbWVyIGNhbiBiZQorcHJvZ3JhbW1lZCB1c2luZyB0aGUgYFZDUFVPUF9zZXRf c2luZ2xlc2hvdF90aW1lcmAgaHlwZXJjYWxsLgorCisgICAgZmxhZ3MgPSBWQ1BVX1NTSE9UVE1S X2Z1dHVyZQorICAgIHRpbWVvdXRfYWJzX25zID0gYWJzb2x1dGUgdmFsdWUgd2hlbiB0aGUgdGlt ZXIgc2hvdWxkIGZpcmUKKworSXQgaXMgaW1wb3J0YW50IHRvIG5vdGljZSB0aGF0IHRoZSBgVkNQ VU9QX3NldF9zaW5nbGVzaG90X3RpbWVyYCBoeXBlcmNhbGwgbXVzdAorYmUgZXhlY3V0ZWQgZnJv bSB0aGUgc2FtZSB2Q1BVIHdoZXJlIHRoZSB0aW1lciBzaG91bGQgZmlyZSwgb3IgZWxzZSBYZW4g d2lsbAorcmVmdXNlIHRvIHNldCBpdC4gVGhpcyBpcyBhIHNpbmdsZS1zaG90IHRpbWVyLCBzbyBp dCBtdXN0IGJlIHNldCBieSB0aGUgT1MKK2V2ZXJ5IHRpbWUgaXQgZmlyZXMgaWYgYSBwZXJpb2Rp YyB0aW1lciBpcyBkZXNpcmVkLgorCitYZW4gYWxzbyBzaGFyZXMgYSBtZW1vcnkgcmVnaW9uIHdp dGggdGhlIGd1ZXN0IE9TIHRoYXQgY29udGFpbnMgdGltZSByZWxhdGVkCit2YWx1ZXMgdGhhdCBh cmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkuIFRoaXMgdmFsdWVzIGNhbiBiZSB1c2VkIHRvIGltcGxl bWVudCBhCit0aW1lY291bnRlciBvciB0byBvYnRhaW4gdGhlIGN1cnJlbnQgdGltZS4gVGhpcyBp bmZvcm1hdGlvbiBpcyBwbGFjZWQgaW5zaWRlIG9mCitgc2hhcmVkX2luZm8tPnZjcHVfaW5mb1t2 Y3B1X2lkXS50aW1lYC4gVGhlIHVwdGltZSAodGltZSBzaW5jZSB0aGUgZ3Vlc3QgaGFzCitiZWVu IGxhdW5jaGVkKSBjYW4gYmUgY2FsY3VsYXRlZCB1c2luZyB0aGUgZm9sbG93aW5nIGV4cHJlc3Np b24gYW5kIHRoZSB2YWx1ZXMKK3N0b3JlZCBpbiB0aGUgYHZjcHVfdGltZV9pbmZvYCBzdHJ1Y3Q6 CisKKyAgICBzeXN0ZW1fdGltZSArICgoKCh0c2MgLSB0c2NfdGltZXN0YW1wKSA8PCB0c2Nfc2hp ZnQpICogdHNjX3RvX3N5c3RlbV9tdWwpID4+IDMyKQorCitUaGUgdGltZW91dCB0aGF0IGlzIHBh c3NlZCB0byBgVkNQVU9QX3NldF9zaW5nbGVzaG90X3RpbWVyYCBoYXMgdG8gYmUKK2NhbGN1bGF0 ZWQgdXNpbmcgdGhlIGFib3ZlIHZhbHVlLCBwbHVzIHRoZSB0aW1lb3V0IHRoZSBzeXN0ZW0gd2Fu dHMgdG8gc2V0LgorCitJZiB0aGUgT1MgYWxzbyB3YW50cyB0byBvYnRhaW4gdGhlIGN1cnJlbnQg d2FsbGNsb2NrIHRpbWUsIHRoZSB2YWx1ZSBjYWxjdWxhdGVkCithYm92ZSBoYXMgdG8gYmUgYWRk ZWQgdG8gdGhlIHZhbHVlcyBmb3VuZCBpbiBgc2hhcmVkX2luZm8tPndjX3NlY2AgYW5kCitgc2hh cmVkX2luZm8tPndjX25zZWNgLgorCisjIyBTTVAgZGlzY292ZXIgYW5kIGJyaW5nIHVwICMjCisK K1RoZSBwcm9jZXNzIG9mIGJyaW5naW5nIHVwIHNlY29uZGFyeSBDUFVzIGlzIG9idmlvdXNseSBk aWZmZXJlbnQgZnJvbSBuYXRpdmUsCitzaW5jZSBQVkggZG9lc24ndCBoYXZlIGEgbG9jYWwgQVBJ Qy4gVGhlIGZpcnN0IHRoaW5nIHRvIGRvIGlzIHRvIGZpZ3VyZSBvdXQKK2hvdyBtYW55IHZDUFVz IHRoZSBndWVzdCBoYXMuIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUgYFZDUFVPUF9pc191cGAgaHlw ZXJjYWxsLAordXNpbmcgZm9yIGV4YW1wbGUgdGhpcyBzaW1wbGUgbG9vcDoKKworICAgIGZvciAo aSA9IDA7IGkgPCBNQVhDUFU7IGkrKykgeworICAgICAgICByZXQgPSBIWVBFUlZJU09SX3ZjcHVf b3AoVkNQVU9QX2lzX3VwLCBpLCBOVUxMKTsKKyAgICAgICAgaWYgKHJldCA+PSAwKQorICAgICAg ICAgICAgLyogdkNQVSNpIGlzIHByZXNlbnQgKi8KKyAgICB9CisKK05vdGUgdGhhbiB3aGVuIHJ1 bm5pbmcgYXMgRG9tMCwgdGhlIEFDUEkgdGFibGVzIG1pZ2h0IHJlcG9ydCBhIGRpZmZlcmVudCBu dW1iZXIKK29mIGF2YWlsYWJsZSBDUFVzLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHZhbHVlIG9uIHRo ZSBBQ1BJIHRhYmxlcyBpcyB0aGUKK251bWJlciBvZiBwaHlzaWNhbCBDUFVzIHRoZSBob3N0IGhh cywgYW5kIGl0IG1pZ2h0IGJlYXIgbm8gcmVzZW1ibGFuY2Ugd2l0aCB0aGUKK251bWJlciBvZiB2 Q1BVcyBEb20wIGFjdHVhbGx5IGhhcyBzbyBpdCBzaG91bGQgYmUgaWdub3JlZC4KKworSW4gb3Jk ZXIgdG8gYnJpbmcgdXAgdGhlIHNlY29uZGFyeSB2Q1BVcyB0aGV5IG11c3QgYmUgY29uZmlndXJl ZCBmaXJzdC4gVGhpcyBpcworYWNoaWV2ZWQgdXNpbmcgdGhlIGBWQ1BVT1BfaW5pdGlhbGlzZWAg aHlwZXJjYWxsLiBBIHZhbGlkIGNvbnRleHQgaGFzIHRvIGJlCitwYXNzZWQgdG8gdGhlIHZDUFUg aW4gb3JkZXIgdG8gYm9vdC4gVGhlIHJlbGV2YW50IGZpZWxkcyBmb3IgUFZIIGd1ZXN0cyBhcmUK K3RoZSBmb2xsb3dpbmc6CisKKyAgKiBgZmxhZ3NgOiBjb250YWlucyBgVkdDRl8qYCBmbGFncyAo c2VlIGBhcmNoLXg4Ni94ZW4uaGAgcHVibGljIGhlYWRlcikuCisgICogYHVzZXJfcmVnc2A6IHN0 cnVjdCB0aGF0IGNvbnRhaW5zIHRoZSByZWdpc3RlciB2YWx1ZXMgdGhhdCB3aWxsIGJlIHNldCBv bgorICAgIHRoZSB2Q1BVIGJlZm9yZSBib290aW5nLiBBbGwgR1BScyBhcmUgYXZhaWxhYmxlIHRv IGJlIHNldCwgaG93ZXZlciwgdGhlCisgICAgbW9zdCByZWxldmFudCBvbmVzIGFyZSBgcmlwYCBh bmQgYHJzcGAgaW4gb3JkZXIgdG8gc2V0IHRoZSBzdGFydCBhZGRyZXNzCisgICAgYW5kIHRoZSBz dGFjay4gUGxlYXNlIG5vdGUsIGFsbCBzZWxlY3RvcnMgbXVzdCBiZSBudWxsLgorICAqIGBjdHJs cmVnWzNdYDogY29udGFpbnMgdGhlIGFkZHJlc3Mgb2YgdGhlIHBhZ2UgdGFibGVzIHRoYXQgd2ls bCBiZSB1c2VkIGJ5CisgICAgdGhlIHZDUFUuIE90aGVyIGNvbnRyb2wgcmVnaXN0ZXJzIHNob3Vs ZCBiZSBzZXQgdG8gemVybywgb3IgZWxzZSB0aGUKKyAgICBoeXBlcmNhbGwgd2lsbCBmYWlsIHdp dGggLUVJTlZBTC4KKworQWZ0ZXIgdGhlIHZDUFUgaXMgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgcHJv cGVyIHZhbHVlcywgaXQgY2FuIGJlIHN0YXJ0ZWQgYnkKK3VzaW5nIHRoZSBgVkNQVU9QX3VwYCBo eXBlcmNhbGwuIFRoZSB2YWx1ZXMgb2YgdGhlIG90aGVyIGNvbnRyb2wgcmVnaXN0ZXJzIG9mCit0 aGUgdkNQVSB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBvbmVzIGRlc2NyaWJlZCBpbiB0aGUgYGNv bnRyb2wgcmVnaXN0ZXJzYAorc2VjdGlvbi4KKworRXhhbXBsZXMgYWJvdXQgaG93IHRvIGJyaW5n IHVwIHNlY29uZGFyeSBDUFVzIGNhbiBiZSBmb3VuZCBvbiB0aGUgRnJlZUJTRAorY29kZSBiYXNl IGluIGBzeXMveDg2L3hlbi9wdi5jYCBhbmQgb24gTGludXggYGFyY2gveDg2L3hlbi9zbXAuY2Au CisKKyMjIENvbnRyb2wgb3BlcmF0aW9ucyAocmVib290L3NodXRkb3duKSAjIworCitSZWJvb3Qg YW5kIHNodXRkb3duIG9wZXJhdGlvbnMgb24gUFZIIGd1ZXN0cyBhcmUgcGVyZm9ybWVkIHVzaW5n IGh5cGVyY2FsbHMuCitJbiBvcmRlciB0byBpc3N1ZSBhIHJlYm9vdCwgYSBndWVzdCBtdXN0IHVz ZSB0aGUgYFNIVVRET1dOX3JlYm9vdGAgaHlwZXJjYWxsLgorSW4gb3JkZXIgdG8gcGVyZm9ybSBh IHBvd2VyIG9mZiBmcm9tIGEgZ3Vlc3QgRG9tVSwgdGhlIGBTSFVURE9XTl9wb3dlcm9mZmAKK2h5 cGVyY2FsbCBzaG91bGQgYmUgdXNlZC4KKworVGhlIHdheSB0byBwZXJmb3JtIGEgZnVsbCBzeXN0 ZW0gcG93ZXIgb2ZmIGZyb20gRG9tMCBpcyBkaWZmZXJlbnQgdGhhbiB3aGF0J3MKK2RvbmUgaW4g YSBEb21VIGd1ZXN0LiBJbiBvcmRlciB0byBwZXJmb3JtIGEgcG93ZXIgb2ZmIGZyb20gRG9tMCB0 aGUgbmF0aXZlCitBQ1BJIHBhdGggc2hvdWxkIGJlIGZvbGxvd2VkLCBidXQgdGhlIGd1ZXN0IHNo b3VsZCBub3Qgd3JpdGUgdGhlIGBTTFBfRU5gCitiaXQgdG8gdGhlIFBtMUNvbnRyb2wgcmVnaXN0 ZXIuIEluc3RlYWQgdGhlIGBYRU5QRl9lbnRlcl9hY3BpX3NsZWVwYCBoeXBlcmNhbGwKK3Nob3Vs ZCBiZSB1c2VkLCBmaWxsaW5nIHRoZSBmb2xsb3dpbmcgZGF0YSBpbiB0aGUgYHhlbl9wbGF0Zm9y bV9vcGAgc3RydWN0OgorCisgICAgY21kID0gWEVOUEZfZW50ZXJfYWNwaV9zbGVlcAorICAgIGlu dGVyZmFjZV92ZXJzaW9uID0gWEVOUEZfSU5URVJGQUNFX1ZFUlNJT04KKyAgICB1LmVudGVyX2Fj cGlfc2xlZXAucG0xYV9jbnRfdmFsID0gUG0xYUNvbnRyb2xWYWx1ZQorICAgIHUuZW50ZXJfYWNw aV9zbGVlcC5wbTFiX2NudF92YWwgPSBQbTFiQ29udHJvbFZhbHVlCisKK1RoaXMgd2lsbCBhbGxv dyBYZW4gdG8gZG8gaXQncyBjbGVhbiB1cCBhbmQgdG8gcG93ZXIgb2ZmIHRoZSBzeXN0ZW0uIElm IHRoZQoraG9zdCBpcyB1c2luZyBoYXJkd2FyZSByZWR1Y2VkIEFDUEksIHRoZSBmb2xsb3dpbmcg ZmllbGQgc2hvdWxkIGFsc28gYmUgc2V0OgorCisgICAgdS5lbnRlcl9hY3BpX3NsZWVwLmZsYWdz ID0gWEVOUEZfQUNQSV9TTEVFUF9FWFRFTkRFRCAoMHgxKQorCisjIyBDUFVJRCAjIworCitUaGUg Y3B1aWQgaW5zdHJ1Y3Rpb24gdGhhdCBzaG91bGQgYmUgdXNlZCBpcyB0aGUgbm9ybWFsIGBjcHVp ZGAsIG5vdCB0aGUKK2VtdWxhdGVkIGBjcHVpZGAgdGhhdCBQViBndWVzdHMgdXN1YWxseSByZXF1 aXJlLgorCisqVERPRCo6IGRlc2NyaWJlIHdoaWNoIGNwdWlkIGZsYWdzIGEgZ3Vlc3Qgc2hvdWxk IGlnbm9yZSBhbmQgYWxzbyB3aGljaCBmbGFncworZGVzY3JpYmUgZmVhdHVyZXMgY2FuIGJlIHVz ZWQuIEl0IHdvdWxkIGFsc28gYmUgZ29vZCB0byBkZXNjcmliZSB0aGUgc2V0IG9mCitjcHVpZCBm bGFncyB0aGF0IHdpbGwgYWx3YXlzIGJlIHByZXNlbnQgd2hlbiBydW5uaW5nIGFzIFBWSC4KKwor IyMgRmluYWwgbm90ZXMgIyMKKworQWxsIHRoZSBvdGhlciBoYXJkd2FyZSBmdW5jdGlvbmFsaXR5 IG5vdCBkZXNjcmliZWQgaW4gdGhpcyBkb2N1bWVudCBzaG91bGQgYmUKK2Fzc3VtZWQgdG8gYmUg cGVyZm9ybWVkIGluIHRoZSBzYW1lIHdheSBhcyBuYXRpdmUuCisKK1tldmVudF9jaGFubmVsc106 IGh0dHA6Ly93aWtpLnhlbi5vcmcvd2lraS9FdmVudF9DaGFubmVsX0ludGVybmFscwotLSAKMS45 LjMgKEFwcGxlIEdpdC01MCkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=