[ANN] fpGUI Toolkit v2.1.0 release

Graeme Geldenhuys via fpc-pascal <[email protected]> Mon, 27 Apr 2026 18:34:55 +0100
Newsgroups gmane.comp.compilers.free-pascal.general
Message-ID <2686621.XlxY0qsZeH@graeme-linux-desktop>
SGkgZXZlcnlvbmUsCgpJJ20gaGFwcHkgdG8gYW5ub3VuY2UgYSBodWdlIG5ldyByZWxlYXNlIG9m
IGZwR1VJIOKAlCB3aXRoIHNvbWUgbWFzc2l2ZSAKaW1wcm92ZW1lbnRzLCBuZXcgZmVhdHVyZXMs
IG5ldyBhcHBsaWNhdGlvbnMgYW5kIHBsZW50eSBvZiBidWcgZml4ZXMuCgogICBodHRwczovL2dp
dGh1Yi5jb20vZ3JhZW1lZy9mcEdVSQoKRmVlZGJhY2ssIGJ1ZyByZXBvcnRzLCBhbmQgcXVlc3Rp
b25zIGFyZSB3ZWxjb21lIGFzIGFsd2F5cy4gSSBtb3N0bHkgbW9uaXRvciAKdGhlIEdpdEh1YiBi
dWd0cmFja2VyIGFuZCB0aGUgZnBHVUkgc3VwcG9ydCBuZXdzZ3JvdXAgLSBzZWUgd2Vic2l0ZSBm
b3IgCmRldGFpbHMuCgoKPT0gQnVpbGQgY29tbWFuZHMgPT0KCkZyYW1ld29yayBhbmQgYXBwbGlj
YXRpb25zIGNhbiBiZSBidWlsdCB3aXRoIFBhc0J1aWxkOgoKICAgaHR0cHM6Ly9naXRodWIuY29t
L2dyYWVtZWcvUGFzQnVpbGQKCiogRm9yIExpbnV4ICYgRnJlZUJTRAogICBwYXNidWlsZCBjb21w
aWxlIC1wIHVuaXggICAgICAgIChidWlsZHMgZnJhbWV3b3JrICYgdG9vbHMpCiogRm9yIFdpbmRv
d3MKICAgcGFzYnVpbGQgY29tcGlsZSAtcCB3aW5kb3dzICAgICAoYnVpbGRzIGZyYW1ld29yayAm
IHRvb2xzKQoqIEZvciBtYWNPUwogICBwYXNidWlsZCBjb21waWxlIC1wIG1hY29zICAgICAgIChi
dWlsZHMgZnJhbWV3b3JrICYgdG9vbHMpCgoKPT0gQ2hhbmdlbG9nID09Cgp2Mi4xLjAgKDIwMjYt
MDQtMjcpCgogIC0gRXZlbnQgTG9vcCBSZWFyY2hpdGVjdHVyZQogICAgKiBXb3JrZXIgdGhyZWFk
cyBjYW4gbm93IHdha2UgdGhlIG1haW4gZXZlbnQgbG9vcCBpbnN0YW50bHkgb24gYWxsCiAgICAg
IHBsYXRmb3JtcyB3aXRob3V0IHdhaXRpbmcgZm9yIG1vdXNlIG1vdmVtZW50IG9yIHRpbWVyIGV4
cGlyeS4KICAgICogVFRocmVhZC5RdWV1ZSgpIGFuZCBUVGhyZWFkLlN5bmNocm9uaXplKCkgd2Fr
ZSB0aGUgZXZlbnQgbG9vcAogICAgICBhdXRvbWF0aWNhbGx5IHZpYSBGUEMncyBXYWtlTWFpblRo
cmVhZCBob29rLgogICAgKiBEdXBsaWNhdGUgRlBHTV9QQUlOVCBhbmQgRlBHTV9SRVNJWkUgbWVz
c2FnZXMgZm9yIHRoZSBzYW1lIHdpZGdldAogICAgICBhcmUgY29hbGVzY2VkLCByZWR1Y2luZyBy
ZWR1bmRhbnQgcHJvY2Vzc2luZyB1bmRlciBoaWdoIGxvYWQuCiAgICAqIE5ldyBUZnBnQXN5bmNU
YXNrIGNsYXNzIGZvciBiYWNrZ3JvdW5kIHRhc2tzIHRoYXQgc2FmZWx5IHB1Ymxpc2gKICAgICAg
cHJvZ3Jlc3MgdXBkYXRlcyB0byB0aGUgR1VJIHRocmVhZCAoU3dpbmdXb3JrZXItaW5zcGlyZWQp
LgogICAgKiBOZXcgZnBnSW52b2tlTGF0ZXIoKSBzY2hlZHVsZXMgd29yayBvbiB0aGUgbWFpbiB0
aHJlYWQgZnJvbSBhbnkKICAgICAgdGhyZWFkLgogIC0gSHlicmlkIENhbnZhcyAobmV3KSDigJQg
bm93IGRlZmF1bHQgb24gYWxsIHBsYXRmb3JtcwogICAgKiBUaGUgQWdnUGFzIGh5YnJpZCBjYW52
YXMgaXMgbm93IHRoZSBkZWZhdWx0IG9uIGFsbCBwbGF0Zm9ybXMuCiAgICAgIE5vIGV4dHJhIGJ1
aWxkIHByb2ZpbGUgaXMgcmVxdWlyZWQ7IHRoZSAnYWdnJyBhbmQgJ2ZyZWV0eXBlJwogICAgICBw
cm9maWxlcyBoYXZlIGJlZW4gcmVtb3ZlZC4KICAgICogQ2FjaGVkIGJpdG1hcCBnbHlwaCByZW5k
ZXJpbmcgZm9yIGZhc3Qgc3ludGF4LWhpZ2hsaWdodGVkIHRleHQuCiAgICAqIFBsYXRmb3JtIGJ1
ZmZlciBtYW5hZ2VycyBhZGRlZCBmb3IgV2luZG93cyAoR0RJKSBhbmQgbWFjT1MgKENvY29hKS4K
ICAgICogUGVyZm9ybWFuY2U6IGZhc3QtcGF0aCBmb3Igb3BhcXVlIHJlY3RhbmdsZSBmaWxscywg
YnlwYXNzaW5nIEFnZ1BhcwogICAgICBibGVuZGluZyB3aGVuIGFscGhhIGlzIG5vdCBuZWVkZWQu
CiAgICAqIEZpeGVkIHNldmVyYWwgV2luZG93cy1zcGVjaWZpYyByZW5kZXJpbmcgaXNzdWVzOiB1
cHNpZGUtZG93biB0ZXh0IG9uCiAgICAgIDMyLWJpdCBGUEMgMy4yLjIsIGxheW91dCBub3QgYXBw
bGllZCBvbiBmaXJzdCBzaG93IG9mIG1vZGFsIGRpYWxvZ3MsCiAgICAgIGFuZCBhIGNvbXBpbGF0
aW9uIGVycm9yIG9uIDMyLWJpdCB0YXJnZXRzLgogIC0gRnVzaW9uIFN0eWxlIChuZXcpCiAgICAq
IEFkZGVkIEZ1c2lvbiBMaWdodCBhbmQgRnVzaW9uIERhcmsgYXBwbGljYXRpb24gc3R5bGVzLCBp
bnNwaXJlZCBieQogICAgICBRdDUgRnVzaW9uLiBGdXNpb24gTGlnaHQgaXMgbm93IHRoZSBkZWZh
dWx0IElERSBzdHlsZS4KICAgICogRnVzaW9uLXN0eWxlIHBhZ2UgY29udHJvbCB0YWJzIGFuZCBi
b2R5IHJlbmRlcmluZy4KICAgICogQ2hlY2tib3gsIHJhZGlvIGJ1dHRvbiwgYW5kIHByb2dyZXNz
IGJhciBwYWludGluZyBkZWxlZ2F0ZWQgdG8KICAgICAgVGZwZ1N0eWxlLCBlbmFibGluZyBwZXIt
c3R5bGUgY3VzdG9taXNhdGlvbi4KICAgICogQW5ub3VuY2VtZW50IHdpdGggZWFybHkgc2NyZWVu
c2hvdHMgKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFlbWVnL2ZwR1VJLwpkaXNjdXNzaW9ucy8xNzEp
CiAgLSBIaURQSSBpbXByb3ZlbWVudHMKICAgICogSW1wcm92ZWQgSGlEUEkgc2NhbGluZyBmb3Ig
dGhlIEdESSAoV2luZG93cykgYW5kIFgxMSBiYWNrZW5kcy4KICAtIE1heGltdXMgSURFCiAgICAq
IFBhc0J1aWxkIGJhY2tlbmQgaW50ZWdyYXRpb246IFRQYXNCdWlsZFByb2plY3RCYWNrZW5kCiAg
ICAgIGJyaWRnZXMgdGhlIElERSB3aXRoIHRoZSBQYXNCdWlsZCBidWlsZCBzeXN0ZW0uCiAgICAq
IFByb2plY3QgdHJlZSByZWRlc2lnbjogZGlzcGxheXMgbW9kdWxlcywgZGVwZW5kZW5jaWVzLAog
ICAgICBhbmQgYnVpbGQgcHJvZmlsZXMgYXMgdHJlZSBub2RlcyB3aXRoIGFjY2VudCBjb2xvdXIg
Y2F0ZWdvcnkgaGVhZGVycy4KICAgICogTXVsdGktbW9kdWxlIFVJIHdpdGggYWdncmVnYXRvciBw
cm9qZWN0IHN1cHBvcnQuCiAgICAqIERlcGVuZGVuY3kgdHJlZSB2aXN1YWxpc2F0aW9uIGFkZGVk
IHRvIHRoZSBwcm9qZWN0IHRyZWUuCiAgICAqIEJ1aWxkIGFjdGlvbnM6IGNsZWFuLCByZWJ1aWxk
LCBhbmQgdGVzdCBhZGRlZCB0byBJREUgdG9vbGJhci4KICAgICogSU5JIGFuZCBYTUwgc3ludGF4
IGhpZ2hsaWdodGluZyBhZGRlZC4KICAgICogTWlnTGF5b3V0IHVzZWQgdGhyb3VnaG91dCB0aGUg
SURFIFVJLCBpbmNsdWRpbmcgYSBUZnBnTWlnU3BsaXR0ZXIKICAgICAgYW5kIE1pZ0xheW91dC1t
YW5hZ2VkIHN0YXR1cyBiYXIuCiAgICAqIFNlc3Npb24gcGVyc2lzdGVuY2U6IG9wZW4gZmlsZXMs
IHdpbmRvdyBsYXlvdXQsIGFuZCBmaWxlIGRpYWxvZwogICAgICBkaXJlY3RvcmllcyBhcmUgc2F2
ZWQgYW5kIHJlc3RvcmVkIHBlciBwcm9qZWN0LgogICAgKiBFZGl0IG1lbnU6IER1cGxpY2F0ZSBM
aW5lLCBEZWxldGUgTGluZSwgVW5kbywgYW5kIFJlZG8gYWRkZWQuCiAgICAqIFN0YXR1cyBiYXIg
c2hvd3MgY3Vyc29yIHBvc2l0aW9uLCBmaWxlIHBhdGgsIGFuZCBjdXJyZW50IGdpdCBicmFuY2gu
CiAgICAqIEdvIHRvIERlY2xhcmF0aW9uIChDdHJsK0IgLyBDdHJsK0NsaWNrKSB3aXRoIGNyb3Nz
LXVuaXQgcmVzb2x1dGlvbgogICAgICBpbmNsdWRpbmcgRlBDIFJUTCBhbmQgcGFja2FnZXMuCiAg
ICAqIEZpbmQgVXNhZ2VzIChBbHQrRjcpIHdpdGggaGlnaGxpZ2h0ZWQgY29udGV4dCBjb2x1bW4u
CiAgICAqIFF1aWNrIERvY3VtZW50YXRpb24gcG9wdXAgKEN0cmwrRjEpLgogICAgKiBOYXZpZ2F0
ZSB0byBGaWxlIGFuZCBOYXZpZ2F0ZSB0byBTeW1ib2wgZGlhbG9ncyB3aXRoIGZ1enp5IG1hdGNo
aW5nLgogICAgKiBDdXJzb3IgaGlzdG9yeSBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbi4KICAgICog
Q3VzdG9tIFBhc2NhbCB0b2tlbmlzZXIgcmVwbGFjaW5nIHZlbmRvcmVkIGZjbC1wYXNzcmMsIHVz
ZWQgYnkgdGhlCiAgICAgIGhpZ2hsaWdodGVyLCBzeW1ib2wgZmluZGVyLCBwcm9jZWR1cmUgbGlz
dCwgYW5kIGRlY2xhcmF0aW9uIGZpbmRlci4KICAgICogRGVidWcgc2Vzc2lvbiBsaWZlY3ljbGU6
IEY5IHN0YXJ0cyBhIGRlYnVnIHJ1biwgQ3RybCtGMiBzdG9wcyBpdC4KICAgICogQnJlYWtwb2lu
dHMgcGFuZWwgYW5kIGZ1bGwgYnJlYWtwb2ludCBhZGQvcmVtb3ZlIG1hbmFnZW1lbnQ7IGxpdmUK
ICAgICAgYnJlYWtwb2ludHMgcm91dGVkIHRocm91Z2ggdGhlIHB0cmFjZSBvd25lciB0aHJlYWQu
CiAgICAqIEV4ZWN1dGlvbiBsaW5lIGhpZ2hsaWdodGVkIGluIHRoZSBlZGl0b3IgYXQgZWFjaCBk
ZWJ1Z2dlciBzdG9wLgogICAgKiBWYXJpYWJsZXMgcGFuZWwgc2hvd2luZyBMb2NhbHMgYW5kIEds
b2JhbHMgZ3JvdXBzOyBTaG93IEdsb2JhbHMKICAgICAgdG9nZ2xlIHBlcnNpc3RlZCBhY3Jvc3Mg
c2Vzc2lvbnMuCiAgICAqIENhbGwgU3RhY2sgcGFuZWwuCiAgICAqIFdhdGNoZXMgcGFuZWwuCiAg
ICAqIEV2YWx1YXRlIEV4cHJlc3Npb24gZGlhbG9nLgogICAgKiBFeGNlcHRpb24gbm90aWZpY2F0
aW9uIGJhci4KICAgICogT1BERi9QRFIgaW50ZWdyYXRpb24gdmlhIGEgZGVkaWNhdGVkIGRlYnVn
Z2VyIHdvcmtlciB0aHJlYWQuCiAgICAgIFJlcXVpcmVzIEZQQyAzLjMuMSArIE9QREYgZGVidWcg
Zm9ybWF0IHN1cHBvcnQuCiAgICAgIExpbnV4IHg4Nl82NCBvbmx5LCB1bnRpbCBPUERGIHN1cHBv
cnQgbW9yZSBwbGF0Zm9ybXMuCiAgICAqIFN1cHBvcnQgZm9yIGJ1aWxkaW5nIHRoZSBJREUgd2l0
aCBGUEMgMy4yLjIgdmlhIGEgc3R1YiBkZWJ1Z2dlcgogICAgICBhZGFwdGVyIChPUERGIGRlcGVu
ZGVuY2llcyBkaXNhYmxlZCBieSBkZWZhdWx0KS4KICAgICogQ3Jvc3MtbW9kdWxlIHNvdXJjZSBm
aWxlIHJlc29sdXRpb24gZm9yIEN0cmwrQiBuYXZpZ2F0aW9uIGFuZAogICAgICBkZWJ1Z2dlciBz
dG9wLWxpbmUgbG9va3VwLgogICAgKiAnUmVvcGVuIGxhc3QgcHJvamVjdCBvbiBzdGFydHVwJyBw
cmVmZXJlbmNlIGFkZGVkLgogICAgKiBNZXNzYWdlcyB0YWIgbm93IGFjdGl2YXRlcyBhdXRvbWF0
aWNhbGx5IHdoZW4gYSBidWlsZCBpcyB0cmlnZ2VyZWQuCiAgICAqIFF1aWNrIERvY3VtZW50YXRp
b24gcG9wdXAgc2lnbmF0dXJlIHNlYXJjaCBzdG9wcyBhdCB0aGUKICAgICAgY2xhc3MvcmVjb3Jk
IGRlY2xhcmF0aW9uIGhlYWRlci4KICAgICogUGFzY2FsIG1vZGlmaWVycyBhbmQgZGlyZWN0aXZl
cyAodmlydHVhbCwgb3ZlcnJpZGUsIHN0ZGNhbGwsIGV0Yy4pCiAgICAgIG5vdyBoaWdobGlnaHRl
ZCBhcyBzZWNvbmRhcnkga2V5d29yZHMuCiAgLSBEb2NWaWV3CiAgICAqIFByb2plY3QgcmVzdHJ1
Y3R1cmVkIGFuZCBhZGRlZCBhcyBhIFBhc0J1aWxkIG1vZHVsZS4KICAgICogRml4ZWQgcmVuZGVy
aW5nIHN0b3BwaW5nIHByZW1hdHVyZWx5LCBsZWF2aW5nIGEgYmxhbmsgYXJlYSBhdCB0aGUKICAg
ICAgYm90dG9tIG9mIHRoZSBkb2N1bWVudC4KICAgICogRml4ZWQgRG9jVmlldyBzdGF0dXNiYXIg
Y29sb3VyIGJlaW5nIHJlc2V0IHRvIHRoZSB3cm9uZyBkZWZhdWx0LgogICAgKiBEb2NWaWV3IG5h
dmlnYXRpb24gdG9vbGJhciBub3cgdXNlcyBzb21lIEhWSUYgdmVjdG9yIGljb25zLgogIC0gVUkg
RGVzaWduZXIKICAgICogQWRkZWQgc3R5bGUgcHJldmlldyBzdXBwb3J0LCBzaG93aW5nIHRoZSBk
ZXNpZ25lciBmb3JtIGluIHRoZQogICAgICB1c2VyLXNlbGVjdGVkIHN0eWxlLgogIC0gRnJhbWV3
b3JrIEJ1ZyBGaXhlcwogICAgKiBGaXhlZCBGcmVlVHlwZSBmb250IG1ldHJpY3MgcHJvZHVjaW5n
IHNxdWFzaGVkIGxpbmUgc3BhY2luZy4KICAgICogRml4ZWQgWE9SIHNlbGVjdGlvbiByZW5kZXJp
bmcgaW4gVGZwZ01lbW8g4oCUIG5vdyB1c2VzIHByb3BlciB0aGVtZQogICAgICBjb2xvdXJzIGlu
c3RlYWQgb2YgWE9SIHBpeGVsIGludmVyc2lvbi4KICAgICogRml4ZWQgT3Blbi9TYXZlIGRpYWxv
ZyBncmlkIG5vdCBncm93aW5nIGNvcnJlY3RseSBvbiByZXNpemUuCiAgICAqIEZpeGVkIHBhZ2Vj
b250cm9sIHRhYiByZW5kZXJpbmcgdG8gYmUgZm9udCBhbmQgRFBJIGF3YXJlLgogICAgKiBGaXhl
ZCBDb2NvYSBoeWJyaWQgY2FudmFzIHJlbmRlcmluZyAoZHJhd1JlY3QgaW5zdGVhZCBvZiBsb2Nr
Rm9jdXMpLgogICAgKiBGaXhlZCBDb2NvYSBmb250IG1ldHJpY3MgYW5kIHBvcHVwIHdpbmRvdyB2
aXNpYmlsaXR5LgogICAgKiBGaXhlZCBGcmVlVHlwZSBmb250IGNhY2hlIG5vdCBiZWluZyBlbmFi
bGVkIG9uIFdpbmRvd3MuCiAgICAqIEZpeGVkIGluZGV4IG91dCBvZiBib3VuZHMgaW4gRmlsZSBP
cGVuIGRpYWxvZyB1bmRlciBtYWNPUy4KICAgICogQ29tcGF0aWJpbGl0eSBmaXggZm9yIHVwY29t
aW5nIEZQQyAzLjMueCByZWxlYXNlLgogICAgKiBBZGRlZCB3cE1haW5Gb3JtQ2VudGVyIHdpbmRv
dyBwb3NpdGlvbiBvcHRpb247IGNlbnRyYWxpc2VkIHdpbmRvdwogICAgICBwb3NpdGlvbmluZyBs
b2dpYyBpbnRvIGZwZ19mb3JtLnBhcy4KICAgICogRXhwZXJpbWVudGFsIG11bHRpLW1vbml0b3Ig
YW5kIHBlci1zY3JlZW4gRFBJIHN1cHBvcnQuCiAgICAqIEZpeGVkIHNldmVyYWwgYm91bmRzLWNo
ZWNraW5nIGlzc3VlcyBpbiB0aGUgdGV4dCBlZGl0b3IgY29tcG9uZW50LgogICAgKiBEZXByZWNh
dGVkIG9sZCBEcmF3WFhYIHdpZGdldCBwYWludCBtZXRob2RzIGluIFRmcGdDYW52YXMuCiAgICAq
IEZpeGVkIENvbWJvQm94IHRleHQgbm90IGNsaXBwZWQgdG8gZXhjbHVkZSB0aGUgZHJvcGRvd24g
YnV0dG9uIGFyZWEuCiAgICAqIEZpeGVkIFRmcGdMYWJlbCBub3QgYXV0by1zaXppbmcgdG8gdGV4
dCBjb250ZW50IHdoZW4gbm8KICAgICAgUHJlZmVycmVkU2l6ZSB3YXMgc2V0LgogICAgKiBGaXhl
ZCBkZXZlbG9wZXItc2V0IHRleHQgY29sb3VyIGlnbm9yZWQgYnkgc3R5bGUgRHJhd1N0cmluZy4K
ICAgICogRml4ZWQgcG9wdXAgY2FsZW5kYXIgZ2VuZXJhdGluZyBkZXByZWNhdGlvbiB3YXJuaW5n
cy4KICAtIENvZGUgSHlnaWVuZQogICAgKiBSZXBsYWNlZCBidW5kbGVkIFN5blJlZ0V4cHIgd2l0
aCBGUEMncyBzdGFuZGFyZCBSZWdFeHByIHVuaXQuCiAgICAqIFJlcGxhY2VkIGJ1bmRsZWQgbVBh
c0xleCB3aXRoIEZQQydzIGZjbC1wYXNzcmMgZm9yIFByb2NlZHVyZSBMaXN0LgogICAgKiBSZXBs
YWNlZCBidW5kbGVkIHNoYTEucGFzIChENS1lcmEpIHdpdGggRlBDJ3Mgc3RhbmRhcmQgaGFzaCBw
YWNrYWdlLgogICAgKiBSZW1vdmVkIENhaXJvIHJlbmRlcmluZyBiYWNrZW5kLgogICAgKiBSZW1v
dmVkIFZMQyB1bml0cyAobm93IHBhcnQgb2YgRlBDJ3MgRnJlZSBDb21wb25lbnQgTGlicmFyeSku
CiAgICAqIFJlbW92ZWQgTWlnTGF5b3V0IEphdmEgcmVmZXJlbmNlIHNvdXJjZSAocG9ydGluZyBj
b21wbGV0ZSkuCiAgICAqIFJlbW92ZWQgdW51c2VkIGFuZCBlbXB0eSBzdHlsZSB1bml0cy4KICAg
ICogUmVtb3ZlZCB2ZW5kb3JlZCBmY2wtcGFzc3JjIChyZXBsYWNlZCBieSBjdXN0b20gUGFzY2Fs
IHRva2VuaXNlcikuCiAgICAqIE1vdmVkIGRvY3VtZW50YXRpb24gYW5kIExhemFydXMgSURFIGlu
dGVncmF0aW9uIHBhY2thZ2Ugb3V0IG9mIHRoZQogICAgICBmcmFtZXdvcmsgc291cmNlIHRyZWUu
CiAgICAqIExlZ2FjeSBBZ2cyRCBjYW52YXMgbW92ZWQgb3V0IG9mIHRoZSBmcmFtZXdvcmsgc291
cmNlIHRvCiAgICAgIGV4dHJhcy9hZ2dwYXMvLgogICAgKiBHREkgJiBYMTEgbmF0aXZlIGNhbnZh
cyBjbGFzc2VzIG1hcmtlZCAiRGVwcmVjYXRlZCIgZm9yIGZ1dHVyZQogICAgICByZW1vdmFsLgog
ICAgKiBUZnBnQ2FudmFzLkRyYXdYWFggbWV0aG9kcyBmb3Igd2lkZ2V0IHBhaW50aW5nIG1hcmtl
ZCAiZGVwcmVjYXRlZCIKICAgICAgZm9yIGZ1dHVyZSByZW1vdmFsLgogIC0gSFZJRiAoSGFpa3Ug
VmVjdG9yIEljb24gRmlsZSkgSWNvbiBGb3JtYXQKICAgICogTmV3IEhWSUYgYmluYXJ5IHJlYWRl
ciB3aXRoIEFnZ1BhcyByZW5kZXJlciBhbmQgdW5pdCB0ZXN0cy4KICAgICogTmV3IEhWSUYgYmlu
YXJ5IHdyaXRlciB3aXRoIHVuaXQgdGVzdHMuCiAgICAqIHN2ZzJodmlmIENMSSB0b29sIGNvbnZl
cnRzIFNWRyBmaWxlcyB0byBIVklGOyAtLWluYyBmbGFnIGVtaXRzIGEKICAgICAgUGFzY2FsIGJ5
dGUtYXJyYXkgaW5jbHVkZSBmaWxlIGZvciBlbWJlZGRpbmcgaWNvbnMgaW4gc291cmNlLgogICAg
KiBodmlmX2R1bXAgaW5zcGVjdGlvbiB0b29sIGZvciBleGFtaW5pbmcgSFZJRiBiaW5hcnkgZmls
ZXMuCiAgICAqIEZ1bGwgcmVuZGVyaW5nIHBpcGVsaW5lOiBtdWx0aS1zdG9wIGdyYWRpZW50IExV
VCwgZ3JhZGllbnQgc3Ryb2tlcywKICAgICAgdHJhbnNmb3JtcywgYXJjIHNlZ21lbnRzLCBhbmQg
TE9EIHZpc2liaWxpdHkgc2NhbGUuCiAgICAqIFRmcGdJY29uU3RvcmU6IERQSS1hd2FyZSBIVklG
IGljb24gcmVnaXN0cnk7IGZwZ0ljb25zIGdsb2JhbAogICAgICBpbml0aWFsaXNlZCBhdXRvbWF0
aWNhbGx5IGluIFRmcGdBcHBsaWNhdGlvbi4KICAgICogSFZJRiBpY29ucyB3aXJlZCBpbnRvIGNv
cmUgZnJhbWV3b3JrIHdpZGdldHMuCiAgICAqIE5ldyBJY29uTmFtZSBhbmQgSWNvblNpemUgcHJv
cGVydGllcyBvbiBUZnBnQmFzZUJ1dHRvbiBmb3IKICAgICAgaWNvbi1zdG9yZeKAk2RyaXZlbiBi
dXR0b24gaWNvbnMuCiAgICAqIGltYWdlY29udmVydCB1dGlsaXR5IGFkZGVkIHRvIHRoZSBQYXNC
dWlsZCBlY29zeXN0ZW0uCiAgLSBWZXJ0ZXggSFZJRiBJY29uIEVkaXRvciAobmV3IGFwcGxpY2F0
aW9uKQogICAgKiBBbm5vdW5jZW1lbnQgdGhyZWFkIHdpdGggc2NyZWVuc2hvdCAoaHR0cHM6Ly9n
aXRodWIuY29tL2dyYWVtZWcvZnBHVUkvCmRpc2N1c3Npb25zLzE4MikKICAgICogRnVsbCBIVklG
IHZlY3RvciBpY29uIGVkaXRvciBhZGRlZCB0byB0aGUgcHJpbWFyeSBidWlsZC4KICAgICogVG9v
bHM6IFNlbGVjdCwgTm9kZSBlZGl0LCBQYW4sIFpvb20sIFJlY3RhbmdsZSwgRWxsaXBzZSwgYW5k
IFBlbi4KICAgICogQm91bmRpbmcgYm94IGFuZCBhZmZpbmUgdHJhbnNmb3JtIGludGVyYWN0aW9u
czsgU2hpZnQrZHJhZyBmb3IKICAgICAgdW5pZm9ybSBzY2FsZSwgQ3RybCtkcmFnIGZvciBzaGVh
ci4KICAgICogR3JhZGllbnQgc3R5bGUgZWRpdGluZyB3aXRoIG11bHRpLXN0b3AgcmFtcCB3aWRn
ZXQgYW5kIGVkaXRvciBwb3B1cC4KICAgICogR3JpZCBvdmVybGF5IHdpdGggY29uZmlndXJhYmxl
IHNuYXAtdG8tZ3JpZC4KICAgICogT2JqZWN0IHRyZWUgd2l0aCBpbmxpbmUgcmVuYW1lIGFuZCBz
aWRlY2FyIG1ldGFkYXRhIGZpbGUuCiAgICAqIEJlemllciBwYXRoIG91dGxpbmUgb3ZlcmxheSBp
biBub2RlLWVkaXQgbW9kZS4KICAgICogVW5kbyBzdXBwb3J0IGZvciBwYXRoIGFuZCBzaGFwZSBw
cm9wZXJ0eSBlZGl0cy4KICAgICogRmlsZSA+IE5ldywgT3BlbiwgU2F2ZSAoLmh2aWYpLCBFeHBv
cnQgYXMgLmluYywgYW5kIEV4cG9ydCBhcyBQTkcKICAgICAgYXQgMTYvMzIvNDgvNjQgcHguCiAg
ICAqIEZpbGUgPiBPcGVuIFJlY2VudCB3aXRoIHBlcnNpc3RlbnQgbGFzdC11c2VkIGRpcmVjdG9y
eS4KICAgICogV2luZG93IHBvc2l0aW9uIGFuZCBzaXplIHJlc3RvcmVkIGFjcm9zcyBzZXNzaW9u
cy4KCgpSZWdhcmRzLAogIC0gR3JhZW1lIC0KCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KZnBjLXBhc2NhbCBtYWlsbGlzdCAgLSAgZnBjLXBhc2NhbEBs
aXN0cy5mcmVlcGFzY2FsLm9yZwpodHRwczovL2xpc3RzLmZyZWVwYXNjYWwub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby9mcGMtcGFzY2FsCg==