RE: [PATCH v3] printk: fix zero-valued printk timestamps in early boot
"Bird, Tim" <[email protected]> Mon, 30 Mar 2026 20:42:16 +0000
| Newsgroups | org.kernel.vger.linux-embedded,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <MW5PR13MB5632B55CAD0BEA34188EE88EFD52A@MW5PR13MB5632.namprd13.prod.outlook.com> |
VGhvbWFzLA0KDQpZb3VyIHJlc3BvbnNlIGlzIGJvdGggdmVyeSBoZWxwZnVsIGFuZCBhIGJpdCBm cnVzdHJhdGluZy4gIFNlZSBiZWxvdy4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAa2VybmVsLm9yZz4NCj4gVGltIQ0KPiANCj4g T24gRnJpLCBNYXIgMjcgMjAyNiBhdCAxODo0OCwgVGltIEJpcmQgd3JvdGU6DQo+ID4gV2VsbCwg dGhpcyBpcyB1c2luZyBnZXRfY3ljbGVzKCksIHdoaWNoIGFscmVhZHkgZXhpc3RzIG9uIG1vc3Qg YXJjaGl0ZWN0dXJlcy4NCj4gDQo+IFRoZSBmYWN0IHRoYXQgZ2V0X2N5Y2xlcygpIGV4aXN0cyBk b2VzIG5vdCBtYWtlIGl0IGEgZ29vZCBjaG9pY2UuIFRoZXJlDQo+IGlzIGEgcmVhc29uIHdoeSBh bnl0aGluZyB3aGljaCBkZWFscyB3aXRoIGV2ZW4gcmVtb3RlbHkgcmVsaWFibGUgdGltZQ0KPiBy ZXF1aXJlbWVudHMgc3RvcHBlZCB1c2luZyBpdC4gSXQncyBzdGlsbCB0aGVyZSBhcyBhIGxvdyBs ZXZlbA0KPiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgaW50ZXJmYWNlIGFuZCBtb3N0IG90aGVyIHVz YWdlIGlzIHB1cmVseQ0KPiBoaXN0b3JpY2FsIG9yIHdyb25nIHRvIGJlZ2luIHdpdGggYW5kIHNo b3VsZCBiZSByZW1vdmVkIGNvbXBsZXRlbHkuDQo+IA0KPiBBIGxvdCBvZiBwZW9wbGUgc3BlbnQg YSBzaWduaWZpY2FudCBhbW91bnQgb2YgdGltZSB0byBnZXQgcmlkIG9mIHRoaXMNCj4gaWxsIGRl ZmluZWQgbWVjaGFuaXNtIGFuZCBpdCdzIGp1c3Qgc2FkIHRoYXQgdGhleSBkaWQgbm90IG1hbmFn ZSB0bw0KPiBlbGltaW5hdGUgaXQgY29tcGxldGVseS4NCj4gDQpUaGF0J3MgZ29vZCB0byBrbm93 LiAgVGhhbmtzLiAgRm9yIHdoYXQgaXQncyB3b3J0aCwgSSB3b3VsZG4ndCBkZXNjcmliZQ0KbXkg ZGVzaXJlZCB1c2FnZSBhcyBiZWluZyBmb3IgcmVtb3RlbHkgcmVsaWFibGUgdGltZSByZXF1aXJl bWVudHMuDQoNCj4gPiBUaGlzIHBhdGNoIGp1c3QgYWRkcyBhIGZ1bmt5IHdheSB0byB1c2UgY3lj bGVzICh3aGljaCBhcmUgYXZhaWxhYmxlDQo+ID4gZnJvbSBwb3dlciBvbiwgcmF0aGVyIHRoYW4g ZnJvbSB0aGUgc3RhcnQgb2Yga2VybmVsIHRpbWVrZWVwaW5nKSB0bw0KPiA+IGFsbG93IHNhdmlu ZyB0aW1pbmcgZGF0YSBmb3Igc29tZSBlYXJseSBwcmludGtzICh1c3VhbGx5IGFib3V0IDIwIHRv DQo+ID4gNjAgcHJpbnRrcykuDQo+IA0KPiBJIGNhbiBzZWUgdGhhdCwgYnV0IEknbSBub3QgYWNj ZXB0aW5nIHlldCBhbm90aGVyIGlsbCBkZWZpbmVkIGdsdWVkIG9uDQo+IG1lY2hhbmlzbSB3aGlj aCByZWxpZXMgb24gYSBoaXN0b3JpY2FsIGlsbCBkZWZpbmVkIG1pc3Rha2UuDQo+IA0KPiA+IEFs c28sIG15IGN1cnJlbnQgcGxhbiBpcyB0byBiYWNrIG9mZiBvZiBhZGp1c3RpbmcgdGhlIG9mZnNl dCBvZg0KPiA+IHVucmVsYXRlZCAobm9uLXByZS10aW1lX2luaXQoKSkgcHJpbnRrcywgYW5kIGxp bWl0IHRoZSBlZmZlY3QgaW4gdGhlDQo+ID4gc3lzdGVtIHRvIGp1c3QgdGhvc2UgZmlyc3QgZWFy bHkgKHByZS10aW1lX2luaXQoKSkgcHJpbnRrcy4gIFRoZQ0KPiA+IGNvbXBsaWNhdGlvbiB0byBh ZGQgYW4gb2Zmc2V0IHRvIGFsbCBmb2xsb3dpbmcgcHJpbnRrcyB3YXMganVzdCB0bw0KPiA+IGF2 b2lkIGEgZGlzY29udGludWl0eSBpbiBwcmludGsgdGltZXN0YW1wcywgb25jZSB0aW1lX2luaXQo KSB3YXMNCj4gPiBjYWxsZWQgYW5kICJyZWFsIiB0aW1lc3RhbXBzIHN0YXJ0ZWQgcHJvZHVjaW5n IG5vbi16ZXJvcy4gIEdpdmVuIGhvdw0KPiA+IGNvbmZ1c2luZyB0aGlzIHNlZW1zIHRvIGhhdmUg bWFkZSB0aGluZ3MsIEknbSB0aGlua2luZyBvZiBiYWNraW5nIG9mZg0KPiA+IG9mIHRoYXQgYXBw cm9hY2guDQo+IA0KPiBUaGlzIGRpc2NvbnRpbnVpdHkgcmVzdWx0cyBmcm9tIHRoZSBmYWN0IHRo YXQgeW91IGdsdWVkIGl0IGludG8gdGhlDQo+IHByaW50ayBjb2RlIGFuZCBzY2hlZF9jbG9jaygp IGRvZXMgbm90IGtub3cgYWJvdXQgaXQuDQoNClllcy4gIE9mIGNvdXJzZS4gIFRoYXQgd2FzIGlu dGVudGlvbmFsLg0KDQo+IA0KPiA+PiBwcmludGsoKQ0KPiA+Pg0KPiA+PiAgICB0aW1lX25zID0g bG9jYWxfY2xvY2soKTsNCj4gPiB0aGF0J3MgdHNfbnNlYyA9IGxvY2FsX2Nsb2NrKCkNCj4gDQo+ IFRoYXQgb2J2aW91c2x5IGNoYW5nZXMgdGhlIGlsbHVzdHJhdGl2ZSBuYXR1cmUgb2YgbXkgbmFy cmF0aXZlDQo+IHNpZ25pZmljYW50bHkuIFRoYW5rcyBmb3IgcG9pbnRpbmcgaXQgb3V0Lg0KDQpJ IHdhcyBjb25mdXNlZCBieSB0aGUgdmFyaWFibGUgaW4geW91ciBuYXJyYXRpdmUsIHNpbmNlIEkg aGFkbid0IHNlZW4gaXQuDQpJIGdyZXBwZWQgYW5kIHJlZXhhbWluZWQgdGhlIGNvZGUuICBJIGNs YXJpZmllZCB3aGF0IEkgYmVsaWV2ZWQgdG8NCmJlIHRoZSB2YXJpYWJsZSB5b3Ugd2VyZSByZWZl cmVuY2luZy4gIEkgY291bGQgaGF2ZSB3b3JkZWQgdGhpcyBiZXR0ZXIsDQpidXQgSSBkb24ndCBi ZWxpZXZlIHlvdSBuZWVkZWQgdG8gcmVzcG9uZCB3aXRoIHNhcmNhc20uDQoNCj4gDQo+ID4+IEFz IHRoaXMgbmVlZHMgdG8gYmUgc3VwcG9ydGVkIGJ5IHRoZSBhcmNoaXRlY3R1cmUvcGxhdGZvcm0g aW4gYW55IGNhc2UNCj4gPj4gdGhlcmUgaXMgY2xvc2UgdG8gemVybyBiZW5lZml0IGZyb20gY3Jl YXRpbmcgY29tcGxpY2F0ZWQgZ2VuZXJpYw0KPiA+PiBpbmZyYXN0cnVjdHVyZSBmb3IgdGhpcy4N Cj4gPg0KPiA+IFRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcyB0aGF0IHRzY19lYXJseV91bmNhbGli cmF0ZWQoKSBjYW4ndCByZXR1cm4NCj4gPiBuYW5vc2Vjb25kcyB1bnRpbCBhZnRlciBjYWxpYnJh dGlvbi4NCj4gDQo+IEluIHRoZW9yeSBpdCBjb3VsZCBmb3IgbW9zdCBtb2Rlcm4geDg2IENQVXMg YXMgdGhleSBhZHZlcnRpc2UgdGhlDQo+IG5vbWluYWwgVFNDIGZyZXF1ZW5jeSBpbiBDUFVJRC4g T3RoZXIgYXJjaGl0ZWN0dXJlcyBoYXZlIHdlbGwga25vd24NCj4gY2xvY2tzb3VyY2UgZnJlcXVl bmNpZXMsIGUuZy4gUzM5MCBoYXMgYSBrbm93biBub21pbmFsIGZyZXF1ZW5jeSBvZiAxR0h6DQo+ IChJSVJDKS4NCj4gDQo+IEJ1dCB0aGF0IGRvZXMgbm90IHNvbHZlIGFueSBvZiB0aGUgb3RoZXIg cHJvYmxlbXMuIFNlZSBiZWxvdy4NCj4gDQo+ID4gSSBkb24ndCB0aGluayBpdCdzIGEgZ29vZCBp ZGVhIHRvIHJldHVybnMgY3ljbGVzIHNvbWV0aW1lcyBhbmQgbmFub3NlY29uZHMNCj4gPiBhdCBv dGhlciB0aW1lcywgZnJvbSBhIGRlZXAtc2VhdGVkIHRpbWluZyBmdW5jdGlvbiBsaWtlIHRoaXMu DQo+ID4gQWxzbyB0c2NfYXZhaWxhYmxlKCkgbWlnaHQgaXRzZWxmIGRlcGVuZCBvbiBpbml0aWFs aXphdGlvbiB0aGF0IGhhc24ndCBoYXBwZW5lZCB5ZXQNCj4gPiAoaW4gZWFybHkgYm9vdCkuDQo+ IA0KPiBBY2Nlc3MgdG8gdGhlIFRTQyByZXF1aXJlcyB0aGUgWDg2X0ZFQVRVUkVfVFNDIGJpdCBi ZWluZyBzZXQsIHdoaWNoDQo+IGhhcHBlbnMgaW4gZWFybHlfY3B1X2luaXQoKS4gQmVmb3JlIHRo YXQgZ2V0X2N5Y2xlcygpIHJldHVybnMgZmlybWx5IDAuDQo+IA0KWWVzLg0KDQo+ID4gTXkgYXBw cm9hY2ggb2Ygc2F2aW5nIGN5Y2xlcyBpbiB0c19uc2VjIGZvciB0aGUgZWFybHkgcHJpbnRrcyB3 b3Jrcw0KPiA+IGJlY2F1c2UgdGhlcmUncyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHBsYWNlcyAob25s eSAyKSBpbnNpZGUgdGhlIHByaW50aw0KPiA+IGNvZGUgd2hlcmUgdHNfbnNlYyBpcyBhY2Nlc3Nl ZCwgbWVhbmluZyB0aGF0IHRoZSBjb2RlIHRvIGRldGVjdCBhDQo+ID4gY3ljbGVzIHZhbHVlIGlu c3RlYWQgb2YgYSBuYW5vc2Vjb25kcyB2YWx1ZSBjYW4gYmUgY29uc3RyYWluZWQgdG8ganVzdA0K PiA+IHRob3NlIHR3byBwbGFjZXMuICBCYXNpY2FsbHksIEknbSBkb2luZyB0aGUgY29udmVyc2lv biBmcm9tIGN5Y2xlcyB0bw0KPiA+IG5hbm9zZWNvbmRzIGF0IHByaW50ayBwcmVzZW50YXRpb24g dGltZSwgcmF0aGVyIHRoYW4gYXQgdGhlIHRpbWUgb2YNCj4gPiBwcmludGsgbWVzc2FnZSBzdWJt aXNzaW9uLg0KPiANCj4gSSBrbm93LCBidXQgdGhhdCBhZ2FpbiByZXF1aXJlcyB0byBhZGQgbW9y ZSBpbGwgZGVmaW5lZCBpbmZyYXN0cnVjdHVyZS4NClF1aXRlIHBvc3NpYmx5IHlvdSBhcmUgcmln aHQuICBBcmUgeW91IHNheWluZyB0aGF0IHRoZSBnZW5lcmFsIGNvbmNlcHQNCm9mIHNhdmluZyBj eWNsZXMgdG8gYmUgY29udmVydGVkIGxhdGVyIHRvIG5hbm9zZWNvbmRzIGlzIHRoZSBpbGwtZGVm aW5lZA0KaW5mcmFzdHJ1Y3R1cmUsIG9yIGFyZSB5b3Ugc2F5aW5nIHVzaW5nIGdldF9jeWNsZXMo KSBpcyBub3Qgc2FmZSBvcg0KYWNjdXJhdGUgZW5vdWdoPw0KRnJvbSB3aGF0IHlvdSBzYXkgYmVs b3csIEkgYmVsaWV2ZSB5b3UgYXJlIHNheWluZyB0aGUgbGF0dGVyLg0KDQpJZiB5b3UgZG9uJ3Qg bGlrZSB0aGUgZGVmZXJyZWQgY3ljbGVzIGNvbnZlcnNpb24sIHRoYXQncyBmaW5lLiAgSSBsaWtl IHRoZSBhcHByb2FjaA0KeW91IGRlbW9uc3RyYXRlZCBpbiB5b3VyIHN1YnNlcXVlbnQgUG9DIHBh dGNoIHRvIHNob3cgc3VwZXItZWFybHkNCnRzYyBjYWxpYnJhdGlvbiAodXNpbmcgYSBrZXJuZWwg cGFyYW0pLiAgSSBjYW4gY2VydGFpbmx5IGxpdmUgd2l0aCAxNCBtaWNyb3NlY29uZHMNCm9mIG1p c3NlZCBvcHRpbWl6YXRpb24gaW5mb3JtYXRpb24sIGlmIHRoYXQncyBhbGwgaXQgaXMuDQoNCj4g DQo+IFdlIGFyZSBub3QgYWltaW5nIHRvIGFkZCBtb3JlLCB3ZSB3YW50IHRvIGdldCByaWQgb2Yg aXQgY29tcGxldGVseSB0bw0KPiB0aGUgZXh0ZW50IHBvc3NpYmxlLg0KDQpPSy4NCg0KPiANCj4g PiBUaGUgYXBwcm9hY2ggdGhhdCBJIG9yaWdpbmFsbHkgc3RhcnRlZCB3aXRoDQo+ID4gKHNlZSBo dHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1lbWJlZGRlZC8zOWIwOWVkYi04OTk4LTRlYmQt YTU2NC03ZDU5NDQzNGE5ODFAYmlyZC5vcmcvDQo+ID4gd2FzIHRvIHVzZSBoYXJkY29kZWQgbXVs dGlwbGllciBhbmQgc2hpZnQgdmFsdWVzIGZvciBjb252ZXJ0aW5nIGZyb20gY3ljbGVzDQo+ID4g dG8gbmFub3NlY29uZHMuICBUaGVzZSBtdWx0aXBsaWVyIGFuZCBzaGlmdCB2YWx1ZXMgd291bGQg YmUgc2V0IGF0IGtlcm5lbA0KPiA+IGNvbmZpZ3VyYXRpb24gdGltZSAoaWUsIHVzaW5nIENPTkZJ RyB2YWx1ZXMpLg0KPiANCj4gV2hpY2ggbWFrZXMgaXQgdW51c2FibGUgZm9yIGRpc3RybyBrZXJu ZWxzIGFuZCB0aGVyZWZvcmUgYSBub24tc3RhcnRlci4NCg0KQ2FuIHlvdSBlbGFib3JhdGUgb24g dGhpcz8gIEluZGVlZCBkaXN0cm8ga2VybmVscyB3b3VsZCBub3QgYmUgYWJsZSB0byBwcmUtc2V0 DQpUQ1MgY2FsaWJyYXRpb24gdmFsdWVzLCBhbmQgd291bGQgbm90IHR1cm4gb24gdGhpcyBmZWF0 dXJlIChpbiB0aGF0IHZlcnNpb24NCm9mIHRoZSBwYXRjaCkgZm9yIHByb2R1Y3Rpb24gcmVsZWFz ZSBrZXJuZWxzLiAgQnV0IGl0IHNvdW5kcyBsaWtlIHlvdSBhcmUgc2F5aW5nIHRoYXQNCmFueXRo aW5nIHRoYXQgcmVxdWlyZXMgYSBjb25maWd1cmF0aW9uIHRoYXQgaXMgbm9uLWdlbmVyYWwgKG9y IGluZGVlZCB1c2VkDQp0ZW1wb3JhcmlseSBkdXJpbmcgZGV2ZWxvcG1lbnQpIGlzIG5vdCBhY2Nl cHRhYmxlIHVwc3RyZWFtLiAgSXMgdGhhdCB5b3VyIHBvc2l0aW9uPw0KDQpUaGlzICJmZWF0dXJl IiBpcyBpbnRlbmRlZCBhcyBhIHRvb2wgZm9yIGRldmVsb3BlcnMgd2hvIGFyZSBvcHRpbWl6aW5n IExpbnV4DQprZXJuZWwgYm9vdCB0aW1lLiAoSSdtIG5vdCBzdXJlIHdobyBlbHNlIHdvdWxkIGJl IGludGVyZXN0ZWQgaW4gZ2V0dGluZw0KdGltaW5nIGRhdGEgZm9yIHRoZXNlIChjdXJyZW50bHkg emVyby10aW1lc3RhbXBlZCkgcHJpbnRrcyBkdXJpbmcgdGhlDQpmaXJzdCAxMDAtNDAwIG1pbGxp c2Vjb25kcyBvZiBrZXJuZWwgYm9vdCkuICBUaGlzIHdvdWxkIGJlLCBJIGJlbGlldmUsIGRldmVs b3BlcnMNCndobyBjYW4gY2hhbmdlIHRoZWlyIGNvbmZpZ3MgYW5kIGNvbXBpbGUgdGhlaXIga2Vy bmVscy4gIFRoZSB2MSB2ZXJzaW9uIG9mDQp0aGUgcGF0Y2ggaW5jbHVkZWQgY2FsY3VsYXRpb25z IGFuZCBwcmludGtzIHRvIGhlbHAgZGV2ZWxvcGVycyBzZXQgdGhlDQpjYWxpYnJhdGlvbiB2YWx1 ZXMgZm9yIHRoZWlyIGhhcmR3YXJlLCBzbyBpdCB3YXMgbm90IHRhcmdldGVkIGF0IG15IG1hY2hp bmUNCm9ubHkuDQoNClRoaXMgcGF0Y2ggaXMgcGFydCBvZiBhIGxhcmdlciBlZmZvcnQgb24gbXkg cGFydCB0byBoZWxwIGF1dG9tYXRlIGJvb3QtdGltZSB0dW5pbmcNCm9mIHRoZSBrZXJuZWwuICBN YW55IG90aGVyIHBhcnRzIG9mIHRoYXQgZWZmb3J0IHJlbHkgb24gcmVjb25maWd1cmF0aW9uIGFu ZCByZWNvbXBpbGF0aW9uDQpvZiB0aGUga2VybmVsLCB3aGljaCBtYWtlcyB0aGUgd2hvbGUgdGhp bmcgYSBkZXZlbG9wbWVudC10aW1lIGVmZm9ydCwgbm90IHNvIG11Y2gNCmEgcnVuLXRpbWUsIGVu ZC11c2VyLCBvciBwcm9kdWN0aW9uLWxldmVsIGZlYXR1cmUuICBBbmQgdmVyeSBtdWNoIG5vdCBh IHRoaW5nIHRoYXQNCmNhbiBiZSBhY2NvbXBsaXNoZWQgd2l0aCBkaXN0cm8tb25seSBjb25maWdz Lg0KDQo+IA0KPiA+IFRoZXJlIGFyZSBvdGhlciBhcHByb2FjaGVzLCBidXQgbm9uZSByZWFsbHkg d29yayBlYXJseSBlbm91Z2ggaW4gdGhlDQo+ID4ga2VybmVsIGJvb3QgdG8gbm90IGJlIGEgcGFp bi4gIFRoZSBnb2FsIGlzIHRvIHByb3ZpZGUgdGltaW5nIGluZm8NCj4gPiBiZWZvcmU6IHRpbWVr ZWVwaW5nIGluaXQsIGppZmZpZXMgc3RhcnR1cCwgYW5kIGV2ZW4gQ1BVIGZlYXR1cmVzDQo+ID4g ZGV0ZXJtaW5hdGlvbiwNCj4gDQo+IEFzIEkgcG9pbnRlZCBvdXQgYmVmb3JlIHRoYXQncyB3aXNo ZnVsIHRoaW5raW5nOg0KPiANCj4gICAgWW91IF9jYW5ub3RfIGFjY2VzcyBhIHJlc291cmNlIGJl Zm9yZSBpdCBoYXMgYmVlbiBkZXRlcm1pbmVkIHRvIGJlDQo+ICAgIGF2YWlsYWJsZS4NCj4gDQo+ IFBlcmlvZC4NCj4gDQo+IEl0IGRvZXMgbm90IG1hdHRlciBhdCBhbGwgaWYgX3lvdV8ga25vdyBm b3Igc3VyZSB0aGF0IGl0IGlzIHRoZSBjYXNlIGluDQo+IF95b3VyXyBwZXJzb25hbCBzZXR1cC4N Cg0KSSB1c2VkIGdldF9jeWNsZXMoKSwgd2hpY2ggaGFzIGEgY2hlY2sgZm9yIGF2YWlsYWJpbGl0 eSBpbiBpdCwgc28gdGhlIHBhdGNoIGRpZG4ndA0KYWNjZXNzIGEgcmVzb3VyY2UgYmVmb3JlIGl0 IHdhcyBkZXRlcm1pbmVkIHRvIGJlIGF2YWlsYWJsZS4NCkl0IHNvdW5kcyBsaWtlIHlvdSdyZSBy ZXNwb25kaW5nIHRvIG15IHdvcmRpbmcgYWJvdmUgYW5kIG5vdCB0aGUgcGF0Y2ggaXRzZWxmLg0K DQpJdCBpcyBub3QgbXkgaW50ZW50IHRvIGhhbmRsZSBvbmx5IG15IHBlcnNvbmFsIHNldHVwLg0K WW91ciBoZWxwIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaXMgZmVhdHVyZSBpcyBhcyBnZW5lcmFsIGFz IHBvc3NpYmxlIGlzIG11Y2ggYXBwcmVjaWF0ZWQuDQoNCj4gDQo+ID4gYW5kIHRvIGtlZXAgdGhl IGVmZmVjdCBuYXJyb3cgLS0gbGltaXRlZCBvbmx5IHRvIHByaW50a3MsIGFuZCB0aGUNCj4gPiBm aXJzdCBmZXcgcHJlLXRpbWVfaW5pdCgpIHByaW50ayBtZXNzYWdlcywgYXQgdGhhdC4NCj4gDQo+ IEVpdGhlciBpdCBpcyBzb2x2ZWQgaW4gYSBnZW5lcmljIHdheSBvciB3ZSBoYXZlIHRvIGFncmVl IHRoYXQgaXQncyBub3QNCj4gc29sdmFibGUgYXQgYWxsLg0KDQpJIGRpc2FncmVlIHRoYXQgc29s dmluZyB0aGlzIGxpbWl0ZWQgcHJvYmxlbSAoemVyby12YWx1ZWQgdGltZXN0YW1wcw0KaW4gZWFy bHkgYm9vdCkgaGFzIHRvIGJlIHNvbHZlZCBpbiBhIGdlbmVyaWMgd2F5Lg0KSSBhbHJlYWR5IGxp bWl0ZWQgdGhlIHNvbHV0aW9uIHNwYWNlIHRvIG9ubHkgcHJvY2Vzc29ycyB0aGF0IEkgYmVsaWV2 ZWQNCmhhZCByZWxpYWJsZSwgcHJlLWtlcm5lbC1pbml0aWFsaXplZCBjeWNsZSBnZW5lcmF0b3Jz Lg0KDQpJIHRoaW5rIGl0J3MgZmFpciB0byBoYXZlIGEgc3BlY2lhbGl6ZWQgc29sdXRpb24gdG8g YSBzcGVjaWFsaXplZCBwcm9ibGVtLCBpZg0KaXQgY2FuIGJlIG1hZGUgdG8gaGF2ZSB2ZXJ5IGxp bWl0ZWQgZWZmZWN0IG9uIG90aGVyIGNvZGUuDQoNCkkgdHJpZWQgdG8gYXZvaWQgYWZmZWN0aW5n IGFueSBvdGhlciB0aW1la2VlcGluZyBtZWNoYW5pc20NCihpZSAgcmUtZW5naW5lZXJpbmcgbG9j YWxfY2xvY2spLCBzcGVjaWZpY2FsbHkgdG8gYXZvaWQgdW53YW50ZWQNCnNpZGUgZWZmZWN0cy4N Cg0KPiBZb3VyIG5hcnJvdyBlZmZlY3QgYXJndW1lbnQgaXMgYm9ndXMgYW5kIHlvdSBrbm93IHRo YXQNCj4gdmVyeSB3ZWxsLg0KDQpUaGlzIHNvdW5kcyBsaWtlIHlvdSBiZWxpZXZlIEkgYW0gYXJn dWluZyBpbiBiYWQgZmFpdGguDQpJIGRvbid0IGJlbGlldmUgdGhhdCBJIGFtLg0KDQo+IA0KPiA+ IEknbSBub3cgcmVzZWFyY2hpbmcgYSBzdWdnZXN0aW9uIGZyb20gU2hhc2hhbmsgQmFsYWppIHRv IHVzZSB0aGUNCj4gPiBleGlzdGluZyBjYWxpYnJhdGlvbiBkYXRhIGZyb20gdHNjIGluaXRpYWxp emF0aW9uLCB3aGljaCBtaWdodA0KPiA+IHNpbXBsaWZ5IHRoZSBjdXJyZW50IHBhdGNoIGV2ZW4g ZnVydGhlci4gIEknbGwgbWFrZSBzdXJlIHRvIENDIHlvdSBvbg0KPiA+IHRoZSBuZXh0IHZlcnNp b24gb2YgdGhlIHBhdGNoLg0KPiANCj4gSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBjYWxpYnJhdGlv biBkYXRhIGZyb20gdHNjX2Vhcmx5X2luaXQoKSB0aGVuIHlvdQ0KPiBhY2hpZXZlIGV4YWN0bHkg X25vdGhpbmdfIGJlY2F1c2UgdHNjX2Vhcmx5X2luaXQoKSBhbHNvIGVuYWJsZXMgdGhlDQo+IGVh cmx5IHNjaGVkIGNsb2NrIG9uIGJhcmUgbWV0YWwuIE9uIGEgVk0gd2l0aCBLVk0gY2xvY2sgYXZh aWxhYmxlIHRoZQ0KPiBLVk0gY2xvY2sgc2V0dXAgZW5hYmxlcyB0aGUgZWFybHkgc2NoZWQgY2xv Y2sgZXZlbiBiZWZvcmUgdGhhdCB2aWENCj4gaW5pdF9oeXBlcnZpc29yX3BsYXRmb3JtKCkuDQoN CkluIHRoZSB2MyBwYXRjaCwgdGhlIHRpbWluZyBvZiBzY2hlZF9jbG9jayBhY3RpdmF0aW9uIGlz IGluZGVwZW5kZW50IG9mIHRoZQ0KdGltaW5nIG9mIHRoZSB1c2Ugb2YgdGhlIHRzYyBjYWxpYnJh dGlvbiB2YWx1ZXMuICBJIGRvbid0IHVuZGVyc3RhbmQNCmhvdyB0aGlzIGNvbW1lbnQgaXMgcmVs ZXZhbnQgdG8gbXkgcGF0Y2guDQoNCj4gDQo+IFRoZSBlYXJseSBUU0MgaW5pdCBoYXBwZW5zIGlu IHNldHVwX2FyY2goKSB2aWEgdHNjX2Vhcmx5X2luaXQoKSBhbmQgaXQncw0KPiBjb21wbGV0ZWx5 IHVuY2xlYXIgd2hldGhlciB5b3UgY2FuIGFsd2F5cyBhY2Nlc3MgdGhlIFRTQyBzYWZlbHkgYmVm b3JlDQo+IHRoYXQgdW5jb25kaXRpb25hbGx5IGR1ZSB0byBTTlAsIHdoaWNoIHJlcXVpcmVzIHRv IGVuYWJsZSB0aGUgc2VjdXJlIFRTQw0KPiBmaXJzdC4gVGhlcmUgaXMgYSByZWFzb24gd2h5IGFs bCBvZiB0aGlzIGlzIG9yZGVyZWQgdGhlIHdheSBpdCBpcy4NCg0KT0suICBUaGFua3MgZm9yIHRo YXQgaW5mby4gSSdsbCB0YWtlIGEgbG9vayBhdCB0aGF0Lg0KV2hhdCBoYXBwZW5zIGlmIHlvdSB0 cnkgYSByZHRzYygpIGJlZm9yZSB0c2NfZWFybHlfaW5pdD8gIElmIGl0IHJldHVybnMgemVybywg SSBjYW4NCmxpdmUgd2l0aCB0aGF0LiAgSWYgaXQgZmF1bHRzIG9yIHJldHVybnMgcmFuZG9tIGRh dGEgdGhhdCdzIGEgcHJvYmxlbS4NCg0KPiANCj4gV2hpbGUgcmVhZGluZyBUU0Mgd2F5IGJlZm9y ZSB0aGF0IG1pZ2h0IHdvcmsgb24gYmFyZSBtZXRhbCBhbmQgaW4gbW9zdA0KPiBWTXMsIGl0J3Mg bm90IGd1YXJhbnRlZWQgdG8gYmUgc2FmZSB1bmNvbmRpdGlvbmFsbHkgdW5sZXNzIHNvbWVvbmUg c2l0cw0KPiBkb3duIGFuZCBwcm92aWRlcyBwcm9vZiB0byB0aGUgY29udHJhcnkuIEFzIGFsd2F5 cyBJJ20gaGFwcHkgdG8gYmUNCj4gcHJvdmVuIHdyb25nLg0KPiANCj4gV2hlbiB0c2NfZWFybHlf aW5pdCgpIHdhcyBpbnRyb2R1Y2VkIGZvciB0aGUgdmVyeSBzYW1lIHJlYXNvbiB5b3UgYXJlDQo+ IGxvb2tpbmcgaW50byB0aGF0LCBxdWl0ZSBzb21lIHBlb3BsZSBzcGVudCBhIGxvdCBvZiB0aW1l IHRvIGNvbWUgdXAgd2l0aA0KPiBhIHNvbHV0aW9uIHdoaWNoIHdhcyBkZWVtZWQgc2FmZSBlbm91 Z2ggdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkuDQo+IA0KPiBQbGVhc2UgY29uc3VsdCB0aGUg TEtNTCBhcmNoaXZlIGZvciB0aGUgZnVsbCBoaXN0b3J5LiBUaGUgY29tbWl0IGxpbmtzDQo+IHdp bGwgZ2l2ZSB5b3UgYSBwcm9wZXIgc3RhcnRpbmcgcG9pbnQuDQoNCk9LIC0gdGhhbmtzIGZvciB0 aGUgaW5mb3JtYXRpb24gYW5kIHRoZSBwb2ludGVycy4gIGdldF9jeWNsZXMoKSBkb2VzDQpoYXZl IGEgQ1BVIGZlYXR1cmVzIGNoZWNrLCBzbyBteSBhY2Nlc3MgdG8gdGhlIHRzYyB3YXMgbm90IGNv bXBsZXRlbHkNCnVuY29uZGl0aW9uYWwuICBJJ2xsIGRvIHNvbWUgbW9yZSByZXNlYXJjaCBoZXJl IGFuZCB0cnkgdG8gbWFrZSB0aGUNCnVsdGltYXRlIHNvbHV0aW9uIGFzIHNhZmUgYXMgcG9zc2li bGUuDQoNCj4gVGhhdCBzYWlkLCBJIGNvbXBsZXRlbHkgdW5kZXJzdGFuZCB0aGUgaXRjaCB5b3Ug YXJlIHRyeWluZyB0byBzY3JhdGNoDQo+IGFuZCBJJ20gdGhlIGxlYXN0IHBlcnNvbiB0byBwcmV2 ZW50IGFuIGFyY2hpdGVjdHVyYWxseSBzb3VuZCBzb2x1dGlvbiwNCj4gYnV0IEknbSBhbHNvIHRo ZSBmaXJzdCBwZXJzb24gdG8gTkFLIGFueSBhdHRlbXB0IHdoaWNoIGlzIGJhc2VkIG9uDQo+IHVu aW5mb3JtZWQgY2xhaW1zIGFuZCAnd29ya3MgZm9yIG1lJyBhcmd1bWVudHMuDQoNCldlbGwsIG9u ZSBvZiB0aGUgcHVycG9zZXMgb2YgcG9zdGluZyBwYXRjaGVzIGlzIHRvIGdldCBmZWVkYmFjaw0K b24gZGlmZmVyZW50IGFwcHJvYWNoZXMuICBJJ20gaG9uZXN0bHkgbm90IHRyeWluZyB0byBjcmVh dGUgYSBzb2x1dGlvbiB0aGF0IG9ubHkNCndvcmtzIG9uIG15IGhhcmR3YXJlLiAgQnV0IG5laXRo ZXIgYW0gSSB0cnlpbmcgdG8gYm9pbCB0aGUgb2NlYW4NCmhlcmUuDQoNCkl0J3Mgbm90IGNsZWFy IHRvIG1lIHRoYXQgdGhlcmUncyBtdWNoIGhhcm0gaW4gaGF2aW5nDQphIHNpbmdsZSBkaXNjb250 aW51aXR5IGVhcmx5IGluIHRoZSBwcmludGsgdGltZXN0YW1wcy4gIE5vIG9uZSBoYXMgdG9sZA0K bWUgeWV0IHRoYXQgcHJpbnRrIHRpbWVzdGFtcHMgYWJzb2x1dGVseSBNVVNUIGJlIG1vbm90b25p Y2FsbHkNCmluY3JlYXNpbmcsIGV2ZXJ5d2hlcmUuDQpUcnlpbmcgdG8gc29sdmUgdGhhdCBpc3N1 ZSBsZWQgdG8gYSBtb3JlIGNvbnZvbHV0ZWQgc29sdXRpb24gdGhhbg0KbXkgZmlyc3QgYXBwcm9h Y2ggKGRlZmVycmVkIGN5Y2xlcyBjb252ZXJzaW9uIHZlcnN1cyBjb21waWxlLXRpbWUNCmNhbGli cmF0aW9uIGRhdGEpLg0KDQpJIGFsc28gZG9uJ3QgdGhpbmsgdGhlcmUncyBtdWNoIGhhcm0gaWYg dGhlIGRhdGEgZm9yIHRoZXNlIGZldyBwcmludGtzDQppcyB1bmF2YWlsYWJsZSBvciB3cm9uZyBv biBzb21lIGhhcmR3YXJlLiAgTWF5YmUgdGhhdCdzIGFuIGFyZWEgd2hlcmUNCndlIGRpZmZlciBp biBvcGluaW9uLg0KDQo+IA0KPiBUaGUgb25seSBjbGVhbiB3YXkgdG8gc29sdmUgdGhpcyBjbGVh bmx5IGlzIG1vdmluZyB0aGUgc2NoZWQgY2xvY2sNCj4gaW5pdGlhbGl6YXRpb24gdG8gdGhlIGVh cmxpZXN0IHBvaW50IHBvc3NpYmxlIGFuZCBhY2NlcHRpbmcgdGhhdCBkdWUgdG8NCj4gaGFyZHdh cmUsIGVudW1lcmF0aW9uIGFuZCB2aXJ0dWFsaXphdGlvbiBjb25zdHJhaW50cyB0aGlzIHBvaW50 IG1pZ2h0IGJlDQo+IHN1Ym9wdGltYWwuIEV2ZXJ5dGhpbmcgZWxzZSBpcyBqdXN0IGFuIGF0dGVt cHQgdG8gZGVmeSByZWFsaXR5Lg0KDQpJIHRoaW5rIHdlJ3JlIHdpbGxpbmcgdG8gYWNjZXB0IGRp ZmZlcmVudCBhcmVhcyBvZiBzdWItb3B0aW1hbGl0eS4NCkkgY2FuIGxpdmUgd2l0aCBoYXZpbmcg dG8gY29uZmlndXJlIHRoZSBmZWF0dXJlLCBhbmQgc3RhdGljYWxseSBjb25maWd1cmUNCnRoZSBU U0MgY2xvY2sgY2FsaWJyYXRpb24sIGF0IHRoZSBleHBlbnNlIG9mIG5vbi1tb25vdG9uaWMgcHJp bnRrDQp0aW1lc3RhbXBzIGZvciB0aGUgZWFybHkgcHJpbnRrcy4NCg0KUGVyc29uYWxseSwgSSB0 aGluayB0aGF0IGFsdGVyaW5nIHNjaGVkX2Nsb2NrIG9yIGFueSBvdGhlcg0Ka2VybmVsIHRpbWVr ZWVwaW5nIGlzIG92ZXJraWxsIGZvciB0aGlzLg0KDQpJIGRvIGxpa2UgdGhlIHNvbHV0aW9uIHBy b3Bvc2VkIGluIHlvdXIgcGF0Y2guICBJIGNvbnNpZGVyZWQgYQ0Kc29sdXRpb24gdXNpbmcgYW4g ZWFybHktcGFyc2VkIGtlcm5lbCBjb21tYW5kIGxpbmUgYXJnLCBidXQgZGlkbid0DQprbm93IGhv dyBlYXJseSBJIGNvdWxkIGRvIHRoYXQuICBJJ2xsIHJldmlldyB5b3VyIHBhdGNoLiAgVGhhbmtz IQ0KDQpBbmQgSSBhcHByZWNpYXRlIHRoZSB0aW1lIHlvdSB0b29rIHRvIGVkdWNhdGUgbWUgYWJv dXQgc29tZSBvZiB0aGUNCm90aGVyIGlzc3VlcyBpbnZvbHZlZCAoZXNwZWNpYWxseSBzZWN1cmUg VFNDIGFuZCBwb3NzaWJsZSBUU0MgdW5hdmFpbGFiaWxpdHksDQphbmQgVk0gdGltZWtlZXBpbmcg aXNzdWVzLCB3aGljaCBjb21wbGljYXRlIHRoaXMuKQ0KDQpSZWdhcmRzLA0KIC0tIFRpbQ0KDQo=