From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [OSSTEST PATCH v6 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack Date: Mon, 31 Oct 2016 17:52:31 +0000 Message-ID: <20161031175233.32320-2-anthony.perard@citrix.com> References: <20161031175233.32320-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161031175233.32320-1-anthony.perard@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.xen.org Cc: Anthony PERARD , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhpcyBzY3JpcHQgaW5zdGFsbHMgYW55IG5lY2Vzc2FyeSBwYWNrYWdlcyBhbmQgY2xvbmVzIGFs bCBvZiB0aGUgT3BlblN0YWNrCnRyZWVzIHdoaWNoIGFyZSB1c2VkIGJ5IGRldnN0YWNrIHRvIGRl cGxveSBPcGVuU3RhY2suCgpTaWduZWQtb2ZmLWJ5OiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5w ZXJhcmRAY2l0cml4LmNvbT4KCi0tLQpDaGFuZ2VzIGluIFY2OgotIHJlYmFzZWQKLSBmaXggaXNz dWVzIGR1ZSB0byBuZXcgZGViaWFuIGFuZCBuZXdlciBkZXZzdGFjazoKICAtIGFkZCBtaXNzaW5n IGxpYnZpcnQgZ3JvdXAKICAtIHN3aXRjaCBiYWNrIHRvIG9sZCBub3ZhLW5ldHdvcmsgaW5zdGVh ZCBvZiBuZXV0cm9uCiAgLSBoYXZlIGRldnN0YWNrIHVzZSAnc2VydmljZScgaW5zdGVhZCBvZiAn c3lzdGVtY3RsJyB0byByZXN0YXJ0CiAgICBzZXJ2aWNlcwoKT25seSBjaGFuZ2UgaW4gVjU6Ci0g ZWRpdCBzdGFja3JjIGZyb20gZGV2c3RhY2sgZmlsZSB0byBjaGFuZ2UgdGhlIGhhcmRjb2RlZCBw YXRoIERFU1QKCk5vIGNoYW5nZSBpbiBWNDoKLSBhY2tlZAoKQ2hhbmdlIGluIFYzOgotIFVzZSBo b3N0IGFzIGFyZ3VtZW50IHRvIHJ1biB0aGUgam9iLgotIFVzZSBzZWxlY3Rqb2IoKSBhbmQgZ2V0 IHJpZCBvZiB0aGUgdW51c2VkICRnaG8uCi0gVXNlIHRhcmdldF9qb2JkaXIoKSBpbnN0ZWFkIG9m IGJ1aWxkZGlyc3Byb3BzKCkuCi0gUmVtb3ZlIEdJVF9CQVNFIGZyb20gZGV2c3RhY2sgY29uZmln LgotIFJlbmFtZSB0aGUgc2NyaXB0IHRvIHRzLW9wZW5zdGFjay1kZXBsb3kgKGZyb20gdHMtb3Bl bnN0YWNrLWRldnN0YWNrKS4KLS0tCiBzZy1ydW4tam9iICAgICAgICAgIHwgICA1ICsKIHRzLW9w ZW5zdGFjay1kZXBsb3kgfCAzMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzNDMgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNzU1IHRzLW9wZW5zdGFjay1kZXBsb3kKCmRpZmYgLS1naXQgYS9zZy1ydW4t am9iIGIvc2ctcnVuLWpvYgppbmRleCA5ZjhkMDAzLi41MTQ2ZGQxIDEwMDc1NQotLS0gYS9zZy1y dW4tam9iCisrKyBiL3NnLXJ1bi1qb2IKQEAgLTQ3NCw2ICs0NzQsMTEgQEAgcHJvYyBydW4tam9i L3Rlc3QtcnVtcHJ1biB7fSB7CiAgICAgICAgICAgICAgICAgIHRzLWd1ZXN0LWRlc3Ryb3ktaGFy ZCAgICAgICAgaG9zdCAgICRnICAgKwogfQogCitwcm9jIG5lZWQtaG9zdHMvdGVzdC1kZXZzdGFj ayB7fSB7IHJldHVybiBob3N0IH0KK3Byb2MgcnVuLWpvYi90ZXN0LWRldnN0YWNrIHt9IHsKKyAg cnVuLXRzIC4gPSB0cy1vcGVuc3RhY2stZGVwbG95IGhvc3QKK30KKwogaWYge1tmaWxlIGV4aXN0 cyBzZy1ydW4tam9iLWFkaG9jXX0gewogICAgIHNvdXJjZSBzZy1ydW4tam9iLWFkaG9jCiB9CmRp ZmYgLS1naXQgYS90cy1vcGVuc3RhY2stZGVwbG95IGIvdHMtb3BlbnN0YWNrLWRlcGxveQpuZXcg ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NzU4ZjgyCi0tLSAvZGV2L251bGwKKysr IGIvdHMtb3BlbnN0YWNrLWRlcGxveQpAQCAtMCwwICsxLDMzOCBAQAorIyEvdXNyL2Jpbi9wZXJs CisjIFRoaXMgaXMgcGFydCBvZiAib3NzdGVzdCIsIGFuIGF1dG9tYXRlZCB0ZXN0aW5nIGZyYW1l d29yayBmb3IgWGVuLgorIyBDb3B5cmlnaHQgKEMpIDIwMTUgQ2l0cml4IEluYy4KKyMKKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisj IEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIwor IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK3VzZSBzdHJpY3QgcXcodmFycyk7 Cit1c2UgT3NzdGVzdDsKK3VzZSBPc3N0ZXN0OjpUZXN0U3VwcG9ydDsKK3VzZSBPc3N0ZXN0OjpC dWlsZFN1cHBvcnQ7CisKK3RzcmVhZGNvbmZpZygpOworb3VyICgkd2hob3N0KSA9IEBBUkdWOwor JHdoaG9zdCB8fD0gJ2hvc3QnOworb3VyICRobyA9IHNlbGVjdGhvc3QoJHdoaG9zdCk7CitvdXIg JGJ1aWxkZGlyID0gdGFyZ2V0X2pvYmRpcigkaG8pOworCitzdWIgdGd0X2luaXQgKCk7CisKK3N1 YiBwYWNrYWdlcyAoKSB7CisgICMgSW5zdGFsbCBvcGVuLWlzY3NpIGFoZWFkIG9mIGRldnN0YWNr IC4uLgorICB0YXJnZXRfaW5zdGFsbF9wYWNrYWdlcygkaG8sIHF3KGdpdCBzdWRvIG9wZW4taXNj c2kpKTsKKyAgIyAuLi4gYW5kIHN0YXJ0IG9wZW4taXNjc2kgdG8gaGF2ZSAvZXRjL2lzY3NpL2lu aXRpYXRvcm5hbWUuaXNjc2kKKyAgIyBnZW5lcmF0ZWQuIFRoaXMgaXMgZG9uZSBvbiBpbnN0YWxs IG9uIFVidW50dS4KKyAgdGFyZ2V0X2NtZF9yb290KCRobywgJ3NlcnZpY2Ugb3Blbi1pc2NzaSBz dGFydCcpOworfQorCitzdWIgY2hlY2tvdXQgKCkgeworICBwcmVwYnVpbGRkaXJzKCk7CisgIGJ1 aWxkX2Nsb25lKCRobywgJ2NpbmRlcicsICRidWlsZGRpciwgJ2NpbmRlcicpOworICBidWlsZF9j bG9uZSgkaG8sICdkZXZzdGFjaycsICRidWlsZGRpciwgJ2RldnN0YWNrJyk7CisgIGJ1aWxkX2Ns b25lKCRobywgJ2dsYW5jZScsICRidWlsZGRpciwgJ2dsYW5jZScpOworICBidWlsZF9jbG9uZSgk aG8sICdrZXlzdG9uZScsICRidWlsZGRpciwgJ2tleXN0b25lJyk7CisgIGJ1aWxkX2Nsb25lKCRo bywgJ25vdmEnLCAkYnVpbGRkaXIsICdub3ZhJyk7CisgIGJ1aWxkX2Nsb25lKCRobywgJ3JlcXVp cmVtZW50cycsICRidWlsZGRpciwgJ3JlcXVpcmVtZW50cycpOworICBidWlsZF9jbG9uZSgkaG8s ICd0ZW1wZXN0JywgJGJ1aWxkZGlyLCAndGVtcGVzdCcpOworCisgIG15ICR2ZyA9IHRhcmdldF9j aG9vc2VfdmcoJGhvLCAxMCoxMDI0KTsgIyAxMEdCCisgIHRhcmdldF9wdXRmaWxlY29udGVudHNf c3Rhc2goJGhvLCA2MCwgPDxFTkQsICRidWlsZGRpci4nL2RldnN0YWNrL2xvY2FsLmNvbmYnKTsK K1tbbG9jYWx8bG9jYWxyY11dCisjIEV2ZXJ5dGhpbmcgc2hvdWxkIGJlIGNsb25lZCBieSBvc3N0 ZXN0LCBzbyBkZXZzdGFjayBkb24ndCBoYXZlIHRvIGRvIGl0CitFUlJPUl9PTl9DTE9ORT1UcnVl CitVU0VfU0NSRUVOPUZhbHNlCitBRE1JTl9QQVNTV09SRD1zZWNyZXRhZG1pbgorREFUQUJBU0Vf UEFTU1dPUkQ9c2VjcmV0ZGF0YWJhc2UKK1JBQkJJVF9QQVNTV09SRD1zZWNyZXRyYWJiaXQKK1NF UlZJQ0VfUEFTU1dPUkQ9c2VjcmV0c2VydmljZQorU0VSVklDRV9UT0tFTj1hdG9rZW5zZXJ2aWNl ZAorIyBtYWtlIGl0IHNtYWxsIGJlY2F1c2UgdGhlcmUgaXMgbm8gd2F5IHRvIG5vdCBoYXZlIHRo aXMgbHZtIHZvbHVtZSBjcmVhdGVkCitWT0xVTUVfQkFDS0lOR19GSUxFX1NJWkU9NTAwTQorREVT VD0kYnVpbGRkaXIKK0xPR0ZJTEU9XCRERVNUL2xvZ3Mvc3RhY2suc2gubG9nCisjIHN0YWNrcmMg c2V0IHRoaXMgYnV0IGRvbid0IHRha2UgXCRERVNUIGludG8gYWNjb3VudAorU0VSVklDRV9ESVI9 XCR7REVTVH0vc3RhdHVzCitMT0dfQ09MT1I9RmFsc2UKK0xJQlZJUlRfVFlQRT14ZW4KK2Rpc2Fi bGVfc2VydmljZSBob3Jpem9uCitkaXNhYmxlX3NlcnZpY2Ugbi1ub3ZuYworZGlzYWJsZV9zZXJ2 aWNlIGRzdGF0CitlbmFibGVfc2VydmljZSBuLW9iagorIyBEaXNhYmxlIG5ldXRyb24gYW5kIHN3 aXRjaCBiYWNrIHRvIG5vdmEtbmV0d29yaworZGlzYWJsZV9zZXJ2aWNlIHEtc3ZjCitkaXNhYmxl X3NlcnZpY2UgcS1kaGNwCitkaXNhYmxlX3NlcnZpY2UgcS1tZXRhCitkaXNhYmxlX3NlcnZpY2Ug cS1hZ3QKK2Rpc2FibGVfc2VydmljZSBxLWwzCitlbmFibGVfc2VydmljZSBuLW5ldAorW1twb3N0 LWNvbmZpZ3xcJENJTkRFUl9DT05GXV0KK1tsdm1kcml2ZXItMV0KK3ZvbHVtZV9ncm91cCA9ICR2 ZworRU5ECisKKyAgIyBzdGFja3JjIGRvZXMgbm90IHRha2UgJERFU1QgZnJvbSBsb2NhbC5jb25m IGludG8gYWNjb3VudCwgc28gZml4IGl0IGhlcmUKKyAgdGFyZ2V0X2VkaXRmaWxlKCRobywgIiRi dWlsZGRpci9kZXZzdGFjay9zdGFja3JjIiwgc3ViIHsKKyAgICAgIHdoaWxlICg8RUk+KSB7Cisg ICAgICAgIGlmIChtL15ERVNUPVwvb3B0XC9zdGFjayQvKSB7CisgICAgICAgICAgcy9ERVNUPVwv b3B0XC9zdGFjay9ERVNUPSRidWlsZGRpci87CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgRU8g b3IgZGllICQhOworICAgICAgfQorICB9KTsKKworICAjIGxpYnZpcnQgaXMgYWxyZWFkeSBpbnN0 YWxsZWQsIGJ1dCBub3QgYXMgYSBwYWNrYWdlLCBzbyBhdm9pZCBpbnN0YWxsYXRpb24gb2YKKyAg IyB0aGUgbGlidmlydCBwYWNrYWdlIHdpdGggZGV2c3RhY2sKKyAgdGFyZ2V0X2VkaXRmaWxlKCRo bywgIiRidWlsZGRpci9kZXZzdGFjay9maWxlcy9kZWJzL25vdmEiLCBzdWIgeworICAgICAgd2hp bGUgKDxFST4pIHsKKyAgICAgICAgbmV4dCBpZiBtLy4qbGlidmlydC4qLzsKKyAgICAgICAgcHJp bnQgRU8gb3IgZGllICQhOworICAgICAgfQorICB9KTsKKyAgdGFyZ2V0X2VkaXRmaWxlKCRobywg IiRidWlsZGRpci9kZXZzdGFjay9saWIvbm92YV9wbHVnaW5zL2Z1bmN0aW9ucy1saWJ2aXJ0Iiwg c3ViIHsKKyAgICAgIHdoaWxlICg8RUk+KSB7CisgICAgICAgIG5leHQgaWYgbS9pbnN0YWxsX3Bh Y2thZ2UuKmxpYnZpcnQuKi87CisgICAgICAgIHByaW50IEVPIG9yIGRpZSAkITsKKyAgICAgIH0K KyAgfSk7CisKKyAgIyBkZXZzdGFjayBibGluZGx5IGFzc3VtZSB0aGF0IHN5c3RlbWQgaXMgdXNl ZCBpZiBzeXN0ZW1jdGwgaXMgcHJlc2VudAorICB0YXJnZXRfZWRpdGZpbGUoJGhvLCAiJGJ1aWxk ZGlyL2RldnN0YWNrL2Z1bmN0aW9ucy1jb21tb24iLCBzdWIgeworICAgICAgd2hpbGUgKDxFST4p IHsKKyAgICAgICAgaWYgKG0lXFsgLXggL2Jpbi9zeXN0ZW1jdGwlKSB7CisgICAgICAgICAgcyVc WyAteCAvYmluL3N5c3RlbWN0bCBcXSVmYWxzZSUKKyAgICAgICAgfQorICAgICAgICBwcmludCBF TyBvciBkaWUgJCE7CisgICAgICB9CisgIH0pOworCisgICMgT3BlblN0YWNrIG5lZWRzIGFjY2Vz cyB0byBsaWJ2aXJ0IGZyb20gYSB1c2VyLgorICB0YXJnZXRfY21kX3Jvb3QoJGhvLCA8PEVORCk7 CisgICAgaWYgISBnZXRlbnQgZ3JvdXAgbGlidmlydCA+L2Rldi9udWxsOyB0aGVuCisgICAgICBn cm91cGFkZCBsaWJ2aXJ0CisgICAgZmkKKyAgICBjYXQgPj4gL2V0Yy9saWJ2aXJ0L2xpYnZpcnRk LmNvbmYgPDxFT0YKK3VuaXhfc29ja19ncm91cCA9ICJsaWJ2aXJ0IgordW5peF9zb2NrX3JvX3Bl cm1zID0gIjA3NzciCit1bml4X3NvY2tfcndfcGVybXMgPSAiMDc3MCIKK0VPRgorICAgICMgRm9y IHVua25vd24gcmVhc29uLCByZXN0YXJ0IGZhaWwgd2hlbiBkb25lIGJ5IGRldnN0YWNrCisgICAg IyBzbyBzdG9wIHRoZSBzZXJ2aWNlIGhlcmUsIGFuZCBkZXZzdGFjayB3aWxsIHN0YXJ0IGl0Lgor ICAgIHNlcnZpY2UgbGlidmlydGQgc3RvcAorRU5ECisKKyAgIyBkZXZzdGFjayBpcyBnb2luZyB0 byBzZXR1cCB0aGUgaG9zdCwgaW5zdGFsbCBzb21lIGRlcGVuZGVuY3kuCisgIHRhcmdldF9wdXRm aWxlY29udGVudHNfcm9vdF9zdGFzaCgkaG8sIDEwMCwgPDxFTkQsIi9ldGMvc3Vkb2Vycy5kL2Rl dnN0YWNrIik7Citvc3N0ZXN0IEFMTD0oQUxMKSBOT1BBU1NXRDpBTEwKK0VORAorCisgIHRhcmdl dF9wdXRmaWxlY29udGVudHNfcm9vdF9zdGFzaCgkaG8sIDYwLCB0Z3RfaW5pdCgpLCAiL2V0Yy9p bml0LmQvdGd0Iik7CisgIHRhcmdldF9jbWRfcm9vdCgkaG8sIDw8RU5EKTsKKyAgICBjaG1vZCAr eCAvZXRjL2luaXQuZC90Z3QKK0VORAorfQorCitzdWIgZGVwbG95KCkgeworICB0YXJnZXRfY21k KCRobywgPDxFTkQsIDE4MDApOworICAgIGNkICRidWlsZGRpci9kZXZzdGFjaworICAgIC4vc3Rh Y2suc2gKK0VORAorfQorCitwYWNrYWdlcygpOworY2hlY2tvdXQoKTsKK2RlcGxveSgpOworCisj IFRoaXMgaXMgbWlzc2luZyBmcm9tIERlYmlhbiBidXQgcmVxdWlyZWQgYnkgZGV2c3RhY2sKKyMg R290IGl0IGZyb20gaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvY2dpLWJpbi9idWdyZXBvcnQuY2dp P2J1Zz01Nzc5MjUKK3N1YiB0Z3RfaW5pdCAoKSB7CisgIHJldHVybiA8PCdFTkQnOworIyEvYmlu L2Jhc2gKKyMjIyBCRUdJTiBJTklUIElORk8KKyMgUHJvdmlkZXM6ICAgICAgICAgIHRndGQKKyMg UmVxdWlyZWQtU3RhcnQ6ICAgICRyZW1vdGVfZnMgJHN5c2xvZworIyBSZXF1aXJlZC1TdG9wOiAg ICAgJHJlbW90ZV9mcyAkc3lzbG9nCisjIFNob3VsZC1TdGFydDogICAgICB6ZnMKKyMgU2hvdWxk LVN0b3A6ICAgICAgIHpmcworIyBEZWZhdWx0LVN0YXJ0OiAgICAgMiAzIDQgNQorIyBEZWZhdWx0 LVN0b3A6ICAgICAgMCAxIDYKKyMgU2hvcnQtRGVzY3JpcHRpb246IGlzY3NpIHRhcmdldCBkYWVt b24KKyMgRGVzY3JpcHRpb246ICAgICAgIGlzY3NpIHRhcmdldCBkYWVtb24KKyMjIyBFTkQgSU5J VCBJTkZPCisKK0RFU0M9InRhcmdldCBmcmFtZXdvcmsgZGFlbW9uIgorTkFNRT10Z3RkCitEQUVN T049L3Vzci9zYmluLyR7TkFNRX0KKworVEdURF9DT05GSUc9L2V0Yy90Z3QvdGFyZ2V0cy5jb25m CisKK1RBU0s9JDEKKworLiAvbGliL2xzYi9pbml0LWZ1bmN0aW9ucworCitbIC14ICREQUVNT04g XSB8fCBleGl0IDAKKworc3RhcnQoKQoreworICAgICAgICBsb2dfZGFlbW9uX21zZyAiU3RhcnRp bmcgJERFU0MiICIkTkFNRSIKKyAgICAgICAgIyBTdGFydCB0Z3RkIGZpcnN0LgorICAgICAgICB0 Z3RkICY+L2Rldi9udWxsCisgICAgICAgIFJFVFZBTD0kPworICAgICAgICBpZiBbICIkUkVUVkFM IiAtbmUgMCBdIDsgdGhlbgorICAgICAgICAgICAgICAgIGxvZ19lbmRfbXNnIDEKKyAgICAgICAg ICAgICAgICBleGl0IDEKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZ19lbmRfbXNn IDAKKyAgICAgICAgZmkKKyAgICAgICAgIyBQdXQgdGd0ZCBpbnRvICJvZmZsaW5lIiBzdGF0ZSB1 bnRpbCBhbGwgdGhlIHRhcmdldHMgYXJlIGNvbmZpZ3VyZWQuCisgICAgICAgICMgV2UgZG9uJ3Qg d2FudCBpbml0aWF0b3JzIHRvIChyZSljb25uZWN0IGFuZCBmYWlsIHRoZSBjb25uZWN0aW9uCisg ICAgICAgICMgaWYgaXQncyBub3QgcmVhZHkuCisgICAgICAgIHRndGFkbSAtLW9wIHVwZGF0ZSAt LW1vZGUgc3lzIC0tbmFtZSBTdGF0ZSAtdiBvZmZsaW5lCisgICAgICAgICMgQ29uZmlndXJlIHRo ZSB0YXJnZXRzLgorICAgICAgICB0Z3QtYWRtaW4gLWUgLWMgJFRHVERfQ09ORklHCisgICAgICAg ICMgUHV0IHRndGQgaW50byAicmVhZHkiIHN0YXRlLgorICAgICAgICB0Z3RhZG0gLS1vcCB1cGRh dGUgLS1tb2RlIHN5cyAtLW5hbWUgU3RhdGUgLXYgcmVhZHkKK30KKworc3RvcCgpCit7CisgICAg ICAgIGlmIFsgIiRSVU5MRVZFTCIgPT0gMCAtbyAiJFJVTkxFVkVMIiA9PSA2IF0gOyB0aGVuCisg ICAgICAgICAgICBmb3JjZWRzdG9wCisgICAgICAgIGZpCisgICAgICAgIGxvZ19kYWVtb25fbXNn ICJTdG9wcGluZyAkREVTQyIgIiROQU1FIgorICAgICAgICAjIFJlbW92ZSBhbGwgdGFyZ2V0cy4g SXQgb25seSByZW1vdmVzIHRhcmdldHMgd2hpY2ggYXJlIG5vdCBpbiB1c2UuCisgICAgICAgIHRn dC1hZG1pbiAtLXVwZGF0ZSBBTEwgLWMgL2Rldi9udWxsICY+L2Rldi9udWxsCisgICAgICAgICMg dGd0ZCB3aWxsIGV4aXQgaWYgYWxsIHRhcmdldHMgd2VyZSByZW1vdmVkCisgICAgICAgIHRndGFk bSAtLW9wIGRlbGV0ZSAtLW1vZGUgc3lzdGVtICY+L2Rldi9udWxsCisgICAgICAgIFJFVFZBTD0k PworICAgICAgICBpZiBbICIkUkVUVkFMIiAtZXEgMTA3IF0gOyB0aGVuCisgICAgICAgICAgICAg ICAgaWYgWyAiJFRBU0siICE9ICJyZXN0YXJ0IiBdIDsgdGhlbgorICAgICAgICAgICAgICAgICAg ICAgICAgbG9nX2VuZF9tc2cgMQorICAgICAgICAgICAgICAgICAgICAgICAgZXhpdCAxCisgICAg ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nX2VuZF9tc2cgMAor ICAgICAgICAgICAgICAgIGZpCisgICAgICAgIGVsaWYgWyAiJFJFVFZBTCIgLW5lIDAgXSA7IHRo ZW4KKyAgICAgICAgICAgICAgICBsb2dfZW5kX21zZyAxCisgICAgICAgICAgICAgICAgZWNobyAi U29tZSBpbml0aWF0b3JzIGFyZSBzdGlsbCBjb25uZWN0ZWQgLSBjb3VsZCBub3Qgc3RvcCB0Z3Rk IgorICAgICAgICAgICAgICAgIGV4aXQgMgorICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg bG9nX2VuZF9tc2cgMAorICAgICAgICBmaQorICAgICAgICBlY2hvIC1uCit9CisKK2ZvcmNlZHN0 b3AoKQoreworICAgICAgICAjIE5PVEU6IEZvcmNlZCBzaHV0ZG93biBvZiB0aGUgaXNjc2kgdGFy Z2V0IG1heSBjYXVzZSBkYXRhIGNvcnJ1cHRpb24KKyAgICAgICAgIyBmb3IgaW5pdGlhdG9ycyB0 aGF0IGFyZSBjb25uZWN0ZWQuCisgICAgICAgIGVjaG8gIkZvcmNlLXN0b3BwaW5nIHRhcmdldCBm cmFtZXdvcmsgZGFlbW9uIgorICAgICAgICAjIE9mZmxpbmUgZXZlcnl0aGluZyBmaXJzdC4gTWF5 IGJlIG5lZWRlZCBpZiB3ZSdyZSByZWJvb3RpbmcsIGJ1dAorICAgICAgICAjIGV4cGVjdCB0aGUg aW5pdGlhdG9ycyB0byByZWNvbm5lY3QgY2xlYW5seSB3aGVuIHdlIGJvb3QgYWdhaW4KKyAgICAg ICAgIyAoaS5lLiB3ZSBkb24ndCB3YW50IHRoZW0gdG8gcmVjb25uZWN0IHRvIGEgdGd0ZCB3aGlj aCBpcyBzdGlsbAorICAgICAgICAjIHdvcmtpbmcsIGJ1dCB0aGUgdGFyZ2V0IGlzIGdvbmUpLgor ICAgICAgICB0Z3RhZG0gLS1vcCB1cGRhdGUgLS1tb2RlIHN5cyAtLW5hbWUgU3RhdGUgLXYgb2Zm bGluZSAmPi9kZXYvbnVsbAorICAgICAgICBSRVRWQUw9JD8KKyAgICAgICAgaWYgWyAiJFJFVFZB TCIgLWVxIDEwNyBdIDsgdGhlbgorICAgICAgICAgICAgZWNobyAidGd0ZCBpcyBub3QgcnVubmlu ZyIKKyAgICAgICAgICAgIFsgIiRUQVNLIiAhPSAicmVzdGFydCIgXSAmJiBleGl0IDEKKyAgICAg ICAgZWxzZQorICAgICAgICAgICAgdGd0LWFkbWluIC0tb2ZmbGluZSBBTEwKKyAgICAgICAgICAg ICMgUmVtb3ZlIGFsbCB0YXJnZXRzLCBldmVuIGlmIHRoZXkgYXJlIHN0aWxsIGluIHVzZS4KKyAg ICAgICAgICAgIHRndC1hZG1pbiAtLXVwZGF0ZSBBTEwgLWMgL2Rldi9udWxsIC1mCisgICAgICAg ICAgICAjIEl0IHdpbGwgc2h1dCBkb3duIHRndGQgb25seSBhZnRlciBhbGwgdGFyZ2V0cyB3ZXJl IHJlbW92ZWQuCisgICAgICAgICAgICB0Z3RhZG0gLS1vcCBkZWxldGUgLS1tb2RlIHN5c3RlbQor ICAgICAgICAgICAgUkVUVkFMPSQ/CisgICAgICAgICAgICBpZiBbICIkUkVUVkFMIiAtbmUgMCBd IDsgdGhlbgorICAgICAgICAgICAgICAgIGVjaG8gIkZhaWxlZCB0byBzaHV0ZG93biB0Z3RkIgor ICAgICAgICAgICAgICAgIGV4aXQgMQorICAgICAgICAgICAgZmkKKyAgICAgICAgZmkKKyAgICAg ICAgZWNobyAtbgorfQorCityZWxvYWQoKQoreworICAgICAgICBsb2dfZGFlbW9uX21zZyAiUmVs b2FkaW5nIGNvbmZpZ3VyYXRpb24gb2YgJERFU0MiICIkTkFNRSIKKyAgICAgICAgIyBVcGRhdGUg Y29uZmlndXJhdGlvbiBmb3IgdGFyZ2V0cy4gT25seSB0YXJnZXRzIHdoaWNoCisgICAgICAgICMg YXJlIG5vdCBpbiB1c2Ugd2lsbCBiZSB1cGRhdGVkLgorICAgICAgICB0Z3QtYWRtaW4gLS11cGRh dGUgQUxMIC1jICRUR1REX0NPTkZJRyAmPi9kZXYvbnVsbAorICAgICAgICBSRVRWQUw9JD8KKyAg ICAgICAgaWYgWyAiJFJFVFZBTCIgLWVxIDEwNyBdIDsgdGhlbgorICAgICAgICAgICAgICAgIGxv Z19lbmRfbXNnIDEKKyAgICAgICAgICAgICAgICBlY2hvICJ0Z3RkIGlzIG5vdCBydW5uaW5nIgor ICAgICAgICAgICAgICAgIGV4aXQgMQorICAgICAgICBmaQorICAgICAgICBsb2dfZW5kX21zZyAw Cit9CisKK2ZvcmNlZHJlbG9hZCgpCit7CisgICAgICAgIGxvZ19kYWVtb25fbXNnICJGb3JjZWQt cmVsb2FkIGNvbmZpZ3VyYXRpb24gb2YgJERFU0MiICIkTkFNRSIKKyAgICAgICAgIyBVcGRhdGUg Y29uZmlndXJhdGlvbiBmb3IgdGFyZ2V0cywgZXZlbiB0aG9zZSBpbiB1c2UuCisgICAgICAgIHRn dC1hZG1pbiAtLXVwZGF0ZSBBTEwgLWYgLWMgJFRHVERfQ09ORklHICY+L2Rldi9udWxsCisgICAg ICAgIFJFVFZBTD0kPworICAgICAgICBpZiBbICIkUkVUVkFMIiAtZXEgMTA3IF0gOyB0aGVuCisg ICAgICAgICAgICAgICAgbG9nX2VuZF9tc2cgMQorICAgICAgICAgICAgICAgIGVjaG8gInRndGQg aXMgbm90IHJ1bm5pbmciCisgICAgICAgICAgICAgICAgZXhpdCAxCisgICAgICAgIGVsc2UKKyAg ICAgICAgICAgICAgICBsb2dfZW5kX21zZyAwCisgICAgICAgIGZpCit9CisKK3N0YXR1cygpCit7 CisgICAgICAgICMgRG9uJ3QgbmFtZSB0aGlzIHNjcmlwdCAidGd0ZCIuLi4KKyAgICAgICAgVEdU RF9QUk9DPSQocHMgLUMgdGd0ZCB8IGdyZXAgLWMgdGd0ZCkKKyAgICAgICAgaWYgWyAiJFRHVERf UFJPQyIgLWVxIDIgXSA7IHRoZW4KKyAgICAgICAgICAgIGVjaG8gInRndGQgaXMgcnVubmluZy4g UnVuICd0Z3QtYWRtaW4gLXMnIHRvIHNlZSBkZXRhaWxlZCB0YXJnZXQgaW5mby4iCisgICAgICAg IGVsc2UKKyAgICAgICAgICAgIGVjaG8gInRndGQgaXMgTk9UIHJ1bm5pbmcuIgorICAgICAgICBm aQorfQorCitjYXNlICQxIGluCisgICAgICAgIHN0YXJ0KQorICAgICAgICAgICAgICAgIHN0YXJ0 CisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgc3RvcCkKKyAgICAgICAgICAgICAgICBzdG9w CisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgZm9yY2Vkc3RvcCkKKyAgICAgICAgICAgICAg ICBmb3JjZWRzdG9wCisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgcmVzdGFydCkKKyAgICAg ICAgICAgICAgICBUQVNLPXJlc3RhcnQKKyAgICAgICAgICAgICAgICBzdG9wICYmIHN0YXJ0Cisg ICAgICAgICAgICAgICAgOzsKKyAgICAgICAgZm9yY2VkcmVzdGFydCkKKyAgICAgICAgICAgICAg ICBUQVNLPXJlc3RhcnQKKyAgICAgICAgICAgICAgICBmb3JjZWRzdG9wICYmIHN0YXJ0CisgICAg ICAgICAgICAgICAgOzsKKyAgICAgICAgcmVsb2FkKQorICAgICAgICAgICAgICAgIHJlbG9hZAor ICAgICAgICAgICAgICAgIDs7CisgICAgICAgIGZvcmNlLXJlbG9hZCkKKyAgICAgICAgICAgICAg ICBmb3JjZWRyZWxvYWQKKyAgICAgICAgICAgICAgICA7OworICAgICAgICBzdGF0dXMpCisgICAg ICAgICAgICAgICAgc3RhdHVzCisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgKikKKyAgICAg ICAgICAgICAgICBlY2hvICJVc2FnZTogJDAge3N0YXJ0fHN0b3B8Zm9yY2Vkc3RvcHxyZXN0YXJ0 fGZvcmNlZHJlc3RhcnR8cmVsb2FkfGZvcmNlLXJlbG9hZHxzdGF0dXN9IgorICAgICAgICAgICAg ICAgIGV4aXQgMgorICAgICAgICAgICAgICAgIDs7Citlc2FjCitFTkQKK30KLS0gCkFudGhvbnkg UEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==