From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jacek Konieczny Subject: Re: [PATCH] Fix locking in tools/hotplug/Linux/locking.sh Date: Tue, 13 Nov 2012 14:27:35 +0100 Message-ID: <20121113132735.GD7561@jajo.eggsoft> References: <1352469371-15457-1-git-send-email-jajcus@jajcus.net> <1352738557.27833.302.camel@zakaz.uk.xensource.com> <20121112180738.GA26672@aepfle.de> <20121112183457.GB2114@lolek.nigdzie> <20121112184047.GA28988@aepfle.de> <1352804909.7491.55.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1352804909.7491.55.camel@zakaz.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: Olaf Hering , "xen-devel@lists.xensource.com" , Ian Jackson List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBOb3YgMTMsIDIwMTIgYXQgMTE6MDg6MjlBTSArMDAwMCwgSWFuIENhbXBiZWxsIHdy b3RlOgo+IE9uIE1vbiwgMjAxMi0xMS0xMiBhdCAxODo0MCArMDAwMCwgT2xhZiBIZXJpbmcgd3Jv dGU6Cj4gPiBPbiBNb24sIE5vdiAxMiwgSmFjZWsgS29uaWVjem55IHdyb3RlOgo+ID4gCj4gPiA+ ICMgcGVybCAtLXZlcnNpb24KPiA+ID4gVGhpcyBpcyBwZXJsLCB2NS44LjggYnVpbHQgZm9yIHg4 Nl82NC1wbGQtbGludXgtdGhyZWFkLW11bHRpCj4gPiAKPiA+IHNsZXMxMXNwMiBoYXMgcGVybCA1 LjEwLjAsIG1heWJlIHRoZXJlIGlzIGRpZmZlcmVudCBiZWhhdmlvdXIgaW4KPiA+IGRpZmZlcmVu dCBwZXJsIHZlcnNpb25zLgo+IAo+IE1vcmUgbGlrZWx5IHRvIGJlIHRoZSBrZXJuZWwsIHNpbmNl IFBlcmwgd291bGQgaGF2ZSB0byBqdW1wIHRocm91Z2gKPiBob29wcyB0byBmaWd1cmUgb3V0IGlm IGEgcmFuZG9tIGZkIHdoaWNoIGl0IGdvdCBwYXNzZWQgd2FzIHIvbyBvciByL3csIEkKPiB0aGlu ay4KCkkgc3VzcGVjdGVkIG15IHBlcmwganVzdCBjaGVja3MgdGhlIGZpbGUgZGVzY3JpcHRvciB3 aGljaCBpcyB0byBiZQpvcGVuZWQgZm9yIHJlYWRpbmcsIGFuZCBpdCBzZWVtcyB0byBiZSB0aGUg Y2FzZS4KCuKApmhvd2V2ZXIsIGFmdGVyIGxvb2tpbmcgaW50byBQZXJsIHNvdXJjZSBjb2RlIGl0 IHNlZW1zIGl0IG1pZ2h0IGJlCmdsaWJjIGFuZCBpdHMgZmRvcGVuKCkgaW1wbGVtZW50YXRpb24s IGFzIFBlcmwgY2FsbHMgZmRvcGVuKCkgKHVubGVzcwonc2ZpbycgaXMgdXNlZCBpbnN0ZWFkIG9m ICdzdGRpbycpLgoKQW5kIGZyb20gdGhlIGZkb3BlbigzKSBtYW51YWw6Cgo+IFRoZSAgbW9kZSAg b2YgdGhlIHN0cmVhbSAob25lIG9mIHRoZSB2YWx1ZXMgInIiLCAicisiLCAidyIsICJ3KyIsCj4g ImEiLCAiYSsiKSBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCAgdGhlICBtb2RlIG9mIHRoZSBmaWxl ICBkZXNjcmlwdG9yLgoKIyBycG0gLXEgZ2xpYmMKZ2xpYmMtMi4xNS0xMC5hb3MxLng4Nl82NAoK PiBQZXJoYXBzIGl0cyBhIHNlY3VyaXR5IHRoaW5nIChlLmcuIHNlbGludXggb3Igc29tZXRoaW5n IGxpa2UgdGhhdCkKPiBlbmZvcmNpbmcgc29tZXRoaW5nIGV4dHJhPwoKTm90aGluZyBsaWtlIHRo YXQgaGVyZS4KCj4gCj4gTWlnaHQgYmUgaW50ZXJlc3RpbmcgdG8gcnVuIHRoaW5ncyB1bmRlciBz dHJhY2UgPyAKCkhlcmUgeW91IGFyZSwgKG5vdGljZSB0aGUgZmNudGwoMywgRl9HRVRGTCkgY2Fs bCBiZWZvcmUgdGhlIGVycm9yKToKCisgX2xvY2tmZD00MgorIF9sb2NrZmlsZT0vdG1wL2xvY2tm aWxlCisgZXZhbCAnZXhlYyA0Mj4+L3RtcC9sb2NrZmlsZScKKysgZXhlYworIGZsb2NrIC14IDQy CisrIHN0cmFjZSBwZXJsIC1lICcKICAgICAgICAgICAgb3BlbiBTVERJTiwgIjwmNDIiIG9yIGRp ZSAkITsKICAgICAgICAgICAgbXkgJGZkX2ludW0gPSAoc3RhdCBTVERJTilbMV07IGRpZSAkISB1 bmxlc3MgZGVmaW5lZCAkZmRfaW51bTsKICAgICAgICAgICAgbXkgJGZpbGVfaW51bSA9IChzdGF0 ICRBUkdWWzBdKVsxXTsKICAgICAgICAgICAgcHJpbnQgInlcbiIgaWYgJGZkX2ludW0gZXEgJGZp bGVfaW51bTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIC90bXAvbG9ja2ZpbGUKZXhl Y3ZlKCIvdXNyL2Jpbi9wZXJsIiwgWyJwZXJsIiwgIi1lIiwgIlxuICAgICAgICAgICAgb3BlbiBT VERJTiwgXCI8JjQyXCIgIi4uLiwgIi90bXAvbG9ja2ZpbGUiXSwgWy8qIDI4IHZhcnMgKi9dKSA9 IDAKYnJrKDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxYzAxMDAwCm1t YXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9O WU1PVVMsIC0xLCAwKSA9IDB4N2YyMTdhZTZjMDAwCmFjY2VzcygiL2V0Yy9sZC5zby5wcmVsb2Fk IiwgUl9PSykgICAgICA9IC0xIEVOT0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKb3Bl bigiL3Vzci9saWI2NC9wZXJsNS81LjguOC94ODZfNjQtcGxkLWxpbnV4LXRocmVhZC1tdWx0aS9D T1JFL3Rscy94ODZfNjQvbGlicGVybC5zby41LjguMCIsIE9fUkRPTkxZfE9fQ0xPRVhFQykgPSAt MSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCnN0YXQoIi91c3IvbGliNjQvcGVy bDUvNS44LjgveDg2XzY0LXBsZC1saW51eC10aHJlYWQtbXVsdGkvQ09SRS90bHMveDg2XzY0Iiwg MHg3ZmZmNTI0MmQ4MjApID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpv cGVuKCIvdXNyL2xpYjY0L3Blcmw1LzUuOC44L3g4Nl82NC1wbGQtbGludXgtdGhyZWFkLW11bHRp L0NPUkUvdGxzL2xpYnBlcmwuc28uNS44LjAiLCBPX1JET05MWXxPX0NMT0VYRUMpID0gLTEgRU5P RU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpzdGF0KCIvdXNyL2xpYjY0L3Blcmw1LzUu OC44L3g4Nl82NC1wbGQtbGludXgtdGhyZWFkLW11bHRpL0NPUkUvdGxzIiwgMHg3ZmZmNTI0MmQ4 MjApID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvdXNyL2xp YjY0L3Blcmw1LzUuOC44L3g4Nl82NC1wbGQtbGludXgtdGhyZWFkLW11bHRpL0NPUkUveDg2XzY0 L2xpYnBlcmwuc28uNS44LjAiLCBPX1JET05MWXxPX0NMT0VYRUMpID0gLTEgRU5PRU5UIChObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpzdGF0KCIvdXNyL2xpYjY0L3Blcmw1LzUuOC44L3g4Nl82 NC1wbGQtbGludXgtdGhyZWFkLW11bHRpL0NPUkUveDg2XzY0IiwgMHg3ZmZmNTI0MmQ4MjApID0g LTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvdXNyL2xpYjY0L3Bl cmw1LzUuOC44L3g4Nl82NC1wbGQtbGludXgtdGhyZWFkLW11bHRpL0NPUkUvbGlicGVybC5zby41 LjguMCIsIE9fUkRPTkxZfE9fQ0xPRVhFQykgPSAzCnJlYWQoMywgIlwxNzdFTEZcMlwxXDFcMFww XDBcMFwwXDBcMFwwXDBcM1wwPlwwXDFcMFwwXDBAWVwzXDBcMFwwXDBcMCIuLi4sIDgzMikgPSA4 MzIKZnN0YXQoMywge3N0X21vZGU9U19JRlJFR3wwNzU1LCBzdF9zaXplPTE0MjUwMzIsIC4uLn0p ID0gMAptbWFwKE5VTEwsIDM1Mjg3NjgsIFBST1RfUkVBRHxQUk9UX0VYRUMsIE1BUF9QUklWQVRF fE1BUF9ERU5ZV1JJVEUsIDMsIDApID0gMHg3ZjIxN2E4ZWUwMDAKbXByb3RlY3QoMHg3ZjIxN2Fh NDAwMDAsIDIwOTMwNTYsIFBST1RfTk9ORSkgPSAwCm1tYXAoMHg3ZjIxN2FjM2YwMDAsIDQ1MDU2 LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJ VEUsIDMsIDB4MTUxMDAwKSA9IDB4N2YyMTdhYzNmMDAwCm1tYXAoMHg3ZjIxN2FjNGEwMDAsIDYy MDgsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfRklYRUR8TUFQX0FOT05Z TU9VUywgLTEsIDApID0gMHg3ZjIxN2FjNGEwMDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gMApvcGVuKCIvdXNyL2xpYjY0L3Blcmw1LzUuOC44L3g4Nl82NC1wbGQt bGludXgtdGhyZWFkLW11bHRpL0NPUkUvbGliZGwuc28uMiIsIE9fUkRPTkxZfE9fQ0xPRVhFQykg PSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCm9wZW4oIi9ldGMvbGQuc28u Y2FjaGUiLCBPX1JET05MWXxPX0NMT0VYRUMpID0gMwpmc3RhdCgzLCB7c3RfbW9kZT1TX0lGUkVH fDA2NDQsIHN0X3NpemU9MjQxMDQsIC4uLn0pID0gMAptbWFwKE5VTEwsIDI0MTA0LCBQUk9UX1JF QUQsIE1BUF9QUklWQVRFLCAzLCAwKSA9IDB4N2YyMTdhZTY2MDAwCmNsb3NlKDMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IDAKb3BlbigiL2xpYjY0L2xpYmRsLnNvLjIiLCBPX1JE T05MWXxPX0NMT0VYRUMpID0gMwpyZWFkKDMsICJcMTc3RUxGXDJcMVwxXDBcMFwwXDBcMFwwXDBc MFwwXDNcMD5cMFwxXDBcMFwwXDIwXDE2XDBcMFwwXDBcMFwwIi4uLiwgODMyKSA9IDgzMgpmc3Rh dCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA3NTUsIHN0X3NpemU9MTQ2NzIsIC4uLn0pID0gMAptbWFw KE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllN T1VTLCAtMSwgMCkgPSAweDdmMjE3YWU2NTAwMAptbWFwKE5VTEwsIDIxMDk2ODgsIFBST1RfUkVB RHxQUk9UX0VYRUMsIE1BUF9QUklWQVRFfE1BUF9ERU5ZV1JJVEUsIDMsIDApID0gMHg3ZjIxN2E2 ZWEwMDAKbXByb3RlY3QoMHg3ZjIxN2E2ZWMwMDAsIDIwOTcxNTIsIFBST1RfTk9ORSkgPSAwCm1t YXAoMHg3ZjIxN2E4ZWMwMDAsIDgxOTIsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFU RXxNQVBfRklYRUR8TUFQX0RFTllXUklURSwgMywgMHgyMDAwKSA9IDB4N2YyMTdhOGVjMDAwCmNs b3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKb3BlbigiL3Vzci9saWI2 NC9wZXJsNS81LjguOC94ODZfNjQtcGxkLWxpbnV4LXRocmVhZC1tdWx0aS9DT1JFL2xpYm0uc28u NiIsIE9fUkRPTkxZfE9fQ0xPRVhFQykgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkpCm9wZW4oIi9saWI2NC9saWJtLnNvLjYiLCBPX1JET05MWXxPX0NMT0VYRUMpID0gMwpy ZWFkKDMsICJcMTc3RUxGXDJcMVwxXDBcMFwwXDBcMFwwXDBcMFwwXDNcMD5cMFwxXDBcMFwwXDI2 MFVcMFwwXDBcMFwwXDAiLi4uLCA4MzIpID0gODMyCmZzdGF0KDMsIHtzdF9tb2RlPVNfSUZSRUd8 MDc1NSwgc3Rfc2l6ZT05OTc2NDAsIC4uLn0pID0gMAptbWFwKE5VTEwsIDMwOTI3NzYsIFBST1Rf UkVBRHxQUk9UX0VYRUMsIE1BUF9QUklWQVRFfE1BUF9ERU5ZV1JJVEUsIDMsIDApID0gMHg3ZjIx N2EzZjYwMDAKbXByb3RlY3QoMHg3ZjIxN2E0ZTkwMDAsIDIwOTMwNTYsIFBST1RfTk9ORSkgPSAw Cm1tYXAoMHg3ZjIxN2E2ZTgwMDAsIDgxOTIsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJ VkFURXxNQVBfRklYRUR8TUFQX0RFTllXUklURSwgMywgMHhmMjAwMCkgPSAweDdmMjE3YTZlODAw MApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCm9wZW4oIi91c3Iv bGliNjQvcGVybDUvNS44LjgveDg2XzY0LXBsZC1saW51eC10aHJlYWQtbXVsdGkvQ09SRS9saWJw dGhyZWFkLnNvLjAiLCBPX1JET05MWXxPX0NMT0VYRUMpID0gLTEgRU5PRU5UIChObyBzdWNoIGZp bGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvbGliNjQvbGlicHRocmVhZC5zby4wIiwgT19SRE9OTFl8 T19DTE9FWEVDKSA9IDMKcmVhZCgzLCAiXDE3N0VMRlwyXDFcMVwwXDBcMFwwXDBcMFwwXDBcMFwz XDA+XDBcMVwwXDBcMGBtXDBcMFwwXDBcMFwwIi4uLiwgODMyKSA9IDgzMgpmc3RhdCgzLCB7c3Rf bW9kZT1TX0lGUkVHfDA3NTUsIHN0X3NpemU9MTM1NDMzLCAuLi59KSA9IDAKbW1hcChOVUxMLCAy MjEyNzg0LCBQUk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBfUFJJVkFURXxNQVBfREVOWVdSSVRFLCAz LCAwKSA9IDB4N2YyMTdhMWQ5MDAwCm1wcm90ZWN0KDB4N2YyMTdhMWYxMDAwLCAyMDkzMDU2LCBQ Uk9UX05PTkUpID0gMAptbWFwKDB4N2YyMTdhM2YwMDAwLCA4MTkyLCBQUk9UX1JFQUR8UFJPVF9X UklURSwgTUFQX1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4MTcwMDApID0g MHg3ZjIxN2EzZjAwMDAKbW1hcCgweDdmMjE3YTNmMjAwMCwgMTMyMzIsIFBST1RfUkVBRHxQUk9U X1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfRklYRUR8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHg3 ZjIxN2EzZjIwMDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMApv cGVuKCIvdXNyL2xpYjY0L3Blcmw1LzUuOC44L3g4Nl82NC1wbGQtbGludXgtdGhyZWFkLW11bHRp L0NPUkUvbGliYy5zby42IiwgT19SRE9OTFl8T19DTE9FWEVDKSA9IC0xIEVOT0VOVCAoTm8gc3Vj aCBmaWxlIG9yIGRpcmVjdG9yeSkKb3BlbigiL2xpYjY0L2xpYmMuc28uNiIsIE9fUkRPTkxZfE9f Q0xPRVhFQykgPSAzCnJlYWQoMywgIlwxNzdFTEZcMlwxXDFcMFwwXDBcMFwwXDBcMFwwXDBcM1ww PlwwXDFcMFwwXDBcMzIwXDI1XDJcMFwwXDBcMFwwIi4uLiwgODMyKSA9IDgzMgpmc3RhdCgzLCB7 c3RfbW9kZT1TX0lGUkVHfDA3NTUsIHN0X3NpemU9MTcyODgxNiwgLi4ufSkgPSAwCm1tYXAoTlVM TCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMs IC0xLCAwKSA9IDB4N2YyMTdhZTY0MDAwCm1tYXAoTlVMTCwgMzg0MTEyMCwgUFJPVF9SRUFEfFBS T1RfRVhFQywgTUFQX1BSSVZBVEV8TUFQX0RFTllXUklURSwgMywgMCkgPSAweDdmMjE3OWUyZjAw MAptcHJvdGVjdCgweDdmMjE3OWZjZjAwMCwgMjA5NzE1MiwgUFJPVF9OT05FKSA9IDAKbW1hcCgw eDdmMjE3YTFjZjAwMCwgMjQ1NzYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxN QVBfRklYRUR8TUFQX0RFTllXUklURSwgMywgMHgxYTAwMDApID0gMHg3ZjIxN2ExY2YwMDAKbW1h cCgweDdmMjE3YTFkNTAwMCwgMTU0NTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFU RXxNQVBfRklYRUR8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHg3ZjIxN2ExZDUwMDAKY2xvc2Uo MykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMApvcGVuKCIvdXNyL2xpYjY0L3Bl cmw1LzUuOC44L3g4Nl82NC1wbGQtbGludXgtdGhyZWFkLW11bHRpL0NPUkUvbGliY3J5cHQuc28u MSIsIE9fUkRPTkxZfE9fQ0xPRVhFQykgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkpCm9wZW4oIi9saWI2NC9saWJjcnlwdC5zby4xIiwgT19SRE9OTFl8T19DTE9FWEVDKSA9 IDMKcmVhZCgzLCAiXDE3N0VMRlwyXDFcMVwwXDBcMFwwXDBcMFwwXDBcMFwzXDA+XDBcMVwwXDBc MFwyNjBcblwwXDBcMFwwXDBcMCIuLi4sIDgzMikgPSA4MzIKZnN0YXQoMywge3N0X21vZGU9U19J RlJFR3wwNzU1LCBzdF9zaXplPTQ3MjgwLCAuLi59KSA9IDAKbW1hcChOVUxMLCAyMzMxMDcyLCBQ Uk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBfUFJJVkFURXxNQVBfREVOWVdSSVRFLCAzLCAwKSA9IDB4 N2YyMTc5YmY1MDAwCm1wcm90ZWN0KDB4N2YyMTc5YzAwMDAwLCAyMDkzMDU2LCBQUk9UX05PTkUp ID0gMAptbWFwKDB4N2YyMTc5ZGZmMDAwLCA4MTkyLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQ X1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4YTAwMCkgPSAweDdmMjE3OWRm ZjAwMAptbWFwKDB4N2YyMTc5ZTAxMDAwLCAxODQ3NjgsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBN QVBfUFJJVkFURXxNQVBfRklYRUR8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHg3ZjIxNzllMDEw MDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAptbWFwKE5VTEws IDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAt MSwgMCkgPSAweDdmMjE3YWU2MzAwMAptbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dS SVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweDdmMjE3YWU2MjAwMApt bWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5P TllNT1VTLCAtMSwgMCkgPSAweDdmMjE3YWU2MTAwMAphcmNoX3ByY3RsKEFSQ0hfU0VUX0ZTLCAw eDdmMjE3YWU2MjcwMCkgPSAwCm1wcm90ZWN0KDB4N2YyMTdhMWNmMDAwLCAxNjM4NCwgUFJPVF9S RUFEKSA9IDAKbXByb3RlY3QoMHg3ZjIxNzlkZmYwMDAsIDQwOTYsIFBST1RfUkVBRCkgPSAwCm1w cm90ZWN0KDB4N2YyMTdhM2YwMDAwLCA0MDk2LCBQUk9UX1JFQUQpID0gMAptcHJvdGVjdCgweDdm MjE3YTZlODAwMCwgNDA5NiwgUFJPVF9SRUFEKSA9IDAKbXByb3RlY3QoMHg3ZjIxN2E4ZWMwMDAs IDQwOTYsIFBST1RfUkVBRCkgPSAwCm1wcm90ZWN0KDB4N2YyMTdhYzNmMDAwLCAxMjI4OCwgUFJP VF9SRUFEKSA9IDAKbXByb3RlY3QoMHg2MDMwMDAsIDQwOTYsIFBST1RfUkVBRCkgICAgID0gMApt cHJvdGVjdCgweDdmMjE3YWU2ZDAwMCwgNDA5NiwgUFJPVF9SRUFEKSA9IDAKbXVubWFwKDB4N2Yy MTdhZTY2MDAwLCAyNDEwNCkgICAgICAgICAgID0gMApzZXRfdGlkX2FkZHJlc3MoMHg3ZjIxN2Fl NjI5ZDApICAgICAgICAgPSAzMDkwMwpzZXRfcm9idXN0X2xpc3QoMHg3ZjIxN2FlNjI5ZTAsIDB4 MTgpICAgPSAwCmZ1dGV4KDB4N2ZmZjUyNDJlMDdjLCBGVVRFWF9XQUtFX1BSSVZBVEUsIDEpID0g MApmdXRleCgweDdmZmY1MjQyZTA3YywgRlVURVhfV0FJVF9CSVRTRVRfUFJJVkFURXxGVVRFWF9D TE9DS19SRUFMVElNRSwgMSwgTlVMTCwgN2YyMTdhZTYyNzAwKSA9IC0xIEVBR0FJTiAoUmVzb3Vy Y2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUpCnJ0X3NpZ2FjdGlvbihTSUdSVE1JTiwgezB4N2Yy MTdhMWRmN2MwLCBbXSwgU0FfUkVTVE9SRVJ8U0FfU0lHSU5GTywgMHg3ZjIxN2ExZThkZTB9LCBO VUxMLCA4KSA9IDAKcnRfc2lnYWN0aW9uKFNJR1JUXzEsIHsweDdmMjE3YTFkZjg1MCwgW10sIFNB X1JFU1RPUkVSfFNBX1JFU1RBUlR8U0FfU0lHSU5GTywgMHg3ZjIxN2ExZThkZTB9LCBOVUxMLCA4 KSA9IDAKcnRfc2lncHJvY21hc2soU0lHX1VOQkxPQ0ssIFtSVE1JTiBSVF8xXSwgTlVMTCwgOCkg PSAwCmdldHJsaW1pdChSTElNSVRfU1RBQ0ssIHtybGltX2N1cj04MTkyKjEwMjQsIHJsaW1fbWF4 PVJMSU1fSU5GSU5JVFl9KSA9IDAKcnRfc2lnYWN0aW9uKFNJR0ZQRSwge1NJR19JR04sIFtGUEVd LCBTQV9SRVNUT1JFUnxTQV9SRVNUQVJULCAweDdmMjE3OWU2M2QwMH0sIHtTSUdfREZMLCBbXSwg MH0sIDgpID0gMApicmsoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDFj MDEwMDAKYnJrKDB4MWMyMzAwMCkgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxYzIzMDAw CmdldHVpZCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKZ2V0ZXVpZCgpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMApnZXRnaWQoKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAwCmdldGVnaWQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDAKb3BlbigiL3Vzci9saWI2NC9sb2NhbGUvbG9jYWxlLWFyY2hpdmUiLCBPX1JET05MWXxP X0NMT0VYRUMpID0gMwpmc3RhdCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2NDQsIHN0X3NpemU9MjIy MzcxMiwgLi4ufSkgPSAwCm1tYXAoTlVMTCwgMjIyMzcxMiwgUFJPVF9SRUFELCBNQVBfUFJJVkFU RSwgMywgMCkgPSAweDdmMjE3OTlkNjAwMApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAwCm1tYXAoTlVMTCwgMTM1MTY4LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQ X1BSSVZBVEV8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHg3ZjIxN2FlNDAwMDAKb3BlbigiL2Rl di91cmFuZG9tIiwgT19SRE9OTFkpICAgICAgICAgID0gMwpyZWFkKDMsICJebmJjIiwgNCkgICAg ICAgICAgICAgICAgICAgICAgPSA0CmNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDAKb3BlbigiL2Rldi9udWxsIiwgT19SRE9OTFkpICAgICAgICAgICAgID0gMwpmY250 bCgzLCBGX1NFVEZELCBGRF9DTE9FWEVDKSAgICAgICAgICAgPSAwCmZzdGF0KDMsIHtzdF9tb2Rl PVNfSUZDSFJ8MDY2Niwgc3RfcmRldj1tYWtlZGV2KDEsIDMpLCAuLi59KSA9IDAKcnRfc2lnYWN0 aW9uKFNJR0NITEQsIE5VTEwsIHtTSUdfREZMLCBbXSwgMH0sIDgpID0gMApyZWFkbGluaygiL3By b2Mvc2VsZi9leGUiLCAiL3Vzci9iaW4vcGVybDUuOC44IiwgNDA5NSkgPSAxOApicmsoMHgxYzQ0 MDAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDFjNDQwMDAKZ2V0cHBpZCgpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gMzA5MDIKZnN0YXQoMywge3N0X21vZGU9U19JRkNI UnwwNjY2LCBzdF9yZGV2PW1ha2VkZXYoMSwgMyksIC4uLn0pID0gMAppb2N0bCgzLCBTTkRDVExf VE1SX1RJTUVCQVNFIG9yIFNORFJWX1RJTUVSX0lPQ1RMX05FWFRfREVWSUNFIG9yIFRDR0VUUywg MHg3ZmZmNTI0MmQ2MTgpID0gLTEgRU5PVFRZIChJbmFwcHJvcHJpYXRlIGlvY3RsIGZvciBkZXZp Y2UpCm1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1B UF9BTk9OWU1PVVMsIC0xLCAwKSA9IDB4N2YyMTdhZTZiMDAwCmxzZWVrKDMsIDAsIFNFRUtfQ1VS KSAgICAgICAgICAgICAgICAgICA9IDAKbHNlZWsoMywgMCwgU0VFS19TRVQpICAgICAgICAgICAg ICAgICAgID0gMApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCm11 bm1hcCgweDdmMjE3YWU2YjAwMCwgNDA5NikgICAgICAgICAgICA9IDAKZHVwKDQyKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gMwpmY250bCgzLCBGX0dFVEZMKSAgICAgICAgICAg ICAgICAgICAgICAgPSAweDg0MDEgKGZsYWdzIE9fV1JPTkxZfE9fQVBQRU5EfE9fTEFSR0VGSUxF KQpjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCndyaXRlKDIsICJJ bnZhbGlkIGFyZ3VtZW50IGF0IC1lIGxpbmUgMi5cbiIsIDMxSW52YWxpZCBhcmd1bWVudCBhdCAt ZSBsaW5lIDIuCikgPSAzMQpleGl0X2dyb3VwKDIyKSAgICAgICAgICAgICAgICAgICAgICAgICAg PSA/CisgcmlnaHRmaWxlPQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==