From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v4 09/16] osstest: introduce a FreeBSD build script Date: Thu, 6 Jul 2017 15:42:20 +0100 Message-ID: <20170706144227.36580-10-roger.pau@citrix.com> References: <20170706144227.36580-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dT7zX-0008JP-5o for xen-devel@lists.xenproject.org; Thu, 06 Jul 2017 14:42:51 +0000 In-Reply-To: <20170706144227.36580-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian.Jackson@eu.citrix.com, Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhlIEZyZWVCU0QgaW5zdGFsbGVyIGltYWdlIGFuZCB0aGUg aW5zdGFsbAptZWRpYS4KClRoZSBpbnN0YWxsIHNldHMgYXJlIHRoZSB2YW5pbGxhIG9uZXMgZ2Vu ZXJhdGVkIGJ5IHRoZSAnZnRwJyByZWxlYXNlCnRhcmdldC4gIFRoZSBpbnN0YWxsZXIgaW1hZ2Ug aXMgaGFuZGNyYWZ0ZWQgYmFzZWQgb24gdGhlIGZpbGVzeXN0ZW0KY3JlYXRlZCBieSB0aGUgJ2Jv b3Rvbmx5JyB0YXJnZXQsIHdoaWNoIGlzIHRoZW4gcG9wdWxhdGVkIHdpdGggdGhlIHNzaApob3N0 IGtleXMsIGFuZCBzZXR1cCBpbiBvcmRlciB0byB1c2UgdGhlIHNlcmlhbCBjb25zb2xlLiBUaGUg b3RoZXIKZGlmZmVyZW5jZSBmcm9tIHVwc3RyZWFtIEZyZWVCU0QgaW5zdGFsbGVyIGltYWdlcyBp cyB0aGF0IHRoZSBvbmUKYnVpbHQgYnkgb3NzdGVzdCB1c2VzIGEgcmFtZGlzayBpbnN0ZWFkIG9m IHJlbHlpbmcgb24gdGhlIGluc3RhbGxlcgptZWRpYSB0byBiZSBzb21laG93IGF0dGFjaGVkLCBl aXRoZXIgb24gYSBDRCBvciBVU0IgZHJpdmUuIFRoaXMgaXMKcmVxdWlyZWQgaW4gb3JkZXIgdG8g Ym9vdCB0aGUgaW1hZ2UgZnJvbSBweGVsaW51eCAod2hlcmUgbm8gQ0Qgb3IgVVNCCmlzIGFjdHVh bGx5IGF0dGFjaGVkIHRvIHRoZSBob3N0LCBhbmQgZXZlcnl0aGluZyBpcyBmZXRjaGVkIGZyb20K dGZ0cCkuCgpEdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGUgRnJlZUJTRCBidWlsZCwgdGhlIG91dHB1 dHMgYXJlIGRpZmZlcmVudCBmcm9tCndoYXQgb3NzdGVzdCBleHBlY3RzIGZyb20gYSBidWlsZGpv YiwgbW9yZSBzcGVjaWZpY2FsbHkKcGF0aF9mcmVlYnNkZGlzdCBwb2ludHMgdG8gYSBmb2xkZXIg dGhhdCBjb250YWlucyB0aGUgc2V2ZXJhbCBvdXRwdXRzCmZvcm0gdGhpcyBidWlsZGpvYi4KClNp Z25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0K Q2hhbmdlcyBzaW5jZSB2MzoKIC0gSW50cm9kdWNlIHR3byBoZWxwZXJzIHRvIHBlcmZvcm0gdGhl IGJ1aWxkIHByb2Nlc3MuCiAtIEluc3RhbGwgcGFja2FnZXMgdXNpbmcgdGFyZ2V0X2luc3RhbGxf cGFja2FnZXMuCgpDaGFuZ2VzIHNpbmNlIHYyOgogLSBJbmNyZWFzZSBidWlsZCB0YXJnZXQgdGlt ZW91dHMuCiAtIFVzZSBzeXNyYyBpbnN0ZWFkIGVjaG8gdG8gc2V0IHJjLmNvbmYgb3B0aW9ucy4K CkNoYW5nZXMgc2luY2UgdjE6CiAtIFJlbW92ZSB0aGUgdHMtYnVpbGQtY2hlY2sgRnJlZUJTRCBo YWNrLgogLSBVc2UgcGtnLXN0YXRpYyBpbnN0ZWFkIG9mIHBrZy4KIC0gSW50cm9kdWNlIGJ1aWxk Y21kX3N0YW1wZWRfbG9nZ2VkX3Jvb3QgYW5kIHRhcmdldF9jbWRfYnVpbGRfcm9vdC4KIC0gVXNl IHRhcmdldF9jbWRfYnVpbGRfcm9vdCBhbmQgYnVpbGRjbWRfc3RhbXBlZF9sb2dnZWRfcm9vdCBp biB0aGUKICAgdHMtZnJlZWJzZC1idWlsZCBzY3JpcHQuCiAtIEZpeCB0aGUgc2NyaXB0IHNuaXBw ZXRzIHRvIHVzZSA8PEVORC48PCdFTkQnIGluIG9yZGVyIHRvIGF2b2lkCiAgIGVzY2FwaW5nIHRo ZSBzaGVsbCB2YXJpYWJsZXMuCiAtIFNldCBwYXRoX2ZyZWVic2RkaXN0IHJ1bnZhciB0byBwb2lu dCB0byB0aGUgZm9sZGVyIHdoZXJlIHRoZSBidWlsZAogICBmaWxlcyBhcmUgc3Rhc2hlZC4KIC0g QWRkIGEgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIGRlc2NyaWJpbmcgd2hhdCBydW52 YXJzIGFyZQogICBjb25zdW1lZC9wcm9kdWNlZCBieSB0aGUgYnVpbGQgc2NyaXB0LgotLS0KIHRz LWZyZWVic2QtYnVpbGQgfCAyNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI0NSBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMDA3NTUgdHMtZnJlZWJzZC1idWlsZAoKZGlmZiAtLWdpdCBhL3RzLWZyZWVi c2QtYnVpbGQgYi90cy1mcmVlYnNkLWJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw MDAwMDAwLi5kNjRkODVmNQotLS0gL2Rldi9udWxsCisrKyBiL3RzLWZyZWVic2QtYnVpbGQKQEAg LTAsMCArMSwyNDUgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIyBUaGlzIGlzIHBhcnQgb2YgIm9z c3Rlc3QiLCBhbiBhdXRvbWF0ZWQgdGVzdGluZyBmcmFtZXdvcmsgZm9yIFhlbi4KKyMgQ29weXJp Z2h0IChDKSAyMDE3IENpdHJpeCBJbmMuCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgQWZmZXJvIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisjIENvbnN1bWVzIHRoZSBmb2xsb3dpbmcgaW5wdXQgcnVudmFyczoKKyMK KyMgcmV2aXNpb25fZnJlZWJzZDogRnJlZUJTRCBjb21taXQgSUQgdG8gZ2VuZXJhdGUgdGhlIGlu c3RhbGwgbWVkaWEgZnJvbS4KKyMgdHJlZV9mcmVlYnNkOiBGcmVlQlNEIGdpdCB0cmVlIHRvIGZl dGNoIHRoZSBzb3VyY2UgY29kZSBmcm9tLgorIworIyBQcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91 dHB1dDoKKyMKKyMgQ29tcHJlc3NlZCBpbnN0YWxsIHNldHM6IGtlcm5lbC50eHosIGJhc2UudHh6 CisjIENvbXByZXNzZWQgZGVidWcgc3ltYm9scyBmb3IgdGhlIGtlcm5lbDoga2VybmVsLWRiZy50 eHoKKyMgTWFuaWZlc3QgZmlsZSAoY2hlY2t1bXMpOiBNQU5JRkVTVAorIyBJbnN0YWxsZXIgaW1h Z2U6IGluc3RhbGwuaW1nCisjCisjIFNldHMgdGhlIGZvbGxvd2luZyBydW52YXI6CisjCisjIHBh dGhfZnJlZWJzZGRpc3Q6IHBvaW50cyB0byB0aGUgZm9sZGVyIHdoZXJlIHRoZSBhYm92ZSBmaWxl cyBhcmUgc3RvcmVkLgorIyBmcmVlYnNkX2J1aWxkdmVyc2lvbjogdmVyc2lvbiBvZiBGcmVlQlNE IGJ1aWx0LgorCit1c2Ugc3RyaWN0IHF3KHZhcnMpOwordXNlIERCSTsKK3VzZSBQT1NJWDsKKwor dW5zaGlmdCBASU5DLCBxdyguKTsKK3VzZSBPc3N0ZXN0OwordXNlIE9zc3Rlc3Q6OlRlc3RTdXBw b3J0OwordXNlIE9zc3Rlc3Q6OkJ1aWxkU3VwcG9ydDsKKwordHNyZWFkY29uZmlnKCk7CisKK3Nl bGVjdGJ1aWxkaG9zdChcQEFSR1YpOworYnVpbGRkaXJzcHJvcHMoKTsKKworc3ViIGluc3RhbGxf ZGVwcyAoKSB7CisgICAgdGFyZ2V0X2luc3RhbGxfcGFja2FnZXMoJGhvLCAnZ2l0Jyk7Cit9CisK K3N1YiBjaGVja291dCAoKSB7CisgICAgcHJlcGJ1aWxkZGlycygpOworCisgICAgIyBSZW1vdmUg dGhlIGRpcmVjdG9yeSBhcyByb290LCB0aGVyZSBtaWdodCBiZSBmaWxlcyBvd25lZCBieSByb290 CisgICAgdGFyZ2V0X2NtZF9idWlsZF9yb290KCRobywgMzAwLCAkYnVpbGRkaXIsIDw8J0VORCcp OworIyBjaGZsYWdzIHdpbGwgcmV0dXJuIGVycm9yIGlmIHRoZSBkaXJlY3RvcnkgZG9lc24ndCBl eGlzdAorY2hmbGFncyAtZlIgbm9zY2hnIGZyZWVic2QgfHwgdHJ1ZQorcm0gLXJmIGZyZWVic2QK K0VORAorCisgICAgbG9nbSgiQ2hlY2tvdXQgdGhlIEZyZWVCU0Qgc291cmNlIHRyZWUiKTsKKyAg ICBidWlsZF9jbG9uZSgkaG8sICdmcmVlYnNkJywgJGJ1aWxkZGlyLCAnZnJlZWJzZCcsICk7Cit9 CisKK3N1YiBidWlsZF90YXJnZXQoJCQkKSB7CisgICAgbXkgKCR0YXJnZXQsICRwcmVmaXgsICR0 aW1lKSA9IEBfOworCisgICAgYnVpbGRjbWRfc3RhbXBlZF9sb2dnZWQoJHRpbWUsICdmcmVlYnNk JywgJHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJlZml4LCA8PEVORCwg JycpOworbWFrZSAkbWFrZWZsYWdzICR0YXJnZXQKK0VORAorfQorCitzdWIgYnVpbGRfcmVsZWFz ZSgkJCQpIHsKKyAgICBteSAoJHRhcmdldCwgJHByZWZpeCwgJHRpbWUpID0gQF87CisKKyAgICBi dWlsZGNtZF9zdGFtcGVkX2xvZ2dlZF9yb290KCR0aW1lLCAnZnJlZWJzZCcsICJyZWxlYXNlLSR0 YXJnZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByZWZpeCwgPDxFTkQs ICcnKTsKK21ha2UgLUMgcmVsZWFzZSAkdGFyZ2V0CitFTkQKK30KKworc3ViIGJ1aWxkICgpIHsK KyAgICBteSAkYXV0aGtleXMgPSBhdXRob3JpemVkX2tleXMoKTsKKyAgICBteSAkdGFyZ2V0ID0g ImJvb3Rvbmx5IjsKKyAgICBteSAkcHJlZml4ID0gPDxFTkQ7CitleHBvcnQgTUFLRU9CSkRJUlBS RUZJWD0kYnVpbGRkaXIvb2JqCitleHBvcnQgVEFSR0VUPSRye2FyY2h9CitFTkQKKworICAgICMg QnVpbGQgcHJvY2VzcyBhcyBkb2N1bWVudGVkIGluIHRoZSBoYW5kYm9vazoKKyAgICAjIGh0dHBz Oi8vd3d3LmZyZWVic2Qub3JnL2RvYy9oYW5kYm9vay91cGRhdGluZy1zcmMuaHRtbAorCisgICAg bG9nbSgiQ2xlYW5pbmcgdXAgcHJldmlvdXMgYnVpbGRzIik7CisgICAgYnVpbGRfdGFyZ2V0KCdj bGVhbndvcmxkJywgJHByZWZpeCwgMzAwKTsKKworICAgIGxvZ20oIkJ1aWxkaW5nIHdvcmxkIik7 CisgICAgYnVpbGRfdGFyZ2V0KCdidWlsZHdvcmxkJywgJHByZWZpeCwgMjUyMDApOworCisgICAg bG9nbSgiQnVpbGRpbmcga2VybmVsIik7CisgICAgYnVpbGRfdGFyZ2V0KCdidWlsZGtlcm5lbCcs ICRwcmVmaXgsIDM2MDApOworCisgICAgIyBOQjogdGhlIHN0ZXBzIGJlbG93IG5lZWQgdG8gYmUg ZG9uZSBhcyByb290IG9yIHRoZSBwZXJtaXNzaW9ucworICAgICMgb2YgdGhlIGZpbGVzIHdvbid0 IGJlIHByb3Blcmx5IHNldCAoYW5kIHRoZSB0YXJnZXQgd2lsbCBmYWlsKS4KKyAgICBsb2dtKCJD cmVhdGluZyB0aGUgaW5zdGFsbCBzZXRzIik7CisgICAgYnVpbGRfcmVsZWFzZSgnZnRwJywgJHBy ZWZpeCwgMzYwMCk7CisKKyAgICBsb2dtKCJQb3B1bGF0aW5nIHRoZSBpbnN0YWxsZXIgaW1hZ2Ui KTsKKyAgICBidWlsZF9yZWxlYXNlKCR0YXJnZXQsICRwcmVmaXgsIDM2MDApOworCisgICAgbG9n bSgiUGxhY2luZyBzc2ggaG9zdCBrZXlzIik7CisgICAgZm9yZWFjaCBteSAkZmlsZSAoPCRje092 ZXJsYXlMb2NhbH0vZXRjL3NzaC9zc2hfaG9zdF8qX2tleSo+KSB7CisgICAgICAgIHRhcmdldF9w dXRmaWxlX3Jvb3QoJGhvLCAzMCwgJGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiRidWlsZGRpci9mcmVlYnNkL3JlbGVhc2UvJHRhcmdldC9ldGMvc3NoLyIpOworICAgIH0KKwor ICAgIGxvZ20oIkNvbmZpZ3VyaW5nIHRoZSBpbnN0YWxsZXIgaW1hZ2UiKTsKKyAgICB0YXJnZXRf Y21kX2J1aWxkX3Jvb3QoJGhvLCAzMCwgJGJ1aWxkZGlyLCA8PEVORC48PCdFTkQnKTsKK2F1dGhr ZXlzPSIkYXV0aGtleXMiCitiYXVkcz0iJGN7QmF1ZH0iCitjZCBmcmVlYnNkL3JlbGVhc2UvJHRh cmdldAorRU5ECisjIEVuYWJsZSBzc2hkIGJ5IGRlZmF1bHQKK3N5c3JjIC1mIGV0Yy9yYy5jb25m IHNzaGRfZW5hYmxlPVlFUworCisjIEFsbG93IHJvb3QgbG9naW4gYW5kIGNvcHkgdGhlIGtleXMK K2VjaG8gJ1Blcm1pdFJvb3RMb2dpbiB5ZXMnID4+IGV0Yy9zc2gvc3NoZF9jb25maWcKK21rZGly IC1wIHJvb3QvLnNzaAorY2F0IDw8IEVOREtFWVMgPiByb290Ly5zc2gvYXV0aG9yaXplZF9rZXlz CiskYXV0aGtleXMKK0VOREtFWVMKKworIyBTZXQgaG9zdCBrZXlzIHBlcm1pc3Npb25zCitjaG93 biByb290OndoZWVsIGV0Yy9zc2gvc3NoX2hvc3RfKl9rZXkqCitjaG1vZCAwNjAwIGV0Yy9zc2gv c3NoX2hvc3RfKl9rZXkKK2NobW9kIDA2NDQgZXRjL3NzaC9zc2hfaG9zdF8qX2tleS5wdWIKKwor IyBTZXR1cCBzZXJpYWwgY29uc29sZSBvdXRwdXQgZm9yIHN0YWdlMQorcHJpbnRmICIlcyIgIi1o IC1TJGJhdWRzIiA+PiBib290LmNvbmZpZworY2F0IDw8IEVOREJPT1QgPj4gYm9vdC9sb2FkZXIu Y29uZgorIyBTZXJpYWwgY29uc29sZSBjb25maWd1cmF0aW9uCitib290X3NlcmlhbD0iWUVTIgor Y29tY29uc29sZV9zcGVlZD0iJGJhdWRzIgorY29uc29sZT0iY29tY29uc29sZSIKK2Jvb3RfdmVy Ym9zZT0iWUVTIgorYmVhc3RpZV9kaXNhYmxlPSJZRVMiCisKKyMgbWZzIGJvb3QgcGFyYW1ldGVy cworbWZzX2xvYWQ9IllFUyIKK21mc190eXBlPSJtZnNfcm9vdCIKK21mc19uYW1lPSIvbWZzcm9v dCIKK3Zmcy5yb290Lm1vdW50ZnJvbT0idWZzOi9kZXYvdWZzL0ZyZWVCU0RfSW5zdGFsbCIKK0VO REJPT1QKKworIyBFbmFibGUgREhDUCBvbiBhbGwgbmV0d29yayBpbnRlcmZhY2VzCitzeXNyYyAt ZiBldGMvcmMuY29uZiBpZmNvbmZpZ19ERUZBVUxUPURIQ1AKKworI8KgUmVtb3ZlIHRoZSBsb2Nh bCBzY3JpcHQgdGhhdCBsYXVuY2hlcyB0aGUgaW5zdGFsbGVyIGJ5IGRlZmF1bHQKK3JtIC1yZiBl dGMvcmMubG9jYWwKKworIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZnN0YWIgd2l0aCB0aGUgcm9vdCBk aXIKK2VjaG8gJy9kZXYvdWZzL0ZyZWVCU0RfSW5zdGFsbCAvIHVmcyBydyAxIDEnID4gZXRjL2Zz dGFiCisKKyMgUmVtb3ZlIHRoZSBsaW5rZWQgcmVzb2x2LmNvbmYKK3JtIC1yZiBldGMvcmVzb2x2 LmNvbmYKK0VORAorCisgICAgbG9nbSgiQ3JlYXRlIHRoZSBpbnN0YWxsZXIiKTsKKyAgICB0YXJn ZXRfY21kX2J1aWxkX3Jvb3QoJGhvLCA5MDAsICRidWlsZGRpciwgPDxFTkQuPDwnRU5EJyk7Cit0 YXJnZXQ9ImZyZWVic2QvcmVsZWFzZS8kdGFyZ2V0Igorb3V0cHV0PSJpbnN0YWxsLmltZyIKK0VO RAorbWtkaXIgLXAgJG91dHB1dC50bXAKKworIyBEbyBzb21lIHBydW5pbmcKK3JtIC1yZiAkdGFy Z2V0L3Vzci9zaGFyZS9tYW4KK3JtIC1yZiAkdGFyZ2V0L3Vzci9zaGFyZS9leGFtcGxlcworcm0g LXJmICR0YXJnZXQvdXNyL3NoYXJlL2RvYworcm0gLXJmICR0YXJnZXQvdXNyL3NoYXJlL2R0cmFj ZQorCisjIENyZWF0ZSBhIG1mcyByb290IGltYWdlCittYWtlZnMgLWIgMTAlIC1CIGxpdHRsZSAt byBsYWJlbD1GcmVlQlNEX0luc3RhbGwgJG91dHB1dC50bXAvbWZzcm9vdCAkdGFyZ2V0CisjIENv bXByZXNzIGltYWdlCitnemlwICRvdXRwdXQudG1wL21mc3Jvb3QKKworIyBDb3B5IGJvb3QgdG8g dGhlIHN0YWdpbmcgZGlyCitjcCAtciAkdGFyZ2V0L2Jvb3QgJG91dHB1dC50bXAvCitjcCAkdGFy Z2V0L2Jvb3QuY29uZmlnICRvdXRwdXQudG1wLworCisjIFRoZSBsb2FkZXIgZG9lc24ndCBuZWVk IGFueSBtb2R1bGVzIGluIG9yZGVyIHRvIGJvb3QgaW50byB0aGUgbWZzcm9vdC4KKyMgVGhlIHJl c3Qgb2YgdGhlIG1vZHVsZXMgY2FuIGJlIGxvYWRlZCBmcm9tIHRoZSBtZnMgcm9vdCBpdHNlbGYu CitybSAtZiAkb3V0cHV0LnRtcC9ib290L2tlcm5lbC8qLmtvCisKKyMgQ29tcHJlc3MgdGhlIGtl cm5lbAorZ3ppcCAkb3V0cHV0LnRtcC9ib290L2tlcm5lbC9rZXJuZWwKKworbWFrZWZzIC1CIGxp dHRsZSAkb3V0cHV0LnBhcnQgJG91dHB1dC50bXAKKworIyBNYWtlIHRoZSBpbWFnZSBib290YWJs ZQorbWtpbWcgLXMgZ3B0IC1iICR0YXJnZXQvYm9vdC9wbWJyIC1wIGVmaTo9JHRhcmdldC9ib290 L2Jvb3QxLmVmaWZhdCBcCisgICAgLXAgZnJlZWJzZC1ib290Oj0kdGFyZ2V0L2Jvb3QvZ3B0Ym9v dCAtcCBmcmVlYnNkLXVmczo9JG91dHB1dC5wYXJ0IFwKKyAgICAtcCBmcmVlYnNkLXN3YXA6OjFN IC1vICRvdXRwdXQKKworcm0gJG91dHB1dC5wYXJ0CitybSAtcmYgJG91dHB1dC50bXAKK0VORAor fQorCitzdWIgc3Rhc2ggKCkgeworICAgIG15IEBzZXRzID0gcXcoTUFOSUZFU1QgYmFzZS50eHog a2VybmVsLnR4eik7CisgICAgbXkgQHN5bWJvbHMgPSBxdyhrZXJuZWwtZGJnLnR4eik7CisKKwor ICAgIGxvZ20oIlN0YXNoaW5nIEZyZWVCU0QgYnVpbGQgb3V0cHV0Iik7CisgICAgZm9yZWFjaCBt eSAkc2V0IChAc2V0cykgeworICAgICAgICBidWlsdF9zdGFzaF9maWxlKCRobywgJGJ1aWxkZGly LCAkc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICJmcmVlYnNkL3JlbGVhc2UvZnRwLyRz ZXQiLCAwKTsKKyAgICB9CisgICAgZm9yZWFjaCBteSAkc3ltYm9sIChAc3ltYm9scykgeworICAg ICAgICBidWlsdF9zdGFzaF9kZWJ1Z2ZpbGUoJGhvLCAkYnVpbGRkaXIsICRzeW1ib2wsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJlZWJzZC9yZWxlYXNlL2Z0cC8kc3ltYm9sIiwg MCk7CisgICAgfQorICAgIGJ1aWx0X3N0YXNoX2ZpbGUoJGhvLCAkYnVpbGRkaXIsICJpbnN0YWxs LmltZyIsICJpbnN0YWxsLmltZyIsIDApOworCisKKyAgICBteSAkc3JjdmVyc2lvbiA9IHRhcmdl dF9jbWRfb3V0cHV0X3Jvb3QoJGhvLCA8PEVORCwgMzApOworYXdrICcvXlxcXCNkZWZpbmVbWzpz cGFjZTpdXSpfX0ZyZWVCU0RfdmVyc2lvbi8geyBwcmludCBcJDMgfScgXFwKKyAgICAkYnVpbGRk aXIvZnJlZWJzZC9zeXMvc3lzL3BhcmFtLmggfCBjdXQgLWMxLTIKK0VORAorICAgIHN0b3JlX3J1 bnZhcigiZnJlZWJzZF9idWlsZHZlcnNpb24iLCAiJHNyY3ZlcnNpb24iKTsKKworICAgICPCoFNl dCBwYXRoX2ZyZWVic2RkaXN0IHRvIHBvaW50IHRvIHRoZSBidWlsZCBvdXRwdXQgZm9sZGVyCisg ICAgIyBpbiBvcmRlciB0byBtYWtlIHRzLWJ1aWxkLWNoZWNrIGhhcHB5LgorICAgIHN0b3JlX3J1 bnZhcigicGF0aF9mcmVlYnNkZGlzdCIsICJidWlsZC8iKTsKK30KKworaW5zdGFsbF9kZXBzKCk7 CitjaGVja291dCgpOworYnVpbGQoKTsKK3N0YXNoKCk7CisKK2xvZ20oIkZyZWVCU0QgYnVpbGQg c3VjY2Vzc2Z1bCIpOworCi0tIAoyLjExLjAgKEFwcGxlIEdpdC04MSkKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK