From notifications@github.com Fri Oct 1 17:47:01 2021 From: Marcel Taeumel To: vm-dev@lists.squeakfoundation.org Subject: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Fri, 01 Oct 2021 10:47:00 -0700 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3703934838424653383==" --===============3703934838424653383== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Since X11 does not provide a localized version of virtual keys, I mapped the = X11 event's `KeySym` to such a "virtual-key code", using `evt.k= eycode` only as a fall back. It's not perfect but close to what Windows a= nd macOS have. Here is the mapping schema: ``` * 0x00 (unknown virtual key) * 0x01 XK_space (shifted from Latin-1) * 0x02 XK_comma (shifted from Latin-1 OR guessed from xKeycode) * 0x03 XK_period (shifted from Latin-1 OR guessed from xKeycode) * 0x04 .. 0x07 (unused) * * 0x08 .. 0x1f SPECIAL KEYS 1 (from all-mask 0xff00) * 0x20 .. 0x29 NUMERIC ASCII KEYS (shifted from Latin-1) * 0x2a .. 0x43 ALPHABETIC ASCII KEYS (shifted from Latin-1) * * 0x44 US_MINUS (guessed from xKeycode) * 0x45 US_PLUS (guessed from xKeycode) * 0x46 US_LBRACKET (guessed from xKeycode) * 0x47 US_RBRACKET (guessed from xKeycode) * 0x48 US_COLON (guessed from xKeycode) * 0x49 US_QUOTE (guessed from xKeycode) * 0x4a US_TILDE (guessed from xKeycode) * 0x4b US_BACKSLASH (guessed from xKeycode) * 0x4c US_COMMA (guessed from xKeycode) * 0x4d US_PERIOD (guessed from xKeycode) * 0x4e US_SLASH (guessed from xKeycode) * 0x4f US_102 (guessed from xKeycode) * * 0x50 .. 0xff SPECIAL KEYS 2 (from all-mask 0xff00) ``` Here is the new mapping table for Squeak: [new-x11-virtual-keys.1.cs.txt](https://github.com/OpenSmalltalk/opensmalltal= k-vm/files/7269113/new-x11-virtual-keys.1.cs.txt) See /usr/include/X11/keysymdef.h to understand the "SPECIAL KEYS" (= masked 0xff00). The biggest remaining issue is all those "OEM keys", which means th= e ones you push for "+" or "/" or "~" and so on. *Note that the idea of having a localized version of the virtual key is that = you can print it in an application's user interface. Would be really anno= ying if an app insists on, e.g., Z while you actionally pushed Y.* You can view, comment on, or merge this pull request online at: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599 -- Commit Summary -- * For keyDown and keyUp events, = pass keycodes into the image. Not quite the virtual keys on other platforms b= ecause no information about locale. * Prepare skeleton for xkey2sqVi= rtualKeyCode(). Fix several several naming issues: keyCode -> ascii, codes= -> keyNameEntries, nameForKeycode -> nameForKeysym * Compute a virtual-key code usi= ng X11's KeySym and -- as a fall-back -- that event's not-localized K= eyCode. -- File Changes -- M platforms/unix/vm-display-X11/sqUnixX11.c (181) -- Patch Links -- https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599.patch https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599.diff --=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599 --===============3703934838424653383== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+U2luY2UgWDExIGRvZXMgbm90IHByb3ZpZGUgYSBsb2NhbGl6ZWQgdmVyc2lvbiBvZiB2aXJ0 dWFsIGtleXMsIEkgbWFwcGVkIHRoZSBYMTEgZXZlbnQncyA8Y29kZT5LZXlTeW08L2NvZGU+IHRv IHN1Y2ggYSAidmlydHVhbC1rZXkgY29kZSIsIHVzaW5nIDxjb2RlPmV2dC5rZXljb2RlPC9jb2Rl PiBvbmx5IGFzIGEgZmFsbCBiYWNrLiBJdCdzIG5vdCBwZXJmZWN0IGJ1dCBjbG9zZSB0byB3aGF0 IFdpbmRvd3MgYW5kIG1hY09TIGhhdmUuPC9wPgo8cD5IZXJlIGlzIHRoZSBtYXBwaW5nIHNjaGVt YTo8L3A+CjxkaXYgY2xhc3M9InNuaXBwZXQtY2xpcGJvYXJkLWNvbnRlbnQgcG9zaXRpb24tcmVs YXRpdmUgb3ZlcmZsb3ctYXV0byIgZGF0YS1zbmlwcGV0LWNsaXBib2FyZC1jb3B5LWNvbnRlbnQ9 IiAqIDB4MDAgICAgICAgICAodW5rbm93biB2aXJ0dWFsIGtleSkKICogMHgwMSAgICAgICAgIFhL X3NwYWNlIChzaGlmdGVkIGZyb20gTGF0aW4tMSkKICogMHgwMiAgICAgICAgIFhLX2NvbW1hIChz aGlmdGVkIGZyb20gTGF0aW4tMSBPUiBndWVzc2VkIGZyb20geEtleWNvZGUpCiAqIDB4MDMgICAg ICAgICBYS19wZXJpb2QgKHNoaWZ0ZWQgZnJvbSBMYXRpbi0xIE9SIGd1ZXNzZWQgZnJvbSB4S2V5 Y29kZSkKICogMHgwNCAuLiAweDA3ICh1bnVzZWQpCiAqCiAqIDB4MDggLi4gMHgxZiBTUEVDSUFM IEtFWVMgMSAoZnJvbSBhbGwtbWFzayAweGZmMDApCiAqIDB4MjAgLi4gMHgyOSBOVU1FUklDIEFT Q0lJIEtFWVMgKHNoaWZ0ZWQgZnJvbSBMYXRpbi0xKQogKiAweDJhIC4uIDB4NDMgQUxQSEFCRVRJ QyBBU0NJSSBLRVlTIChzaGlmdGVkIGZyb20gTGF0aW4tMSkKICoKICogMHg0NCAgICAgICAgIFVT X01JTlVTIChndWVzc2VkIGZyb20geEtleWNvZGUpCiAqIDB4NDUgICAgICAgICBVU19QTFVTIChn dWVzc2VkIGZyb20geEtleWNvZGUpCiAqIDB4NDYgICAgICAgICBVU19MQlJBQ0tFVCAoZ3Vlc3Nl ZCBmcm9tIHhLZXljb2RlKQogKiAweDQ3ICAgICAgICAgVVNfUkJSQUNLRVQgKGd1ZXNzZWQgZnJv bSB4S2V5Y29kZSkKICogMHg0OCAgICAgICAgIFVTX0NPTE9OIChndWVzc2VkIGZyb20geEtleWNv ZGUpCiAqIDB4NDkgICAgICAgICBVU19RVU9URSAoZ3Vlc3NlZCBmcm9tIHhLZXljb2RlKQogKiAw eDRhICAgICAgICAgVVNfVElMREUgKGd1ZXNzZWQgZnJvbSB4S2V5Y29kZSkKICogMHg0YiAgICAg ICAgIFVTX0JBQ0tTTEFTSCAoZ3Vlc3NlZCBmcm9tIHhLZXljb2RlKQogKiAweDRjICAgICAgICAg VVNfQ09NTUEgKGd1ZXNzZWQgZnJvbSB4S2V5Y29kZSkKICogMHg0ZCAgICAgICAgIFVTX1BFUklP RCAoZ3Vlc3NlZCBmcm9tIHhLZXljb2RlKQogKiAweDRlICAgICAgICAgVVNfU0xBU0ggKGd1ZXNz ZWQgZnJvbSB4S2V5Y29kZSkKICogMHg0ZiAgICAgICAgIFVTXzEwMiAoZ3Vlc3NlZCBmcm9tIHhL ZXljb2RlKQogKgogKiAweDUwIC4uIDB4ZmYgU1BFQ0lBTCBLRVlTIDIgKGZyb20gYWxsLW1hc2sg MHhmZjAwKQoiPjxwcmU+PGNvZGU+ICogMHgwMCAgICAgICAgICh1bmtub3duIHZpcnR1YWwga2V5 KQogKiAweDAxICAgICAgICAgWEtfc3BhY2UgKHNoaWZ0ZWQgZnJvbSBMYXRpbi0xKQogKiAweDAy ICAgICAgICAgWEtfY29tbWEgKHNoaWZ0ZWQgZnJvbSBMYXRpbi0xIE9SIGd1ZXNzZWQgZnJvbSB4 S2V5Y29kZSkKICogMHgwMyAgICAgICAgIFhLX3BlcmlvZCAoc2hpZnRlZCBmcm9tIExhdGluLTEg T1IgZ3Vlc3NlZCBmcm9tIHhLZXljb2RlKQogKiAweDA0IC4uIDB4MDcgKHVudXNlZCkKICoKICog MHgwOCAuLiAweDFmIFNQRUNJQUwgS0VZUyAxIChmcm9tIGFsbC1tYXNrIDB4ZmYwMCkKICogMHgy MCAuLiAweDI5IE5VTUVSSUMgQVNDSUkgS0VZUyAoc2hpZnRlZCBmcm9tIExhdGluLTEpCiAqIDB4 MmEgLi4gMHg0MyBBTFBIQUJFVElDIEFTQ0lJIEtFWVMgKHNoaWZ0ZWQgZnJvbSBMYXRpbi0xKQog KgogKiAweDQ0ICAgICAgICAgVVNfTUlOVVMgKGd1ZXNzZWQgZnJvbSB4S2V5Y29kZSkKICogMHg0 NSAgICAgICAgIFVTX1BMVVMgKGd1ZXNzZWQgZnJvbSB4S2V5Y29kZSkKICogMHg0NiAgICAgICAg IFVTX0xCUkFDS0VUIChndWVzc2VkIGZyb20geEtleWNvZGUpCiAqIDB4NDcgICAgICAgICBVU19S QlJBQ0tFVCAoZ3Vlc3NlZCBmcm9tIHhLZXljb2RlKQogKiAweDQ4ICAgICAgICAgVVNfQ09MT04g KGd1ZXNzZWQgZnJvbSB4S2V5Y29kZSkKICogMHg0OSAgICAgICAgIFVTX1FVT1RFIChndWVzc2Vk IGZyb20geEtleWNvZGUpCiAqIDB4NGEgICAgICAgICBVU19USUxERSAoZ3Vlc3NlZCBmcm9tIHhL ZXljb2RlKQogKiAweDRiICAgICAgICAgVVNfQkFDS1NMQVNIIChndWVzc2VkIGZyb20geEtleWNv ZGUpCiAqIDB4NGMgICAgICAgICBVU19DT01NQSAoZ3Vlc3NlZCBmcm9tIHhLZXljb2RlKQogKiAw eDRkICAgICAgICAgVVNfUEVSSU9EIChndWVzc2VkIGZyb20geEtleWNvZGUpCiAqIDB4NGUgICAg ICAgICBVU19TTEFTSCAoZ3Vlc3NlZCBmcm9tIHhLZXljb2RlKQogKiAweDRmICAgICAgICAgVVNf MTAyIChndWVzc2VkIGZyb20geEtleWNvZGUpCiAqCiAqIDB4NTAgLi4gMHhmZiBTUEVDSUFMIEtF WVMgMiAoZnJvbSBhbGwtbWFzayAweGZmMDApCjwvY29kZT48L3ByZT48L2Rpdj4KPHA+SGVyZSBp cyB0aGUgbmV3IG1hcHBpbmcgdGFibGUgZm9yIFNxdWVhazo8YnI+CjxhIGhyZWY9Imh0dHBzOi8v Z2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vZmlsZXMvNzI2OTExMy9u ZXcteDExLXZpcnR1YWwta2V5cy4xLmNzLnR4dCI+bmV3LXgxMS12aXJ0dWFsLWtleXMuMS5jcy50 eHQ8L2E+PC9wPgo8cD5TZWUgL3Vzci9pbmNsdWRlL1gxMS9rZXlzeW1kZWYuaCB0byB1bmRlcnN0 YW5kIHRoZSAiU1BFQ0lBTCBLRVlTIiAobWFza2VkIDB4ZmYwMCkuPC9wPgo8cD5UaGUgYmlnZ2Vz dCByZW1haW5pbmcgaXNzdWUgaXMgYWxsIHRob3NlICJPRU0ga2V5cyIsIHdoaWNoIG1lYW5zIHRo ZSBvbmVzIHlvdSBwdXNoIGZvciAiKyIgb3IgIi8iIG9yICJ+IiBhbmQgc28gb24uPC9wPgo8cD48 ZW0+Tm90ZSB0aGF0IHRoZSBpZGVhIG9mIGhhdmluZyBhIGxvY2FsaXplZCB2ZXJzaW9uIG9mIHRo ZSB2aXJ0dWFsIGtleSBpcyB0aGF0IHlvdSBjYW4gcHJpbnQgaXQgaW4gYW4gYXBwbGljYXRpb24n cyB1c2VyIGludGVyZmFjZS4gV291bGQgYmUgcmVhbGx5IGFubm95aW5nIGlmIGFuIGFwcCBpbnNp c3RzIG9uLCBlLmcuLCBaIHdoaWxlIHlvdSBhY3Rpb25hbGx5IHB1c2hlZCBZLjwvZW0+PC9wPgoK PGhyPgoKPGg0PllvdSBjYW4gdmlldywgY29tbWVudCBvbiwgb3IgbWVyZ2UgdGhpcyBwdWxsIHJl cXVlc3Qgb25saW5lIGF0OjwvaDQ+CjxwPiZuYnNwOyZuYnNwOzxhIGhyZWY9J2h0dHBzOi8vZ2l0 aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTknPmh0dHBzOi8v Z2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTk8L2E+PC9w PgoKPGg0PkNvbW1pdCBTdW1tYXJ5PC9oND4KPHVsPgogIDxsaT48YSBocmVmPSJodHRwczovL2dp dGh1Yi5jb20vT3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5L2NvbW1pdHMv NGM2NDk0N2JlMTFlZWY0YTRiNTY3ODUyZWRiNGJkMjMxYjdhOTBlMiI+Rm9yIGtleURvd24gYW5k IGtleVVwIGV2ZW50cywgcGFzcyBrZXljb2RlcyBpbnRvIHRoZSBpbWFnZS4gTm90IHF1aXRlIHRo ZSB2aXJ0dWFsIGtleXMgb24gb3RoZXIgcGxhdGZvcm1zIGJlY2F1c2Ugbm8gaW5mb3JtYXRpb24g YWJvdXQgbG9jYWxlLjwvYT48L2xpPgogIDxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v T3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5L2NvbW1pdHMvMTQ3ZjdkNjNl NzBlMzgwMzMxZWRkYjUyNGE5MDgyOGFhOGIwZGQ4ZSI+UHJlcGFyZSBza2VsZXRvbiBmb3IgeGtl eTJzcVZpcnR1YWxLZXlDb2RlKCkuIEZpeCBzZXZlcmFsIHNldmVyYWwgbmFtaW5nIGlzc3Vlczog a2V5Q29kZSAtJmd0OyBhc2NpaSwgY29kZXMgLSZndDsga2V5TmFtZUVudHJpZXMsIG5hbWVGb3JL ZXljb2RlIC0mZ3Q7IG5hbWVGb3JLZXlzeW08L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iaHR0cHM6 Ly9naXRodWIuY29tL09wZW5TbWFsbHRhbGsvb3BlbnNtYWxsdGFsay12bS9wdWxsLzU5OS9jb21t aXRzL2ZmM2M0MjY1OTgyMmI1MjhkNDlmNTc4NTM4ZTQzNGQxYWNhZTRmZDEiPkNvbXB1dGUgYSB2 aXJ0dWFsLWtleSBjb2RlIHVzaW5nIFgxMSYjMzk7cyBLZXlTeW0gYW5kIC0tIGFzIGEgZmFsbC1i YWNrIC0tIHRoYXQgZXZlbnQmIzM5O3Mgbm90LWxvY2FsaXplZCBLZXlDb2RlLjwvYT48L2xpPgo8 L3VsPgoKPGg0PkZpbGUgQ2hhbmdlczwvaDQ+Cjx1bD4KICA8bGk+CiAgICA8c3Ryb25nPk08L3N0 cm9uZz4KICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5z bWFsbHRhbGstdm0vcHVsbC81OTkvZmlsZXMjZGlmZi1iZGU2ZDg1MmYzZWFmZjNkNGNhYTA2NWM2 YmFlN2I5YzIyNTg1MTZmNGZiMTIyNzU2YjYwZTlhYzFhOTZmNTIxIj5wbGF0Zm9ybXMvdW5peC92 bS1kaXNwbGF5LVgxMS9zcVVuaXhYMTEuYzwvYT4KICAgICgxODEpCiAgPC9saT4KPC91bD4KCjxo ND5QYXRjaCBMaW5rczo8L2g0Pgo8dWw+CiAgPGxpPjxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNv bS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkucGF0Y2gnPmh0dHBzOi8v Z2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkucGF0Y2g8 L2E+PC9saT4KICA8bGk+PGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL09wZW5TbWFsbHRhbGsv b3BlbnNtYWxsdGFsay12bS9wdWxsLzU5OS5kaWZmJz5odHRwczovL2dpdGh1Yi5jb20vT3BlblNt YWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5LmRpZmY8L2E+PC9saT4KPC91bD4KCjxw IHN0eWxlPSJmb250LXNpemU6c21hbGw7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7Y29s b3I6IzY2NjsiPiZtZGFzaDs8YnIgLz5Zb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91 IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMgdGhyZWFkLjxiciAvPlJlcGx5IHRvIHRoaXMgZW1haWwg ZGlyZWN0bHksIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5z bWFsbHRhbGstdm0vcHVsbC81OTkiPnZpZXcgaXQgb24gR2l0SHViPC9hPiwgb3IgPGEgaHJlZj0i aHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BSUpQRVda UDZGQ1JRWDZYVDc2NkhLRFVFWFhaSkFOQ05GU001RkZGNUZIUSI+dW5zdWJzY3JpYmU8L2E+Ljxi ciAvPlRyaWFnZSBub3RpZmljYXRpb25zIG9uIHRoZSBnbyB3aXRoIEdpdEh1YiBNb2JpbGUgZm9y IDxhIGhyZWY9Imh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL2FwcGxlLXN0b3JlL2lkMTQ3NzM3 NjkwNT9jdD1ub3RpZmljYXRpb24tZW1haWwmYW1wO210PTgmYW1wO3B0PTUyNDY3NSI+aU9TPC9h PiBvciA8YSBocmVmPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/ aWQ9Y29tLmdpdGh1Yi5hbmRyb2lkJmFtcDtyZWZlcnJlcj11dG1fY2FtcGFpZ24lM0Rub3RpZmlj YXRpb24tZW1haWwlMjZ1dG1fbWVkaXVtJTNEZW1haWwlMjZ1dG1fc291cmNlJTNEZ2l0aHViIj5B bmRyb2lkPC9hPi4KPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9ub3RpZmljYXRpb25zL2Jl YWNvbi9BSUpQRVcyM1gzSlhTUjJHSE4zNExERFVFWFhaSkE1Q05GU001RkZGNUZIMllZM1BOVldX SzNUVUw1MkhTNERGVVZFWEc0M1ZNV1ZHRzMzTk5WU1c0NUM3TkZTTTRQREtRRFlBLmdpZiIgaGVp Z2h0PSIxIiB3aWR0aD0iMSIgYWx0PSIiIC8+PC9wPgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u L2xkK2pzb24iPlsKewoiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5vcmciLAoiQHR5cGUiOiAi RW1haWxNZXNzYWdlIiwKInBvdGVudGlhbEFjdGlvbiI6IHsKIkB0eXBlIjogIlZpZXdBY3Rpb24i LAoidGFyZ2V0IjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRh bGstdm0vcHVsbC81OTkiLAoidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxr L29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkiLAoibmFtZSI6ICJWaWV3IFB1bGwgUmVxdWVzdCIK fSwKImRlc2NyaXB0aW9uIjogIlZpZXcgdGhpcyBQdWxsIFJlcXVlc3Qgb24gR2l0SHViIiwKInB1 Ymxpc2hlciI6IHsKIkB0eXBlIjogIk9yZ2FuaXphdGlvbiIsCiJuYW1lIjogIkdpdEh1YiIsCiJ1 cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIgp9Cn0KXTwvc2NyaXB0Pgo= --===============3703934838424653383==-- From notifications@github.com Mon Oct 4 10:42:46 2021 From: Tobias Pape To: vm-dev@lists.squeakfoundation.org Subject: Re: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Mon, 04 Oct 2021 03:42:40 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6821036293799928842==" --===============6821036293799928842== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Virtual key codes are _per se_ fine with me. But I would really opt to stand on the shoulders of giants and not invent our= own. I think that SDL or QT might have the most compatible list (libsdl.org is down, so no link=E2=80=A6) Or if we are interested in the physical ones, [USB HID Usage IDs](https://usb= .org/sites/default/files/hut1_21.pdf) or SDL scancodes. --=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599#issuecomment-93336= 0885 --===============6821036293799928842== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+PC9wPg0KPHA+VmlydHVhbCBrZXkgY29kZXMgYXJlIDxlbT5wZXIgc2U8L2VtPiBmaW5lIHdp dGggbWUuPGJyPg0KQnV0IEkgd291bGQgcmVhbGx5IG9wdCB0byBzdGFuZCBvbiB0aGUgc2hvdWxk ZXJzIG9mIGdpYW50cyBhbmQgbm90IGludmVudCBvdXIgb3duLjxicj4NCkkgdGhpbmsgdGhhdCBT REwgb3IgUVQgbWlnaHQgaGF2ZSB0aGUgbW9zdCBjb21wYXRpYmxlIGxpc3Q8YnI+DQoobGlic2Rs Lm9yZyBpcyBkb3duLCBzbyBubyBsaW5r4oCmKTwvcD4NCjxwPk9yIGlmIHdlIGFyZSBpbnRlcmVz dGVkIGluIHRoZSBwaHlzaWNhbCBvbmVzLCA8YSBocmVmPSJodHRwczovL3VzYi5vcmcvc2l0ZXMv ZGVmYXVsdC9maWxlcy9odXQxXzIxLnBkZiIgcmVsPSJub2ZvbGxvdyI+VVNCIEhJRCBVc2FnZSBJ RHM8L2E+IG9yIFNETCBzY2FuY29kZXMuPC9wPg0KDQo8cCBzdHlsZT0iZm9udC1zaXplOnNtYWxs Oy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpub25lO2NvbG9yOiM2NjY7Ij4mbWRhc2g7PGJyIC8+ WW91IGFyZSByZWNlaXZpbmcgdGhpcyBiZWNhdXNlIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGlz IHRocmVhZC48YnIgLz5SZXBseSB0byB0aGlzIGVtYWlsIGRpcmVjdGx5LCA8YSBocmVmPSJodHRw czovL2dpdGh1Yi5jb20vT3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5I2lz c3VlY29tbWVudC05MzMzNjA4ODUiPnZpZXcgaXQgb24gR2l0SHViPC9hPiwgb3IgPGEgaHJlZj0i aHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BSUpQRVda UUFSRkdCTUxNR041VzU2RFVGR0FLQkFOQ05GU001RkZGNUZIUSI+dW5zdWJzY3JpYmU8L2E+Ljxi ciAvPlRyaWFnZSBub3RpZmljYXRpb25zIG9uIHRoZSBnbyB3aXRoIEdpdEh1YiBNb2JpbGUgZm9y IDxhIGhyZWY9Imh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL2FwcGxlLXN0b3JlL2lkMTQ3NzM3 NjkwNT9jdD1ub3RpZmljYXRpb24tZW1haWwmYW1wO210PTgmYW1wO3B0PTUyNDY3NSI+aU9TPC9h PiBvciA8YSBocmVmPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/ aWQ9Y29tLmdpdGh1Yi5hbmRyb2lkJmFtcDtyZWZlcnJlcj11dG1fY2FtcGFpZ24lM0Rub3RpZmlj YXRpb24tZW1haWwlMjZ1dG1fbWVkaXVtJTNEZW1haWwlMjZ1dG1fc291cmNlJTNEZ2l0aHViIj5B bmRyb2lkPC9hPi4NCjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy9i ZWFjb24vQUlKUEVXM0ZRTUxLUDZDNzdZRFBMRzNVRkdBS0JBNUNORlNNNUZGRjVGSDJZWTNQTlZX V0szVFVMNTJIUzRERlZSRVhHNDNWTVZCVzYzTE5NVlhISktURE41V1cyWkxPT1JQV1NaR09HNlE3 SjVJLmdpZiIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSIiIC8+PC9wPg0KPHNjcmlwdCB0eXBl PSJhcHBsaWNhdGlvbi9sZCtqc29uIj5bDQp7DQoiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5v cmciLA0KIkB0eXBlIjogIkVtYWlsTWVzc2FnZSIsDQoicG90ZW50aWFsQWN0aW9uIjogew0KIkB0 eXBlIjogIlZpZXdBY3Rpb24iLA0KInRhcmdldCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNt YWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5I2lzc3VlY29tbWVudC05MzMzNjA4ODUi LA0KInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxr LXZtL3B1bGwvNTk5I2lzc3VlY29tbWVudC05MzMzNjA4ODUiLA0KIm5hbWUiOiAiVmlldyBQdWxs IFJlcXVlc3QiDQp9LA0KImRlc2NyaXB0aW9uIjogIlZpZXcgdGhpcyBQdWxsIFJlcXVlc3Qgb24g R2l0SHViIiwNCiJwdWJsaXNoZXIiOiB7DQoiQHR5cGUiOiAiT3JnYW5pemF0aW9uIiwNCiJuYW1l IjogIkdpdEh1YiIsDQoidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbSINCn0NCn0NCl08L3Njcmlw dD4= --===============6821036293799928842==-- From notifications@github.com Tue Oct 5 06:58:46 2021 From: Marcel Taeumel To: vm-dev@lists.squeakfoundation.org Subject: Re: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Mon, 04 Oct 2021 23:58:42 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0503311554524720988==" --===============0503311554524720988== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable > But I would really opt to stand on the shoulders of giants and not invent o= ur own. Sure. This here is a fix that does not require touching all other platforms. = Since both macOS and Windows are fine and supported in Squeak, only X11 seems= to be the current issue. --=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599#issuecomment-93412= 2221 --===============0503311554524720988== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+PC9wPgo8YmxvY2txdW90ZT4KPHA+QnV0IEkgd291bGQgcmVhbGx5IG9wdCB0byBzdGFuZCBv biB0aGUgc2hvdWxkZXJzIG9mIGdpYW50cyBhbmQgbm90IGludmVudCBvdXIgb3duLjwvcD4KPC9i bG9ja3F1b3RlPgo8cD5TdXJlLiBUaGlzIGhlcmUgaXMgYSBmaXggdGhhdCBkb2VzIG5vdCByZXF1 aXJlIHRvdWNoaW5nIGFsbCBvdGhlciBwbGF0Zm9ybXMuIFNpbmNlIGJvdGggbWFjT1MgYW5kIFdp bmRvd3MgYXJlIGZpbmUgYW5kIHN1cHBvcnRlZCBpbiBTcXVlYWssIG9ubHkgWDExIHNlZW1zIHRv IGJlIHRoZSBjdXJyZW50IGlzc3VlLjwvcD4KCjxwIHN0eWxlPSJmb250LXNpemU6c21hbGw7LXdl YmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7Y29sb3I6IzY2NjsiPiZtZGFzaDs8YnIgLz5Zb3Ug YXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMgdGhy ZWFkLjxiciAvPlJlcGx5IHRvIHRoaXMgZW1haWwgZGlyZWN0bHksIDxhIGhyZWY9Imh0dHBzOi8v Z2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkjaXNzdWVj b21tZW50LTkzNDEyMjIyMSI+dmlldyBpdCBvbiBHaXRIdWI8L2E+LCBvciA8YSBocmVmPSJodHRw czovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy91bnN1YnNjcmliZS1hdXRoL0FJSlBFV1lWRFVX WFVFVDY2R0U3UzVEVUZLTzJGQU5DTkZTTTVGRkY1RkhRIj51bnN1YnNjcmliZTwvYT4uPGJyIC8+ VHJpYWdlIG5vdGlmaWNhdGlvbnMgb24gdGhlIGdvIHdpdGggR2l0SHViIE1vYmlsZSBmb3IgPGEg aHJlZj0iaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9hcHAvYXBwbGUtc3RvcmUvaWQxNDc3Mzc2OTA1 P2N0PW5vdGlmaWNhdGlvbi1lbWFpbCZhbXA7bXQ9OCZhbXA7cHQ9NTI0Njc1Ij5pT1M8L2E+IG9y IDxhIGhyZWY9Imh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1j b20uZ2l0aHViLmFuZHJvaWQmYW1wO3JlZmVycmVyPXV0bV9jYW1wYWlnbiUzRG5vdGlmaWNhdGlv bi1lbWFpbCUyNnV0bV9tZWRpdW0lM0RlbWFpbCUyNnV0bV9zb3VyY2UlM0RnaXRodWIiPkFuZHJv aWQ8L2E+Lgo8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvYmVhY29u L0FJSlBFVzdNVVJYNjdYVDIyR0FENVYzVUZLTzJGQTVDTkZTTTVGRkY1RkgyWVkzUE5WV1dLM1RV TDUySFM0REZWUkVYRzQzVk1WQlc2M0xOTVZYSEpLVERONVdXMlpMT09SUFdTWkdPRzZXWkYzSS5n aWYiIGhlaWdodD0iMSIgd2lkdGg9IjEiIGFsdD0iIiAvPjwvcD4KPHNjcmlwdCB0eXBlPSJhcHBs aWNhdGlvbi9sZCtqc29uIj5bCnsKIkBjb250ZXh0IjogImh0dHA6Ly9zY2hlbWEub3JnIiwKIkB0 eXBlIjogIkVtYWlsTWVzc2FnZSIsCiJwb3RlbnRpYWxBY3Rpb24iOiB7CiJAdHlwZSI6ICJWaWV3 QWN0aW9uIiwKInRhcmdldCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNtYWxsdGFsay9vcGVu c21hbGx0YWxrLXZtL3B1bGwvNTk5I2lzc3VlY29tbWVudC05MzQxMjIyMjEiLAoidXJsIjogImh0 dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkj aXNzdWVjb21tZW50LTkzNDEyMjIyMSIsCiJuYW1lIjogIlZpZXcgUHVsbCBSZXF1ZXN0Igp9LAoi ZGVzY3JpcHRpb24iOiAiVmlldyB0aGlzIFB1bGwgUmVxdWVzdCBvbiBHaXRIdWIiLAoicHVibGlz aGVyIjogewoiQHR5cGUiOiAiT3JnYW5pemF0aW9uIiwKIm5hbWUiOiAiR2l0SHViIiwKInVybCI6 ICJodHRwczovL2dpdGh1Yi5jb20iCn0KfQpdPC9zY3JpcHQ+ --===============0503311554524720988==-- From notifications@github.com Tue Oct 5 07:12:12 2021 From: Tobias Pape To: vm-dev@lists.squeakfoundation.org Subject: Re: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Tue, 05 Oct 2021 00:12:09 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0474280104050998665==" --===============0474280104050998665== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable what keycodes are we using in the other worlds? --=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599#issuecomment-93413= 0779 --===============0474280104050998665== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+PC9wPgo8cD53aGF0IGtleWNvZGVzIGFyZSB3ZSB1c2luZyBpbiB0aGUgb3RoZXIgd29ybGRz PzwvcD4KCjxwIHN0eWxlPSJmb250LXNpemU6c21hbGw7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0 Om5vbmU7Y29sb3I6IzY2NjsiPiZtZGFzaDs8YnIgLz5Zb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJl Y2F1c2UgeW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMgdGhyZWFkLjxiciAvPlJlcGx5IHRvIHRo aXMgZW1haWwgZGlyZWN0bHksIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0 YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkjaXNzdWVjb21tZW50LTkzNDEzMDc3OSI+dmll dyBpdCBvbiBHaXRIdWI8L2E+LCBvciA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbm90aWZp Y2F0aW9ucy91bnN1YnNjcmliZS1hdXRoL0FJSlBFVzNOWFhCRkFENDJPSjI1N0IzVUZLUU1UQU5D TkZTTTVGRkY1RkhRIj51bnN1YnNjcmliZTwvYT4uPGJyIC8+VHJpYWdlIG5vdGlmaWNhdGlvbnMg b24gdGhlIGdvIHdpdGggR2l0SHViIE1vYmlsZSBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9hcHBzLmFw cGxlLmNvbS9hcHAvYXBwbGUtc3RvcmUvaWQxNDc3Mzc2OTA1P2N0PW5vdGlmaWNhdGlvbi1lbWFp bCZhbXA7bXQ9OCZhbXA7cHQ9NTI0Njc1Ij5pT1M8L2E+IG9yIDxhIGhyZWY9Imh0dHBzOi8vcGxh eS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1jb20uZ2l0aHViLmFuZHJvaWQmYW1w O3JlZmVycmVyPXV0bV9jYW1wYWlnbiUzRG5vdGlmaWNhdGlvbi1lbWFpbCUyNnV0bV9tZWRpdW0l M0RlbWFpbCUyNnV0bV9zb3VyY2UlM0RnaXRodWIiPkFuZHJvaWQ8L2E+Lgo8aW1nIHNyYz0iaHR0 cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvYmVhY29uL0FJSlBFVzZFSlFLNzc2QlZCUExW Q1BEVUZLUU1UQTVDTkZTTTVGRkY1RkgyWVkzUE5WV1dLM1RVTDUySFM0REZWUkVYRzQzVk1WQlc2 M0xOTVZYSEpLVERONVdXMlpMT09SUFdTWkdPRzZXM0lXWS5naWYiIGhlaWdodD0iMSIgd2lkdGg9 IjEiIGFsdD0iIiAvPjwvcD4KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj5bCnsK IkBjb250ZXh0IjogImh0dHA6Ly9zY2hlbWEub3JnIiwKIkB0eXBlIjogIkVtYWlsTWVzc2FnZSIs CiJwb3RlbnRpYWxBY3Rpb24iOiB7CiJAdHlwZSI6ICJWaWV3QWN0aW9uIiwKInRhcmdldCI6ICJo dHRwczovL2dpdGh1Yi5jb20vT3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5 I2lzc3VlY29tbWVudC05MzQxMzA3NzkiLAoidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcGVu U21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkjaXNzdWVjb21tZW50LTkzNDEzMDc3 OSIsCiJuYW1lIjogIlZpZXcgUHVsbCBSZXF1ZXN0Igp9LAoiZGVzY3JpcHRpb24iOiAiVmlldyB0 aGlzIFB1bGwgUmVxdWVzdCBvbiBHaXRIdWIiLAoicHVibGlzaGVyIjogewoiQHR5cGUiOiAiT3Jn YW5pemF0aW9uIiwKIm5hbWUiOiAiR2l0SHViIiwKInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20i Cn0KfQpdPC9zY3JpcHQ+ --===============0474280104050998665==-- From notifications@github.com Tue Oct 5 07:13:42 2021 From: Marcel Taeumel To: vm-dev@lists.squeakfoundation.org Subject: Re: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Tue, 05 Oct 2021 00:13:42 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1203785551853182603==" --===============1203785551853182603== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable > I think that SDL or QT might have the most compatible list SDL does in C what Squeak 6.0alpha already does in Smalltalk. Looking at "SDL= _x11keyboard.c" or "scancodes_windows.h", we have in `EventSensor >> virtualK= eyTable`. Now, SDL has its own `KeySymToSDLScancode` table. In this PR, I chose to simp= lify matters by just converting the special keys from 0xff__ to 0x00__ plus u= sing the room between 0x20 and 0x4f for alpha-numeric keys. So that we stay i= n 1 byte, just as macOS and Windows do. Also, SDL uses a similar "hack" for alpha-numeric keys. See SDL_x11keyboard.c= function "X11_KeyCodeToSDLScancode". This PR is als complete as in can get for X11. I am currently fixing up some = modifier issues when pressing only modifier keys. --=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599#issuecomment-93413= 1821 --===============1203785551853182603== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+PC9wPgo8YmxvY2txdW90ZT4KPHA+SSB0aGluayB0aGF0IFNETCBvciBRVCBtaWdodCBoYXZl IHRoZSBtb3N0IGNvbXBhdGlibGUgbGlzdDwvcD4KPC9ibG9ja3F1b3RlPgo8cD5TREwgZG9lcyBp biBDIHdoYXQgU3F1ZWFrIDYuMGFscGhhIGFscmVhZHkgZG9lcyBpbiBTbWFsbHRhbGsuIExvb2tp bmcgYXQgIlNETF94MTFrZXlib2FyZC5jIiBvciAic2NhbmNvZGVzX3dpbmRvd3MuaCIsIHdlIGhh dmUgaW4gPGNvZGU+RXZlbnRTZW5zb3IgJmd0OyZndDsgdmlydHVhbEtleVRhYmxlPC9jb2RlPi48 L3A+CjxwPk5vdywgU0RMIGhhcyBpdHMgb3duIDxjb2RlPktleVN5bVRvU0RMU2NhbmNvZGU8L2Nv ZGU+IHRhYmxlLiBJbiB0aGlzIFBSLCBJIGNob3NlIHRvIHNpbXBsaWZ5IG1hdHRlcnMgYnkganVz dCBjb252ZXJ0aW5nIHRoZSBzcGVjaWFsIGtleXMgZnJvbSAweGZmX18gdG8gMHgwMF9fIHBsdXMg dXNpbmcgdGhlIHJvb20gYmV0d2VlbiAweDIwIGFuZCAweDRmIGZvciBhbHBoYS1udW1lcmljIGtl eXMuIFNvIHRoYXQgd2Ugc3RheSBpbiAxIGJ5dGUsIGp1c3QgYXMgbWFjT1MgYW5kIFdpbmRvd3Mg ZG8uPC9wPgo8cD5BbHNvLCBTREwgdXNlcyBhIHNpbWlsYXIgImhhY2siIGZvciBhbHBoYS1udW1l cmljIGtleXMuIFNlZSBTRExfeDExa2V5Ym9hcmQuYyBmdW5jdGlvbiAiWDExX0tleUNvZGVUb1NE TFNjYW5jb2RlIi48L3A+CjxwPlRoaXMgUFIgaXMgYWxzIGNvbXBsZXRlIGFzIGluIGNhbiBnZXQg Zm9yIFgxMS4gSSBhbSBjdXJyZW50bHkgZml4aW5nIHVwIHNvbWUgbW9kaWZpZXIgaXNzdWVzIHdo ZW4gcHJlc3Npbmcgb25seSBtb2RpZmllciBrZXlzLjwvcD4KCjxwIHN0eWxlPSJmb250LXNpemU6 c21hbGw7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7Y29sb3I6IzY2NjsiPiZtZGFzaDs8 YnIgLz5Zb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVkIHRv IHRoaXMgdGhyZWFkLjxiciAvPlJlcGx5IHRvIHRoaXMgZW1haWwgZGlyZWN0bHksIDxhIGhyZWY9 Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81 OTkjaXNzdWVjb21tZW50LTkzNDEzMTgyMSI+dmlldyBpdCBvbiBHaXRIdWI8L2E+LCBvciA8YSBo cmVmPSJodHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy91bnN1YnNjcmliZS1hdXRoL0FJ SlBFV1lWUUQ1MldGQ0E1M1hHU0JUVUZLUVNOQU5DTkZTTTVGRkY1RkhRIj51bnN1YnNjcmliZTwv YT4uPGJyIC8+VHJpYWdlIG5vdGlmaWNhdGlvbnMgb24gdGhlIGdvIHdpdGggR2l0SHViIE1vYmls ZSBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9hcHAvYXBwbGUtc3RvcmUvaWQx NDc3Mzc2OTA1P2N0PW5vdGlmaWNhdGlvbi1lbWFpbCZhbXA7bXQ9OCZhbXA7cHQ9NTI0Njc1Ij5p T1M8L2E+IG9yIDxhIGhyZWY9Imh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0 YWlscz9pZD1jb20uZ2l0aHViLmFuZHJvaWQmYW1wO3JlZmVycmVyPXV0bV9jYW1wYWlnbiUzRG5v dGlmaWNhdGlvbi1lbWFpbCUyNnV0bV9tZWRpdW0lM0RlbWFpbCUyNnV0bV9zb3VyY2UlM0RnaXRo dWIiPkFuZHJvaWQ8L2E+Lgo8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlv bnMvYmVhY29uL0FJSlBFV1lPNjQ3NUszS1hSM0RaUEFEVUZLUVNOQTVDTkZTTTVGRkY1RkgyWVkz UE5WV1dLM1RVTDUySFM0REZWUkVYRzQzVk1WQlc2M0xOTVZYSEpLVERONVdXMlpMT09SUFdTWkdP RzZXM1EzSS5naWYiIGhlaWdodD0iMSIgd2lkdGg9IjEiIGFsdD0iIiAvPjwvcD4KPHNjcmlwdCB0 eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj5bCnsKIkBjb250ZXh0IjogImh0dHA6Ly9zY2hlbWEu b3JnIiwKIkB0eXBlIjogIkVtYWlsTWVzc2FnZSIsCiJwb3RlbnRpYWxBY3Rpb24iOiB7CiJAdHlw ZSI6ICJWaWV3QWN0aW9uIiwKInRhcmdldCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNtYWxs dGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5I2lzc3VlY29tbWVudC05MzQxMzE4MjEiLAoi dXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0v cHVsbC81OTkjaXNzdWVjb21tZW50LTkzNDEzMTgyMSIsCiJuYW1lIjogIlZpZXcgUHVsbCBSZXF1 ZXN0Igp9LAoiZGVzY3JpcHRpb24iOiAiVmlldyB0aGlzIFB1bGwgUmVxdWVzdCBvbiBHaXRIdWIi LAoicHVibGlzaGVyIjogewoiQHR5cGUiOiAiT3JnYW5pemF0aW9uIiwKIm5hbWUiOiAiR2l0SHVi IiwKInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20iCn0KfQpdPC9zY3JpcHQ+ --===============1203785551853182603==-- From notifications@github.com Tue Oct 5 07:16:46 2021 From: Tobias Pape To: vm-dev@lists.squeakfoundation.org Subject: Re: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Tue, 05 Oct 2021 00:16:46 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1160987773007445651==" --===============1160987773007445651== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable My issue is that we migh be introducing some new code here without having the= m mean anything anywhere else=E2=80=A6 Also, what does "virtual" mean here? are we trying to map to the thing printe= d on the keyborard or to the position of the key pressed? --=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599#issuecomment-93413= 3927 --===============1160987773007445651== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+PC9wPg0KPHA+TXkgaXNzdWUgaXMgdGhhdCB3ZSBtaWdoIGJlIGludHJvZHVjaW5nIHNvbWUg bmV3IGNvZGUgaGVyZSB3aXRob3V0IGhhdmluZyB0aGVtIG1lYW4gYW55dGhpbmcgYW55d2hlcmUg ZWxzZeKApjwvcD4NCjxwPkFsc28sIHdoYXQgZG9lcyAidmlydHVhbCIgbWVhbiBoZXJlPyBhcmUg d2UgdHJ5aW5nIHRvIG1hcCB0byB0aGUgdGhpbmcgcHJpbnRlZCBvbiB0aGUga2V5Ym9yYXJkIG9y IHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUga2V5IHByZXNzZWQ/PC9wPg0KDQo8cCBzdHlsZT0iZm9u dC1zaXplOnNtYWxsOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpub25lO2NvbG9yOiM2NjY7Ij4m bWRhc2g7PGJyIC8+WW91IGFyZSByZWNlaXZpbmcgdGhpcyBiZWNhdXNlIHlvdSBhcmUgc3Vic2Ny aWJlZCB0byB0aGlzIHRocmVhZC48YnIgLz5SZXBseSB0byB0aGlzIGVtYWlsIGRpcmVjdGx5LCA8 YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vT3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZt L3B1bGwvNTk5I2lzc3VlY29tbWVudC05MzQxMzM5MjciPnZpZXcgaXQgb24gR2l0SHViPC9hPiwg b3IgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUt YXV0aC9BSUpQRVc2WVFSSlk0VERKTEZJWEdQM1VGS1E1NUFOQ05GU001RkZGNUZIUSI+dW5zdWJz Y3JpYmU8L2E+LjxiciAvPlRyaWFnZSBub3RpZmljYXRpb25zIG9uIHRoZSBnbyB3aXRoIEdpdEh1 YiBNb2JpbGUgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL2FwcGxlLXN0 b3JlL2lkMTQ3NzM3NjkwNT9jdD1ub3RpZmljYXRpb24tZW1haWwmYW1wO210PTgmYW1wO3B0PTUy NDY3NSI+aU9TPC9hPiBvciA8YSBocmVmPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9h cHBzL2RldGFpbHM/aWQ9Y29tLmdpdGh1Yi5hbmRyb2lkJmFtcDtyZWZlcnJlcj11dG1fY2FtcGFp Z24lM0Rub3RpZmljYXRpb24tZW1haWwlMjZ1dG1fbWVkaXVtJTNEZW1haWwlMjZ1dG1fc291cmNl JTNEZ2l0aHViIj5BbmRyb2lkPC9hPi4NCjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vbm90 aWZpY2F0aW9ucy9iZWFjb24vQUlKUEVXN1VYV1pVUVlIRzQ1WU81NjNVRktRNTVBNUNORlNNNUZG RjVGSDJZWTNQTlZXV0szVFVMNTJIUzRERlZSRVhHNDNWTVZCVzYzTE5NVlhISktURE41V1cyWkxP T1JQV1NaR09HNlc0QkpZLmdpZiIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSIiIC8+PC9wPg0K PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj5bDQp7DQoiQGNvbnRleHQiOiAiaHR0 cDovL3NjaGVtYS5vcmciLA0KIkB0eXBlIjogIkVtYWlsTWVzc2FnZSIsDQoicG90ZW50aWFsQWN0 aW9uIjogew0KIkB0eXBlIjogIlZpZXdBY3Rpb24iLA0KInRhcmdldCI6ICJodHRwczovL2dpdGh1 Yi5jb20vT3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5I2lzc3VlY29tbWVu dC05MzQxMzM5MjciLA0KInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNtYWxsdGFsay9v cGVuc21hbGx0YWxrLXZtL3B1bGwvNTk5I2lzc3VlY29tbWVudC05MzQxMzM5MjciLA0KIm5hbWUi OiAiVmlldyBQdWxsIFJlcXVlc3QiDQp9LA0KImRlc2NyaXB0aW9uIjogIlZpZXcgdGhpcyBQdWxs IFJlcXVlc3Qgb24gR2l0SHViIiwNCiJwdWJsaXNoZXIiOiB7DQoiQHR5cGUiOiAiT3JnYW5pemF0 aW9uIiwNCiJuYW1lIjogIkdpdEh1YiIsDQoidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbSINCn0N Cn0NCl08L3NjcmlwdD4= --===============1160987773007445651==-- From notifications@github.com Tue Oct 5 07:35:23 2021 From: Marcel Taeumel To: vm-dev@lists.squeakfoundation.org Subject: Re: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Tue, 05 Oct 2021 00:35:20 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4059149875755383734==" --===============4059149875755383734== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable > My issue is that we migh be introducing some new code here without having t= hem mean anything anywhere else=E2=80=A6 Yes. It would be better if we had access to both the "keysym" and the "keycod= e" in the Smalltalk image. Unfortunately, there is only a single value reserv= ed for this in our event structure. So, we have to merge both value ranges in= a meaningful way. I just did that. You can restore the "keysym" in the image= by setting 0xff__ again.=20 Do you have a better Idea on merging "keysym" (special keys and alpha-num lat= in-1) and "keycode" (for shifted alpha-num keys) into a single value? That si= ngle-byte lookup table in Squeak is quite handy ... and fast. :-) And what th= e other two platforms provide. > Also, what does "virtual" mean here? are we trying to map to the thing prin= ted on the keyborard or to the position of the key pressed? The concept stems from the MSDN documentation. I elaborated on this topic sev= eral times on squeak-dev already: - http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-April/215203.ht= ml - http://lists.squeakfoundation.org/pipermail/squeak-dev/2021-April/215208.ht= ml The code reads `xkey2sqVirtualKeyCode`, which clarifies its meaning within th= e Smalltalk image. --=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599#issuecomment-93414= 6042 --===============4059149875755383734== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+PC9wPg0KPGJsb2NrcXVvdGU+DQo8cD5NeSBpc3N1ZSBpcyB0aGF0IHdlIG1pZ2ggYmUgaW50 cm9kdWNpbmcgc29tZSBuZXcgY29kZSBoZXJlIHdpdGhvdXQgaGF2aW5nIHRoZW0gbWVhbiBhbnl0 aGluZyBhbnl3aGVyZSBlbHNl4oCmPC9wPg0KPC9ibG9ja3F1b3RlPg0KPHA+WWVzLiBJdCB3b3Vs ZCBiZSBiZXR0ZXIgaWYgd2UgaGFkIGFjY2VzcyB0byBib3RoIHRoZSAia2V5c3ltIiBhbmQgdGhl ICJrZXljb2RlIiBpbiB0aGUgU21hbGx0YWxrIGltYWdlLiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBp cyBvbmx5IGEgc2luZ2xlIHZhbHVlIHJlc2VydmVkIGZvciB0aGlzIGluIG91ciBldmVudCBzdHJ1 Y3R1cmUuIFNvLCB3ZSBoYXZlIHRvIG1lcmdlIGJvdGggdmFsdWUgcmFuZ2VzIGluIGEgbWVhbmlu Z2Z1bCB3YXkuIEkganVzdCBkaWQgdGhhdC4gWW91IGNhbiByZXN0b3JlIHRoZSAia2V5c3ltIiBp biB0aGUgaW1hZ2UgYnkgc2V0dGluZyAweGZmX18gYWdhaW4uPC9wPg0KPHA+RG8geW91IGhhdmUg YSBiZXR0ZXIgSWRlYSBvbiBtZXJnaW5nICJrZXlzeW0iIChzcGVjaWFsIGtleXMgYW5kIGFscGhh LW51bSBsYXRpbi0xKSBhbmQgImtleWNvZGUiIChmb3Igc2hpZnRlZCBhbHBoYS1udW0ga2V5cykg aW50byBhIHNpbmdsZSB2YWx1ZT8gVGhhdCBzaW5nbGUtYnl0ZSBsb29rdXAgdGFibGUgaW4gU3F1 ZWFrIGlzIHF1aXRlIGhhbmR5IC4uLiBhbmQgZmFzdC4gOi0pIEFuZCB3aGF0IHRoZSBvdGhlciB0 d28gcGxhdGZvcm1zIHByb3ZpZGUuPC9wPg0KPGJsb2NrcXVvdGU+DQo8cD5BbHNvLCB3aGF0IGRv ZXMgInZpcnR1YWwiIG1lYW4gaGVyZT8gYXJlIHdlIHRyeWluZyB0byBtYXAgdG8gdGhlIHRoaW5n IHByaW50ZWQgb24gdGhlIGtleWJvcmFyZCBvciB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGtleSBw cmVzc2VkPzwvcD4NCjwvYmxvY2txdW90ZT4NCjxwPlRoZSBjb25jZXB0IHN0ZW1zIGZyb20gdGhl IE1TRE4gZG9jdW1lbnRhdGlvbi4gSSBlbGFib3JhdGVkIG9uIHRoaXMgdG9waWMgc2V2ZXJhbCB0 aW1lcyBvbiBzcXVlYWstZGV2IGFscmVhZHk6PC9wPg0KPHVsPg0KPGxpPjxhIGhyZWY9Imh0dHA6 Ly9saXN0cy5zcXVlYWtmb3VuZGF0aW9uLm9yZy9waXBlcm1haWwvc3F1ZWFrLWRldi8yMDIxLUFw cmlsLzIxNTIwMy5odG1sIiByZWw9Im5vZm9sbG93Ij5odHRwOi8vbGlzdHMuc3F1ZWFrZm91bmRh dGlvbi5vcmcvcGlwZXJtYWlsL3NxdWVhay1kZXYvMjAyMS1BcHJpbC8yMTUyMDMuaHRtbDwvYT48 L2xpPg0KPGxpPjxhIGhyZWY9Imh0dHA6Ly9saXN0cy5zcXVlYWtmb3VuZGF0aW9uLm9yZy9waXBl cm1haWwvc3F1ZWFrLWRldi8yMDIxLUFwcmlsLzIxNTIwOC5odG1sIiByZWw9Im5vZm9sbG93Ij5o dHRwOi8vbGlzdHMuc3F1ZWFrZm91bmRhdGlvbi5vcmcvcGlwZXJtYWlsL3NxdWVhay1kZXYvMjAy MS1BcHJpbC8yMTUyMDguaHRtbDwvYT48L2xpPg0KPC91bD4NCjxwPlRoZSBjb2RlIHJlYWRzIDxj b2RlPnhrZXkyc3FWaXJ0dWFsS2V5Q29kZTwvY29kZT4sIHdoaWNoIGNsYXJpZmllcyBpdHMgbWVh bmluZyB3aXRoaW4gdGhlIFNtYWxsdGFsayBpbWFnZS48L3A+DQoNCjxwIHN0eWxlPSJmb250LXNp emU6c21hbGw7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7Y29sb3I6IzY2NjsiPiZtZGFz aDs8YnIgLz5Zb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVk IHRvIHRoaXMgdGhyZWFkLjxiciAvPlJlcGx5IHRvIHRoaXMgZW1haWwgZGlyZWN0bHksIDxhIGhy ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVs bC81OTkjaXNzdWVjb21tZW50LTkzNDE0NjA0MiI+dmlldyBpdCBvbiBHaXRIdWI8L2E+LCBvciA8 YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy91bnN1YnNjcmliZS1hdXRo L0FJSlBFVzNJWUg3WFo3TFhGTktBVkMzVUZLVERSQU5DTkZTTTVGRkY1RkhRIj51bnN1YnNjcmli ZTwvYT4uPGJyIC8+VHJpYWdlIG5vdGlmaWNhdGlvbnMgb24gdGhlIGdvIHdpdGggR2l0SHViIE1v YmlsZSBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9hcHAvYXBwbGUtc3RvcmUv aWQxNDc3Mzc2OTA1P2N0PW5vdGlmaWNhdGlvbi1lbWFpbCZhbXA7bXQ9OCZhbXA7cHQ9NTI0Njc1 Ij5pT1M8L2E+IG9yIDxhIGhyZWY9Imh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMv ZGV0YWlscz9pZD1jb20uZ2l0aHViLmFuZHJvaWQmYW1wO3JlZmVycmVyPXV0bV9jYW1wYWlnbiUz RG5vdGlmaWNhdGlvbi1lbWFpbCUyNnV0bV9tZWRpdW0lM0RlbWFpbCUyNnV0bV9zb3VyY2UlM0Rn aXRodWIiPkFuZHJvaWQ8L2E+Lg0KPGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9ub3RpZmlj YXRpb25zL2JlYWNvbi9BSUpQRVczNjVJR0xQWVFFNTUzWFRaM1VGS1REUkE1Q05GU001RkZGNUZI MllZM1BOVldXSzNUVUw1MkhTNERGVlJFWEc0M1ZNVkJXNjNMTk1WWEhKS1RETjVXVzJaTE9PUlBX U1pHT0c2VzY3NlEuZ2lmIiBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBhbHQ9IiIgLz48L3A+DQo8c2Ny aXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPlsNCnsNCiJAY29udGV4dCI6ICJodHRwOi8v c2NoZW1hLm9yZyIsDQoiQHR5cGUiOiAiRW1haWxNZXNzYWdlIiwNCiJwb3RlbnRpYWxBY3Rpb24i OiB7DQoiQHR5cGUiOiAiVmlld0FjdGlvbiIsDQoidGFyZ2V0IjogImh0dHBzOi8vZ2l0aHViLmNv bS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkjaXNzdWVjb21tZW50LTkz NDE0NjA0MiIsDQoidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5z bWFsbHRhbGstdm0vcHVsbC81OTkjaXNzdWVjb21tZW50LTkzNDE0NjA0MiIsDQoibmFtZSI6ICJW aWV3IFB1bGwgUmVxdWVzdCINCn0sDQoiZGVzY3JpcHRpb24iOiAiVmlldyB0aGlzIFB1bGwgUmVx dWVzdCBvbiBHaXRIdWIiLA0KInB1Ymxpc2hlciI6IHsNCiJAdHlwZSI6ICJPcmdhbml6YXRpb24i LA0KIm5hbWUiOiAiR2l0SHViIiwNCiJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIg0KfQ0KfQ0K XTwvc2NyaXB0Pg== --===============4059149875755383734==-- From notifications@github.com Tue Oct 5 14:14:46 2021 From: Marcel Taeumel To: vm-dev@lists.squeakfoundation.org Subject: Re: [Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Adds cross-platform compatible virtual-key codes to vm-display-x11 plugin (#599) Date: Tue, 05 Oct 2021 07:14:42 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2370340244818267476==" --===============2370340244818267476== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable @marceltaeumel pushed 4 commits. dd4e778b9a72a3ff2125a0725495ae84b1602cb3 Improved commentary. Code clean-up. 8350f371697be41a901f418cf75cbfe4027e165c Minor tabs-vs-spaces cleanup in mou= se-event and keyboard-event routines. That is, replace 8-space-tabs with up t= o 8 actual spaces because the file's indent is 2 spaces. a282289de8a2156f016e61dc32b26404607d1e91 Fixes virtual-key code for Shift+Ta= b combination. a4d00735269cdb4af071f1662f78498cf1304d4f Fixes modifierState for modifier-ke= y EventKeyDown and EventKeyUp events. Reuse the side-effects in translateCode= (), even though its actual job is to translate selected KeySyms into the ASCI= I range such as for XK_Left or XK_Insert. Thanks to the UCS4 mapping in xkeys= ym2ucs4(), there is almost no use for x2sqKeyPlain() and translateCode() anym= ore. Especially now that xkey2sqVirtualKeyCode() provides the required (virtu= al) key codes for EventKeyDown and EventKeyUp. --=20 You are receiving this because you are subscribed to this thread. View it on GitHub: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/599/files/ff3c42659822= b528d49f578538e434d1acae4fd1..a4d00735269cdb4af071f1662f78498cf1304d4f --===============2370340244818267476== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PHA+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21hcmNlbHRhZXVtZWwiIGNsYXNzPSJ1c2Vy LW1lbnRpb24iPkBtYXJjZWx0YWV1bWVsPC9hPiBwdXNoZWQgNCBjb21taXRzLjwvcD4KCjx1bD4K ICA8bGk+PGEgY2xhc3M9ImNvbW1pdC1saW5rIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vT3Bl blNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL2NvbW1pdC9kZDRlNzc4YjlhNzJhM2ZmMjEyNWEw NzI1NDk1YWU4NGIxNjAyY2IzIj5kZDRlNzc4PC9hPiAgSW1wcm92ZWQgY29tbWVudGFyeS4gQ29k ZSBjbGVhbi11cC48L2xpPgogIDxsaT48YSBjbGFzcz0iY29tbWl0LWxpbmsiIGhyZWY9Imh0dHBz Oi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vY29tbWl0LzgzNTBm MzcxNjk3YmU0MWE5MDFmNDE4Y2Y3NWNiZmU0MDI3ZTE2NWMiPjgzNTBmMzc8L2E+ICBNaW5vciB0 YWJzLXZzLXNwYWNlcyBjbGVhbnVwIGluIG1vdXNlLWV2ZW50IGFuZCBrZXlib2FyZC1ldmVudCBy b3V0aW5lcy4gVGhhdCBpcywgcmVwbGFjZSA4LXNwYWNlLXRhYnMgd2l0aCB1cCB0byA4IGFjdHVh bCBzcGFjZXMgYmVjYXVzZSB0aGUgZmlsZSYjMzk7cyBpbmRlbnQgaXMgMiBzcGFjZXMuPC9saT4K ICA8bGk+PGEgY2xhc3M9ImNvbW1pdC1saW5rIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vT3Bl blNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZtL2NvbW1pdC9hMjgyMjg5ZGU4YTIxNTZmMDE2ZTYx ZGMzMmIyNjQwNDYwN2QxZTkxIj5hMjgyMjg5PC9hPiAgRml4ZXMgdmlydHVhbC1rZXkgY29kZSBm b3IgU2hpZnQrVGFiIGNvbWJpbmF0aW9uLjwvbGk+CiAgPGxpPjxhIGNsYXNzPSJjb21taXQtbGlu ayIgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL09wZW5TbWFsbHRhbGsvb3BlbnNtYWxsdGFsay12 bS9jb21taXQvYTRkMDA3MzUyNjljZGI0YWYwNzFmMTY2MmY3ODQ5OGNmMTMwNGQ0ZiI+YTRkMDA3 MzwvYT4gIEZpeGVzIG1vZGlmaWVyU3RhdGUgZm9yIG1vZGlmaWVyLWtleSBFdmVudEtleURvd24g YW5kIEV2ZW50S2V5VXAgZXZlbnRzLiBSZXVzZSB0aGUgc2lkZS1lZmZlY3RzIGluIHRyYW5zbGF0 ZUNvZGUoKSwgZXZlbiB0aG91Z2ggaXRzIGFjdHVhbCBqb2IgaXMgdG8gdHJhbnNsYXRlIHNlbGVj dGVkIEtleVN5bXMgaW50byB0aGUgQVNDSUkgcmFuZ2Ugc3VjaCBhcyBmb3IgWEtfTGVmdCBvciBY S19JbnNlcnQuIFRoYW5rcyB0byB0aGUgVUNTNCBtYXBwaW5nIGluIHhrZXlzeW0ydWNzNCgpLCB0 aGVyZSBpcyBhbG1vc3Qgbm8gdXNlIGZvciB4MnNxS2V5UGxhaW4oKSBhbmQgdHJhbnNsYXRlQ29k ZSgpIGFueW1vcmUuIEVzcGVjaWFsbHkgbm93IHRoYXQgeGtleTJzcVZpcnR1YWxLZXlDb2RlKCkg cHJvdmlkZXMgdGhlIHJlcXVpcmVkICh2aXJ0dWFsKSBrZXkgY29kZXMgZm9yIEV2ZW50S2V5RG93 biBhbmQgRXZlbnRLZXlVcC48L2xpPgo8L3VsPgoKCjxwIHN0eWxlPSJmb250LXNpemU6c21hbGw7 LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmU7Y29sb3I6IzY2NjsiPiZtZGFzaDs8YnIgLz5Z b3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMg dGhyZWFkLjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29w ZW5zbWFsbHRhbGstdm0vcHVsbC81OTkvZmlsZXMvZmYzYzQyNjU5ODIyYjUyOGQ0OWY1Nzg1Mzhl NDM0ZDFhY2FlNGZkMS4uYTRkMDA3MzUyNjljZGI0YWYwNzFmMTY2MmY3ODQ5OGNmMTMwNGQ0ZiI+ VmlldyBpdCBvbiBHaXRIdWI8L2E+IG9yIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ub3Rp ZmljYXRpb25zL3Vuc3Vic2NyaWJlLWF1dGgvQUlKUEVXNVJNQ1lTNlhKR1M2SVZNQzNVRk1CNUZB TkNORlNNNUZGRjVGSFEiPnVuc3Vic2NyaWJlPC9hPi48YnIgLz5UcmlhZ2Ugbm90aWZpY2F0aW9u cyBvbiB0aGUgZ28gd2l0aCBHaXRIdWIgTW9iaWxlIGZvciA8YSBocmVmPSJodHRwczovL2FwcHMu YXBwbGUuY29tL2FwcC9hcHBsZS1zdG9yZS9pZDE0NzczNzY5MDU/Y3Q9bm90aWZpY2F0aW9uLWVt YWlsJmFtcDttdD04JmFtcDtwdD01MjQ2NzUiPmlPUzwvYT4gb3IgPGEgaHJlZj0iaHR0cHM6Ly9w bGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPWNvbS5naXRodWIuYW5kcm9pZCZh bXA7cmVmZXJyZXI9dXRtX2NhbXBhaWduJTNEbm90aWZpY2F0aW9uLWVtYWlsJTI2dXRtX21lZGl1 bSUzRGVtYWlsJTI2dXRtX3NvdXJjZSUzRGdpdGh1YiI+QW5kcm9pZDwvYT4uCjxpbWcgc3JjPSJo dHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy9iZWFjb24vQUlKUEVXWlFUWU9PTVhJVzJK WFI1MkxVRk1CNUZBNUNORlNNNUZGRjVGSDJZWTNQTlZXV0szVFVMNTJIUzRERlhOSUhLM0RNS0pT WEM1TEZPTjJGQTVMVE5CSEc2NURKTVpVV0dZTFVORlhXNUtURE41V1cyWkxPT1JQV1NaRjVLQjJX WTNCREc0MkRPT0JTR1UyVFFNQ1FPVlpXUUlaWUdBNERHTkpXSEEyVFNNWS5naWYiIGhlaWdodD0i MSIgd2lkdGg9IjEiIGFsdD0iIiAvPjwvcD4KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtq c29uIj5bCnsKIkBjb250ZXh0IjogImh0dHA6Ly9zY2hlbWEub3JnIiwKIkB0eXBlIjogIkVtYWls TWVzc2FnZSIsCiJwb3RlbnRpYWxBY3Rpb24iOiB7CiJAdHlwZSI6ICJWaWV3QWN0aW9uIiwKInRh cmdldCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNtYWxsdGFsay9vcGVuc21hbGx0YWxrLXZt L3B1bGwvNTk5L2ZpbGVzL2ZmM2M0MjY1OTgyMmI1MjhkNDlmNTc4NTM4ZTQzNGQxYWNhZTRmZDEu LmE0ZDAwNzM1MjY5Y2RiNGFmMDcxZjE2NjJmNzg0OThjZjEzMDRkNGYiLAoidXJsIjogImh0dHBz Oi8vZ2l0aHViLmNvbS9PcGVuU21hbGx0YWxrL29wZW5zbWFsbHRhbGstdm0vcHVsbC81OTkvZmls ZXMvZmYzYzQyNjU5ODIyYjUyOGQ0OWY1Nzg1MzhlNDM0ZDFhY2FlNGZkMS4uYTRkMDA3MzUyNjlj ZGI0YWYwNzFmMTY2MmY3ODQ5OGNmMTMwNGQ0ZiIsCiJuYW1lIjogIlZpZXcgUHVsbCBSZXF1ZXN0 Igp9LAoiZGVzY3JpcHRpb24iOiAiVmlldyB0aGlzIFB1bGwgUmVxdWVzdCBvbiBHaXRIdWIiLAoi cHVibGlzaGVyIjogewoiQHR5cGUiOiAiT3JnYW5pemF0aW9uIiwKIm5hbWUiOiAiR2l0SHViIiwK InVybCI6ICJodHRwczovL2dpdGh1Yi5jb20iCn0KfQpdPC9zY3JpcHQ+Cg== --===============2370340244818267476==--