Re: [PATCH RFC v4 02/15] ACPI: processor: Register all CPUs from acpi_processor_get_info()
"Rafael J. Wysocki" <[email protected]> Wed, 21 Feb 2024 13:04:43 +0100
| Newsgroups | gmane.linux.ports.riscv,gmane.linux.power-management.general,gmane.linux.acpi.devel,gmane.linux.kernel.cross-arch,gmane.linux.kernel,gmane.linux.ports.arm.kernel,gmane.linux.documentation,gmane.linux.ports.ia64,gmane.linux.ports.parisc |
|---|---|
| Message-ID | <CAJZ5v0hu32UCLPO6txptfn1DxCNqdYc+Ls-yNa09LdzhroyddQ@mail.gmail.com> |
T24gVHVlLCBGZWIgMjAsIDIwMjQgYXQgODo1OeKAr1BNIFJhZmFlbCBKLiBXeXNvY2tpIDxyYWZh ZWxAa2VybmVsLm9yZz4gd3JvdGU6Cj4KPiBPbiBUdWUsIEZlYiAyMCwgMjAyNCBhdCA1OjI04oCv UE0gSm9uYXRoYW4gQ2FtZXJvbgo+IDxKb25hdGhhbi5DYW1lcm9uQGh1YXdlaS5jb20+IHdyb3Rl Ogo+ID4KPiA+IE9uIFR1ZSwgMjAgRmViIDIwMjQgMTU6MTM6NTggKzAwMDAKPiA+ICJSdXNzZWxs IEtpbmcgKE9yYWNsZSkiIDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4KPiA+ID4g T24gVHVlLCBGZWIgMjAsIDIwMjQgYXQgMTE6Mjc6MTVBTSArMDAwMCwgUnVzc2VsbCBLaW5nIChP cmFjbGUpIHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgRmViIDE1LCAyMDI0IGF0IDA4OjIyOjI5UE0g KzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOgo+ID4gPiA+ID4gT24gV2VkLCBKYW4gMzEs IDIwMjQgYXQgNTo1MOKAr1BNIFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcu dWs+IHdyb3RlOgo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlfcHJv Y2Vzc29yLmMgYi9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gPiA+ID4gPiBpbmRl eCBjZjdjMWNjYTY5ZGQuLmE2OGM0NzVjZGVhNSAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJp dmVycy9hY3BpL2FjcGlfcHJvY2Vzc29yLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9hY3Bp L2FjcGlfcHJvY2Vzc29yLmMKPiA+ID4gPiA+ID4gQEAgLTMxNCw2ICszMTQsMTggQEAgc3RhdGlj IGludCBhY3BpX3Byb2Nlc3Nvcl9nZXRfaW5mbyhzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkK PiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY3B1ZnJlcV9hZGRfZGV2aWNlKCJh Y3BpLWNwdWZyZXEiKTsKPiA+ID4gPiA+ID4gICAgICAgICB9Cj4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ICsgICAgICAgLyoKPiA+ID4gPiA+ID4gKyAgICAgICAgKiBSZWdpc3RlciBDUFVzIHRoYXQg YXJlIHByZXNlbnQuIGdldF9jcHVfZGV2aWNlKCkgaXMgdXNlZCB0byBza2lwCj4gPiA+ID4gPiA+ ICsgICAgICAgICogZHVwbGljYXRlIENQVSBkZXNjcmlwdGlvbnMgZnJvbSBmaXJtd2FyZS4KPiA+ ID4gPiA+ID4gKyAgICAgICAgKi8KPiA+ID4gPiA+ID4gKyAgICAgICBpZiAoIWludmFsaWRfbG9n aWNhbF9jcHVpZChwci0+aWQpICYmIGNwdV9wcmVzZW50KHByLT5pZCkgJiYKPiA+ID4gPiA+ID4g KyAgICAgICAgICAgIWdldF9jcHVfZGV2aWNlKHByLT5pZCkpIHsKPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgIGludCByZXQgPSBhcmNoX3JlZ2lzdGVyX2NwdShwci0+aWQpOwo+ID4gPiA+ID4g PiArCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBpZiAocmV0KQo+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ID4gPiArICAgICAgIH0KPiA+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgICAgICAgIC8qCj4gPiA+ID4gPiA+ICAgICAgICAgICog IEV4dHJhIFByb2Nlc3NvciBvYmplY3RzIG1heSBiZSBlbnVtZXJhdGVkIG9uIE1QIHN5c3RlbXMg d2l0aAo+ID4gPiA+ID4gPiAgICAgICAgICAqICBsZXNzIHRoYW4gdGhlIG1heCAjIG9mIENQVXMu IFRoZXkgc2hvdWxkIGJlIGlnbm9yZWQgX2lmZgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoaXMgaXMg aW50ZXJlc3RpbmcsIGJlY2F1c2UgcmlnaHQgYmVsb3cgdGhlcmUgaXMgdGhlIGZvbGxvd2luZyBj b2RlOgo+ID4gPiA+ID4KPiA+ID4gPiA+ICAgICBpZiAoaW52YWxpZF9sb2dpY2FsX2NwdWlkKHBy LT5pZCkgfHwgIWNwdV9wcmVzZW50KHByLT5pZCkpIHsKPiA+ID4gPiA+ICAgICAgICAgaW50IHJl dCA9IGFjcGlfcHJvY2Vzc29yX2hvdGFkZF9pbml0KHByKTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAg ICAgICAgIGlmIChyZXQpCj4gPiA+ID4gPiAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ ID4gICAgIH0KPiA+ID4gPiA+Cj4gPiA+ID4gPiBhbmQgYWNwaV9wcm9jZXNzb3JfaG90YWRkX2lu aXQoKSBlc3NlbnRpYWxseSBjYWxscyBhcmNoX3JlZ2lzdGVyX2NwdSgpCj4gPiA+ID4gPiB3aXRo IHNvbWUgZXh0cmEgdGhpbmdzIGFyb3VuZCBpdCAobW9yZSBhYm91dCB0aGF0IGJlbG93KS4KPiA+ ID4gPiA+Cj4gPiA+ID4gPiBJIGRvIHJlYWxpemUgdGhhdCBhY3BpX3Byb2Nlc3Nvcl9ob3RhZGRf aW5pdCgpIGlzIGRlZmluZWQgdW5kZXIKPiA+ID4gPiA+IENPTkZJR19BQ1BJX0hPVFBMVUdfQ1BV LCBzbyBmb3IgdGhlIHNha2Ugb2YgdGhlIGFyZ3VtZW50IGxldCdzCj4gPiA+ID4gPiBjb25zaWRl ciBhbiBhcmNoaXRlY3R1cmUgd2hlcmUgQ09ORklHX0FDUElfSE9UUExVR19DUFUgaXMgc2V0Lgo+ ID4gPiA+ID4KPiA+ID4gPiA+IFNvIHdoeSBhcmUgdGhlIHR3byBjb25kaXRpb25hbHMgdGhhdCBh bG1vc3QgY29udHJhZGljdCBlYWNoIG90aGVyIGJvdGgKPiA+ID4gPiA+IG5lZWRlZD8gIEl0IGxv b2tzIGxpa2UgdGhlIG5ldyBjb2RlIGNvdWxkIGJlIGNvbWJpbmVkIHdpdGgKPiA+ID4gPiA+IGFj cGlfcHJvY2Vzc29yX2hvdGFkZF9pbml0KCkgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGluIGFsbCBj YXNlcy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBOb3csIGFjcGlfcHJvY2Vzc29yX2hvdGFkZF9pbml0 KCkgZG9lcyBzb21lIGV4dHJhIHRoaW5ncyB0aGF0IGxvb2sKPiA+ID4gPiA+IGxpa2UgdGhleSBz aG91bGQgYmUgZG9uZSBieSB0aGUgbmV3IGNvZGUgdG9vLgo+ID4gPiA+ID4KPiA+ID4gPiA+IDEu IEl0IGNoZWNrcyBpbnZhbGlkX3BoeXNfY3B1aWQoKSB3aGljaCBhcHBlYXJzIHRvIGJlIGEgZ29v ZCBpZGVhIHRvIG1lLgo+ID4gPiA+ID4KPiA+ID4gPiA+IDIuIEl0IHVzZXMgbG9ja2luZyBhcm91 bmQgYXJjaF9yZWdpc3Rlcl9jcHUoKSB3aGljaCBkb2Vzbid0IHNlZW0KPiA+ID4gPiA+IHVucmVh c29uYWJsZSBlaXRoZXIuCj4gPiA+ID4gPgo+ID4gPiA+ID4gMy4gSXQgY2FsbHMgYWNwaV9tYXBf Y3B1KCkgYW5kIEknbSBub3Qgc3VyZSB3aHkgdGhpcyBpcyBub3QgZG9uZSBieQo+ID4gPiA+ID4g dGhlIG5ldyBjb2RlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoZSBvbmx5IHRoaW5nIHRoYXQgY2Fu IGJlIGRyb3BwZWQgZnJvbSBpdCBpcyB0aGUgX1NUQSBjaGVjayBBRkFJQ1MsCj4gPiA+ID4gPiBi ZWNhdXNlIGFjcGlfcHJvY2Vzc29yX2FkZCgpIHdvbid0IGV2ZW4gYmUgY2FsbGVkIGlmIHRoZSBD UFUgaXMgbm90Cj4gPiA+ID4gPiBwcmVzZW50IChhbmQgbm90IGVuYWJsZWQgYWZ0ZXIgdGhlIGZp cnN0IHBhdGNoKS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBTbyB3aHkgZG9lcyB0aGUgY29kZSBub3Qg ZG8gMSAtIDMgYWJvdmU/Cj4gPiA+ID4KPiA+ID4gPiBIb25lc3RseSwgSSdtIG91dCBvZiBteSBk ZXB0aCB3aXRoIHRoaXMgYW5kIGNhbid0IGFuc3dlciB5b3VyCj4gPiA+ID4gcXVlc3Rpb25zIC0g YW5kIEkgcmVhbGx5IGRvbid0IHdhbnQgdG8gdHJ5IGZpZGRsaW5nIHdpdGggdGhpcyBjb2RlCj4g PiA+ID4gYmVjYXVzZSBpdCdzIGp1c3QgdG9vIGlja3kgKGV2ZW4gaW4gaXRzIGN1cnJlbnQgZm9y bSBpbiBtYWlubGluZSkKPiA+ID4gPiB0byBiZSB1bmRlcnN0YW5kYWJsZSB0byBhbnlvbmUgd2hv IGhhc24ndCBnYWluZWQgYSBkZXRhaWxlZCBrbm93bGVkZ2UKPiA+ID4gPiBvZiB0aGlzIGNvZGUu Cj4gPiA+ID4KPiA+ID4gPiBJdCdzIGdvaW5nIHRvIHJlcXVpcmUgYSBsb3Qgb2YgYW5hbHlzaXMg LSBob3cgYWNwaV9tYXBfY3B1aWQoKSBiZWhhdmVzCj4gPiA+ID4gaW4gYWxsIGNpcmN1bXN0YW5j ZXMsIHdoYXQgdGhpcyBtZWFucyBmb3IgaW52YWxpZF9sb2dpY2FsX2NwdWlkKCkgYW5kCj4gPiA+ ID4gaW52YWxpZF9waHlzX2NwdWlkKCksIHdoYXQgcGF0aHMgd2lsbCBiZSB0YWtlbiBpbiBlYWNo IGNhc2UuIFRoaXMgY29kZQo+ID4gPiA+IGlzIGFscmVhZHkganVzdCB0b28gaGFpcnkgZm9yIHNv bWVvbmUgd2hvIGlzbid0IGFuIGV4cGVyaWVuY2VkIEFDUEkKPiA+ID4gPiBoYWNrZXIgdG8gYmUg YWJsZSB0byBmb2xsb3cgYW5kIEkgZG9uJ3Qgc2VlIGFuIG9idmlvdXMgd2F5IHRvIG1ha2UgaXQK PiA+ID4gPiBtb3JlIHJlYWRhYmxlLgo+ID4gPiA+Cj4gPiA+ID4gSmFtZXMnIGFkZGl0aW9ucyBt YWtlIGl0IGV2ZW4gbW9yZSBjb21wbGV4IGFuZCBsZXNzIHJlYWRhYmxlLgo+ID4gPgo+ID4gPiBB cyBhbiBpbGx1c3RyYXRpb24gb2YgdGhlIHByb2JsZW1zIEknbSBoYXZpbmcgaGVyZSwgSSB3YXMg anVzdCB3cml0aW5nCj4gPiA+IGEgcmVwbHkgdG8gdGhpcyB3aXRoIGEgc3VnZ2VzdGlvbiBvZiB0 cmFuc2Zvcm1pbmcgdGhpcyBjb2RlIHVsdGltYXRlbHkKPiA+ID4gdG86Cj4gPiA+Cj4gPiA+ICAg ICAgIGlmICghZ2V0X2NwdV9kZXZpY2UocHItPmlkKSkgewo+ID4gPiAgICAgICAgICAgICAgIGlu dCByZXQ7Cj4gPiA+Cj4gPiA+ICAgICAgICAgICAgICAgaWYgKCFpbnZhbGlkX2xvZ2ljYWxfY3B1 aWQocHItPmlkKSAmJiBjcHVfcHJlc2VudChwci0+aWQpKQo+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgcmV0ID0gYWNwaV9wcm9jZXNzb3JfbWFrZV9lbmFibGVkKHByKTsKPiA+ID4gICAgICAg ICAgICAgICBlbHNlCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBhY3BpX3Byb2Nl c3Nvcl9tYWtlX3ByZXNlbnQocHIpOwo+ID4gPgo+ID4gPiAgICAgICAgICAgICAgIGlmIChyZXQp Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiAgICAgICB9Cj4g PiA+Cj4gPiA+IChhY3BpX3Byb2Nlc3Nvcl9tYWtlX3ByZXNlbnQoKSB3b3VsZCBiZSBhY3BpX3By b2Nlc3Nvcl9ob3RhZGRfaW5pdCgpCj4gPiA+IGFuZCBhY3BpX3Byb2Nlc3Nvcl9tYWtlX2VuYWJs ZWQoKSB3b3VsZCBiZSBhcmNoX3JlZ2lzdGVyX2NwdSgpIGF0IHRoaXMKPiA+ID4gcG9pbnQuKQo+ ID4gPgo+ID4gPiBUaGVuIEkgcmVhbGlzZWQgdGhhdCdzIGEgYmFkIGlkZWEgLSBiZWNhdXNlIHdl IHJlYWxseSBuZWVkIHRvIGNoZWNrCj4gPiA+IHRoYXQgcHItPmlkIGlzIHZhbGlkIGJlZm9yZSBj YWxsaW5nIGdldF9jcHVfZGV2aWNlKCkgb24gaXQsIHNvIHRoaXMKPiA+ID4gd29uJ3Qgd29yay4g VGhhdCBsZWF2ZXMgdXMgd2l0aDoKPiA+ID4KPiA+ID4gICAgICAgaW50IHJldDsKPiA+ID4KPiA+ ID4gICAgICAgaWYgKGludmFsaWRfbG9naWNhbF9jcHVpZChwci0+aWQpIHx8ICFjcHVfcHJlc2Vu dChwci0+aWQpKSB7Cj4gPiA+ICAgICAgICAgICAgICAgLyogeDg2IGV0LmFsLiBwYXRoICovCj4g PiA+ICAgICAgICAgICAgICAgcmV0ID0gYWNwaV9wcm9jZXNzb3JfbWFrZV9wcmVzZW50KHByKTsK PiA+ID4gICAgICAgfSBlbHNlIGlmICghZ2V0X2NwdV9kZXZpY2UocHItPmlkKSkgewo+ID4gPiAg ICAgICAgICAgICAgIC8qIEFybTY0IHBhdGggKi8KPiA+ID4gICAgICAgICAgICAgICByZXQgPSBh Y3BpX3Byb2Nlc3Nvcl9tYWtlX2VuYWJsZWQocHIpOwo+ID4gPiAgICAgICB9IGVsc2Ugewo+ID4g PiAgICAgICAgICAgICAgIHJldCA9IDA7Cj4gPiA+ICAgICAgIH0KPiA+ID4KPiA+ID4gICAgICAg aWYgKHJldCkKPiA+ID4gICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPgo+ID4gPiBOb3cs IHRoZSBuZXh0IHRyYW5zZm9ybWF0aW9uIHdvdWxkIGJlIHRvIG1vdmUgIWdldF9jcHVfZGV2aWNl KHByLT5pZCkKPiA+ID4gaW50byBhY3BpX3Byb2Nlc3Nvcl9tYWtlX2VuYWJsZWQoKSB3aGljaCB3 b3VsZCBlbGltaW5hdGUgb25lIG9mIHRob3NlCj4gPiA+IGlmKCkgbGVncy4KPiA+ID4KPiA+ID4g Tm93LCBpZiB3ZSB3YW50IHRvIHNvbWVob3cgbWFrZSB0aGUgY2FsbCB0byBhcmNoX3JlZ3N0ZXJf Y3B1KCkgY29tbW9uCj4gPiA+IGluIHRoZXNlIHR3byBwYXRocywgdGhlIG5leHQgcXVlc3Rpb24g aXMgd2hhdCBhcmUgdGhlIF9wcmVjaXNlXwo+ID4gPiBzZW1hbnRpY3Mgb2YgYWNwaV9tYXBfY3B1 KCksIHBhcnRpY3VsYXJseSB3aXRoIHJlc3BlY3QgdG8gaXQKPiA+ID4gbW9kaWZ5aW5nIHByLT5p ZC4gSXMgaXQgZ3VhcmFudGVlZCB0byBhbHdheXMgZ2l2ZSB0aGUgc2FtZSByZXN1bHQKPiA+ID4g Zm9yIHRoZSBzYW1lIHByb2Nlc3NvciBkZXNjcmliZWQgaW4gQUNQST8gV2hhdCBhY3BpX21hcF9j cHUoKSBhbnl3YXksCj4gPiA+IEkgY2FuIGZpbmQgbm8gZG9jdW1lbnRhdGlvbiBmb3IgaXQuCj4g PiA+Cj4gPiA+IFRoZW4gdGhlcmUncyB0aGUgcXVlc3Rpb24gd2hldGhlciBjYWxsaW5nIGFjcGlf dW5tYXBfY3B1KCkgc2hvdWxkIGJlCj4gPiA+IGRvbmUgb24gdGhlIGZhaWx1cmUgcGF0aCBpZiBh cmNoX3JlZ2lzdGVyX2NwdSgpIGZhaWxzLCB3aGljaCBpcyBkb25lCj4gPiA+IGZvciB0aGUgeDg2 IHBhdGggYnV0IG5vdCB0aGUgQXJtNjQgcGF0aC4gU2hvdWxkIGl0IGJlIGRvbmUgZm9yIHRoZQo+ ID4gPiBBcm02NCBwYXRoPyBJJ3ZlIG5vIGlkZWEsIGJ1dCBhcyBBcm02NCBkb2Vzbid0IGltcGxl bWVudCBlaXRoZXIgb2YKPiA+ID4gdGhlc2UgdHdvIGZ1bmN0aW9ucywgSSBndWVzcyB0aGV5IGNv dWxkIGJlIHN0dWJiZWQgb3V0IGFuZCB0aHVzIGJlCj4gPiA+IG5vLW9wcyAtIGJ1dCB0aGVuIHdl IG9wZW4gYSBob2xlIHdoZXJlIGlmIHByLT5pZCBpcyBpbnZhbGlkLCB3ZQo+ID4gPiBlbmQgdXAg cGFzc2luZyB0aGF0IGludmFsaWQgdmFsdWUgdG8gYXJjaF9yZWdpc3Rlcl9jcHUoKSB3aGljaCBJ J20KPiA+ID4gcXVpdGUgc3VyZSB3aWxsIGV4cGxvZGUgd2l0aCBhIG5lZ2F0aXZlIENQVSBudW1i ZXIuCj4gPiA+Cj4gPiA+IFNvLCB0byBteSBtaW5kLCB3aGF0IHlvdSdyZSBlZmZlY3RpdmVseSBh c2tpbmcgZm9yIGlzIGEgdG90YWwgcmV3cml0ZQo+ID4gPiBvZiBhbGwgdGhlIGNvZGUgaW4gYW5k IGNhbGxlZCBieSBhY3BpX3Byb2Nlc3Nvcl9nZXRfaW5mbygpLi4uIGFuZCB0aGF0Cj4gPiA+IGlz IG5vdCBzb21ldGhpbmcgSSBhbSB3aWxsaW5nIHRvIGRvIChiZWNhdXNlIGl0J3MgdG9vIGZhciBv dXRzaWRlIG9mCj4gPiA+IG15IGtub3dsZWRnZSBhcmVhLikKPiA+ID4KPiA+ID4gQXMgSSBzYWlk IGluIG15IHJlcGx5IHRvIHBhdGNoIDEsIEkgdGhpbmsgeW91ciBjb21tZW50cyBvbiBwYXRjaCAy Cj4gPiA+IG1ha2UgQXJtNjQgdmNwdSBob3RwbHVnIHVuYWNoaWV2YWJsZSBpbiBhIHJlYXNvbmFi bGUgdGltZSBmcmFtZSwgYW5kCj4gPiA+IGNlcnRhaW5seSBvdXRzaWRlIHRoZSBib3VuZHMgb2Yg d2hhdCBJIGNhbiBkbyB0byBwcm9ncmVzcyB0aGlzLgo+ID4gPgo+ID4gPiBTbywgYXQgdGhpcyBw b2ludCBJJ20gZ29pbmcgdG8gc3RhbmQgZG93biBmcm9tIGZ1cnRoZXIgcGFydGljaXBhdGlvbgo+ ID4gPiB3aXRoIHRoaXMgcGF0Y2ggc2V0IGFzIEkgYmVsaWV2ZSBJJ3ZlIHJlYWNoZWQgdGhlIGxp bWl0IG9mIHdoYXQgSSBjYW4KPiA+ID4gZG8gdG8gcHJvZ3Jlc3MgaXQuCj4gPiA+Cj4gPgo+ID4g VGhhbmtzIGZvciB5b3VyIGhhcmQgd29yayBvbiB0aGlzIFJ1c3NlbGwgLSB3ZSBoYXZlIG1vdmVk IGZvcndhcmRzLgo+ID4KPiA+IFNob3J0IG9mIGFueW9uZSBlbHNlIHN0ZXBwaW5nIHVwIEknbGwg cGljayB0aGlzIHVwIHdpdGgKPiA+IHRoZSBoZWxwIG9mIHNvbWUgbXkgY29sbGVhZ3Vlcy4gQXMg c3VjaCBJJ20ga2VlbiBvbiBnZXR0aW5nIHBhdGNoCj4gPiAxIHVwc3RyZWFtIEFTQVAgc28gdGhh dCB3ZSBjYW4gZXhjbHVkZSB0aGUgbmVlZCBmb3Igc29tZSBvZiB0aGUKPiA+IG90aGVyIHdvcmth cm91bmRzIGZyb20gZWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIHNlcmllcyAodGhlIG9uZXMKPiA+ IGRyb3BwZWQgYmVmb3JlIG5vdykuCj4KPiBBcHBsaWVkIChhcyA2LjkgbWF0ZXJpYWwpLgoKQW5k IEknbSBnb2luZyB0byBkcm9wIGl0LCBiZWNhdXNlIGl0IGlzIG5vdCBjb3JyZWN0LgoKVGhlIHBy b2JsZW0gaXMgdGhhdCBpdCBpcyBnb2luZyB0byBhZmZlY3Qgbm9uLXByb2Nlc3NvciBkZXZpY2Vz LCBidXQKbGV0IG1lIGNvbW1lbnQgb24gdGhhdCBwYXRjaCBpdHNlbGYuCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==