[lustre-devel] RFC: Spill device for Lustre OSD

Jinshan Xiong via lustre-devel <[email protected]> Sun, 2 Nov 2025 15:22:25 -0800
Newsgroups org.lustre.lists.lustre-devel
Message-ID <CABoqRjtUuma_HLj7GK=2qUEWXV4XB11eEN6yj6svPtn-q+d4fw@mail.gmail.com>
SGkgZm9sa3MsCgpJIGNhbWUgdXAgd2l0aCBhbiBpZGVhIHRvIGltcGxlbWVudCB0aWVyZWQgc3Rv
cmFnZSBmb3IgTHVzdHJlIGluIGEgbmV3CndheS4gSSdtIHNoYXJpbmcgaXQgaGVyZSBpbiBvcmRl
ciB0byBnZXQgc29tZSBmZWVkYmFjayBhbmQgZGVjaWRlIGlmCml0IGlzIHdvcnRoIHB1cnN1aW5n
LiBUaGlzIGlzIHN0aWxsIGluIHRoZSBlYXJseSBzdGFnZSBzbyBpdCdzIGp1c3QgYQpyb3VnaCBp
ZGVhLgoKVGhhbmtzLApKaW5zaGFuCgojIFNwaWxsaW5nIERldmljZSBQcm9wb3NhbCBmb3IgTHVz
dHJlIE9TRAoKIyMgSW50cm9kdWN0aW9uCgpTcGlsbGluZyBkZXZpY2UgaXMgYSBwcml2YXRlIGJs
b2NrIGRldmljZSB0byBhbiBPU0QgaW4gTHVzdHJlLiBJdAphbGxvd3MgYW4gT1NEIHRvIG1pZ3Jh
dGUgaW5mcmVxdWVudGx5IGFjY2Vzc2VkIGRhdGEgb2JqZWN0cyB0byB0aGlzCmRldmljZS4gVGhl
IGtleSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHBvcHVsYXIgdGllcmVkIHN0b3JhZ2UgaXMgdGhhdCBp
dApvbmx5IGhhcyBhIGxvY2FsIHZpZXcgb2YgdGhlIG9iamVjdHMgaW4gYSBsb2NhbCBPU0QuIENv
bnNlcXVlbnRseSwgaXQKc2hvdWxkIG1ha2UgcXVpY2sgYW5kIGFjY3VyYXRlIGRlY2lzaW9ucyBi
YXNlZCBvbiB0aGUgcmVjZW50IGFjY2VzcwpwYXR0ZXJuLiBPbmx5IGRhdGEgb2JqZWN0cyBjYW4g
YmUgc3BpbGxlZCBpbnRvIHRoZSBzcGlsbGluZyBkZXZpY2UsCndoaWxlIG1ldGFkYXRhIG9iamVj
dHMsIHN1Y2ggYXMgT0kgbmFtZXNwYWNlIGFuZCBsYXN0IG9iamlkLCByZW1haW4gaW4KdGhlIE9T
RCBwZXJtYW5lbnRseS4gVGhpcyBpbXBsaWVzIHRoYXQgdGhlIHNwaWxsaW5nIGRldmljZSBmb3Ig
T1NEIGlzCm9ubHkgYXBwbGljYWJsZSB0byBPU1QgT1NEcy4gQnkgZGVzaWduLCB0aGUgc2l6ZSBv
ZiBhbiBPU0Qgc2hvdWxkIGJlCnN1ZmZpY2llbnQgdG8gc3RvcmUgdGhlIGVudGlyZSBsb2NhbCB3
b3Jrc2V0LCBmb3IgaW5zdGFuY2UsIGFsbCB0aGUKZGF0YSBmb3IgYW4gQUkgdHJhaW5pbmcgam9i
LiBBIHR5cGljYWwgY29uZmlndXJhdGlvbiB3b3VsZCBpbnZvbHZlIGEKMVRCIFNTRCBPU0Qgd2l0
aCAxMFRCIG9mIEhERCBhcyBhIHNwaWxsaW5nIGRldmljZS4KCkdlbmVyaWMgTHVzdHJlIHV0aWxp
dGllcyB3b27igJl0IGJlIGFibGUgdG8gZGlyZWN0bHkgYWNjZXNzIHNwaWxsaW5nCmRldmljZXMu
IEZvciBleGFtcGxlLCAqKmxmcyBkZioqIHdpbGwgb25seSBkaXNwbGF5IHRoZSBjYXBhY2l0eSBv
ZiB0aGUKT1NEIGRldmljZSwgd2hpbGUgdGhlIGNhcGFjaXR5IG9mIHRoZSBzcGlsbGluZyBkZXZp
Y2UgY2FuIGJlIGFjY2Vzc2VkCnVzaW5nIHNwZWNpZmljIG9wdGlvbnMuCgpPU0RzIHdpbGwgYWNj
ZXNzIHNwaWxsaW5nIGRldmljZXMgdGhyb3VnaCBWRlMgaW50ZXJmYWNlcyBpbiB0aGUga2VybmVs
CnNwYWNlLiBUaGVyZWZvcmUsIHRoZSBzcGlsbGluZyBkZXZpY2UgbXVzdCBiZSBtb3VudGFibGUg
aW50byB0aGUKa2VybmVsIG5hbWVzcGFjZS4gSW5pdGlhbGx5LCBvbmx5IEhERCBpcyBzdXBwb3J0
ZWQsIGFuZCB0aGUKaW1wbGVtZW50YXRpb24gY2FuIGJlIGV4dGVuZGVkIHRvIFMzIGFuZCBHQ1Mg
dXNpbmcgczNmcyBhbmQgZ2NzZnVzZQpyZXNwZWN0aXZlbHkgaW4gdGhlIGZ1dHVyZS4KCiMjIEFy
Y2hpdGVjdHVyZQoKV2hlbiBhbiBPU1Qgb2JqZWN0IGlzIHNwaWxsZWQsIGl0IGxlYXZlcyBhIHpl
cm8tbGVuZ3RoZWQgc3R1YiBvYmplY3QKd2l0aCBhIHNwZWNpYWwgRUEsIGNhbGxlZCBzcGlsbC1l
YSwgaW4gdGhlIE9TRC4gVGhlIHNwaWxsLWVhIGlzIHVzZWQKdG8gdHJhY2sgdGhlIHN0YXR1cyBv
ZiB0aGUgb2JqZWN0IGluIHRoZSBPU0QgYW5kIGFsc28gc3RvcmUgdGhlCm1ldGFkYXRhIG9mIHRo
ZSBzcGlsbGVkIG9iamVjdCBpbiB0aGUgc3BpbGxpbmcgZGV2aWNlLgoKU3RhdHVzIG9mIHRoZSBv
YmplY3Q6Ci0gKipNSUdSQVRJTkcqKjogVGhlIG9iamVjdCBkYXRhIGlzIGJlaW5nIGNvcGllZCB0
byB0aGUgc3BpbGxlZCBvYmplY3QuCi0gKipNSUdSQVRFRCoqOiBUaGUgb2JqZWN0IGRhdGEgZXhp
c3RzIGluIGJvdGggdGhlIE9TRCBhbmQgdGhlCnNwaWxsaW5nIGRldmljZSwgYW5kIHRoZSBjb250
ZW50cyBhcmUgc3luY2hyb25pemVkLgotICoqUkVMRUFTRUQqKjogVGhlIG9iamVjdCBkYXRhIGlz
IG9ubHkgaW4gdGhlIHNwaWxsaW5nIGRldmljZSwgYW5kIGl0CmxlYXZlcyBhIHN0dWIgb2JqZWN0
IGluIHRoZSBPU0QuCi0gKipESVJUWSoqOiBUaGUgb2JqZWN0IGlzIHJlbGVhc2VkLCBidXQgaXQg
aGFzIGJlZW4gd3JpdHRlbiB0bwphZnRlcndhcmQsIHNvIHRoZSBPU0QgcmV0YWlucyBzb21lIHVw
LXRvLWRhdGUgZGF0YS4KCioqTWlncmF0aW5nKioKCk1pZ3JhdGlvbiBpbnZvbHZlcyBjb3B5aW5n
IGRhdGEgaW50byB0aGUgc3BpbGxpbmcgZGV2aWNlLiBBIGRhZW1vbgpwcm9jZXNzIGluIHRoZSBP
U0QgY29udGludW91c2x5IHNjYW5zIGNhbmRpZGF0ZXMgZm9yIG1pZ3JhdGlvbi4gVGhlCnR5cGlj
YWwgcG9saWN5IGZvciBtaWdyYXRpb24gaXMgYmFzZWQgb24gdGhlIGxhc3QgYWNjZXNzIHRpbWUg
YW5kIHNpemUKb2YgdGhlIG9iamVjdHMuIEZvciBpbnN0YW5jZSwgaWYgYW4gb2JqZWN0IGhhc27i
gJl0IGJlZW4gYWNjZXNzZWQgaW4gdGhlCnBhc3QgZGF5IGFuZCBpdHMgc2l6ZSBleGNlZWRzIDEw
TUIsIGl0IHdpbGwgY3JlYXRlIGFuIG9iamVjdCBpbiB0aGUKc3BpbGxpbmcgZGV2aWNlIGFuZCBj
b3B5IGl0cyBjb250ZW50cyBvdmVyLgoKVGhlcmXigJlzIG5vIG9uLWRlbWFuZCBtaWdyYXRpb24g
ZmVhdHVyZS4gSWYgdGhlcmXigJlzIG5vIGF2YWlsYWJsZSBzcGFjZQp3aGlsZSBhIGxhcmdlIGNo
dW5rIG9mIGRhdGEgaXMgYmVpbmcgd3JpdHRlbiwgdGhlIHN5c3RlbSB3aWxsIHJldHVybgpFTk9T
UEMgdG8gdGhlIGNsaWVudC4gVGhpcyBzaW1wbGlmaWVzIHRoZSBncmFudGluZyBtZWNoYW5pc20g
b24gdGhlCk9GRCBzaWduaWZpY2FudGx5LiBBbm90aGVyIHJlYXNvbiBmb3IgdGhpcyBhcHByb2Fj
aCBpcyB0aGF0IHdyaXRpbmcKcGVyZm9ybWFuY2UgaXMgbW9yZSBwcmVkaWN0YWJsZS4gT3RoZXJ3
aXNlLCB0aGUgc3lzdGVtIG1pZ2h0IGhhdmUgdG8Kd2FpdCBmb3IgYW4gb2JqZWN0IHRvIGJlIG1p
Z3JhdGVkIG9uIGRlbWFuZCwgbGVhZGluZyB0byBtdWNoIGhpZ2hlcgpsYXRlbmN5LgoKKipSZWxl
YXNpbmcqKgoKT25jZSB0aGUgZGF0YSBpcyBtaWdyYXRlZCwgdGhlIGRhZW1vbiBjYW4gcmVsZWFz
ZSB0aGUgb2JqZWN0IGJ5CnRydW5jYXRpbmcgaXQgaW4gdGhlIE9TRCBhbmQgc2V0dGluZyB0aGUg
c3BpbGwtZWEgc3RhdHVzIHRvCioqUkVMRUFTRUQqKiwgYXRvbWljYWxseS4KClR5cGljYWxseSwg
YW4gb2JqZWN0IGlzIHJlbGVhc2VkIG9ubHkgd2hlbiB0aGUgT1NE4oCZcyBhdmFpbGFibGUgc3Bh
Y2UKYmVjb21lcyBsaW1pdGVkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIGFzIG11Y2ggZGF0YSBh
cyBwb3NzaWJsZSBpbgp0aGUgT1NELgoKKipSZXN0b3JpbmcqKgoKUmVzdG9yaW5nIGludm9sdmVz
IGNvcHlpbmcgZGF0YSBiYWNrIHRvIHRoZSBPU0QgZGV2aWNlLiBJdOKAmXMgdHJpZ2dlcmVkCmJ5
IHJlYWRpbmcgZnJvbSBvciB3cml0aW5nIHRvIGEgcmVsZWFzZWQgb2JqZWN0IGFuZCBpcyBtYW5h
Z2VkIGJ5IHRoZQpkYWVtb24sIHNvIGl0IGRvZXNu4oCZdCBpbnRlcmZlcmUgd2l0aCB0aGUgY3Jp
dGljYWwgY29kZSBwYXRoIGhhbmRsaW5nCnJlYWQgYW5kIHdyaXRlIG9wZXJhdGlvbnMgZnJvbSB0
aGUgT0ZELgoKV2hlbiByZXN0b3JpbmcsIHRoZSBvYmplY3QgZGF0YSBpcyBmaXJzdCBjb3BpZWQg
dG8gYSB0ZW1wb3JhcnkgZmlsZQooYE9fVE1QRklMRWApLiBBZnRlcndhcmQsIGl04oCZcyByZW5h
bWVkIHRvIHN3aXRjaCB0aGUgaW5vZGUgaW4gT0kgYW5kCnJlc2V0IHRoZSBzcGlsbC1lYSBzdGF0
dXMgYXRvbWljYWxseS4KCkFzIG1lbnRpb25lZCBlYXJsaWVyLCB0aGUgc3BpbGxpbmcgZGV2aWNl
IGlzIG9wZXJhdGVkIHdpdGggc3RhbmRhcmQKVkZTIGludGVyZmFjZXMuIFRoZXJlZm9yZSwgdGhl
IE9TRCBjYW4gZGlyZWN0bHkgcmVhZCBhbmQgd3JpdGUgdGhlCm9iamVjdCBpbiB0aGUgc3BpbGxp
bmcgZGV2aWNlLiBXZSB0ZW5kIHRvIHJlYWQgYSByZWxlYXNlZCBmaWxlCmRpcmVjdGx5IGluIHRo
ZSBmaXJzdCBmZXcgcmVhZHMuIFdyaXRpbmcgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IGFuZAp3aWxs
IGJlIGNvdmVyZWQgbGF0ZXIuCgpNYWludGFpbmluZyBhIHN5bmNocm9uaXplZCBzdGF0ZSBiZXR3
ZWVuIHR3byBzeXN0ZW1zIGlzIGEgY2hhbGxlbmdlLgpXZeKAmWxsIGxldmVyYWdlIGxsb2cgZXh0
ZW5zaXZlbHkgdG8gYWNoaWV2ZSB0aGlzLgoKIyMgT3BlcmF0aW9ucyBIYW5kbGluZwoKKip3cml0
ZSoqCgpJZiBhbiBvYmplY3QgbGFja3MgYSBzcGlsbCBFQSwgaXQgbWVhbnMgdGhlcmXigJlzIG5v
IHNwaWxsZWQgb2JqZWN0IGluCnRoZSBzcGlsbGluZyBkZXZpY2UuIEluIHN1Y2ggY2FzZXMsIHRo
ZSB3cml0ZSBvcGVyYXRpb24gcHJvY2VlZHMKbm9ybWFsbHkuCgpJZiBhbiBvYmplY3QgaXMgaW4g
dGhlICoqTUlHUkFUSU5HKiogb3IgKipNSUdSQVRFRCoqIHN0YXRlLCBpdCB3cml0ZXMKZGlyZWN0
bHkgdG8gdGhlIG9iamVjdCBhbmQgZGVsZXRlcyB0aGUgc3BpbGwgRUEgYnkgd3JpdGluZyBsbG9n
LgoKSWYgYW4gb2JqZWN0IGlzIGluIHRoZSAqKlJFTEVBU0VEKiogc3RhdGUsIGl0IHdyaXRlcyB0
aGUgZGF0YSB0byB0aGUKb2JqZWN0IGluIGxvZy1zdHJ1Y3R1cmVkIGZvcm1hdCBhbmQgc2V0cyBp
dHMgc3RhdHVzIHRvICoqRElSVFkqKi4KCklmIGFuIG9iamVjdCBpcyBpbiB0aGUgKipESVJUWSoq
IHN0YXRlLCBpdCBhcHBlbmRzIGEgbmV3IGxvZyBlbnRyeSB0bwp0aGUgb2JqZWN0LiBJZiB0aGUg
bnVtYmVyIG9mIGxvZ3MgZXhjZWVkcyBhIHByZWRlZmluZWQgbGltaXQsIGl0CnRyaWdnZXJzIGEg
cmVzdG9yYXRpb24gcHJvY2Vzcy4KCioqcmVhZCoqCgpJZiBhbiBvYmplY3QgbGFja3MgYSBzcGls
bCBFQSwgaXQgbWVhbnMgdGhlcmXigJlzIG5vIHNwaWxsZWQgb2JqZWN0IGluCnRoZSBzcGlsbGlu
ZyBkZXZpY2UuIEluIHN1Y2ggY2FzZXMsIHRoZSByZWFkIG9wZXJhdGlvbiBwcm9jZWVkcwpub3Jt
YWxseS4KCklmIGFuIG9iamVjdCBpcyBpbiB0aGUgKipNSUdSQVRJTkcqKiBvciAqKk1JR1JBVEVE
KiosIGl04oCZcyByZWFkIGRpcmVjdGx5LgoKSWYgYW4gb2JqZWN0IGlzIGluIHRoZSAqKkRJUlRZ
Kiogc3RhdGUsIGl0IGNoZWNrcyBpZiB0aGUgcmVhZCByYW5nZQpvdmVybGFwcyB3aXRoIHRoZSBl
bnRyaWVzIGluIHRoZSBsb2cuCgpJZiBhbiBvYmplY3QgaXMgaW4gdGhlICoqUkVMRUFTRUQqKiBz
dGF0ZSwgaXQgcmVhZHMgdGhlIGRhdGEgZGlyZWN0bHkKZnJvbSB0aGUgc3BpbGxlZCBvYmplY3Qu
IElmIHRoZSBudW1iZXIgb2YgcmVhZHMgdG8gdGhpcyBvYmplY3QgZXhjZWVkcwphIHByZWRlZmlu
ZWQgbGltaXQsIGl0IGluaXRpYXRlcyBhIHJlc3RvcmF0aW9uIHByb2Nlc3MgYW5kIHNldHMgdGhl
Cm9iamVjdOKAmXMgc3RhdHVzIHRvICoqTUlHUkFURUQqKi4KCioqdHJ1bmNhdGUgYW5kIHVubGlu
ayoqCgpJZiBhbiBvYmplY3QgaGFzIGEgc3BpbGwgRUEgYW5kIGlzIGJlaW5nIHRydW5jYXRlZCBv
ciBkZWxldGVkLCBpdAp3cml0ZXMgYW4gbGxvZyBlbnRyeSB0byBlbnN1cmUgdGhlIHNwaWxsZWQg
b2JqZWN0IGlzIGV2ZW50dWFsbHkKZGVsZXRlZC4KCioqbWlncmF0ZSoqCgpCZWZvcmUgaW5pdGlh
dGluZyB0aGUgbWlncmF0aW9uIG9mIGFuIG9iamVjdCwgaXTigJlzIGNydWNpYWwgdG8gbWFrZSB0
aGUKc3BpbGxlZCBvYmplY3QgYSBrbm93biBzdGF0ZSBpbiBvcmRlciB0byBwcmV2ZW50IHJlbW90
ZSBvYmplY3QKbGVha2FnZS4gVGhlcmVmb3JlLCBpdOKAmXMgZXNzZW50aWFsIHRvIHNldCB0aGUg
c3BpbGwgRUEgZmlyc3QgYW5kIHRoZW4KY3JlYXRlIHRoZSBzcGlsbGVkIG9iamVjdCBhZnRlciB0
aGUgdHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkLiBUaGUKY2hhbGxlbmdpbmcgYXNwZWN0IGlzIHRo
YXQgaXQncyBub3QgcG9zc2libGUgdG8gaGF2ZSBhbnkgaW5mb3JtYXRpb24KYWJvdXQgdGhlIHNw
aWxsZWQgb2JqZWN0IGJlZm9yZSBpdHMgY3JlYXRpb24uCgpXZSBkZWNpZGVkIHRvIHN0b3JlIHRo
ZSBvYmplY3QgaW4gYSBrbm93biBwYXRoLiBGb3IgaW5zdGFuY2UsIG9iamVjdApwYXRocyBsaWtl
IGA8ZnNuYW1lPi9PU1Q8aW5kZXg+LzxvaWQ6MDoyPi88b2lkOjI6PmAgc2VlbSByZWFzb25hYmxl
LgpUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgT1NEIG11c3Qgb3duIHRoZSBzcGlsbGluZyBkZXZp
Y2UgZW50aXJlbHkuCkhhdmluZyBmb3JlaWduIG9iamVjdHMgd291bGQgY2F1c2UgY29uZnVzaW9u
LgoKKipyZXN0b3JlKioKClJlc3RvcmF0aW9uIHdpbGwgdXNlIGEgdGVtcG9yYXJ5IGZpbGUsIHdo
aWNoIGlzIGVzc2VudGlhbGx5IGEgZmlsZQpjcmVhdGVkIHVuZGVyIGFuIG9ycGhhbiBkaXJlY3Rv
cnkuIE9uY2UgdGhlIGNvcHkgZnJvbSBzcGlsbGVkIG9iamVjdAppcyBjb21wbGV0ZSwgaXQgd2ls
bCBhbHNvIGRlYWwgdGhlIHdyaXRlIGxvZyBlbnRyaWVzIGluIHRoZSBvcmlnaW5hbApvYmplY3Qu
IElmIGV2ZXJ5dGhpbmcgaXMgZG9uZSwgaXQgd2lsbCByZW5hbWUgdGhlIHRlbXBvcmFyeSBmaWxl
IGFuZAp0aGUgY29ycmVzcG9uZGluZyBPSSBmaWxlLCBhbmQgYXBwZW5kIGEgbG9nIGVudHJ5IHRv
IGRlbGV0ZSB0aGUKc3BpbGxlZCBvYmplY3QsIGFsbCBpbiBhIGxvY2FsIHRyYW5zYWN0aW9uLgoK
IyMgSW1wbGVtZW50YXRpb24KCk9TRCBBUElzIGFyZSB3ZWxsLW1haW50YWluZWQgYW5kIHByb3Zp
ZGUgZGVkaWNhdGVkIEFQSXMgZm9yIG9iamVjdAptYW5pcHVsYXRpb24gYW5kIGJvZHkgb3BlcmF0
aW9ucyB0byBpbnRlcmFjdCB3aXRoIG9iamVjdCBjb250ZW50LgpTcGlsbCBkZXZpY2UgY29uZmln
dXJhdGlvbiAgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gbG9nIHNvCnRoYXQg
dGhlIE9TRCB3aWxsIGtub3cgaWYgaXQgaGFzIHNwaWxsaW5nIGRldmljZSBpbiB0aGUgZGV2aWNl
CmluaXRpYWxpemF0aW9uLgoKSWYgYSBzcGlsbCBkZXZpY2UgZXhpc3RzIGZvciBhbiBPU0QsIHRo
ZSBvYmplY3QgYW5kIGJvZHkgb3BlcmF0aW9ucwp3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gYSBuZXcg
c2V0IG9mIE9TRCBBUElzLiBUaGVzZSBBUElzIGVzc2VudGlhbGx5CmNoZWNrIGZvciB0aGUgZXhp
c3RlbmNlIG9mIGEgc3BpbGwgRUEgYmVmb3JlIHByb2NlZWRpbmcgd2l0aCBhbnkKb3BlcmF0aW9u
cy4gSWYgbG9jYWwgb2JqZWN0cyBhcmUgdXNlZCwgdGhlIG9yaWdpbmFsIE9TRCBBUElzIHdpbGwK
c3RpbGwgYmUgaW52b2tlZC4KCkEgbmV3IHNldCBvZiBMdXN0cmUgdXRpbGl0aWVzIHdpbGwgYmUg
ZGV2ZWxvcGVkIHRvIGRpc3BsYXkgaW5mb3JtYXRpb24KYWJvdXQgc3BpbGwgZGV2aWNlcy4KCiMj
IENvbmNsdXNpb24KClRoaXMgc29sdXRpb24gZ2l2ZXMgYSBwb3NzaWJsZSBzb2x1dGlvbiB0cnlp
bmcgdG8gYWRkcmVzcyB0aGUKcGFpbnBvaW50cyBvZiBwcmV2YWxlbnQgdGllcmVkIHN0b3JhZ2Ug
dXNpbmcgbWlycm9yaW5nLCB3aGVyZSBhCmZ1bGwtZmxhdm91cmVkIHBvbGljeSBlbmdpbmUgaGFz
IHRvIHJ1biBvbiBkZWRpY2F0ZWQgY2xpZW50cywgYW5kCmRlbGl2ZXIgYmV0dGVyIHBlcmZvcm1h
bmNlIHRoYW4gYmxvY2stbGV2ZWwgY2FjaGUgd2l0aCBkbWNhY2hlLCB3aGVyZQpyZWNvdmVyeSB0
aW1lIGlzIGxlbmd0aHkgaWYgdGhlIGNhY2hlIHNpemUgaXMgaHVnZS4KX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbHVzdHJlLWRldmVsIG1haWxpbmcgbGlz
dApsdXN0cmUtZGV2ZWxAbGlzdHMubHVzdHJlLm9yZwpodHRwOi8vbGlzdHMubHVzdHJlLm9yZy9s
aXN0aW5mby5jZ2kvbHVzdHJlLWRldmVsLWx1c3RyZS5vcmcK