From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 00/92] VM introspection Date: Fri, 9 Aug 2019 18:59:15 +0300 Message-ID: <20190809160047.8319-1-alazar@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: kvm@vger.kernel.org Cc: Tamas K Lengyel , Weijiang Yang , Yu C , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Jan Kiszka , =?UTF-8?q?Samuel=20Laur=C3=A9n?= , Konrad Rzeszutek Wilk , virtualization@lists.linux-foundation.org, =?UTF-8?q?Adalbert=20Laz=C4=83r?= , linux-mm@kvack.org, Patrick Colp , Mathieu Tarral , Stefan Hajnoczi , Paolo Bonzini , Zhang@mail.linuxfoundation.org, =?UTF-8?q?Mihai=20Don=C8=9Bu?= List-Id: virtualization@lists.linuxfoundation.org VGhlIEtWTSBpbnRyb3NwZWN0aW9uIHN1YnN5c3RlbSBwcm92aWRlcyBhIGZhY2lsaXR5IGZvciBh cHBsaWNhdGlvbnMgcnVubmluZwpvbiB0aGUgaG9zdCBvciBpbiBhIHNlcGFyYXRlIFZNLCB0byBj b250cm9sIHRoZSBleGVjdXRpb24gb2Ygb3RoZXIgVk0tcwoocGF1c2UsIHJlc3VtZSwgc2h1dGRv d24pLCBxdWVyeSB0aGUgc3RhdGUgb2YgdGhlIHZDUFVzIChHUFJzLCBNU1JzIGV0Yy4pLAphbHRl ciB0aGUgcGFnZSBhY2Nlc3MgYml0cyBpbiB0aGUgc2hhZG93IHBhZ2UgdGFibGVzIChvbmx5IGZv ciB0aGUgaGFyZHdhcmUKYmFja2VkIG9uZXMsIGVnLiBJbnRlbCdzIEVQVCkgYW5kIHJlY2VpdmUg bm90aWZpY2F0aW9ucyB3aGVuIGV2ZW50cyBvZgppbnRlcmVzdCBoYXZlIHRha2VuIHBsYWNlIChz aGFkb3cgcGFnZSB0YWJsZSBsZXZlbCBmYXVsdHMsIGtleSBNU1Igd3JpdGVzLApoeXBlcmNhbGxz IGV0Yy4pLiBTb21lIG5vdGlmaWNhdGlvbnMgY2FuIGJlIHJlc3BvbmRlZCB0byB3aXRoIGFuIGFj dGlvbgoobGlrZSBwcmV2ZW50aW5nIGFuIE1TUiBmcm9tIGJlaW5nIHdyaXR0ZW4pLCBvdGhlcnMg YXJlIG1lcmUgaW5mb3JtYXRpdmUKKGxpa2UgYnJlYWtwb2ludCBldmVudHMgd2hpY2ggY2FuIGJl IHVzZWQgZm9yIGV4ZWN1dGlvbiB0cmFjaW5nKS4KV2l0aCBmZXcgZXhjZXB0aW9ucywgYWxsIGV2 ZW50cyBhcmUgb3B0aW9uYWwuIEFuIGFwcGxpY2F0aW9uIHVzaW5nIHRoaXMKc3Vic3lzdGVtIHdp bGwgZXhwbGljaXRseSByZWdpc3RlciBmb3IgdGhlbS4KClRoZSB1c2UgY2FzZSB0aGF0IGdhdmUg d2F5IGZvciB0aGUgY3JlYXRpb24gb2YgdGhpcyBzdWJzeXN0ZW0gaXMgdG8gbW9uaXRvcgp0aGUg Z3Vlc3QgT1MgYW5kIGFzIHN1Y2ggdGhlIEFCSS9BUEkgaXMgaGlnaGx5IGluZmx1ZW5jZWQgYnkg aG93IHRoZSBndWVzdApzb2Z0d2FyZSAoa2VybmVsLCBhcHBsaWNhdGlvbnMpIHNlZXMgdGhlIHdv cmxkLiBGb3IgZXhhbXBsZSwgc29tZSBldmVudHMKcHJvdmlkZSBpbmZvcm1hdGlvbiBzcGVjaWZp YyBmb3IgdGhlIGhvc3QgQ1BVIGFyY2hpdGVjdHVyZQooZWcuIE1TUl9JQTMyX1NZU0VOVEVSX0VJ UCkgbWVyZWx5IGJlY2F1c2UgaXRzIGxldmVyYWdlZCBieSBndWVzdCBzb2Z0d2FyZQp0byBpbXBs ZW1lbnQgYSBjcml0aWNhbCBmZWF0dXJlIChmYXN0IHN5c3RlbSBjYWxscykuCgpBdCB0aGUgbW9t ZW50LCB0aGUgdGFyZ2V0IGF1ZGllbmNlIGZvciBLVk1JIGFyZSBzZWN1cml0eSBzb2Z0d2FyZSBh dXRob3JzCnRoYXQgd2lzaCB0byBwZXJmb3JtIGZvcmVuc2ljcyBvbiBuZXdseSBkaXNjb3ZlcmVk IHRocmVhdHMgKGV4cGxvaXRzKSBvcgp0byBpbXBsZW1lbnQgYW5vdGhlciBsYXllciBvZiBzZWN1 cml0eSBsaWtlIHByZXZlbnRpbmcgYSBsYXJnZSBzZXQgb2YKa2VybmVsIHJvb3RraXRzIHNpbXBs eSBieSAibG9ja2luZyIgdGhlIGtlcm5lbCBpbWFnZSBpbiB0aGUgc2hhZG93IHBhZ2UKdGFibGVz IChpZS4gZW5mb3JjZSAudGV4dCByLXgsIC5yb2RhdGEgcnctIGV0Yy4pLiBJdCdzIHRoZSBsYXR0 ZXIgY2FzZSB0aGF0Cm1hZGUgS1ZNSSBhIHNlcGFyYXRlIHN1YnN5c3RlbSwgZXZlbiB0aG91Z2gg bWFueSBvZiB0aGVzZSBmZWF0dXJlcyBhcmUKYXZhaWxhYmxlIGluIHRoZSBkZXZpY2UgbWFuYWdl ciAoZWcuIFFFTVUpLiBUaGUgYWJpbGl0eSB0byBidWlsZCBhIHNlY3VyaXR5CmFwcGxpY2F0aW9u IHRoYXQgZG9lcyBub3QgaW50ZXJmZXJlIChpbiB0ZXJtcyBvZiBwZXJmb3JtYW5jZSkgd2l0aCB0 aGUKZ3Vlc3Qgc29mdHdhcmUgYXNrcyBmb3IgYSBzcGVjaWFsaXplZCBpbnRlcmZhY2UgdGhhdCBp cyBkZXNpZ25lZCBmb3IgbWluaW11bQpvdmVyaGVhZC4KClRoaXMgcGF0Y2ggc2VyaWVzIGlzIGJh c2VkIG9uIDUuMC1yYzcsCmNvbW1pdCBkZTNjY2QyNmZhZmMgKCJLVk06IE1NVTogcmVjb3JkIG1h eGltdW0gcGh5c2ljYWwgYWRkcmVzcyB3aWR0aCBpbiBrdm1fbW11X2V4dGVuZGVkX3JvbGUiKS4K ClRoZSBwcmV2aW91cyBSRkMgKHY1KSBjYW4gYmUgcmVhZCBoZXJlOgoKCWh0dHBzOi8vd3d3LnNw aW5pY3MubmV0L2xpc3RzL2t2bS9tc2cxNzk0NDEuaHRtbAoKVGhhbmtzIHRvIFNhbXVlbCBMYXVy w6luIGFuZCBNYXRoaWV1IFRhcnJhbCwgdGhlIHByZXZpb3VzIHZlcnNpb24gaGFzCmJlZW4gaW50 ZWdyYXRlZCBhbmQgdGVzdGVkIHdpdGggbGliVk1JLgoKCUtWTS1WTUk6IGh0dHBzOi8vZ2l0aHVi LmNvbS9LVk0tVk1JL2t2bS12bWkKCUtlcm5lbDogIGh0dHBzOi8vZ2l0aHViLmNvbS9LVk0tVk1J L2t2bS90cmVlL2t2bWkKCVFFTVU6ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9LVk0tVk1JL3FlbXUv dHJlZS9rdm1pCgkgICAgICAgICAobm90IGFsbCBwYXRjaGVzLCBidXQgZW5vdWdoIHRvIHdvcmsp CglsaWJWTUk6ICBodHRwczovL2dpdGh1Yi5jb20vS1ZNLVZNSS9saWJ2bWkvdHJlZS9rdm1pCgpU aGFua3MgdG8gV2VpamlhbmcgWWFuZywgdGhlIHByZXZpb3VzIHZlcnNpb24gaGFzIGJlZW4gaW50 ZWdyYXRlZCBhbmQKdGVzdGVkIHdpdGggdGhlIFNQUCBwYXRjaCBzZXJpZXMuCgoJaHR0cHM6Ly9n aXRodWIuY29tL2FkbGF6YXIva3ZtL3RyZWUva3ZtaS12NS1zcHAKClF1aWNrc3RhcnQ6CgoJaHR0 cHM6Ly9naXRodWIuY29tL2FkbGF6YXIva3ZtL2Jsb2Iva3ZtaS12NS1zcHAvdG9vbHMva3ZtL2t2 bWkvUkVBRE1FCgpJIGhvcGUgdGhpcyB2ZXJzaW9uIHdpbGwgYmUgbWVyZ2VkIGludG8gS1ZNLVZN SSBwcm9qZWN0IHRvby4KClBhdGNoZXMgMS0yMDogdW5yb2xsIGEgYmlnIHBhcnQgb2YgdGhlIEtW TSBpbnRyb3NwZWN0aW9uIHN1YnN5c3RlbSwKc2VudCBpbiBvbmUgcGF0Y2ggaW4gdGhlIHByZXZp b3VzIHZlcnNpb25zLgoKUGF0Y2hlcyAyMS0yNDogZXh0ZW5kIHRoZSBjdXJyZW50IHBhZ2UgdHJh Y2tpbmcgY29kZS4KClBhdGNoZXMgMjUtMzM6IG1ha2UgdXNlIG9mIHBhZ2UgdHJhY2tpbmcgdG8g c3VwcG9ydCB0aGUKS1ZNSV9TRVRfUEFHRV9BQ0NFU1MgaW50cm9zcGVjdGlvbiBjb21tYW5kIGFu ZCB0aGUgS1ZNSV9FVkVOVF9QRiBldmVudAoob24gRVBUIHZpb2xhdGlvbnMgY2F1c2VkIGJ5IHRo ZSB0cmFja2luZyBzZXR0aW5ncykuCgpQYXRjaGVzIDM0LTQyOiBpbmNsdWRlIHRoZSBTUFAgZmVh dHVyZSAoRW5hYmxlIFN1Yi1wYWdlCldyaXRlIFByb3RlY3Rpb24gU3VwcG9ydCksIGFscmVhZHkg c2VudCB0byBLVk0gbGlzdDoKCglodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMTkwNzE3 MTMzNzUxLjEyOTEwLTEtd2VpamlhbmcueWFuZ0BpbnRlbC5jb20vCgpQYXRjaGVzIDQzLTQ2OiBh ZGQgdGhlIGNvbW1hbmRzIG5lZWRlZCB0byB1c2UgU1BQLgoKUGF0Y2hlcyA0Ny02MzogdW5yb2xs IGFsbW9zdCBhbGwgdGhlIHJlc3Qgb2YgdGhlIGludHJvc3BlY3Rpb24gY29kZS4KClBhdGNoZXMg NjQtNjc6IGFkZCBzaW5nbGUtc3RlcHBpbmcsIG1vc3RseSBhcyBhIHdheSB0byBvdmVyY29tZSB0 aGUKdW5pbXBsZW1lbnRlZCBpbnN0cnVjdGlvbnMsIGJ1dCBhbHNvIGFzIGEgZmVhdHVyZSBmb3Ig dGhlIGludHJvc3BlY3Rpb24KdG9vbC4KClBhdGNoZXMgNjgtNzA6IGNvdmVyIG1vcmUgY2FzZXMg cmVsYXRlZCB0byBFUFQgdmlvbGF0aW9ucy4KClBhdGNoZXMgNzEtNzM6IGFkZCB0aGUgcmVtb3Rl IG1hcHBpbmcgZmVhdHVyZSwgYWxsb3dpbmcgdGhlIGludHJvc3BlY3Rpb24KdG9vbCB0byBtYXAg aW50byBpdHMgYWRkcmVzcyBzcGFjZSBhIHBhZ2UgZnJvbSBndWVzdCBtZW1vcnkuCgpQYXRjaGVz IDc0OiBhZGQgYSBmaXggdG8gaHlwZXJjYWxsIGVtdWxhdGlvbi4KClBhdGNoZXMgNzUtNzY6IGRp c2FibGUgc29tZSBmZWF0dXJlcy9vcHRpbWl6YXRpb25zIHdoZW4gdGhlIGludHJvc3BlY3Rpb24K Y29kZSBpcyBwcmVzZW50LgoKUGF0Y2hlcyA3Ny03ODogYWRkIHRyYWNlIGZ1bmN0aW9ucyBmb3Ig dGhlIGludHJvc3BlY3Rpb24gY29kZSBhbmQgY2hhbmdlCnNvbWUgcmVsYXRlZCB0byBpbnRlcnJ1 cHRzL2V4Y2VwdGlvbnMgaW5qZWN0aW9uLgoKUGF0Y2hlcyA3OS05MjogbmV3IGluc3RydWN0aW9u IGZvciB0aGUgeDg2IGVtdWxhdG9yLCBpbmNsdWRpbmcgY21weGNoZwpmaXhlcy4KClRvIGRvOgoK ICAtIHJ1biBzdHJlc3MgdGVzdHMgd2l0aCBTUFAgZW5hYmxlZAogIC0gYWRkIGludHJvc3BlY3Rp b24gc3VwcG9ydCBmb3IgYWx0ZXJuYXRlIEVQVCB2aWV3cyAoYWxtb3N0IGRvbmUpCiAgLSBhZGQg aW50cm9zcGVjdGlvbiBzdXBwb3J0IGZvciB2aXJ0dWFsaXphdGlvbiBleGNlcHRpb25zICNWRSAo YWxtb3N0IGRvbmUpCiAgLSBhZGQgS1ZNIHRlc3RzCgpDaGFuZ2VzIHNpbmNlIHY1OgoKICAtIHNt YWxsIGNoYW5nZXMgdG8gdGhlIHByb3RvY29sLCBidXQgZW5vdWdoIHRvIG1ha2UgaXQgYmFja3dh cmQKICAgIGluY29tcGF0aWJsZSB3aXRoIHY1CiAgLSBmaXggQ1IzIGludGVyY2VwdGlvbiAodGhh bmtzIHRvIE1hdGhpZXUgVGFycmFsIGZvciByZXBvcnRpbmcgdGhlIGlzc3VlKQogIC0gYWRkIFNQ UCBzdXBwb3J0ICh0aGFua3MgdG8gV2VpamlhbmcgWWFuZykKICAtIGFkZCB0d28gbW9yZSBpb2N0 bHMgaW4gb3JkZXIgdG8gbGV0IHVzZXJzcGFjZS9RRU1VIGNvbnRyb2wKICAgIHRoZSBjb21tYW5k cy9ldmVudHMgYWxsb3dlZCBmb3IgaW50cm9zcGVjdGlvbgogIC0gZXh0ZW5kIHRoZSBicmVha3Bv aW50IGV2ZW50IHdpdGggdGhlIGluc3RydWN0aW9uIGxlbmd0aAogIC0gY29tcGxldGUgdGhlIGRl c2NyaXB0b3IgdGFibGUgcmVnaXN0ZXJzIGludGVyY2VwdGlvbgogIC0gYWRkIG5ldyBpbnN0cnVj dGlvbnMgdG8gdGhlIHg4NiBlbXVsYXRvcgogIC0gbW92ZSBhcmNoIGRlcGVuZGVudCBjb2RlIHRv IGFyY2gveDg2L2t2bS8KICAtIGxvdHMgb2YgZml4ZXMsIGVzcGVjaWFsbHkgb24gcGFnZSB0cmFj a2luZywgc2luZ2xlLXN0ZXBwaW5nLCBleGNlcHRpb24KICAgIGluamVjdGlvbiBhbmQgcmVtb3Rl IG1lbW9yeSBtYXBwaW5nCiAgLSB0aGUgZ3Vlc3RzIGFyZSBtdWNoIG1vcmUgc3RhYmxlIChvbiBw YWlyIHdpdGggb3VyIGludHJvc3BlY3Rpb24KICAgIHByb2R1Y3RzIHVzaW5nIFhlbikKICAtIHNw ZWVkIGltcHJvdmVtZW50cyAodGhlIHBlbmFsdHkgb24gd2ViIGJyb3dzaW5nIGFjdGlvbnMgaXMg NTAlIGxvd2VyLAogICAgYXQgbGVhc3QpCgoKQWRhbGJlcnQgTGF6xINyICgyNSk6CiAga3ZtOiBp bnRyb3NwZWN0aW9uOiBhZGQgYmFzaWMgaW9jdGxzIChob29rL3VuaG9vaykKICBrdm06IGludHJv c3BlY3Rpb246IGFkZCBwZXJtaXNzaW9uIGFjY2VzcyBpb2N0bHMKICBrdm06IGludHJvc3BlY3Rp b246IGFkZCB0aGUgcmVhZC9kaXNwYXRjaCBtZXNzYWdlIGZ1bmN0aW9uCiAga3ZtOiBpbnRyb3Nw ZWN0aW9uOiBhZGQgS1ZNSV9HRVRfVkVSU0lPTgogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtW TUlfQ09OVFJPTF9DTURfUkVTUE9OU0UKICBrdm06IGludHJvc3BlY3Rpb246IGhvbm9yIHRoZSBy ZXBseSBvcHRpb24gd2hlbiBoYW5kbGluZyB0aGUKICAgIEtWTUlfR0VUX1ZFUlNJT04gY29tbWFu ZAogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtWTUlfQ0hFQ0tfQ09NTUFORCBhbmQgS1ZNSV9D SEVDS19FVkVOVAogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtWTUlfQ09OVFJPTF9WTV9FVkVO VFMKICBrdm06IGludHJvc3BlY3Rpb246IGFkZCBhIGpvYnMgbGlzdCB0byBldmVyeSBpbnRyb3Nw ZWN0ZWQgdkNQVQogIGt2bTogaW50cm9zcGVjdGlvbjogbWFrZSB0aGUgdkNQVSB3YWl0IGV2ZW4g d2hlbiBpdHMgam9icyBsaXN0IGlzCiAgICBlbXB0eQogIGt2bTogaW50cm9zcGVjdGlvbjogYWRk IEtWTUlfRVZFTlRfVU5IT09LCiAga3ZtOiB4ODY6IGludGVyY2VwdCB0aGUgd3JpdGUgYWNjZXNz IG9uIHNpZHQgYW5kIG90aGVyIGVtdWxhdGVkCiAgICBpbnN0cnVjdGlvbnMKICBrdm06IGludHJv c3BlY3Rpb246IGFkZCBLVk1JX0NPTlRST0xfU1BQCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBleHRl bmQgdGhlIGludGVybmFsIGRhdGFiYXNlIG9mIHRyYWNrZWQgcGFnZXMgd2l0aAogICAgd3JpdGVf Yml0bWFwIGluZm8KICBrdm06IGludHJvc3BlY3Rpb246IGFkZCBLVk1JX0dFVF9QQUdFX1dSSVRF X0JJVE1BUAogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtWTUlfU0VUX1BBR0VfV1JJVEVfQklU TUFQCiAga3ZtOiBhZGQga3ZtX3ZjcHVfa2lja19hbmRfd2FpdCgpCiAga3ZtOiBpbnRyb3NwZWN0 aW9uOiBhZGQgS1ZNSV9QQVVTRV9WQ1BVIGFuZCBLVk1JX0VWRU5UX1BBVVNFX1ZDUFUKICBrdm06 IHg4NjogYWRkIGt2bV9hcmNoX3ZjcHVfc2V0X2d1ZXN0X2RlYnVnKCkKICBrdm06IGludHJvc3Bl Y3Rpb246IGFkZCBjdXN0b20gaW5wdXQgd2hlbiBzaW5nbGUtc3RlcHBpbmcgYSB2Q1BVCiAga3Zt OiB4ODY6IGtlZXAgdGhlIHBhZ2UgcHJvdGVjdGVkIGlmIHRyYWNrZWQgYnkgdGhlIGludHJvc3Bl Y3Rpb24gdG9vbAogIGt2bTogeDg2OiBmaWx0ZXIgb3V0IGFjY2VzcyByaWdodHMgb25seSB3aGVu IHRyYWNrZWQgYnkgdGhlCiAgICBpbnRyb3NwZWN0aW9uIHRvb2wKICBrdm06IHg4NjogZGlzYWJs ZSBncGFfYXZhaWxhYmxlIG9wdGltaXphdGlvbiBpbgogICAgZW11bGF0b3JfcmVhZF93cml0ZV9v bmVwYWdlKCkKICBrdm06IHg4NjogZGlzYWJsZSBFUFQgQS9EIGJpdHMgaWYgaW50cm9zcGVjdGlv biBpcyBwcmVzZW50CiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgdHJhY2UgZnVuY3Rpb25zCgpN YXJpYW4gUm90YXJpdSAoMSk6CiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9HRVRfQ1BV SUQKCk1paGFpIERvbsibdSAoNDcpOgogIGt2bTogaW50cm9kdWNlIEtWTUkgKFZNIGludHJvc3Bl Y3Rpb24gc3Vic3lzdGVtKQogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtWTUlfR0VUX0dVRVNU X0lORk8KICBrdm06IGludHJvc3BlY3Rpb246IGhhbmRsZSBpbnRyb3NwZWN0aW9uIGNvbW1hbmRz IGJlZm9yZSByZXR1cm5pbmcgdG8KICAgIGd1ZXN0CiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBoYW5k bGUgdkNQVSByZWxhdGVkIGludHJvc3BlY3Rpb24gY29tbWFuZHMKICBrdm06IGludHJvc3BlY3Rp b246IGhhbmRsZSBldmVudHMgYW5kIGV2ZW50IHJlcGxpZXMKICBrdm06IGludHJvc3BlY3Rpb246 IGludHJvZHVjZSBldmVudCBhY3Rpb25zCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9H RVRfVkNQVV9JTkZPCiAga3ZtOiBwYWdlIHRyYWNrOiBhZGQgdHJhY2tfY3JlYXRlX3Nsb3QoKSBj YWxsYmFjawogIGt2bTogeDg2OiBwcm92aWRlIGFsbCBwYWdlIHRyYWNraW5nIGhvb2tzIHdpdGgg dGhlIGd1ZXN0IHZpcnR1YWwKICAgIGFkZHJlc3MKICBrdm06IHBhZ2UgdHJhY2s6IGFkZCBzdXBw b3J0IGZvciBwcmVyZWFkLCBwcmV3cml0ZSBhbmQgcHJlZXhlYwogIGt2bTogeDg2OiB3aXJlIGlu IHRoZSBwcmVyZWFkL3ByZXdyaXRlL3ByZWV4ZWMgcGFnZSB0cmFja2VycwogIGt2bTogeDg2OiBh ZGQga3ZtX21tdV9uZXN0ZWRfcGFnZWZhdWx0KCkKICBrdm06IGludHJvc3BlY3Rpb246IHVzZSBw YWdlIHRyYWNrCiAga3ZtOiB4ODY6IGNvbnN1bHQgdGhlIHBhZ2UgdHJhY2tpbmcgZnJvbSBrdm1f bW11X2dldF9wYWdlKCkgYW5kCiAgICBfX2RpcmVjdF9tYXAoKQogIGt2bTogaW50cm9zcGVjdGlv bjogYWRkIEtWTUlfQ09OVFJPTF9FVkVOVFMKICBrdm06IHg4NjogYWRkIGt2bV9zcHRfZmF1bHQo KQogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtWTUlfRVZFTlRfUEYKICBrdm06IGludHJvc3Bl Y3Rpb246IGFkZCBLVk1JX0dFVF9QQUdFX0FDQ0VTUwogIGt2bTogaW50cm9zcGVjdGlvbjogYWRk IEtWTUlfU0VUX1BBR0VfQUNDRVNTCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9SRUFE X1BIWVNJQ0FMIGFuZCBLVk1JX1dSSVRFX1BIWVNJQ0FMCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBh ZGQgS1ZNSV9HRVRfUkVHSVNURVJTCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9TRVRf UkVHSVNURVJTCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9JTkpFQ1RfRVhDRVBUSU9O ICsgS1ZNSV9FVkVOVF9UUkFQCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9DT05UUk9M X0NSIGFuZCBLVk1JX0VWRU5UX0NSCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9DT05U Uk9MX01TUiBhbmQgS1ZNSV9FVkVOVF9NU1IKICBrdm06IGludHJvc3BlY3Rpb246IGFkZCBLVk1J X0dFVF9YU0FWRQogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtWTUlfR0VUX01UUlJfVFlQRQog IGt2bTogaW50cm9zcGVjdGlvbjogYWRkIEtWTUlfRVZFTlRfWFNFVEJWCiAga3ZtOiBpbnRyb3Nw ZWN0aW9uOiBhZGQgS1ZNSV9FVkVOVF9CUkVBS1BPSU5UCiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBh ZGQgS1ZNSV9FVkVOVF9IWVBFUkNBTEwKICBrdm06IGludHJvc3BlY3Rpb246IHVzZSBzaW5nbGUg c3RlcHBpbmcgb24gdW5pbXBsZW1lbnRlZCBpbnN0cnVjdGlvbnMKICBrdm06IHg4NjogZW11bGF0 ZSBhIGd1ZXN0IHBhZ2UgdGFibGUgd2FsayBvbiBTUFQgdmlvbGF0aW9ucyBkdWUgdG8gQS9ECiAg ICBiaXQgdXBkYXRlcwogIGt2bTogeDg2OiBkbyBub3QgdW5jb25kaXRpb25hbGx5IHBhdGNoIHRo ZSBoeXBlcmNhbGwgaW5zdHJ1Y3Rpb24KICAgIGR1cmluZyBlbXVsYXRpb24KICBrdm06IHg4Njog ZW11bGF0ZSBtb3ZzZCB4bW0sIG02NAogIGt2bTogeDg2OiBlbXVsYXRlIG1vdnNzIHhtbSwgbTMy CiAga3ZtOiB4ODY6IGVtdWxhdGUgbW92cSB4bW0sIG02NAogIGt2bTogeDg2OiBlbXVsYXRlIG1v dnEgciwgeG1tCiAga3ZtOiB4ODY6IGVtdWxhdGUgbW92ZCB4bW0sIG0zMgogIGt2bTogeDg2OiBl bmFibGUgdGhlIGhhbGYgcGFydCBvZiBtb3ZzcywgbW92c2QsIG1vdnVwcwogIGt2bTogeDg2OiBl bXVsYXRlIGxmZW5jZQogIGt2bTogeDg2OiBlbXVsYXRlIHhvcnBkIHhtbTIvbTEyOCwgeG1tMQog IGt2bTogeDg2OiBlbXVsYXRlIHhvcnBzIHhtbS9tMTI4LCB4bW0KICBrdm06IHg4NjogZW11bGF0 ZSBmc3QvZnN0cCBtNjRmcAogIGt2bTogeDg2OiBtYWtlIGxvY2sgY21weGNoZyByLCByL20gYXRv bWljCiAga3ZtOiB4ODY6IGVtdWxhdGUgbG9jayBjbXB4Y2hnOGIgYXRvbWljYWxseQogIGt2bTog eDg2OiBlbXVsYXRlIGxvY2sgY21weGNoZzE2YiBtMTI4CiAga3ZtOiB4ODY6IGZhbGxiYWNrIHRv IHRoZSBzaW5nbGUtc3RlcCBvbiBtdWx0aXBhZ2UgQ01QWENIRyBlbXVsYXRpb24KCk1pcmNlYSBD w65yamFsaXUgKDUpOgogIGt2bTogaW50cm9zcGVjdGlvbjogYWRkIHZDUFUgcmVsYXRlZCBkYXRh CiAga3ZtOiBpbnRyb3NwZWN0aW9uOiBhZGQgS1ZNSV9FVkVOVF9DUkVBVEVfVkNQVQogIG1tOiBh ZGQgc3VwcG9ydCBmb3IgcmVtb3RlIG1hcHBpbmcKICBrdm06IGludHJvc3BlY3Rpb246IGFkZCBt ZW1vcnkgbWFwL3VubWFwIHN1cHBvcnQgb24gdGhlIGd1ZXN0IHNpZGUKICBrdm06IGludHJvc3Bl Y3Rpb246IHVzZSByZW1vdGUgbWFwcGluZwoKTmljdciZb3IgQ8OuyJt1ICg1KToKICBrdm06IHg4 NjogYmxvY2sgYW55IGF0dGVtcHQgdG8gZGlzYWJsZSBNU1IgaW50ZXJjZXB0aW9uIGlmIHRyYWNr ZWQgYnkKICAgIGludHJvc3BlY3Rpb24KICBrdm06IGludHJvc3BlY3Rpb246IGFkZCBLVk1JX0VW RU5UX0RFU0NSSVBUT1IKICBrdm06IGludHJvc3BlY3Rpb246IGFkZCBzaW5nbGUtc3RlcHBpbmcK ICBrdm06IGludHJvc3BlY3Rpb246IGFkZCBLVk1JX0VWRU5UX1NJTkdMRVNURVAKICBrdm06IHg4 NjogYWRkIHRyYWNlcG9pbnRzIGZvciBpbnRlcnJ1cHQgYW5kIGV4Y2VwdGlvbiBpbmplY3Rpb25z CgpZYW5nIFdlaWppYW5nICg5KToKICBEb2N1bWVudGF0aW9uOiBJbnRyb2R1Y2UgRVBUIGJhc2Vk IFN1YnBhZ2UgUHJvdGVjdGlvbgogIEtWTTogVk1YOiBBZGQgY29udHJvbCBmbGFncyBmb3IgU1BQ IGVuYWJsaW5nCiAgS1ZNOiBWTVg6IEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIFNQUFQgcGFnaW5n IHNldHVwCiAgS1ZNOiBWTVg6IEludHJvZHVjZSBTUFAgYWNjZXNzIGJpdG1hcCBhbmQgb3BlcmF0 aW9uIGZ1bmN0aW9ucwogIEtWTTogVk1YOiBBZGQgaW5pdC9zZXQvZ2V0IGZ1bmN0aW9ucyBmb3Ig U1BQCiAgS1ZNOiBWTVg6IEludHJvZHVjZSBTUFAgdXNlci1zcGFjZSBJT0NUTHMKICBLVk06IFZN WDogSGFuZGxlIFNQUCBpbmR1Y2VkIHZtZXhpdCBhbmQgcGFnZSBmYXVsdAogIEtWTTogTU1VOiBF bmFibGUgTGF6eSBtb2RlIFNQUFQgc2V0dXAKICBLVk06IE1NVTogSGFuZGxlIGhvc3QgbWVtb3J5 IHJlbWFwcGluZyBhbmQgcmVjbGFpbQoKIERvY3VtZW50YXRpb24vdmlydHVhbC9rdm0vYXBpLnR4 dCAgICAgICAgfCAgMTA0ICsrCiBEb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2h5cGVyY2FsbHMu dHh0IHwgICA2OCArLQogRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdCAgICAgICB8 IDE2NDAgKysrKysrKysrKysrKysrKysKIERvY3VtZW50YXRpb24vdmlydHVhbC9rdm0vc3BwX2t2 bS50eHQgICAgfCAgMTczICsrCiBhcmNoL3g4Ni9LY29uZmlnICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgOSArCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oICAgICAgIHwg ICAgMSArCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1fZW11bGF0ZS5oICAgICAgIHwgICAgMyAr LQogYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCAgICAgICAgICB8ICAgNTIgKy0KIGFy Y2gveDg2L2luY2x1ZGUvYXNtL2t2bV9wYWdlX3RyYWNrLmggICAgfCAgIDMzICstCiBhcmNoL3g4 Ni9pbmNsdWRlL2FzbS9rdm1pX2d1ZXN0LmggICAgICAgIHwgICAxMCArCiBhcmNoL3g4Ni9pbmNs dWRlL2FzbS9rdm1pX2hvc3QuaCAgICAgICAgIHwgICA1MSArCiBhcmNoL3g4Ni9pbmNsdWRlL2Fz bS92bXguaCAgICAgICAgICAgICAgIHwgICAxMiArCiBhcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNt L2t2bWkuaCAgICAgICAgIHwgIDEyNCArKwogYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS92bXgu aCAgICAgICAgICB8ICAgIDIgKwogYXJjaC94ODYva2VybmVsL01ha2VmaWxlICAgICAgICAgICAg ICAgICB8ICAgIDEgKwogYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbC5jICAgICAgICAgICAgICB8 ICAgIDQgKwogYXJjaC94ODYva2VybmVsL2t2bWlfbWVtX2d1ZXN0LmMgICAgICAgICB8ICAgMjYg KwogYXJjaC94ODYva3ZtL0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKwogYXJj aC94ODYva3ZtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogYXJjaC94ODYv a3ZtL2VtdWxhdGUuYyAgICAgICAgICAgICAgICAgICB8ICAzMTUgKysrLQogYXJjaC94ODYva3Zt L2t2bWkuYyAgICAgICAgICAgICAgICAgICAgICB8IDExNDEgKysrKysrKysrKysrCiBhcmNoL3g4 Ni9rdm0vbW11LmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDY0NSArKysrKystCiBhcmNoL3g4 Ni9rdm0vbW11LmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBhcmNoL3g4Ni9rdm0v cGFnZV90cmFjay5jICAgICAgICAgICAgICAgIHwgIDE0NyArLQogYXJjaC94ODYva3ZtL3N2bS5j ICAgICAgICAgICAgICAgICAgICAgICB8ICAxNjggKy0KIGFyY2gveDg2L2t2bS90cmFjZS5oICAg ICAgICAgICAgICAgICAgICAgfCAgMTE4ICstCiBhcmNoL3g4Ni9rdm0vdm14L2NhcGFiaWxpdGll cy5oICAgICAgICAgIHwgICAgNSArCiBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jICAgICAgICAgICAg ICAgICAgIHwgIDM0NyArKystCiBhcmNoL3g4Ni9rdm0vdm14L3ZteC5oICAgICAgICAgICAgICAg ICAgIHwgICAgMiArCiBhcmNoL3g4Ni9rdm0veDg2LmMgICAgICAgICAgICAgICAgICAgICAgIHwg IDYwMSArKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQva3ZtZ3QuYyAgICAgICAgIHwg ICAgMiArLQogaW5jbHVkZS9saW51eC9rdm1faG9zdC5oICAgICAgICAgICAgICAgICB8ICAgMjYg KwogaW5jbHVkZS9saW51eC9rdm1pLmggICAgICAgICAgICAgICAgICAgICB8ICAgNjggKwogaW5j bHVkZS9saW51eC9wYWdlLWZsYWdzLmggICAgICAgICAgICAgICB8ICAgIDkgKy0KIGluY2x1ZGUv bGludXgvcmVtb3RlX21hcHBpbmcuaCAgICAgICAgICAgfCAgMTY3ICsrCiBpbmNsdWRlL2xpbnV4 L3N3YWl0LmggICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiBpbmNsdWRlL3RyYWNlL2V2ZW50 cy9rdm1pLmggICAgICAgICAgICAgIHwgIDY4MCArKysrKysrCiBpbmNsdWRlL3VhcGkvbGludXgv a3ZtLmggICAgICAgICAgICAgICAgIHwgICAzNCArCiBpbmNsdWRlL3VhcGkvbGludXgva3ZtX3Bh cmEuaCAgICAgICAgICAgIHwgICAxMCArLQogaW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaCAgICAg ICAgICAgICAgICB8ICAyODYgKysrCiBpbmNsdWRlL3VhcGkvbGludXgvcmVtb3RlX21hcHBpbmcu aCAgICAgIHwgICAxOCArCiBrZXJuZWwvc2lnbmFsLmMgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgMSArCiBtbS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg OCArCiBtbS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBt bS9tZW1vcnktZmFpbHVyZS5jICAgICAgICAgICAgICAgICAgICAgIHwgICA2OSArLQogbW0vbWln cmF0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKy0KIG1tL3JlbW90ZV9t YXBwaW5nLmMgICAgICAgICAgICAgICAgICAgICAgfCAxODM0ICsrKysrKysrKysrKysrKysrKysK IG1tL3JtYXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICstCiBtbS92 bXNjYW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogdmlydC9rdm0v a3ZtX21haW4uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNzAgKy0KIHZpcnQva3ZtL2t2bWku YyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMDU0ICsrKysrKysrKysrKysrKysrKysrKysK IHZpcnQva3ZtL2t2bWlfaW50LmggICAgICAgICAgICAgICAgICAgICAgfCAgMzExICsrKysKIHZp cnQva3ZtL2t2bWlfbWVtLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMzI0ICsrKysKIHZpcnQv a3ZtL2t2bWlfbWVtX2d1ZXN0LmMgICAgICAgICAgICAgICAgfCAgNjUxICsrKysrKysKIHZpcnQv a3ZtL2t2bWlfbXNnLmMgICAgICAgICAgICAgICAgICAgICAgfCAxMjM2ICsrKysrKysrKysrKysK IDU1IGZpbGVzIGNoYW5nZWQsIDEzNDg1IGluc2VydGlvbnMoKyksIDIyNSBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2t2bWkucnN0CiBj cmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9zcHBfa3ZtLnR4dAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gveDg2L2luY2x1ZGUvYXNtL2t2bWlfZ3Vlc3QuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGFyY2gveDg2L2luY2x1ZGUvYXNtL2t2bWlfaG9zdC5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm1pLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBhcmNoL3g4Ni9rZXJuZWwva3ZtaV9tZW1fZ3Vlc3QuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGFyY2gveDg2L2t2bS9rdm1pLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4 L2t2bWkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvcmVtb3RlX21hcHBpbmcu aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdHJhY2UvZXZlbnRzL2t2bWkuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBpbmNsdWRlL3VhcGkvbGludXgvcmVtb3RlX21hcHBpbmcuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IG1tL3JlbW90ZV9tYXBwaW5nLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB2aXJ0L2t2bS9rdm1pLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCB2aXJ0L2t2bS9rdm1pX2ludC5oCiBjcmVhdGUgbW9kZSAxMDA2 NDQgdmlydC9rdm0va3ZtaV9tZW0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHZpcnQva3ZtL2t2bWlf bWVtX2d1ZXN0LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB2aXJ0L2t2bS9rdm1pX21zZy5jCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlv biBtYWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcK aHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVh bGl6YXRpb24=