From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <545A090D.2030307@ixblue.com> Date: Wed, 05 Nov 2014 12:25:01 +0100 From: Christophe Carton MIME-Version: 1.0 References: <5458ABC7.2080201@ixblue.com> <5458BBC4.9080802@xenomai.org> <20141104114605.GB14961@sisyphus.hd.free.fr> <5458D32E.4020301@xenomai.org> <5458D96B.8000605@ixblue.com> <5458DD39.5040102@xenomai.org> <5458DDFC.9080608@ixblue.com> In-Reply-To: <5458DDFC.9080608@ixblue.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Subject: Re: [Xenomai] Round robin scheduling seem not working in a specific case... List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org CkxlIDA0LzExLzIwMTQgMTU6MDksIENocmlzdG9waGUgQ2FydG9uIGEgw6ljcml0IDoKPgo+IExl IDA0LzExLzIwMTQgMTU6MDUsIFBoaWxpcHBlIEdlcnVtIGEgw6ljcml0IDoKPj4gT24gMTEvMDQv MjAxNCAwMjo0OSBQTSwgQ2hyaXN0b3BoZSBDYXJ0b24gd3JvdGU6Cj4+PiBMZSAwNC8xMS8yMDE0 IDE0OjIyLCBQaGlsaXBwZSBHZXJ1bSBhIMOpY3JpdCA6Cj4+Pj4gT24gMTEvMDQvMjAxNCAxMjo0 NiBQTSwgR2lsbGVzIENoYW50ZXBlcmRyaXggd3JvdGU6Cj4+Pj4+IE9uIFR1ZSwgTm92IDA0LCAy MDE0IGF0IDEyOjQzOjAwUE0gKzAxMDAsIFBoaWxpcHBlIEdlcnVtIHdyb3RlOgo+Pj4+Pj4gT24g MTEvMDQvMjAxNCAxMTozNCBBTSwgQ2hyaXN0b3BoZSBDYXJ0b24gd3JvdGU6Cj4+Pj4+Pj4gSGVs bG8sCj4+Pj4+Pj4KPj4+Pj4+PiBJIGFtIGN1cnJlbnRseSB3b3JraW5nIHdpdGggWGVub21haSAy LjYuNCB3aXRoIG5hdGl2ZSBza2luIGFuZCAKPj4+Pj4+PiB3aXRoIGEKPj4+Pj4+PiBMaW51eCBr ZXJuZWwgMy4xNC4xNy4KPj4+Pj4+PiBUaGUgbGludXggYW5kIHRoZSB4ZW5vbWFpIGhhdmUgYmVl biB0YWtlbiBmcm9tIHRoZSBmb2xsb3dpbmcgR2l0Cj4+Pj4+Pj4gcmVwb3NpdG9yaWVzIDoKPj4+ Pj4+PiAqIGh0dHA6Ly9naXQueGVub21haS5vcmcveGVub21haS0yLjYuZ2l0IC0gdGFnIHYyLjYu NAo+Pj4+Pj4+ICogaHR0cDovL2dpdC54ZW5vbWFpLm9yZy9pcGlwZS5naXQgLSB0YWcgaXBpcGUt Y29yZS0zLjE0LjE3LXg4Ni00Cj4+Pj4+Pj4KPj4+Pj4+PiBJIGFtIGVuY291bnRlcmluZyBhIHBy b2JsZW0gdG8gZW5hYmxlIHRoZSBSb3VuZCBSb2JpbiBzY2hlZHVsZXIgCj4+Pj4+Pj4gaW4gYQo+ Pj4+Pj4+IHNwZWNpZmljIGNhc2UgOgo+Pj4+Pj4+ICogVHdvIHRhc2tzICgicnIgdGFzayAxIiBh bmQgInJyIHRhc2sgMiIpIG9mIHByaW9yaXR5IDEwIGFyZQo+Pj4+Pj4+IGxhdW5jaGVkIGJ5Cj4+ Pj4+Pj4gYSB0YXNrICgiaW5pdCB0YXNrIikgb2YgcHJpb3JpdHkgOTAuCj4+Pj4+Pj4gKiBBbGwg MyBvZiB0aGVtIGFyZSBjb25maWd1cmVkIHdpdGggYSBSUiBzY2hlZHVsZXIgdmlhIAo+Pj4+Pj4+ ICJydF90YXNrX3NsaWNlIgo+Pj4+Pj4+IEFQSSBiZWZvcmUgdGhleSBhcmUgc3RhcnRlZC4KPj4+ Pj4+PiBJbiB0aGlzIGNhc2UgdGhlIEZJRk8gc2NoZWR1bGluZyBzZWVtcyB0byBiZSBhcHBsaWVk IChjb3VsZCBiZSBzZWVuCj4+Pj4+Pj4gdmlhCj4+Pj4+Pj4gcnRfcHJpbnRmIGxvZ3MpLgo+Pj4+ Pj4+Cj4+Pj4+Pj4gSSBoYXZlIGZvdW5kIGEgdGhyZWFkIG9uIHRoZSBtYWlsaW5nIGxpc3QgdGhh dCBnaXZlcyBhbiBleGFtcGxlCj4+Pj4+Pj4gZGVtb25zdHJhdGluZyB0aGUgZ29vZCBiZWhhdmlv ciBvZiB0aGUgUlIgc2NoZWR1bGVyLgo+Pj4+Pj4+IGh0dHA6Ly93d3cueGVub21haS5vcmcvcGlw ZXJtYWlsL3hlbm9tYWkvMjAxMS1Ob3ZlbWJlci8wMjQ4OTcuaHRtbAo+Pj4+Pj4+IGh0dHA6Ly93 d3cueGVub21haS5vcmcvcGlwZXJtYWlsL3hlbm9tYWkvMjAxMS1Ob3ZlbWJlci8wMjQ4OTkuaHRt bAo+Pj4+Pj4+IFRoaXMgZXhhbXBsZSBpbXBsaWVzIHRoYXQgdGhlIHRhc2tzIGFyZSBsb2NrZWQg dmlhIGEgc2VtYXBob3JlIGF0Cj4+Pj4+Pj4gc3RhcnR1cCBhbmQgdGhhdCB0aGlzIHNlbWFwaG9y ZSBpcyB1bmxvY2tlZCBieSB0aGUgbWFpbiB3aGVuIGFsbAo+Pj4+Pj4+IHRocmVhZHMKPj4+Pj4+ PiBoYXZlIGJlZW4gc3RhcnRlZC4KPj4+Pj4+PiBUaGlzIGlzIG5lY2Vzc2FyeSBpbiB0aGlzIGNh c2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhlIG1haW4KPj4+Pj4+PiBmdW5jdGlvbiBpcwo+Pj4+ Pj4+IG5vIGFuIFJUIHRhc2suCj4+Pj4+Pj4KPj4+Pj4+PiBUaGlzIGltcGxlbWVudGF0aW9uICh3 aXRoIHRoZSBzZW1hcGhvcmUpIGFwcGxpZWQgdG8gbXkgdGVzdCAKPj4+Pj4+PiB3b3Jrcy4gV2h5 Cj4+Pj4+Pj4gaXMgdGhlIHNlbWFwaG9yZSBuZWVkZWQgaW4gbXkgY2FzZT8KPj4+Pj4+IGluaXRf dGFzaygpIGlzIHN3aXRjaGVkIHRvIG5vbi1ydCBtb2RlIGJ5IHJ0X3Rhc2tfY3JlYXRlKCksIHNv IAo+Pj4+Pj4gdGhhdCBhCj4+Pj4+PiByZWd1bGFyIHB0aHJlYWQgaXMgZmlyc3QgY3JlYXRlZCBi eSB0aGUgZ2xpYmMsIHByaW9yIHRvIGV4dGVuZGluZyBpdAo+Pj4+Pj4gd2l0aCBYZW5vbWFpIGNh cGFiaWxpdGllcy4gSW4gMi42LngsIHRoaXMgb3BlcmF0aW9uIGxlYXZlcyB0aGUgCj4+Pj4+PiBj YWxsZXIKPj4+Pj4+IChpLmUuIGluaXRfdGFzaygpIGluIHlvdXIgY2FzZSkgaW4gcmVsYXhlZC9z ZWNvbmRhcnkgbW9kZSwgd2hpY2ggCj4+Pj4+PiBtZWFucwo+Pj4+Pj4gdGhhdCBpdCBpcyBhc3Np Z25lZCB0aGUgbG93ZXN0IHByaW9yaXR5IGxldmVsIGluIHRoZSBYZW5vbWFpIAo+Pj4+Pj4gc2No ZWR1bGVyLAo+Pj4+Pj4gYmVsb3cgdGhlIFJSIGNsYXNzLgo+Pj4+Pj4KPj4+Pj4+IEdpdmVuIHRo YXQsIGluIHlvdXIgY29kZSwgbm8gWGVub21haSBzeXNjYWxsIGZvbGxvd2luZyB0aGUgZmlyc3QK Pj4+Pj4+IHJ0X3Rhc2tfY3JlYXRlKCkgaGF2ZSB0aGUgcmVxdWlyZW1lbnQgdG8gc3dpdGNoIHRo ZSBjYWxsZXIgYmFjayB0bwo+Pj4+Pj4gcHJpbWFyeS9ydCBtb2RlLCBpbmNsdWRpbmcgcnRfdGFz a19zdGFydCgpIHdoaWNoIGlzIGlzc3VlZCBmb3IgCj4+Pj4+PiB0YXNrXzEuCj4+Pj4+PiBIZW5j ZSBpbml0X3Rhc2soKSB3b24ndCBjb21wZXRlIHdpdGggdGFzaygpIHdoaWNoIGlzIGFzc2lnbmVk IHRoZQo+Pj4+Pj4gcmVhbC10aW1lIFJSIHByaW9yaXR5IHlvdSBhc2tlZCBmb3Igb24gZW50cnku Cj4+Pj4+Pgo+Pj4+Pj4gSU9XLCBpZiB5b3UgZG9uJ3QgbWFrZSB0aGUgY2hpbGRyZW4gd2FpdCBv biBhIGJhcnJpZXIgdW50aWwgdGhlIAo+Pj4+Pj4gcGFyZW50Cj4+Pj4+PiBoYXMgc2V0IHRoZSB3 aG9sZSB0aGluZyB1cCwgdGhlIGZpcnN0IGNhbGwgdG8gcnRfdGFza19zdGFydCgpIHdpbGwKPj4+ Pj4+IHVubGVhc2ggdGFza18xLCB3aGljaCB3aWxsIGluIHR1cm4gc3RhcnQgc3Bpbm5pbmcgaW1t ZWRpYXRlbHkgaW4gaXRzCj4+Pj4+PiB3b3JrIGxvb3AgYXMgaW5pdF90YXNrKCkgaXMgb24gYSBs b3dlciBwcmlvcml0eSBsZXZlbCwgbG9ja2luZyB1cAo+Pj4+Pj4gQ1BVIzEuCj4+Pj4+Pgo+Pj4+ PiBSaWdodC4gWW91IGNhbiBwcm9iYWJseSBhdm9pZCB0aGF0IGJ5IGVuYWJsaW5nIHRoZSBkZXBy ZWNhdGVkIG9wdGlvbgo+Pj4+PiBDT05GSUdfWEVOT19PUFRfUFJJT0NQTCBpbiB0aGUga2VybmVs IGNvbmZpZ3VyYXRpb24uCj4+Pj4+Cj4+Pj4gSSB3b3VsZCBub3QgcmVjb21tZW5kIHRvIHJlbHkg b24gdGhpcyBvcHRpb24sIGFzIHlvdSBrbm93IHdlIGtpbGxlZCBpdAo+Pj4+IGluIDMueCBiZWNh dXNlIHdlIGNvdWxkIG5ldmVyIGhhdmUgaXQgd29ya2luZyAxMDAlIHJlbGlhYmx5LiBUaGUgb25s eQo+Pj4+IHNhbmUgd2F5IG90aGVyd2lzZSBpcyB0byBzeW5jaHJvbml6ZSB0aGUgcGFyZW50IGFu ZCB0aGUgY2hpbGQgdGhyZWFkCj4+Pj4gaW50ZXJuYWxseSBhdCB0aHJlYWQgY3JlYXRpb24gdG8g cHJlc2VydmUgdGhlIHByaW9yaXR5IG9yZGVyLCB3aXRob3V0Cj4+Pj4gcmVxdWlyaW5nIHRoZSBz dGFydCBjYWxsIHRvIHN3aXRjaCB0byBzZWNvbmRhcnkgbW9kZSwgYnV0IG9ubHkgMy54Cj4+Pj4g aW1wbGVtZW50cyB0aGlzLgo+Pj4+Cj4+PiBUaGFua3MgZm9yIHlvdXIgcmVwbGllcy4KPj4+IEkg ZG8gbm93IHVuZGVyc3RhbmQgd2h5IG15IGNvZGUgZXhhbXBsZSBpcyBub3Qgd29ya2luZyBsaWtl IEkgc3VwcG9zZWQKPj4+IGl0IHNob3VsZCBoYXZlLgo+Pj4KPj4+IEl0IGxvb2tzIGxpa2UgcnRf dGFza19jcmVhdGUoKSBhbmQgcnRfdGFza19zdGFydCgpIHN3aXRjaGVzIHRoZSBjYWxsZXIKPj4+ IGluIHJlbGF4ZWQvc2Vjb25kYXJ5IG1vZGUuIFRoaXMgZXhwbGFpbnMgdGhlIGJlaGF2aW9yIHRo YXQgSSBoYXZlIAo+Pj4gbm90aWNlZC4KPj4+IEkgaGF2ZSByZWFkIHRoZSBkb3h5Z2VuIGRvY3Vt ZW50YXRpb24gYWJvdXQgdGhvc2UgdHdvIEFQSSBhbmQgSSBkaWQgbm90Cj4+PiBmaW5kIHRoaXMg YmVoYXZpb3IgZXhwbGFpbmVkLgo+Pj4gSG93IGNvdWxkIHdlIGtub3cgd2hpY2ggQVBJIHN3aXRj aGVzIHRoZSBjYWxsZXIncyBtb2RlIHRvIHByaW1hcnkvcnQgb3IKPj4+IHRvIHJlbGF4ZWQvc2Vj b25kYXJ5IG9yIG1heWJlIGRvZXMgbm90IGFmZmVjdCB0aGUgbW9kZT8KPj4+Cj4+IFRoaXMgYmVo YXZpb3Igd2FzIG5vdCBkb2N1bWVudGVkIGluIHRoZSAyLjYueCBzZXJpZXMsIHdoaWNoIGlzIGNs ZWFybHkKPj4gdW5mb3J0dW5hdGUuIEFzIGEgc3VnZ2VzdGlvbiwgaGVyZSBpcyBmYWxsYmFjayBv cHRpb24gOgo+Pgo+PiAtIGZpcnN0IHJlZmVyIHRvIHRoZSAzLnggZG9jdW1lbnRhdGlvbiBmb3Ig dGhlIHNhbWUgY2FsbCwgbG9va2luZyBmb3IKPj4gdGhlIHNlcnZpY2UgIlRhZ3MiIHNlY3Rpb24s IGUuZy4gZm9yIHJ0X3Rhc2tfY3JlYXRlKCkgdGhhdCB3b3VsZCBiZToKPj4gaHR0cDovL3d3dy54 ZW5vbWFpLm9yZy9kb2N1bWVudGF0aW9uL3hlbm9tYWktMy9odG1sL3hlbm8zcHJtL2dyb3VwX19h bGNoZW15X190YXNrLmh0bWwjZ2EwMzM4NzU1MDY5M2MyMWQwMjIzZjczOTU3MGNjZDk5MiAKPj4K Pj4gd2l0aCB0YWdzIG1lbnRpb25pbmcgInRocmVhZC11bnJlc3RyaWN0ZWQsIHN3aXRjaC1zZWNv bmRhcnkiLgo+PiBDbGlja2luZyBvbiB0aGUgdGFncyB3aWxsIGdldCB5b3UgdGhlIGV4cGxhbmF0 aW9uOgo+PiBodHRwOi8vd3d3Lnhlbm9tYWkub3JnL2RvY3VtZW50YXRpb24veGVub21haS0zL2h0 bWwveGVubzNwcm0vYXBpLXRhZ3MuaHRtbCAKPj4KPj4KPj4gLSB0aGVuIGNyb3NzLWNoZWNrIHdp dGggdGhlIDIueCAtPiAzLnggbWlncmF0aW9uIGluZm8gdGhhdCB0aGUKPj4gZG9jdW1lbnRlZCBi ZWhhdmlvciBkaWQgbm90IGNoYW5nZSwgb3IgaW4gd2hpY2ggd2F5IGl0IGRpZCBjaGFuZ2UuIEZv cgo+PiB0aGUgdGFzay1yZWxhdGVkIHN0dWZmIGZyb20gdGhlIEFQSSB5b3UgYXJlIHVzaW5nLCB0 aGUgaW5mbyB3b3VsZCBiZSAKPj4gdGhlcmU6Cj4+IGh0dHA6Ly94ZW5vbWFpLm9yZy9taWdyYXRp bmctZnJvbS14ZW5vbWFpLTIteC10by0zLXgvI1Rhc2tfbWFuYWdlbWVudAo+Pgo+PiBXZWxsLCBv ay4gSSBhZ3JlZSBpbiBhZHZhbmNlIHRoYXQgaXQncyBub3QgdGhhdCBoYW5keS4KPj4KPgo+IE9L Lgo+IEkgd2lsbCBkbyB3aXRoIHRoaXMgZmFsbGJhY2sgb3B0aW9uIGZvciB0aGUgbW9tZW50IHVu dGlsIEkgbWlncmF0ZSB0byAKPiBYZW5vbWFpIDMueC4KPiBUaGFua3MgdG8gdGhlIHRlYW0gZm9y IHRoZSBxdWljayByZXBsaWVzLgo+Cj4gQmVzdCByZWdhcmRzLAo+CgpIaSwKCkkgaGF2ZSB0YWtl biBpbnRvIGFjY291bnQgeW91ciBwcmV2aW91cyByZXBsaWVzIGFuZCBhZGRlZCBhZnRlciAKcnRf dGFza19jcmVhdGUoKSwgcnRfdGFza19zZXRfbW9kZSgwLCBUX0NPTkZPUk1JTkcsIG51bGxwdHIp IHRvIHNldCAKaW5pdF90YXNrKCkncyBtb2RlIGZyb20gcmVsYXhlZC9zZWNvbmRhcnkgbW9kZSB0 byBwcmltYXJ5L3J0IG1vZGUuCnRhc2tfMSBhbmQgdGFza18yIGFyZSBsYXVuY2hlZCB3aGVuIGlu aXRfdGFzaygpIGNhbGxzIHRoZSBydF90YXNrX2pvaW4oKSAKd2hpY2ggaXMgdGhlIHdhaXRlZCBi ZWhhdmlvci4KTmV2ZXJ0aGVsZXNzLCB0aGV5IGFyZSBhcmUgc3RpbGwgbm90IHNjaGVkdWxlZCBp biBSUi4uLgpBcyBpbml0X3Rhc2soKSBpcyBpbiBwcmltYXJ5L3J0IG1vZGUgYW5kIG9mIGhpZ2hl ciBwcmlvcml0eSB0aGFuIHRhc2tfMSAKYW5kIHRhc2tfMiwgc2hvdWxkbid0IHdlIGhhdmUgdGFz a18xIGFuZCB0YXNrXzIgbGF1bmNoZWQgImF0IHRoZSBzYW1lIAp0aW1lIiBhbmQgc2NoZWR1bGVk IGluIFJSPwpJdCBsb29rcyBsaWtlIHJ0X3Rhc2tfc3RhcnQoKSBkb2VzIG5vdCBpbW1lZGlhdGVs eSBkZWNsYXJlIHRhc2tfMSgpIGFuZCAKdGFza18yKCkgdG8gdGhlIHNjaGVkdWxlciAoYW5kIHNv LCB0aGUgc2NoZWR1bGVyIGRvZXMgbm90IHNldCB0aGVtIGluIApzdXNwZW5kZWQgc3RhdGUgdW50 aWwgaW5pdF90YXNrKCkgaXMgc3VzcGVuZGVkKS4gSW4gb3RoZXIgd29yZHMsIAp0YXNrXzEoKSBh bmQgdGFzazIoKSBzZWVtcyB0byBiZSBkZWNsYXJlZCB0byB0aGUgc2NoZWR1bGVyIG9ubHkgd2hl biAKaW5pdF90YXNrKCkgaXMgc3VzcGVuZGVkIChhbmQgc28gbGF1bmNoZWQgb25lIGFmdGVyIHRo ZSBvdGhlciAtIHRoaXMgCmNvdWxkIGV4cGxhaW4gdGhlIG9ic2VydmVkIGJlaGF2aW9yKS4KSXMg dGhpcyBjb3JyZWN0PyBEb2VzIHRoaXMgbWVhbnMgdGhhdCB0aGUgY2hpbGRyZW4gbXVzdCBhbHdh eXMgd2FpdCBvbiBhIApiYXJyaWVyIHVudGlsIHRoZSBwYXJlbnRzIGhhcyBmaW5pc2ggaXQgc2V0 dXA/CgpZb3UgY291bGQgZmluZCBhdHRhY2hlZCB0aGUgdXBkYXRlZCBzb3VyY2UgY29kZS4KCkJl c3QgcmVnYXJkcywKCi0tIAoKKkNocmlzdG9waGUgQ2FydG9uICoKCi0tLS0tLS0tLS0tLS0tIG5l eHQgcGFydCAtLS0tLS0tLS0tLS0tLQojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDx1bmlz dGQuaD4KI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxh c3NlcnQuaD4KCiNpbmNsdWRlIDx4ZW5vbWFpL25hdGl2ZS90aW1lci5oPgojaW5jbHVkZSA8eGVu b21haS9uYXRpdmUvdGFzay5oPgojaW5jbHVkZSA8eGVub21haS9uYXRpdmUvc2VtLmg+CgojaW5j bHVkZSA8cnRkay5oPgoKI2RlZmluZSBOQl9UQVNLUyAoMlVMKQoKI2RlZmluZSBFWEVDVElNRV9O UyAoMTAwZTYpIC8vIDEwMCBtcwojZGVmaW5lIFdPUktUSU1FX05TICg1MDBlMykgLy8gNTAwIMOC wrVzCiNkZWZpbmUgQ1BVX0lEICgxKQpSVF9TRU0gc3luY2hyb19zZW07CgpSVElNRSBzbGljZSA9 IDI7IC8vcnRfdGltZXJfbnMydGlja3MoMjAwMDApOwoKI2RlZmluZSBFUlJPUl9NR1IoZmN0KSBc CmRvIHsgXAoJaW50IGVyciA9IGZjdDsgXAoJaWYgKCBlcnIgIT0gMCApIFwKCXsgXAoJCXJ0X2Zw cmludGYoc3RkZXJyLCAiJXMtJXMgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgI2ZjdCwgZXJy KTsgXAoJCWFib3J0KCk7IFwKCX0gXAp9d2hpbGUoMCkKCiNkZWZpbmUgVEFTS19JTlFVSVJFKHN0 cikgXApkbyBcCnsgXAoJUlRfVEFTS19JTkZPIGluZm87IFwKCUVSUk9SX01HUiggcnRfdGFza19p bnF1aXJlKG51bGxwdHIsICZpbmZvKSApOyBcCglydF9wcmludGYoIFwKCQkiWyVzXVxuIiBcCgkJ Ilx0LSBNb2RlIHN3aXRjaGVzID0gJWRcbiIgXAoJCSJcdC0gQmFzZSBQcmlvICAgICA9ICVkXG4i IFwKCQkiXHQtIEN1cnJlbnQgUHJpbyAgPSAlZFxuIiwgXAoJCXN0ciwgXAoJCWluZm8ubW9kZXN3 aXRjaGVzLCBcCgkJaW5mby5icHJpbywgaW5mby5jcHJpbyk7IFwKfSB3aGlsZSgwKQoKI2RlZmlu ZSBUQVNLMlBSSU1BUlkoKSBcCmRvIHsgXAoJRVJST1JfTUdSKCBydF90YXNrX3NldF9tb2RlKDAs IFRfQ09ORk9STUlORywgbnVsbHB0cikgKTsgXAp9d2hpbGUoMCkKCnN0YXRpYyB2b2lkIHRhc2so dm9pZCAqKQp7CglUQVNLX0lOUVVJUkUoX19GVU5DVElPTl9fKTsKCi8vCUVSUk9SX01HUiggcnRf dGFza19zbGVlcChydF90aW1lcl9uczJ0aWNrcyg1MDAwMDAwMDApKSApOwovLwlFUlJPUl9NR1Io IHJ0X3NlbV9wKCZzeW5jaHJvX3NlbSwgVE1fSU5GSU5JVEUpICk7CgoJUlRfVEFTS19JTkZPIGN1 cnRhc2tpbmZvOwoJUlRfVEFTSyAqY3VydGFzayA9IG51bGxwdHI7CglFUlJPUl9NR1IoIHJ0X3Rh c2tfaW5xdWlyZShjdXJ0YXNrLCAmY3VydGFza2luZm8pICk7Cglmb3IoICA7IGN1cnRhc2tpbmZv LmV4ZWN0aW1lIDwgRVhFQ1RJTUVfTlMgOyAgKQoJewoJCXJ0X3RpbWVyX3NwaW4oV09SS1RJTUVf TlMpOwoJCS8vIGR1bW15IGF2ZXJhZ2UgcHJvY2Vzc2luZwoJCUVSUk9SX01HUiggcnRfdGFza19p bnF1aXJlKGN1cnRhc2ssICZjdXJ0YXNraW5mbykgKTsKCQlSVElNRSB0aW1lcG9pbnQgPSBydF90 aW1lcl9yZWFkKCk7CgkJcnRfcHJpbnRmKAoJCQkJIiVsdSBSdW5uaW5nIFslc10gcHJpb3JpdHkg WyVkXSBhdCA6IFslbHUgbnNdXG4iLAoJCQkJdGltZXBvaW50LAoJCQkJY3VydGFza2luZm8ubmFt ZSwKCQkJCWN1cnRhc2tpbmZvLmNwcmlvLAoJCQkJY3VydGFza2luZm8uZXhlY3RpbWUpOwoJfQp9 CgpzdGF0aWMgdm9pZCBpbml0X3Rhc2sodm9pZCAqKQp7CglSVF9UQVNLIHRhc2tfZGVzY18xLCB0 YXNrX2Rlc2NfMjsKCglUQVNLX0lOUVVJUkUoX19GVU5DVElPTl9fKTsKCglFUlJPUl9NR1IoIHJ0 X3Rhc2tfY3JlYXRlICggJnRhc2tfZGVzY18xLCAicnIgdGFzayAxIiwgMCwgMTAsIFRfSk9JTkFC TEUgfCBUX0NQVShDUFVfSUQpICkgKTsKCglFUlJPUl9NR1IoIHJ0X3Rhc2tfY3JlYXRlICggJnRh c2tfZGVzY18yLCAicnIgdGFzayAyIiwgMCwgMTAsIFRfSk9JTkFCTEUgfCBUX0NQVShDUFVfSUQp ICkgKTsKCVRBU0tfSU5RVUlSRSgicnRfdGFza19jcmVhdGUgMiIpOwoJVEFTSzJQUklNQVJZKCk7 CgovLwlydF9wcmludGYoInNsaWNlIHRpY2tzID0gJWx1XG4iLCBzbGljZSk7CglFUlJPUl9NR1Io IHJ0X3Rhc2tfc2xpY2UoICZ0YXNrX2Rlc2NfMSwgc2xpY2UgKSApOwoKCUVSUk9SX01HUiggcnRf dGFza19zbGljZSggJnRhc2tfZGVzY18yLCBzbGljZSApICk7CgoJRVJST1JfTUdSKCBydF90YXNr X3N0YXJ0KCAmdGFza19kZXNjXzEsICZ0YXNrLCBudWxscHRyICkgKTsKCglFUlJPUl9NR1IoIHJ0 X3Rhc2tfc3RhcnQoICZ0YXNrX2Rlc2NfMiwgJnRhc2ssIG51bGxwdHIgKSApOwoJVEFTS19JTlFV SVJFKCJydF90YXNrX3N0YXJ0IDIiKTsKCi8vCXJ0X3ByaW50ZigiTGF1bmNoISEhXG4iKTsKLy8J cnRfdGFza19zbGVlcChydF90aW1lcl9uczJ0aWNrcyg1MDAwMDAwMDBVTCkpOwovLwlFUlJPUl9N R1IoIHJ0X3NlbV9icm9hZGNhc3QoJnN5bmNocm9fc2VtKSApOwoKCUVSUk9SX01HUiggcnRfdGFz a19qb2luKCAmdGFza19kZXNjXzEgKSApOwoJRVJST1JfTUdSKCBydF90YXNrX2pvaW4oICZ0YXNr X2Rlc2NfMiApICk7Cn0KCmludCBtYWluIChpbnQgYXJnYywgY2hhciogYXJndltdKQp7Cgkodm9p ZClhcmdjOwoJKHZvaWQpYXJndjsKCVJUX1RBU0sgaW5pdF90YXNrX2Rlc2M7CgkKCUVSUk9SX01H UiggbWxvY2thbGwoIE1DTF9DVVJSRU5UIHwgTUNMX0ZVVFVSRSApICk7CgoJcnRfcHJpbnRfYXV0 b19pbml0KDEpOwoKCS8vIHNlbWFwaG9yZSB0byBzeW5jIHRhc2sgc3RhcnR1cCBvbgoJRVJST1Jf TUdSKCBydF9zZW1fY3JlYXRlKCZzeW5jaHJvX3NlbSwgIlN5bmNocm8gc2VtIiwgMCwgU19GSUZP KSApOwoKCUVSUk9SX01HUiggcnRfdGFza19jcmVhdGUoICZpbml0X3Rhc2tfZGVzYywgImluaXQg dGFzayIsIDAsIDkwLCBUX0pPSU5BQkxFIHwgVF9DUFUoQ1BVX0lEKSApICk7CgoJRVJST1JfTUdS KCBydF90YXNrX3NsaWNlKCAmaW5pdF90YXNrX2Rlc2MsIHNsaWNlICkgKTsKCglFUlJPUl9NR1Io IHJ0X3Rhc2tfc3RhcnQoICZpbml0X3Rhc2tfZGVzYywgJmluaXRfdGFzaywgbnVsbHB0ciApICk7 CgoJRVJST1JfTUdSKCBydF90YXNrX2pvaW4oICZpbml0X3Rhc2tfZGVzYyApICk7CgoJRVJST1Jf TUdSKCBydF9zZW1fZGVsZXRlKCZzeW5jaHJvX3NlbSkgKTsKCglyZXR1cm4gRVhJVF9TVUNDRVNT Owp9Cg==